diff --git a/doc/doxygen/html/DOP_8c.html b/doc/doxygen/html/DOP_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..282b22d614b63ca556a7cc338b0b422e03a2afc3 --- /dev/null +++ b/doc/doxygen/html/DOP_8c.html @@ -0,0 +1,182 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: DOP.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('DOP_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">DOP.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Compute the Position Dilution of Precision (PDOP). +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include "<a class="el" href="DOP_8h_source.html">DOP.h</a>"</code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="DOP_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a8b878ff6d73e8da6fbc3ae40f01b1ce4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_Matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> true_pos[m])</td></tr> +<tr class="memdesc:a8b878ff6d73e8da6fbc3ae40f01b1ce4"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Position Dilution of Precision (PDOP). <a href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">More...</a><br /></td></tr> +<tr class="separator:a8b878ff6d73e8da6fbc3ae40f01b1ce4"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Compute the Position Dilution of Precision (PDOP). </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="DOP_8c_source.html">DOP.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a8b878ff6d73e8da6fbc3ae40f01b1ce4"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8b878ff6d73e8da6fbc3ae40f01b1ce4">◆ </a></span>get_PDOP()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> get_PDOP </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_Matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>true_pos</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Position Dilution of Precision (PDOP). </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_Matrix</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">true_pos</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the PDOP-value. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="DOP_8c_source.html#l00030">30</a> of file <a class="el" href="DOP_8c_source.html">DOP.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00363">matrix_mul()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00056">matrix_transpose()</a>, and <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="DOP_8c.html">DOP.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/DOP_8c.js b/doc/doxygen/html/DOP_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..e4207e9ba5b4072723a2474725d6d89a036e0032 --- /dev/null +++ b/doc/doxygen/html/DOP_8c.js @@ -0,0 +1,4 @@ +var DOP_8c = +[ + [ "get_PDOP", "DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/DOP_8c_source.html b/doc/doxygen/html/DOP_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..5966db202486505b47c89abcb6fb01a6ee7a4a41 --- /dev/null +++ b/doc/doxygen/html/DOP_8c_source.html @@ -0,0 +1,160 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: DOP.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('DOP_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">DOP.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="DOP_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="DOP_8h.html">DOP.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4"> 30</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_Matrix[m][3],</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> true_pos[m])</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> PDOP = 0.0;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> H[m][4];</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> H_transpose[4][m];</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> H_transpose_H[4][4];</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> H_transpose_H_pinv[4][4];</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R_i = sqrt(pow(ref_Matrix[i][0] - true_pos[0], 2)</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  + pow(ref_Matrix[i][1] - true_pos[1], 2)</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  + pow(ref_Matrix[i][2] - true_pos[2], 2));</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> l = 0; l < 3; l++) {</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  H[i][l] = (ref_Matrix[i][l] - true_pos[l]) / R_i;</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  H[i][3] = -1;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(m, 4, H, H_transpose);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(4, m, H_transpose, m, 4, H, H_transpose_H);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(4, 4, H_transpose_H, H_transpose_H_pinv);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; i++) {</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  PDOP = PDOP + H_transpose_H_pinv[i][i];</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  PDOP = sqrt(PDOP);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> PDOP;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad7c9a682a3cc4ca33c030afa8798241a"><div class="ttname"><a href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a></div><div class="ttdeci">void matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m])</div><div class="ttdoc">Computes the transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00056">matrix.c:56</a></div></div> +<div class="ttc" id="aDOP_8c_html_a8b878ff6d73e8da6fbc3ae40f01b1ce4"><div class="ttname"><a href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a></div><div class="ttdeci">matrix_t get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m])</div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</div><div class="ttdef"><b>Definition:</b> <a href="DOP_8c_source.html#l00030">DOP.c:30</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="aDOP_8h_html"><div class="ttname"><a href="DOP_8h.html">DOP.h</a></div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</div></div> +<div class="ttc" id="amatrix_8h_html_a550aa0d5a3212e35ad0af134895fd20a"><div class="ttname"><a href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a></div><div class="ttdeci">void matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num])</div><div class="ttdoc">Compute the multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00363">matrix.c:363</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="DOP_8c.html">DOP.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/DOP_8h.html b/doc/doxygen/html/DOP_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..18d38e9e61d597a2603c2c3ba700904a7959ad44 --- /dev/null +++ b/doc/doxygen/html/DOP_8h.html @@ -0,0 +1,180 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: DOP.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('DOP_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">DOP.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__pos__algos__common.html">POS_ALGOS_COMMON</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Compute the Position Dilution of Precision (PDOP). +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="DOP_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a8b878ff6d73e8da6fbc3ae40f01b1ce4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_Matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> true_pos[m])</td></tr> +<tr class="memdesc:a8b878ff6d73e8da6fbc3ae40f01b1ce4"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Position Dilution of Precision (PDOP). <a href="DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">More...</a><br /></td></tr> +<tr class="separator:a8b878ff6d73e8da6fbc3ae40f01b1ce4"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Compute the Position Dilution of Precision (PDOP). </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="DOP_8h_source.html">DOP.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a8b878ff6d73e8da6fbc3ae40f01b1ce4"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8b878ff6d73e8da6fbc3ae40f01b1ce4">◆ </a></span>get_PDOP()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> get_PDOP </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_Matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>true_pos</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Position Dilution of Precision (PDOP). </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_Matrix</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">true_pos</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the PDOP-value. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="DOP_8c_source.html#l00030">30</a> of file <a class="el" href="DOP_8c_source.html">DOP.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00363">matrix_mul()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00056">matrix_transpose()</a>, and <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_321173b8d48684d54b5d9118730b6e4e.html">include</a></li><li class="navelem"><a class="el" href="DOP_8h.html">DOP.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/DOP_8h.js b/doc/doxygen/html/DOP_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..acf9ac760bef443d9fc6de73452627e10e377773 --- /dev/null +++ b/doc/doxygen/html/DOP_8h.js @@ -0,0 +1,4 @@ +var DOP_8h = +[ + [ "get_PDOP", "DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/DOP_8h_source.html b/doc/doxygen/html/DOP_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..21a15e1c0a2f0fc39ed2ca5e310569a60e560ae5 --- /dev/null +++ b/doc/doxygen/html/DOP_8h_source.html @@ -0,0 +1,127 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: DOP.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('DOP_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">DOP.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="DOP_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef DOP_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define DOP_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_Matrix[m][3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> true_pos[m]);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#endif </span><span class="comment">/* DOP_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aDOP_8h_html_a8b878ff6d73e8da6fbc3ae40f01b1ce4"><div class="ttname"><a href="DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a></div><div class="ttdeci">matrix_t get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m])</div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</div><div class="ttdef"><b>Definition:</b> <a href="DOP_8c_source.html#l00030">DOP.c:30</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_321173b8d48684d54b5d9118730b6e4e.html">include</a></li><li class="navelem"><a class="el" href="DOP_8h.html">DOP.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/annotated.html b/doc/doxygen/html/annotated.html new file mode 100644 index 0000000000000000000000000000000000000000..5c3ba944065c3f7b82a231b734ade83d1bf75884 --- /dev/null +++ b/doc/doxygen/html/annotated.html @@ -0,0 +1,109 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Data Structures</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('annotated.html','');}); +/* @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="headertitle"> +<div class="title">Data Structures</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory"> +<table class="directory"> +<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmatrix__dim__t.html" target="_self">matrix_dim_t</a></td><td class="desc">A structure to define the row and column number of a matrix </td></tr> +</table> +</div><!-- directory --> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/annotated_dup.js b/doc/doxygen/html/annotated_dup.js new file mode 100644 index 0000000000000000000000000000000000000000..1c073870585da016ad619c499e2e9a9074b53e33 --- /dev/null +++ b/doc/doxygen/html/annotated_dup.js @@ -0,0 +1,4 @@ +var annotated_dup = +[ + [ "matrix_dim_t", "structmatrix__dim__t.html", "structmatrix__dim__t" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/bc_s.png b/doc/doxygen/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 Binary files /dev/null and b/doc/doxygen/html/bc_s.png differ diff --git a/doc/doxygen/html/bdwn.png b/doc/doxygen/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 Binary files /dev/null and b/doc/doxygen/html/bdwn.png differ diff --git a/doc/doxygen/html/classes.html b/doc/doxygen/html/classes.html new file mode 100644 index 0000000000000000000000000000000000000000..abf77709e2ed8f6f5a752762732df311c7be5b02 --- /dev/null +++ b/doc/doxygen/html/classes.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Data Structure Index</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('classes.html','');}); +/* @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="headertitle"> +<div class="title">Data Structure Index</div> </div> +</div><!--header--> +<div class="contents"> +<div class="qindex"><a class="qindex" href="#letter_m">m</a></div> +<table class="classindex"> +<tr><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  m  </div></td></tr></table> +</td> +<td></td></tr> +<tr><td></td></tr> +<tr><td valign="top"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a>   </td> +<td></td></tr> +<tr><td></td><td></td></tr> +</table> +<div class="qindex"><a class="qindex" href="#letter_m">m</a></div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/closed.png b/doc/doxygen/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 Binary files /dev/null and b/doc/doxygen/html/closed.png differ diff --git a/doc/doxygen/html/combinatorics_8c.html b/doc/doxygen/html/combinatorics_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..02c42055020f90ee5e623fe3845d8480fa5eded2 --- /dev/null +++ b/doc/doxygen/html/combinatorics_8c.html @@ -0,0 +1,234 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: combinatorics.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('combinatorics_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">combinatorics.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <stdlib.h></code><br /> +<code>#include "<a class="el" href="combinatorics_8h_source.html">combinatorics.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="combinatorics_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a1bcaeef00a7027e9b9b7694da2efd1b9"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a> (uint8_t n, uint8_t k, uint8_t comb_arr[])</td></tr> +<tr class="memdesc:a1bcaeef00a7027e9b9b7694da2efd1b9"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the combinations generator. <a href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">More...</a><br /></td></tr> +<tr class="separator:a1bcaeef00a7027e9b9b7694da2efd1b9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae500ce949afe79089e8146eb1fb5cbb0"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a> (uint8_t n, uint8_t k, uint8_t comb_arr[])</td></tr> +<tr class="memdesc:ae500ce949afe79089e8146eb1fb5cbb0"><td class="mdescLeft"> </td><td class="mdescRight">Generate the next combination. <a href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">More...</a><br /></td></tr> +<tr class="separator:ae500ce949afe79089e8146eb1fb5cbb0"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="combinatorics_8c_source.html">combinatorics.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ae500ce949afe79089e8146eb1fb5cbb0"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae500ce949afe79089e8146eb1fb5cbb0">◆ </a></span>combinatorics_get_next_without_rep()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t combinatorics_get_next_without_rep </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>comb_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Generate the next combination. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the sub-set. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">comb_arr[]</td><td>pointer to the combination set.</td></tr> + </table> + </dd> +</dl> +<p>return <a class="el" href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7">COMBI_END</a>, if the last combination is generated. return <a class="el" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>, if successful. </p> + +<p class="definition">Definition at line <a class="el" href="combinatorics_8c_source.html#l00048">48</a> of file <a class="el" href="combinatorics_8c_source.html">combinatorics.c</a>.</p> + +<p class="reference">References <a class="el" href="combinatorics_8h_source.html#l00046">COMBI_END</a>, and <a class="el" href="combinatorics_8h_source.html#l00041">COMBI_SUCCESS</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a1bcaeef00a7027e9b9b7694da2efd1b9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1bcaeef00a7027e9b9b7694da2efd1b9">◆ </a></span>combinatorics_init()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t combinatorics_init </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>comb_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize the combinations generator. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the sub-set. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">comb_arr[]</td><td>pointer to the combination set.</td></tr> + </table> + </dd> +</dl> +<p>return <a class="el" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">COMBI_ERROR</a>, if k > n. return <a class="el" href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872">COMBI_EMPTY</a>, if k =0. return <a class="el" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>, if successful. </p> + +<p class="definition">Definition at line <a class="el" href="combinatorics_8c_source.html#l00029">29</a> of file <a class="el" href="combinatorics_8c_source.html">combinatorics.c</a>.</p> + +<p class="reference">References <a class="el" href="combinatorics_8h_source.html#l00036">COMBI_EMPTY</a>, <a class="el" href="combinatorics_8h_source.html#l00031">COMBI_ERROR</a>, and <a class="el" href="combinatorics_8h_source.html#l00041">COMBI_SUCCESS</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="combinatorics_8c.html">combinatorics.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/combinatorics_8c.js b/doc/doxygen/html/combinatorics_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..9fda6aba2504a67e9433f10a346de16f30979dbd --- /dev/null +++ b/doc/doxygen/html/combinatorics_8c.js @@ -0,0 +1,5 @@ +var combinatorics_8c = +[ + [ "combinatorics_get_next_without_rep", "combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0", null ], + [ "combinatorics_init", "combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/combinatorics_8c_source.html b/doc/doxygen/html/combinatorics_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..2f3b89585f5c4cdc4ea521cfa179b9ea7becca24 --- /dev/null +++ b/doc/doxygen/html/combinatorics_8c_source.html @@ -0,0 +1,177 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: combinatorics.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('combinatorics_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">combinatorics.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="combinatorics_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdlib.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="combinatorics_8h.html">combinatorics.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9"> 29</a></span> uint8_t <a class="code" href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a>(uint8_t n, uint8_t k, uint8_t comb_arr[])</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">if</span> (k > n) {</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordflow">return</span> (<a class="code" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">COMBI_ERROR</a>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  }</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">if</span> (k == 0) {</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">return</span> (<a class="code" href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872">COMBI_EMPTY</a>);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  }</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">// Initialization of the combinatoric array with k-values.</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">for</span> (uint32_t i = 0; i < k; i++) {</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  comb_arr[i] = i;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">return</span> (<a class="code" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0"> 48</a></span> uint8_t <a class="code" href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a>(uint8_t n, uint8_t k,</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  uint8_t comb_arr[])</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">if</span> (comb_arr[k - 1] < n - 1) {</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  comb_arr[k - 1] = comb_arr[k - 1] +1;</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> (<a class="code" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  int32_t i;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span> (i = k - 2; i >= 0; i--) {</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">if</span> (comb_arr[i] < n - k + i) {</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">//Break, if comb_arr[0] == n - k</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (i < 0) {</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">return</span> (<a class="code" href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7">COMBI_END</a>);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  comb_arr[i] = comb_arr[i] + 1;</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">while</span> (i < k - 1) {</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  comb_arr[i + 1] = comb_arr[i] + 1;</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  i++;</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">return</span> (<a class="code" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>);</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="acombinatorics_8h_html_a744ae7aa581aa908643d95d470394872"><div class="ttname"><a href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872">COMBI_EMPTY</a></div><div class="ttdeci">#define COMBI_EMPTY</div><div class="ttdoc">Case of an empty combination set.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8h_source.html#l00036">combinatorics.h:36</a></div></div> +<div class="ttc" id="acombinatorics_8h_html_a1249f9e7a382225c0889b8ef630d6509"><div class="ttname"><a href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">COMBI_ERROR</a></div><div class="ttdeci">#define COMBI_ERROR</div><div class="ttdoc">Case of an error.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8h_source.html#l00031">combinatorics.h:31</a></div></div> +<div class="ttc" id="acombinatorics_8h_html"><div class="ttname"><a href="combinatorics_8h.html">combinatorics.h</a></div><div class="ttdoc">Calculate possible without repetition in ascending order.</div></div> +<div class="ttc" id="acombinatorics_8h_html_af92c32bbf9a391a055cb472b6f43c498"><div class="ttname"><a href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a></div><div class="ttdeci">#define COMBI_SUCCESS</div><div class="ttdoc">Case of successfully calculated combination set.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8h_source.html#l00041">combinatorics.h:41</a></div></div> +<div class="ttc" id="acombinatorics_8h_html_a16396d8294127e6ea7dbbdaa3b8132e7"><div class="ttname"><a href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7">COMBI_END</a></div><div class="ttdeci">#define COMBI_END</div><div class="ttdoc">Case of completion of calculating combination sets.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8h_source.html#l00046">combinatorics.h:46</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="acombinatorics_8c_html_a1bcaeef00a7027e9b9b7694da2efd1b9"><div class="ttname"><a href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a></div><div class="ttdeci">uint8_t combinatorics_init(uint8_t n, uint8_t k, uint8_t comb_arr[])</div><div class="ttdoc">Initialize the combinations generator.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8c_source.html#l00029">combinatorics.c:29</a></div></div> +<div class="ttc" id="acombinatorics_8c_html_ae500ce949afe79089e8146eb1fb5cbb0"><div class="ttname"><a href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a></div><div class="ttdeci">uint8_t combinatorics_get_next_without_rep(uint8_t n, uint8_t k, uint8_t comb_arr[])</div><div class="ttdoc">Generate the next combination.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8c_source.html#l00048">combinatorics.c:48</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="combinatorics_8c.html">combinatorics.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/combinatorics_8h.html b/doc/doxygen/html/combinatorics_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..17bb277045a586804bb27094e52202547a094fb9 --- /dev/null +++ b/doc/doxygen/html/combinatorics_8h.html @@ -0,0 +1,251 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: combinatorics.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('combinatorics_8h.html','');}); +/* @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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">combinatorics.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__utilities.html">UTILITIES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdint.h></code><br /> +</div> +<p><a href="combinatorics_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a1249f9e7a382225c0889b8ef630d6509"><td class="memItemLeft" align="right" valign="top"><a id="a1249f9e7a382225c0889b8ef630d6509"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">COMBI_ERROR</a>   -1</td></tr> +<tr class="memdesc:a1249f9e7a382225c0889b8ef630d6509"><td class="mdescLeft"> </td><td class="mdescRight">Case of an error. <br /></td></tr> +<tr class="separator:a1249f9e7a382225c0889b8ef630d6509"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a744ae7aa581aa908643d95d470394872"><td class="memItemLeft" align="right" valign="top"><a id="a744ae7aa581aa908643d95d470394872"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872">COMBI_EMPTY</a>   0</td></tr> +<tr class="memdesc:a744ae7aa581aa908643d95d470394872"><td class="mdescLeft"> </td><td class="mdescRight">Case of an empty combination set. <br /></td></tr> +<tr class="separator:a744ae7aa581aa908643d95d470394872"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af92c32bbf9a391a055cb472b6f43c498"><td class="memItemLeft" align="right" valign="top"><a id="af92c32bbf9a391a055cb472b6f43c498"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>   1</td></tr> +<tr class="memdesc:af92c32bbf9a391a055cb472b6f43c498"><td class="mdescLeft"> </td><td class="mdescRight">Case of successfully calculated combination set. <br /></td></tr> +<tr class="separator:af92c32bbf9a391a055cb472b6f43c498"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a16396d8294127e6ea7dbbdaa3b8132e7"><td class="memItemLeft" align="right" valign="top"><a id="a16396d8294127e6ea7dbbdaa3b8132e7"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7">COMBI_END</a>   2</td></tr> +<tr class="memdesc:a16396d8294127e6ea7dbbdaa3b8132e7"><td class="mdescLeft"> </td><td class="mdescRight">Case of completion of calculating combination sets. <br /></td></tr> +<tr class="separator:a16396d8294127e6ea7dbbdaa3b8132e7"><td class="memSeparator" colspan="2"> </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:a1bcaeef00a7027e9b9b7694da2efd1b9"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a> (uint8_t n, uint8_t k, uint8_t comb_arr[])</td></tr> +<tr class="memdesc:a1bcaeef00a7027e9b9b7694da2efd1b9"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the combinations generator. <a href="combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9">More...</a><br /></td></tr> +<tr class="separator:a1bcaeef00a7027e9b9b7694da2efd1b9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae500ce949afe79089e8146eb1fb5cbb0"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a> (uint8_t n, uint8_t k, uint8_t comb_arr[])</td></tr> +<tr class="memdesc:ae500ce949afe79089e8146eb1fb5cbb0"><td class="mdescLeft"> </td><td class="mdescRight">Generate the next combination. <a href="combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0">More...</a><br /></td></tr> +<tr class="separator:ae500ce949afe79089e8146eb1fb5cbb0"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="combinatorics_8h_source.html">combinatorics.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ae500ce949afe79089e8146eb1fb5cbb0"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae500ce949afe79089e8146eb1fb5cbb0">◆ </a></span>combinatorics_get_next_without_rep()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t combinatorics_get_next_without_rep </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>comb_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Generate the next combination. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the sub-set. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">comb_arr[]</td><td>pointer to the combination set.</td></tr> + </table> + </dd> +</dl> +<p>return <a class="el" href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7">COMBI_END</a>, if the last combination is generated. return <a class="el" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>, if successful. </p> + +<p class="definition">Definition at line <a class="el" href="combinatorics_8c_source.html#l00048">48</a> of file <a class="el" href="combinatorics_8c_source.html">combinatorics.c</a>.</p> + +<p class="reference">References <a class="el" href="combinatorics_8h_source.html#l00046">COMBI_END</a>, and <a class="el" href="combinatorics_8h_source.html#l00041">COMBI_SUCCESS</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a1bcaeef00a7027e9b9b7694da2efd1b9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1bcaeef00a7027e9b9b7694da2efd1b9">◆ </a></span>combinatorics_init()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t combinatorics_init </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>comb_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize the combinations generator. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the sub-set. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">comb_arr[]</td><td>pointer to the combination set.</td></tr> + </table> + </dd> +</dl> +<p>return <a class="el" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">COMBI_ERROR</a>, if k > n. return <a class="el" href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872">COMBI_EMPTY</a>, if k =0. return <a class="el" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>, if successful. </p> + +<p class="definition">Definition at line <a class="el" href="combinatorics_8c_source.html#l00029">29</a> of file <a class="el" href="combinatorics_8c_source.html">combinatorics.c</a>.</p> + +<p class="reference">References <a class="el" href="combinatorics_8h_source.html#l00036">COMBI_EMPTY</a>, <a class="el" href="combinatorics_8h_source.html#l00031">COMBI_ERROR</a>, and <a class="el" href="combinatorics_8h_source.html#l00041">COMBI_SUCCESS</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="combinatorics_8h.html">combinatorics.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/combinatorics_8h.js b/doc/doxygen/html/combinatorics_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..ad94bffc173d6d9c250805d3f677b1592953ea81 --- /dev/null +++ b/doc/doxygen/html/combinatorics_8h.js @@ -0,0 +1,9 @@ +var combinatorics_8h = +[ + [ "COMBI_EMPTY", "combinatorics_8h.html#a744ae7aa581aa908643d95d470394872", null ], + [ "COMBI_END", "combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7", null ], + [ "COMBI_ERROR", "combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509", null ], + [ "COMBI_SUCCESS", "combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498", null ], + [ "combinatorics_get_next_without_rep", "combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0", null ], + [ "combinatorics_init", "combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/combinatorics_8h_source.html b/doc/doxygen/html/combinatorics_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..dccf54205c313247a3c527a3a6bde3d5e7f9fc24 --- /dev/null +++ b/doc/doxygen/html/combinatorics_8h_source.html @@ -0,0 +1,136 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: combinatorics.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('combinatorics_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">combinatorics.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="combinatorics_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef COMBINATORICS_H_</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define COMBINATORICS_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include<stdint.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509"> 31</a></span> <span class="preprocessor">#define COMBI_ERROR -1</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872"> 36</a></span> <span class="preprocessor">#define COMBI_EMPTY 0</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498"> 41</a></span> <span class="preprocessor">#define COMBI_SUCCESS 1</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7"> 46</a></span> <span class="preprocessor">#define COMBI_END 2</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> uint8_t <a class="code" href="combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a>(uint8_t n, uint8_t k, uint8_t comb_arr[]);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> uint8_t <a class="code" href="combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a>(uint8_t n, uint8_t k, uint8_t comb_arr[]);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif </span><span class="comment">/*COMBINATORICS_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="acombinatorics_8h_html_ae500ce949afe79089e8146eb1fb5cbb0"><div class="ttname"><a href="combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a></div><div class="ttdeci">uint8_t combinatorics_get_next_without_rep(uint8_t n, uint8_t k, uint8_t comb_arr[])</div><div class="ttdoc">Generate the next combination.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8c_source.html#l00048">combinatorics.c:48</a></div></div> +<div class="ttc" id="acombinatorics_8h_html_a1bcaeef00a7027e9b9b7694da2efd1b9"><div class="ttname"><a href="combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a></div><div class="ttdeci">uint8_t combinatorics_init(uint8_t n, uint8_t k, uint8_t comb_arr[])</div><div class="ttdoc">Initialize the combinations generator.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8c_source.html#l00029">combinatorics.c:29</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="combinatorics_8h.html">combinatorics.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/creating-an-application.html b/doc/doxygen/html/creating-an-application.html new file mode 100644 index 0000000000000000000000000000000000000000..ec5c7a14bdc14241d2a9393df6d75cbd6995295b --- /dev/null +++ b/doc/doxygen/html/creating-an-application.html @@ -0,0 +1,181 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Creating an application</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('creating-an-application.html','');}); +/* @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="PageDoc"><div class="header"> + <div class="headertitle"> +<div class="title">Creating an application </div> </div> +</div><!--header--> +<div class="contents"> +<div class="toc"><h3>Table of Contents</h3> +<ul><li class="level1"><a href="#creating-an-application-full-fledge">Creating an application for full-fledged devices</a></li> +<li class="level1"><a href="#creating-an-application-res-lim">Creating an application for resource-limited devices</a></li> +<li class="level1"><a href="#the-main-function">The main function</a></li> +<li class="level1"><a href="#the-applications-makefile">The application's Makefile</a><ul><li class="level2"><a href="#the-minimal-makefile">The minimal Makefile</a></li> +<li class="level2"><a href="#including-modules">Including modules</a></li> +</ul> +</li> +</ul> +</div> +<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi</dd></dl> +<p>An application can be created for full-fledged or resource-limited devices.</p> +<h1><a class="anchor" id="creating-an-application-full-fledge"></a> +Creating an application for full-fledged devices</h1> +<p>We recommend to use the <a href="https://www.eclipse.org/">Eclipse IDE</a> for C/C++ Developers for creating own application. The simplest way to write your own application, is to put your *.c and *.h files under the <code>src</code> directory. Another way is to create a directory containing the multiple C file(s) with your source code. The header files can be imported in the Eclipse IDE by opening Project->Properties and selecting ''C/C++ General->Paths and Symbols->Languages->GNU C'' from the Selection Wizard. Click the ''Add..'' button to browse to the header-directory and the select the ''Apply'' and ''OK'' buttons. The users can be oriented to the main.c and the examples under the src-directory.</p> +<h1><a class="anchor" id="creating-an-application-res-lim"></a> +Creating an application for resource-limited devices</h1> +<p>To create your own application for a resource limited device you need to create a directory containing one or multiple C file(s) with your source code and a Makefile. An example Makefile is available in the <code>src</code> folder of the <a href="https://git.imp.fu-berlin.de/zkasmi/my_lib_full_fledged_devices/tree/master/RcdMathLib_app">RcdMathLib repository</a>.</p> +<h1><a class="anchor" id="the-main-function"></a> +The main function</h1> +<p>RIOT starts two threads the idle and main threads after the board is initialized. The idle thread has the lowest priority while the main thread has a priority that is in the middle between the lowest and the highest available priorities. The main thread is the first that runs and calls the <code>main()</code> function. This function needs to be defined in the source code of each application (typically located in the <code>main.c</code> file).</p> +<div class="fragment"><div class="line"><span class="preprocessor">#include <stdio.h></span></div> +<div class="line"> </div> +<div class="line"><span class="preprocessor">#include "<a class="code" href="matrix__test_8h.html">matrix_test.h</a>"</span></div> +<div class="line"><span class="preprocessor">#include "<a class="code" href="vector__test_8h.html">vector_test.h</a>"</span></div> +<div class="line"> </div> +<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div> +<div class="line">{</div> +<div class="line"> puts(<span class="stringliteral">"RcdMathLib Application!"</span>);</div> +<div class="line"> <span class="comment">// Test the basic operations module;</span></div> +<div class="line"> <a class="code" href="matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a>();</div> +<div class="line"> <a class="code" href="vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a>();</div> +<div class="line"> </div> +<div class="line"> <span class="keywordflow">return</span> EXIT_SUCCESS;</div> +<div class="line">}</div> +</div><!-- fragment --><p>The above C code shows an application testing the basic operations sub-modules. This application run operations of the vector and matrix sub-modules.</p> +<h1><a class="anchor" id="the-applications-makefile"></a> +The application's Makefile</h1> +<h2><a class="anchor" id="the-minimal-makefile"></a> +The minimal Makefile</h2> +<p>At minimum the Makefile of an application (see <a class="el" href="getting-started.html">Getting started</a>) needs to define the following macros:</p><ul> +<li><code>APPLICATION</code>: contains the name of your application</li> +<li><code>RIOTBASE</code>: specifies the path to your copy of the RIOT repository (note, the <code></code> macro can be used to give a relative path)</li> +<li><code>RCDMATHLIB</code>: specifies the path to the copy of the RcdMathLib repository (note, the <code></code> macro can be used to give a relative path)</li> +<li><code>USEMODULE</code>: specifies the module of the RcdMathLib that you may want to use</li> +</ul> +<p>The <code>BOARD</code> macro is also required and recommended to be set to <code>native</code> by default, but is recommended to be overridable with the <code>?=</code> operator. Additionally, it is required to include the <code>Makefile.include</code> from the RcdMathLib and from the <code>RIOTBASE</code>.</p> +<div class="fragment"><div class="line"># Set the name of your application:</div> +<div class="line">APPLICATION = foobar</div> +<div class="line"> </div> +<div class="line"># If no BOARD is found in the environment, use this default:</div> +<div class="line">BOARD ?= native</div> +<div class="line"> </div> +<div class="line"># This has to be the absolute path to the RcdMathLib base directory:</div> +<div class="line">RCDMATHLIB ?= $(CURDIR)/../RcdMathLib</div> +<div class="line"> </div> +<div class="line"># This has to be the absolute path to the RIOT base directory:</div> +<div class="line">RIOTBASE ?= $(CURDIR)/../../RIOT</div> +<div class="line"> </div> +<div class="line"> </div> +<div class="line">include $(RCDMATHLIB)/Makefile.include</div> +<div class="line">include $(RIOTBASE)/Makefile.include</div> +</div><!-- fragment --><h2><a class="anchor" id="including-modules"></a> +Including modules</h2> +<p>The modules of the RcdMathLib as well as of the RcdMathLib can be included. In order to use additional modules, such as a particular driver or a system library, the modules' names must be appended to the USEMODULE variable. For example, to build an application using the SHT11 temperature sensor and UDP/IPv6 functionalities, the Makefile needs to contain the following lines:</p> +<div class="fragment"><div class="line">USEMODULE += sht11</div> +<div class="line">USEMODULE += gnrc_ipv6_default</div> +<div class="line">USEMODULE += gnrc_udp</div> +</div><!-- fragment --><p>For example, to create an application using the matrix decompositions, the pseudo-inverse, and solving linear equations sub-modules, the Makefile must comprise the following lines:</p> +<div class="fragment"><div class="line">USEMODULE += matrix_decompositions</div> +<div class="line">USEMODULE += pseudo_inverse</div> +<div class="line">USEMODULE += utilities</div> +</div><!-- fragment --> </div></div><!-- contents --> +</div><!-- PageDoc --> +</div><!-- doc-content --> +<div class="ttc" id="avector__test_8h_html_ab0aed13072bc11b97766634c625d6f21"><div class="ttname"><a href="vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a></div><div class="ttdeci">void vector_test(void)</div><div class="ttdoc">Examples of vector operations.</div><div class="ttdef"><b>Definition:</b> <a href="vector__test_8c_source.html#l00030">vector_test.c:30</a></div></div> +<div class="ttc" id="amatrix__test_8h_html"><div class="ttname"><a href="matrix__test_8h.html">matrix_test.h</a></div><div class="ttdoc">Examples of matrix computations.</div></div> +<div class="ttc" id="avector__test_8h_html"><div class="ttname"><a href="vector__test_8h.html">vector_test.h</a></div><div class="ttdoc">Examples of vector computations.</div></div> +<div class="ttc" id="amatrix__test_8h_html_aad3d0f4acb79e8a9b61eda59dc3a12b2"><div class="ttname"><a href="matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a></div><div class="ttdeci">void matrix_test(void)</div><div class="ttdoc">Test some matrix operations.</div><div class="ttdef"><b>Definition:</b> <a href="matrix__test_8c_source.html#l00031">matrix_test.c:31</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/creating-modules.html b/doc/doxygen/html/creating-modules.html new file mode 100644 index 0000000000000000000000000000000000000000..0e6c3c7e226fa9bfaddead70c58b0737a2c1beac --- /dev/null +++ b/doc/doxygen/html/creating-modules.html @@ -0,0 +1,138 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Creating modules</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('creating-modules.html','');}); +/* @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="PageDoc"><div class="header"> + <div class="headertitle"> +<div class="title">Creating modules </div> </div> +</div><!--header--> +<div class="contents"> +<div class="toc"><h3>Table of Contents</h3> +<ul><li class="level1"><a href="#the-general-structure">The general structure</a></li> +<li class="level1"><a href="#autotoc_md0">Module dependencies</a></li> +</ul> +</div> +<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi</dd></dl> +<p>Well-defined units of code in the RcdMathLib that provide a set of features are encapsulated in a module. RcdMathLib is module-based and composed of the following main modules:</p> +<ul> +<li>Linear algebra module</li> +<li>Non-Linear algebra module</li> +<li>Localization module</li> +</ul> +<p>Each main module includes sub-modules, for more details see <a class="el" href="index.html#structure">The structure of the RcdMathLib</a>.</p> +<dl class="section note"><dt>Note</dt><dd>The following chapters concerning only resource-limited devices.</dd></dl> +<h1><a class="anchor" id="the-general-structure"></a> +The general structure</h1> +<p>Modules are directories containing source and header files as well as a Makefile. Furthermore, their API can be defined in one or more header files, residing in the include path of their super-module.</p> +<p>For example, the matrix sub-module is implemented in the <a class="el" href="group__basic__operations.html">BASIC_OPERATIONS</a> sub-module, in the <code>linear_algebra/basic_operations</code> directory. Its API is defined in <code>linear_algebra/basic_operations/matrix.h</code>.</p> +<p>A module's Makefile just needs to include <code>Makefile.base</code> in the RIOT repository as well as <code>Makefile.base</code> and <code>Makefile.include</code> in the RcdMathLib repository:</p> +<div class="fragment"><div class="line">include $(RIOTBASE)/Makefile.base</div> +<div class="line">include $(RCDMATHLIB)/linear_algebra/matrix_decompositions/Makefile.include</div> +<div class="line">include $(RCDMATHLIB)/linear_algebra/matrix_decompositions/Makefile.dep </div> +</div><!-- fragment --><p>The <code>Makefile.base</code> and <code>Makefile.include</code> macros in the example above are includes for the linear algebra module.</p> +<p>If your module's name differs from the name of the directory it resides in you need to set the <code>MODULE</code> macro in addition.</p> +<p>The <code>Makefile.dep</code> serves to define dependencies and the <code>Makefile.include</code> to append target specific information to variables like INCLUDES. Modules can be used by adding their name to the <code>USEMODULE</code> macro of the application's Makefile.</p> +<h1><a class="anchor" id="autotoc_md0"></a> +Module dependencies</h1> +<p>The module may depend on other modules to minimize code duplication. These dependencies are defined in <code>Makefile.dep</code> with the following syntax:</p> +<div class="fragment"><div class="line">ifneq (,$(filter your_module,$(USEMODULE))) # if module in USEMODULE</div> +<div class="line"> USEMODULE += dep1 # add dependencies to USEMODULE</div> +<div class="line"> USEMODULE += dep2</div> +<div class="line">endif</div> +</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd><code>Makefile.dep</code> is processed only once therefore, the dependency block for a module must be added <em>before</em> dependencies pull in their dependencies. </dd></dl> +</div></div><!-- contents --> +</div><!-- PageDoc --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/damped__newton__raphson_8c.html b/doc/doxygen/html/damped__newton__raphson_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..593669f4925d977fe36394a1ff7403272d37553a --- /dev/null +++ b/doc/doxygen/html/damped__newton__raphson_8c.html @@ -0,0 +1,369 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: damped_newton_raphson.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('damped__newton__raphson_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">damped_newton_raphson.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the damped Newton–Raphson algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +<code>#include "<a class="el" href="damped__newton__raphson_8h_source.html">damped_newton_raphson.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="damped__newton__raphson_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a0cf3dc5e334091bc43820fa1d8e86c14"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[], double min_lamda, double eps, uint8_t max_it_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a0cf3dc5e334091bc43820fa1d8e86c14"><td class="mdescLeft"> </td><td class="mdescRight">Implements the damped Newton–Raphson algorithm. <a href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">More...</a><br /></td></tr> +<tr class="separator:a0cf3dc5e334091bc43820fa1d8e86c14"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a46f90a02170f4f35f9b3bdbc5c65271a"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a> (uint8_t m, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a46f90a02170f4f35f9b3bdbc5c65271a"><td class="mdescLeft"> </td><td class="mdescRight">Compute the norm of the damped Newton–Raphson algorithm. <a href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">More...</a><br /></td></tr> +<tr class="separator:a46f90a02170f4f35f9b3bdbc5c65271a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acd5be84f1d01dfb379d85cc8aef8b65e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a> (uint8_t m, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]), <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> delta_x_arr[])</td></tr> +<tr class="memdesc:acd5be84f1d01dfb379d85cc8aef8b65e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the correction vector the damped Newton–Raphson algorithm. <a href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">More...</a><br /></td></tr> +<tr class="separator:acd5be84f1d01dfb379d85cc8aef8b65e"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the damped Newton–Raphson algorithm. </p> +<p>The damped Newton–Raphson algorithm enables to solve multi-variant nonlinear equation systems.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="damped__newton__raphson_8c_source.html">damped_newton_raphson.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a0cf3dc5e334091bc43820fa1d8e86c14"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0cf3dc5e334091bc43820fa1d8e86c14">◆ </a></span>damped_newton_raphson()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t damped_newton_raphson </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>min_lamda</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_it_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the damped Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_arr[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">min_lamda</td><td>minimal damping factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_it_num</td><td>maximal iteration number of the damped Newton–Raphson algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_arr[]</td><td>estimated (solution) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="damped__newton__raphson_8c_source.html#l00032">32</a> of file <a class="el" href="damped__newton__raphson_8c_source.html">damped_newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="damped__newton__raphson_8c_source.html#l00104">get_damped_norm()</a>, <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00141">vector_scalar_mul()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve_8c_source.html#l00029">fsolve()</a>.</p> + +</div> +</div> +<a id="a46f90a02170f4f35f9b3bdbc5c65271a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a46f90a02170f4f35f9b3bdbc5c65271a">◆ </a></span>get_damped_norm()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double get_damped_norm </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the norm of the damped Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the non-linear equations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>norm of the damped Newton–Raphson algorithm. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="damped__newton__raphson_8c_source.html#l00104">104</a> of file <a class="el" href="damped__newton__raphson_8c_source.html">damped_newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>.</p> + +</div> +</div> +<a id="acd5be84f1d01dfb379d85cc8aef8b65e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acd5be84f1d01dfb379d85cc8aef8b65e">◆ </a></span>get_delta_x()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_delta_x </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>delta_x_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the correction vector the damped Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the non-linear equations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">delta_x_arr[]</td><td>the correction vector (term). </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="damped__newton__raphson_8c_source.html#l00120">120</a> of file <a class="el" href="damped__newton__raphson_8c_source.html">damped_newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="vector_8c_source.html#l00131">vector_in_place_scalar_mul()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, and <a class="el" href="damped__newton__raphson_8c_source.html#l00104">get_damped_norm()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="damped__newton__raphson_8c.html">damped_newton_raphson.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/damped__newton__raphson_8c.js b/doc/doxygen/html/damped__newton__raphson_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..4cc8c1c9bded32a53d9ecee0ace461dcec2b3a23 --- /dev/null +++ b/doc/doxygen/html/damped__newton__raphson_8c.js @@ -0,0 +1,6 @@ +var damped__newton__raphson_8c = +[ + [ "damped_newton_raphson", "damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14", null ], + [ "get_damped_norm", "damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a", null ], + [ "get_delta_x", "damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/damped__newton__raphson_8c_source.html b/doc/doxygen/html/damped__newton__raphson_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..d9fc3c04be3aa268f2ca0e21537f89089a2bafd6 --- /dev/null +++ b/doc/doxygen/html/damped__newton__raphson_8c_source.html @@ -0,0 +1,246 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: damped_newton_raphson.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('damped__newton__raphson_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">damped_newton_raphson.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="damped__newton__raphson_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">//Multivariate Newton�s Method</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">//n is the size of x0 that is equal to the column number of J</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14"> 32</a></span> uint8_t <a class="code" href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a>(uint8_t f_length, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[],</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordtype">double</span> min_lamda, <span class="keywordtype">double</span> eps, uint8_t max_it_num,</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[],</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  uint8_t iter_num;</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">double</span> lamda;</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordtype">double</span> lamda_c;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordtype">double</span> damped_norm_x;</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">double</span> damped_norm_prev_x;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> prev_x_arr[n];</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> delta_x[n];</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> lamda_mul_delta_x[n];</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  damped_norm_x = <a class="code" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a>(f_length, n, x0_arr, get_non_lin_sys,</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  get_jacobian);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  iter_num = 0;</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, x0_arr, prev_x_arr);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">while</span> ((damped_norm_x >= eps) && (iter_num < max_it_num)) {</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a>(f_length, n, prev_x_arr, get_non_lin_sys,</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  get_jacobian, delta_x);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  lamda = 1.0;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// x = x_k +lamda*s_k (lamda=1)</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(n, prev_x_arr, delta_x, est_x_arr);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  lamda_c = 1 - lamda / 4;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">//|||f(x)|||_k</span></div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  damped_norm_x = <a class="code" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a>(f_length, n, est_x_arr,</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  get_non_lin_sys, get_jacobian);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">//|||f(prev_x)|||_k</span></div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  damped_norm_prev_x = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(n, delta_x);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">while</span> (damped_norm_x > (lamda_c * damped_norm_prev_x)) {</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  lamda = lamda / 2;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (lamda >= min_lamda) {</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">//x = x_k +lamda*s_k</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a>(n, delta_x, lamda,</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  lamda_mul_delta_x);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(n, prev_x_arr, lamda_mul_delta_x,</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  est_x_arr);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// |||f(x)|||_k</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  damped_norm_x = <a class="code" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a>(f_length, n, est_x_arr,</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  get_non_lin_sys, get_jacobian);</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  } <span class="comment">//while</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (lamda <= min_lamda) {</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">//update prev_x</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, est_x_arr, prev_x_arr);</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// |||f(x)|||_k</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  damped_norm_x = <a class="code" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a>(f_length, n, est_x_arr,</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  get_non_lin_sys, get_jacobian);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  iter_num++;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> iter_num;</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div> +<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a"> 104</a></span> <span class="keywordtype">double</span> <a class="code" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a>(uint8_t m, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n])</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  )</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">double</span> damp_norm = 0.0;</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> delta_x_arr[n];</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a>(m, n, x_arr, get_non_lin_sys, get_jacobian, delta_x_arr);</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  damp_norm = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(n, delta_x_arr);</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">return</span> damp_norm;</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> }</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">//Computes the correction vector.</span></div> +<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e"> 120</a></span> <span class="keywordtype">void</span> <a class="code" href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a>(uint8_t m, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]),</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> delta_x_arr[])</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[m][n];</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_J[n][m];</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[m];</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// compute the Jacobian matrix for the vector x_arr.</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  get_jacobian(x_arr, J);</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">// compute the inverse of J (J^-1)</span></div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(m, n, J, pinv_J);</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// compute the value of f(x)</span></div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  get_non_lin_sys(x_arr, f_vec);</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">//delta_x = J1^-1*f(x)</span></div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(n, m, pinv_J, f_vec, delta_x_arr);</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a>(n, delta_x_arr, -1);</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="adamped__newton__raphson_8c_html_acd5be84f1d01dfb379d85cc8aef8b65e"><div class="ttname"><a href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a></div><div class="ttdeci">void get_delta_x(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]), vector_t delta_x_arr[])</div><div class="ttdoc">Compute the correction vector the damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="damped__newton__raphson_8c_source.html#l00120">damped_newton_raphson.c:120</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="adamped__newton__raphson_8c_html_a0cf3dc5e334091bc43820fa1d8e86c14"><div class="ttname"><a href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a></div><div class="ttdeci">uint8_t damped_newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double min_lamda, double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Implements the damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson.c:32</a></div></div> +<div class="ttc" id="avector_8h_html_a90a92f618957807f90ab1d8a8d9150d4"><div class="ttname"><a href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a></div><div class="ttdeci">void vector_in_place_scalar_mul(uint8_t size, vector_t a_vec[size], vector_t scl)</div><div class="ttdoc">Compute the product of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00131">vector.c:131</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adamped__newton__raphson_8h_html"><div class="ttname"><a href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a></div><div class="ttdoc">Implement the damped Newton–Raphson algorithm.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="adamped__newton__raphson_8c_html_a46f90a02170f4f35f9b3bdbc5c65271a"><div class="ttname"><a href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a></div><div class="ttdeci">double get_damped_norm(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Compute the norm of the damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="damped__newton__raphson_8c_source.html#l00104">damped_newton_raphson.c:104</a></div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html_a92917951880002814392c2367896d7a0"><div class="ttname"><a href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a></div><div class="ttdeci">void vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size])</div><div class="ttdoc">Compute the addition of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00104">vector.c:104</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="avector_8h_html_a3c0bdd0e463fb34757a71470c55af845"><div class="ttname"><a href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a></div><div class="ttdeci">void vector_scalar_mul(uint8_t size, vector_t src_vec[size], vector_t scl, vector_t dest_vec[])</div><div class="ttdoc">Compute the product of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00141">vector.c:141</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="damped__newton__raphson_8c.html">damped_newton_raphson.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/damped__newton__raphson_8h.html b/doc/doxygen/html/damped__newton__raphson_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..c6c0924d66cb181f7cd5cea2ad7b91bbadab1f9d --- /dev/null +++ b/doc/doxygen/html/damped__newton__raphson_8h.html @@ -0,0 +1,366 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: damped_newton_raphson.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('damped__newton__raphson_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">damped_newton_raphson.h File Reference<div class="ingroups"><a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a> » <a class="el" href="group__solve__non__linear__equations.html">SOLVE_NON_LINEAR_EQUATIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the damped Newton–Raphson algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="damped__newton__raphson_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a0cf3dc5e334091bc43820fa1d8e86c14"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[], double min_lamda, double eps, uint8_t max_it_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a0cf3dc5e334091bc43820fa1d8e86c14"><td class="mdescLeft"> </td><td class="mdescRight">Implements the damped Newton–Raphson algorithm. <a href="damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14">More...</a><br /></td></tr> +<tr class="separator:a0cf3dc5e334091bc43820fa1d8e86c14"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a46f90a02170f4f35f9b3bdbc5c65271a"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a> (uint8_t m, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a46f90a02170f4f35f9b3bdbc5c65271a"><td class="mdescLeft"> </td><td class="mdescRight">Compute the norm of the damped Newton–Raphson algorithm. <a href="damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a">More...</a><br /></td></tr> +<tr class="separator:a46f90a02170f4f35f9b3bdbc5c65271a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acd5be84f1d01dfb379d85cc8aef8b65e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a> (uint8_t m, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]), <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> delta_x_arr[])</td></tr> +<tr class="memdesc:acd5be84f1d01dfb379d85cc8aef8b65e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the correction vector the damped Newton–Raphson algorithm. <a href="damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e">More...</a><br /></td></tr> +<tr class="separator:acd5be84f1d01dfb379d85cc8aef8b65e"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the damped Newton–Raphson algorithm. </p> +<p>The damped Newton–Raphson algorithm enables to solve multi-variant nonlinear equation systems.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="damped__newton__raphson_8h_source.html">damped_newton_raphson.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a0cf3dc5e334091bc43820fa1d8e86c14"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0cf3dc5e334091bc43820fa1d8e86c14">◆ </a></span>damped_newton_raphson()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t damped_newton_raphson </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>min_lamda</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_it_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the damped Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_arr[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">min_lamda</td><td>minimal damping factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_it_num</td><td>maximal iteration number of the damped Newton–Raphson algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_arr[]</td><td>estimated (solution) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="damped__newton__raphson_8c_source.html#l00032">32</a> of file <a class="el" href="damped__newton__raphson_8c_source.html">damped_newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="damped__newton__raphson_8c_source.html#l00104">get_damped_norm()</a>, <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00141">vector_scalar_mul()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve_8c_source.html#l00029">fsolve()</a>.</p> + +</div> +</div> +<a id="a46f90a02170f4f35f9b3bdbc5c65271a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a46f90a02170f4f35f9b3bdbc5c65271a">◆ </a></span>get_damped_norm()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double get_damped_norm </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the norm of the damped Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the non-linear equations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>norm of the damped Newton–Raphson algorithm. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="damped__newton__raphson_8c_source.html#l00104">104</a> of file <a class="el" href="damped__newton__raphson_8c_source.html">damped_newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>.</p> + +</div> +</div> +<a id="acd5be84f1d01dfb379d85cc8aef8b65e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acd5be84f1d01dfb379d85cc8aef8b65e">◆ </a></span>get_delta_x()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_delta_x </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>delta_x_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the correction vector the damped Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the non-linear equations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>guess vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">delta_x_arr[]</td><td>the correction vector (term). </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="damped__newton__raphson_8c_source.html#l00120">120</a> of file <a class="el" href="damped__newton__raphson_8c_source.html">damped_newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="vector_8c_source.html#l00131">vector_in_place_scalar_mul()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, and <a class="el" href="damped__newton__raphson_8c_source.html#l00104">get_damped_norm()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li><li class="navelem"><a class="el" href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/damped__newton__raphson_8h.js b/doc/doxygen/html/damped__newton__raphson_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..c23a5cb7a7ec9f56ee064e6e29ef8b258a749226 --- /dev/null +++ b/doc/doxygen/html/damped__newton__raphson_8h.js @@ -0,0 +1,6 @@ +var damped__newton__raphson_8h = +[ + [ "damped_newton_raphson", "damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14", null ], + [ "get_damped_norm", "damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a", null ], + [ "get_delta_x", "damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/damped__newton__raphson_8h_source.html b/doc/doxygen/html/damped__newton__raphson_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..20d39ff1c90f23f769638a0dcea58e5f707e356b --- /dev/null +++ b/doc/doxygen/html/damped__newton__raphson_8h_source.html @@ -0,0 +1,146 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: damped_newton_raphson.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('damped__newton__raphson_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">damped_newton_raphson.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="damped__newton__raphson_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef DAMPED_NEWTON_RAPHSON_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define DAMPED_NEWTON_RAPHSON_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> uint8_t <a class="code" href="damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a>(uint8_t f_length, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[],</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">double</span> min_lamda, <span class="keywordtype">double</span> eps, uint8_t max_it_num,</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[],</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]));</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordtype">double</span> <a class="code" href="damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a>(uint8_t m, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n])</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  );</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">void</span> <a class="code" href="damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a>(uint8_t m, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]),</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> delta_x_arr[]);</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#endif </span><span class="comment">/* DAMPED_NEWTON_RAPHSON_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="adamped__newton__raphson_8h_html_a0cf3dc5e334091bc43820fa1d8e86c14"><div class="ttname"><a href="damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a></div><div class="ttdeci">uint8_t damped_newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double min_lamda, double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Implements the damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson.c:32</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="adamped__newton__raphson_8h_html_a46f90a02170f4f35f9b3bdbc5c65271a"><div class="ttname"><a href="damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a">get_damped_norm</a></div><div class="ttdeci">double get_damped_norm(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Compute the norm of the damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="damped__newton__raphson_8c_source.html#l00104">damped_newton_raphson.c:104</a></div></div> +<div class="ttc" id="adamped__newton__raphson_8h_html_acd5be84f1d01dfb379d85cc8aef8b65e"><div class="ttname"><a href="damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e">get_delta_x</a></div><div class="ttdeci">void get_delta_x(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]), vector_t delta_x_arr[])</div><div class="ttdoc">Compute the correction vector the damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="damped__newton__raphson_8c_source.html#l00120">damped_newton_raphson.c:120</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li><li class="navelem"><a class="el" href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_03da925459af38da0de945660244ea8b.html b/doc/doxygen/html/dir_03da925459af38da0de945660244ea8b.html new file mode 100644 index 0000000000000000000000000000000000000000..a74aebef5cceb1fda6b8832025a8860a020d1122 --- /dev/null +++ b/doc/doxygen/html/dir_03da925459af38da0de945660244ea8b.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_03da925459af38da0de945660244ea8b.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:magnetic__based__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__test_8h.html">magnetic_based_test.h</a> <a href="magnetic__based__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of localization algorithms of magnetic-based positioning systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_20def5fb23a030baaea06d7c00c73368.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_03da925459af38da0de945660244ea8b.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_03da925459af38da0de945660244ea8b.js b/doc/doxygen/html/dir_03da925459af38da0de945660244ea8b.js new file mode 100644 index 0000000000000000000000000000000000000000..fc11ff5fc121b854afccc6608533c5e80d84c64a --- /dev/null +++ b/doc/doxygen/html/dir_03da925459af38da0de945660244ea8b.js @@ -0,0 +1,4 @@ +var dir_03da925459af38da0de945660244ea8b = +[ + [ "magnetic_based_test.h", "magnetic__based__test_8h.html", "magnetic__based__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_05fcd006305b35cd419f9fa0533f5c7b.html b/doc/doxygen/html/dir_05fcd006305b35cd419f9fa0533f5c7b.html new file mode 100644 index 0000000000000000000000000000000000000000..9b661c0a23d4e3088c76ae9e60ef9592ef73deff --- /dev/null +++ b/doc/doxygen/html/dir_05fcd006305b35cd419f9fa0533f5c7b.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_05fcd006305b35cd419f9fa0533f5c7b.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:loc__gauss__newton_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__gauss__newton_8h.html">loc_gauss_newton.h</a> <a href="loc__gauss__newton_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:loc__gauss__newton_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Gauss–Newton algorithm for position optimization. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:loc__levenberg__marquardt_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a> <a href="loc__levenberg__marquardt_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:loc__levenberg__marquardt_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Levenberg–Marquardt (LVM) algorithm for position optimization. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:multipath__dist__detection__mitigation_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a> <a href="multipath__dist__detection__mitigation_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:multipath__dist__detection__mitigation_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_05fcd006305b35cd419f9fa0533f5c7b.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_05fcd006305b35cd419f9fa0533f5c7b.js b/doc/doxygen/html/dir_05fcd006305b35cd419f9fa0533f5c7b.js new file mode 100644 index 0000000000000000000000000000000000000000..734d7722038143b2882cbac2ada0faebcca22bad --- /dev/null +++ b/doc/doxygen/html/dir_05fcd006305b35cd419f9fa0533f5c7b.js @@ -0,0 +1,6 @@ +var dir_05fcd006305b35cd419f9fa0533f5c7b = +[ + [ "loc_gauss_newton.h", "loc__gauss__newton_8h.html", "loc__gauss__newton_8h" ], + [ "loc_levenberg_marquardt.h", "loc__levenberg__marquardt_8h.html", "loc__levenberg__marquardt_8h" ], + [ "multipath_dist_detection_mitigation.h", "multipath__dist__detection__mitigation_8h.html", "multipath__dist__detection__mitigation_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_08749d3fb0d5743bfaf3c7bce248dc40.html b/doc/doxygen/html/dir_08749d3fb0d5743bfaf3c7bce248dc40.html new file mode 100644 index 0000000000000000000000000000000000000000..8233a8f02f084d2d4ac189476c24f3782d62bf77 --- /dev/null +++ b/doc/doxygen/html/dir_08749d3fb0d5743bfaf3c7bce248dc40.html @@ -0,0 +1,124 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utilities Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_08749d3fb0d5743bfaf3c7bce248dc40.html','');}); +/* @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="headertitle"> +<div class="title">utilities Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:combinatorics_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8c.html">combinatorics.c</a> <a href="combinatorics_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:combinatorics_8c"><td class="mdescLeft"> </td><td class="mdescRight">Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:norm__dist__rnd__generator_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8c.html">norm_dist_rnd_generator.c</a> <a href="norm__dist__rnd__generator_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:norm__dist__rnd__generator_8c"><td class="mdescLeft"> </td><td class="mdescRight">Generating normally distributed random numbers. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:shell__sort_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8c.html">shell_sort.c</a> <a href="shell__sort_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:shell__sort_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Shell sort algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:utils_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html">utils.c</a> <a href="utils_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:utils_8c"><td class="mdescLeft"> </td><td class="mdescRight">Utilities for linear algebra. Utility-functions are needed by the linear algebra-module as well as other modules such as the position algorithm-module. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_08749d3fb0d5743bfaf3c7bce248dc40.js b/doc/doxygen/html/dir_08749d3fb0d5743bfaf3c7bce248dc40.js new file mode 100644 index 0000000000000000000000000000000000000000..5aa32b7dc1bed45102479e51e3ef23009ab5d044 --- /dev/null +++ b/doc/doxygen/html/dir_08749d3fb0d5743bfaf3c7bce248dc40.js @@ -0,0 +1,8 @@ +var dir_08749d3fb0d5743bfaf3c7bce248dc40 = +[ + [ "include", "dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html", "dir_d5f52845b1ed776b4ff9f3c6f4225d4b" ], + [ "combinatorics.c", "combinatorics_8c.html", "combinatorics_8c" ], + [ "norm_dist_rnd_generator.c", "norm__dist__rnd__generator_8c.html", "norm__dist__rnd__generator_8c" ], + [ "shell_sort.c", "shell__sort_8c.html", "shell__sort_8c" ], + [ "utils.c", "utils_8c.html", "utils_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_11810571c148016bdf8359f21ff128b1.html b/doc/doxygen/html/dir_11810571c148016bdf8359f21ff128b1.html new file mode 100644 index 0000000000000000000000000000000000000000..a6923373a931a3cec0fe787e5927dd993054ea2a --- /dev/null +++ b/doc/doxygen/html/dir_11810571c148016bdf8359f21ff128b1.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_11810571c148016bdf8359f21ff128b1.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:damped__newton__raphson_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a> <a href="damped__newton__raphson_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:damped__newton__raphson_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the damped Newton–Raphson algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:fsolve_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve_8h.html">fsolve.h</a> <a href="fsolve_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:fsolve_8h"><td class="mdescLeft"> </td><td class="mdescRight">Solve multi-variant nonlinear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:newton__raphson_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="newton__raphson_8h.html">newton_raphson.h</a> <a href="newton__raphson_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:newton__raphson_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Newton–Raphson algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_11810571c148016bdf8359f21ff128b1.js b/doc/doxygen/html/dir_11810571c148016bdf8359f21ff128b1.js new file mode 100644 index 0000000000000000000000000000000000000000..5d56fd826452831b82edbb77f316c67b510640e9 --- /dev/null +++ b/doc/doxygen/html/dir_11810571c148016bdf8359f21ff128b1.js @@ -0,0 +1,6 @@ +var dir_11810571c148016bdf8359f21ff128b1 = +[ + [ "damped_newton_raphson.h", "damped__newton__raphson_8h.html", "damped__newton__raphson_8h" ], + [ "fsolve.h", "fsolve_8h.html", "fsolve_8h" ], + [ "newton_raphson.h", "newton__raphson_8h.html", "newton__raphson_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_143dcbc7e3ad8f423ba36defd23abfa7.html b/doc/doxygen/html/dir_143dcbc7e3ad8f423ba36defd23abfa7.html new file mode 100644 index 0000000000000000000000000000000000000000..60c578b7928f1e570d2dc526b378a9a796534785 --- /dev/null +++ b/doc/doxygen/html/dir_143dcbc7e3ad8f423ba36defd23abfa7.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: distance_based Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_143dcbc7e3ad8f423ba36defd23abfa7.html','');}); +/* @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="headertitle"> +<div class="title">distance_based Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:dist__based__fi_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__fi_8c.html">dist_based_fi.c</a> <a href="dist__based__fi_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:dist__based__fi_8c"><td class="mdescLeft"> </td><td class="mdescRight">Error function of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:dist__based__jacobian_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8c.html">dist_based_jacobian.c</a> <a href="dist__based__jacobian_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:dist__based__jacobian_8c"><td class="mdescLeft"> </td><td class="mdescRight">Jacobian function of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:dist__based__position_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__position_8c.html">dist_based_position.c</a> <a href="dist__based__position_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:dist__based__position_8c"><td class="mdescLeft"> </td><td class="mdescRight">Functions of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_143dcbc7e3ad8f423ba36defd23abfa7.js b/doc/doxygen/html/dir_143dcbc7e3ad8f423ba36defd23abfa7.js new file mode 100644 index 0000000000000000000000000000000000000000..86cf48f60c70770a6335936e3e4d71b62f0eeac8 --- /dev/null +++ b/doc/doxygen/html/dir_143dcbc7e3ad8f423ba36defd23abfa7.js @@ -0,0 +1,7 @@ +var dir_143dcbc7e3ad8f423ba36defd23abfa7 = +[ + [ "include", "dir_6ba7a16e4c50d34812a44006ed482e9d.html", "dir_6ba7a16e4c50d34812a44006ed482e9d" ], + [ "dist_based_fi.c", "dist__based__fi_8c.html", "dist__based__fi_8c" ], + [ "dist_based_jacobian.c", "dist__based__jacobian_8c.html", "dist__based__jacobian_8c" ], + [ "dist_based_position.c", "dist__based__position_8c.html", "dist__based__position_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_1513adee4b8f281871e1ff2ded4af7fe.html b/doc/doxygen/html/dir_1513adee4b8f281871e1ff2ded4af7fe.html new file mode 100644 index 0000000000000000000000000000000000000000..f3c78d3aef180e83a2d7aa7ca7bbadff39ddc2cd --- /dev/null +++ b/doc/doxygen/html/dir_1513adee4b8f281871e1ff2ded4af7fe.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pseudo_inverse Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_1513adee4b8f281871e1ff2ded4af7fe.html','');}); +/* @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="headertitle"> +<div class="title">pseudo_inverse Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:moore__penrose__pinv__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pinv__test_8c.html">moore_penrose_pinv_test.c</a> <a href="moore__penrose__pinv__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:moore__penrose__pinv__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Moore–Penrose algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__pinv__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pinv__test_8c.html">qr_pinv_test.c</a> <a href="qr__pinv__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__pinv__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the QR-based pseudo-inverse algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_1513adee4b8f281871e1ff2ded4af7fe.js b/doc/doxygen/html/dir_1513adee4b8f281871e1ff2ded4af7fe.js new file mode 100644 index 0000000000000000000000000000000000000000..945b537d980f210f4a500e1880de959aeb3cf3e6 --- /dev/null +++ b/doc/doxygen/html/dir_1513adee4b8f281871e1ff2ded4af7fe.js @@ -0,0 +1,6 @@ +var dir_1513adee4b8f281871e1ff2ded4af7fe = +[ + [ "include", "dir_d1e348b883576f9e259f3b5246ea82c0.html", "dir_d1e348b883576f9e259f3b5246ea82c0" ], + [ "moore_penrose_pinv_test.c", "moore__penrose__pinv__test_8c.html", "moore__penrose__pinv__test_8c" ], + [ "qr_pinv_test.c", "qr__pinv__test_8c.html", "qr__pinv__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_1914560df4fa89960017a8bfd33591bb.html b/doc/doxygen/html/dir_1914560df4fa89960017a8bfd33591bb.html new file mode 100644 index 0000000000000000000000000000000000000000..2b546d765df932e165831602452e2fcb575cb91c --- /dev/null +++ b/doc/doxygen/html/dir_1914560df4fa89960017a8bfd33591bb.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_1914560df4fa89960017a8bfd33591bb.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:distance__based__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="distance__based__test_8h.html">distance_based_test.h</a> <a href="distance__based__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:distance__based__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of localization algorithms of distance-based positioning systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9a0e52744106406adeca8f277e27cc62.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_1914560df4fa89960017a8bfd33591bb.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_1914560df4fa89960017a8bfd33591bb.js b/doc/doxygen/html/dir_1914560df4fa89960017a8bfd33591bb.js new file mode 100644 index 0000000000000000000000000000000000000000..a71095aafb23bde2edec3a2799a0ed93368fa502 --- /dev/null +++ b/doc/doxygen/html/dir_1914560df4fa89960017a8bfd33591bb.js @@ -0,0 +1,4 @@ +var dir_1914560df4fa89960017a8bfd33591bb = +[ + [ "distance_based_test.h", "distance__based__test_8h.html", "distance__based__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_20def5fb23a030baaea06d7c00c73368.html b/doc/doxygen/html/dir_20def5fb23a030baaea06d7c00c73368.html new file mode 100644 index 0000000000000000000000000000000000000000..f32457b775cfb81ebf08f84f8cb928ff99f3153f --- /dev/null +++ b/doc/doxygen/html/dir_20def5fb23a030baaea06d7c00c73368.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_20def5fb23a030baaea06d7c00c73368.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:magnetic__based__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__test_8c.html">magnetic_based_test.c</a> <a href="magnetic__based__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of localization algorithms of magnetic-based positioning systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_20def5fb23a030baaea06d7c00c73368.html">magnetic_based</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_20def5fb23a030baaea06d7c00c73368.js b/doc/doxygen/html/dir_20def5fb23a030baaea06d7c00c73368.js new file mode 100644 index 0000000000000000000000000000000000000000..785d83f9dde876f6fc97296318533dd4b8dda572 --- /dev/null +++ b/doc/doxygen/html/dir_20def5fb23a030baaea06d7c00c73368.js @@ -0,0 +1,5 @@ +var dir_20def5fb23a030baaea06d7c00c73368 = +[ + [ "include", "dir_03da925459af38da0de945660244ea8b.html", "dir_03da925459af38da0de945660244ea8b" ], + [ "magnetic_based_test.c", "magnetic__based__test_8c.html", "magnetic__based__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_26c6b27917397f8a74a0fdde30fa8c1c.html b/doc/doxygen/html/dir_26c6b27917397f8a74a0fdde30fa8c1c.html new file mode 100644 index 0000000000000000000000000000000000000000..c7888d1306ec3609ae46745b1e53f7b5cfd491b5 --- /dev/null +++ b/doc/doxygen/html/dir_26c6b27917397f8a74a0fdde30fa8c1c.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pseudo_inverse Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_26c6b27917397f8a74a0fdde30fa8c1c.html','');}); +/* @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="headertitle"> +<div class="title">pseudo_inverse Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:moore__penrose__pseudo__inverse_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8c.html">moore_penrose_pseudo_inverse.c</a> <a href="moore__penrose__pseudo__inverse_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:moore__penrose__pseudo__inverse_8c"><td class="mdescLeft"> </td><td class="mdescRight">Moore–Penrose algorithm to compute the pseudo-inverse of a rectangular matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__pseudo__inverse_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pseudo__inverse_8c.html">qr_pseudo_inverse.c</a> <a href="qr__pseudo__inverse_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__pseudo__inverse_8c"><td class="mdescLeft"> </td><td class="mdescRight">QR decomposition algorithms to compute the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_26c6b27917397f8a74a0fdde30fa8c1c.js b/doc/doxygen/html/dir_26c6b27917397f8a74a0fdde30fa8c1c.js new file mode 100644 index 0000000000000000000000000000000000000000..93b8a5d492abeec147230f21d96d16c27b3811d4 --- /dev/null +++ b/doc/doxygen/html/dir_26c6b27917397f8a74a0fdde30fa8c1c.js @@ -0,0 +1,6 @@ +var dir_26c6b27917397f8a74a0fdde30fa8c1c = +[ + [ "include", "dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html", "dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd" ], + [ "moore_penrose_pseudo_inverse.c", "moore__penrose__pseudo__inverse_8c.html", "moore__penrose__pseudo__inverse_8c" ], + [ "qr_pseudo_inverse.c", "qr__pseudo__inverse_8c.html", "qr__pseudo__inverse_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_29979c7df1e854056800300ae76a816f.html b/doc/doxygen/html/dir_29979c7df1e854056800300ae76a816f.html new file mode 100644 index 0000000000000000000000000000000000000000..cda2e027b2f1bb84bd994f97f240800a77e10ba4 --- /dev/null +++ b/doc/doxygen/html/dir_29979c7df1e854056800300ae76a816f.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_29979c7df1e854056800300ae76a816f.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:matrix__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8h.html">matrix_test.h</a> <a href="matrix__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:matrix__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of matrix computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:vector__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="vector__test_8h.html">vector_test.h</a> <a href="vector__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:vector__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of vector computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_29979c7df1e854056800300ae76a816f.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_29979c7df1e854056800300ae76a816f.js b/doc/doxygen/html/dir_29979c7df1e854056800300ae76a816f.js new file mode 100644 index 0000000000000000000000000000000000000000..8c7b70932cb4d4376406116f0af5541e7cdad838 --- /dev/null +++ b/doc/doxygen/html/dir_29979c7df1e854056800300ae76a816f.js @@ -0,0 +1,5 @@ +var dir_29979c7df1e854056800300ae76a816f = +[ + [ "matrix_test.h", "matrix__test_8h.html", "matrix__test_8h" ], + [ "vector_test.h", "vector__test_8h.html", "vector__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_321173b8d48684d54b5d9118730b6e4e.html b/doc/doxygen/html/dir_321173b8d48684d54b5d9118730b6e4e.html new file mode 100644 index 0000000000000000000000000000000000000000..ddb0d4d4da67c609d770ea4de156a5d18996681b --- /dev/null +++ b/doc/doxygen/html/dir_321173b8d48684d54b5d9118730b6e4e.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_321173b8d48684d54b5d9118730b6e4e.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:DOP_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="DOP_8h.html">DOP.h</a> <a href="DOP_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:DOP_8h"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Position Dilution of Precision (PDOP). <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:trilateration_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html">trilateration.h</a> <a href="trilateration_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:trilateration_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the trilateration algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_321173b8d48684d54b5d9118730b6e4e.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_321173b8d48684d54b5d9118730b6e4e.js b/doc/doxygen/html/dir_321173b8d48684d54b5d9118730b6e4e.js new file mode 100644 index 0000000000000000000000000000000000000000..5193c614077cc91566d9f3ff736ec5e70f10a70d --- /dev/null +++ b/doc/doxygen/html/dir_321173b8d48684d54b5d9118730b6e4e.js @@ -0,0 +1,5 @@ +var dir_321173b8d48684d54b5d9118730b6e4e = +[ + [ "DOP.h", "DOP_8h.html", "DOP_8h" ], + [ "trilateration.h", "trilateration_8h.html", "trilateration_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_37a5553f1548d2dee3f75063e28a3b6f.html b/doc/doxygen/html/dir_37a5553f1548d2dee3f75063e28a3b6f.html new file mode 100644 index 0000000000000000000000000000000000000000..6ca62a9ae68f07f414916849facfb7e1c7fbdd48 --- /dev/null +++ b/doc/doxygen/html/dir_37a5553f1548d2dee3f75063e28a3b6f.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_optimization Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_37a5553f1548d2dee3f75063e28a3b6f.html','');}); +/* @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="headertitle"> +<div class="title">position_optimization Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:multipath__algo__own__norm__distr__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__algo__own__norm__distr__test_8c.html">multipath_algo_own_norm_distr_test.c</a> <a href="multipath__algo__own__norm__distr__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:multipath__algo__own__norm__distr__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Example of the algorithm for the recognition and mitigation of multipath effects. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:position__optimization__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="position__optimization__test_8c.html">position_optimization_test.c</a> <a href="position__optimization__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:position__optimization__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms for localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_37a5553f1548d2dee3f75063e28a3b6f.js b/doc/doxygen/html/dir_37a5553f1548d2dee3f75063e28a3b6f.js new file mode 100644 index 0000000000000000000000000000000000000000..59be60b479d45c06d544305e649b64ee09c65742 --- /dev/null +++ b/doc/doxygen/html/dir_37a5553f1548d2dee3f75063e28a3b6f.js @@ -0,0 +1,6 @@ +var dir_37a5553f1548d2dee3f75063e28a3b6f = +[ + [ "include", "dir_ca5718251f4b73cea33729edc1e819e5.html", "dir_ca5718251f4b73cea33729edc1e819e5" ], + [ "multipath_algo_own_norm_distr_test.c", "multipath__algo__own__norm__distr__test_8c.html", "multipath__algo__own__norm__distr__test_8c" ], + [ "position_optimization_test.c", "position__optimization__test_8c.html", "position__optimization__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_482d4625c499ea39e333dde09ca074c3.html b/doc/doxygen/html/dir_482d4625c499ea39e333dde09ca074c3.html new file mode 100644 index 0000000000000000000000000000000000000000..f90219a3c9f94abe58a69d6ea27a161103ea67be --- /dev/null +++ b/doc/doxygen/html/dir_482d4625c499ea39e333dde09ca074c3.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_482d4625c499ea39e333dde09ca074c3.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:utils__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="utils__test_8h.html">utils_test.h</a> <a href="utils__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:utils__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the utility functions. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_8e5c3f26a7da9560da5fd7be1ee471fe.html">utilities</a></li><li class="navelem"><a class="el" href="dir_482d4625c499ea39e333dde09ca074c3.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_482d4625c499ea39e333dde09ca074c3.js b/doc/doxygen/html/dir_482d4625c499ea39e333dde09ca074c3.js new file mode 100644 index 0000000000000000000000000000000000000000..41745d6b92f264f7b996ad5313831f1c669ed239 --- /dev/null +++ b/doc/doxygen/html/dir_482d4625c499ea39e333dde09ca074c3.js @@ -0,0 +1,4 @@ +var dir_482d4625c499ea39e333dde09ca074c3 = +[ + [ "utils_test.h", "utils__test_8h.html", "utils__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_5a43f5722226146f4ac0b20a7710cb0d.html b/doc/doxygen/html/dir_5a43f5722226146f4ac0b20a7710cb0d.html new file mode 100644 index 0000000000000000000000000000000000000000..e2707253b631b6f8a648220a428b42c18680ffd9 --- /dev/null +++ b/doc/doxygen/html/dir_5a43f5722226146f4ac0b20a7710cb0d.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_5a43f5722226146f4ac0b20a7710cb0d.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:givens__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="givens__test_8h.html">givens_test.h</a> <a href="givens__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:givens__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Givens algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:householder__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="householder__test_8h.html">householder_test.h</a> <a href="householder__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:householder__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Householder algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:lu__decomp__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp__test_8h.html">lu_decomp_test.h</a> <a href="lu__decomp__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:lu__decomp__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the LU algorithm with pivoting. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:svd__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="svd__test_8h.html">svd_test.h</a> <a href="svd__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:svd__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the SVD algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_5a43f5722226146f4ac0b20a7710cb0d.js b/doc/doxygen/html/dir_5a43f5722226146f4ac0b20a7710cb0d.js new file mode 100644 index 0000000000000000000000000000000000000000..679f1887bc77e750f39d6312d8a64deefec63d02 --- /dev/null +++ b/doc/doxygen/html/dir_5a43f5722226146f4ac0b20a7710cb0d.js @@ -0,0 +1,7 @@ +var dir_5a43f5722226146f4ac0b20a7710cb0d = +[ + [ "givens_test.h", "givens__test_8h.html", "givens__test_8h" ], + [ "householder_test.h", "householder__test_8h.html", "householder__test_8h" ], + [ "lu_decomp_test.h", "lu__decomp__test_8h.html", "lu__decomp__test_8h" ], + [ "svd_test.h", "svd__test_8h.html", "svd__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_5eb44610c4b05a35dc8627fc05b536b4.html b/doc/doxygen/html/dir_5eb44610c4b05a35dc8627fc05b536b4.html new file mode 100644 index 0000000000000000000000000000000000000000..997e2db4e62926b4710b7d51ae0e1917aa33bdfd --- /dev/null +++ b/doc/doxygen/html/dir_5eb44610c4b05a35dc8627fc05b536b4.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_5eb44610c4b05a35dc8627fc05b536b4.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:fsolve__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8h.html">fsolve_test.h</a> <a href="fsolve__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:fsolve__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving non-linear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_5eb44610c4b05a35dc8627fc05b536b4.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_5eb44610c4b05a35dc8627fc05b536b4.js b/doc/doxygen/html/dir_5eb44610c4b05a35dc8627fc05b536b4.js new file mode 100644 index 0000000000000000000000000000000000000000..79086274e774bf008df04a25efd6a46b6bb26df1 --- /dev/null +++ b/doc/doxygen/html/dir_5eb44610c4b05a35dc8627fc05b536b4.js @@ -0,0 +1,4 @@ +var dir_5eb44610c4b05a35dc8627fc05b536b4 = +[ + [ "fsolve_test.h", "fsolve__test_8h.html", "fsolve__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_623d500f3964709be0a6b3ba8db96a1c.html b/doc/doxygen/html/dir_623d500f3964709be0a6b3ba8db96a1c.html new file mode 100644 index 0000000000000000000000000000000000000000..d9e09a8275faf44be0ed735b11cbd7f0faac2027 --- /dev/null +++ b/doc/doxygen/html/dir_623d500f3964709be0a6b3ba8db96a1c.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_623d500f3964709be0a6b3ba8db96a1c.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:optimization__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8h.html">optimization_test.h</a> <a href="optimization__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:optimization__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_639c02752b2f8f0dbd6bec97ff3b969d.html">optimization</a></li><li class="navelem"><a class="el" href="dir_623d500f3964709be0a6b3ba8db96a1c.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_623d500f3964709be0a6b3ba8db96a1c.js b/doc/doxygen/html/dir_623d500f3964709be0a6b3ba8db96a1c.js new file mode 100644 index 0000000000000000000000000000000000000000..c3e5c08b7b91695ae81db8543f97fd10e1b30c16 --- /dev/null +++ b/doc/doxygen/html/dir_623d500f3964709be0a6b3ba8db96a1c.js @@ -0,0 +1,4 @@ +var dir_623d500f3964709be0a6b3ba8db96a1c = +[ + [ "optimization_test.h", "optimization__test_8h.html", "optimization__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_639c02752b2f8f0dbd6bec97ff3b969d.html b/doc/doxygen/html/dir_639c02752b2f8f0dbd6bec97ff3b969d.html new file mode 100644 index 0000000000000000000000000000000000000000..abc78501589d304e3f1910d38900b82448d2a4cb --- /dev/null +++ b/doc/doxygen/html/dir_639c02752b2f8f0dbd6bec97ff3b969d.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: optimization Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_639c02752b2f8f0dbd6bec97ff3b969d.html','');}); +/* @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="headertitle"> +<div class="title">optimization Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:optimization__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html">optimization_test.c</a> <a href="optimization__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:optimization__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_639c02752b2f8f0dbd6bec97ff3b969d.html">optimization</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_639c02752b2f8f0dbd6bec97ff3b969d.js b/doc/doxygen/html/dir_639c02752b2f8f0dbd6bec97ff3b969d.js new file mode 100644 index 0000000000000000000000000000000000000000..323cc4d9dc38a78a2b25df2746fe1f714eedc6fd --- /dev/null +++ b/doc/doxygen/html/dir_639c02752b2f8f0dbd6bec97ff3b969d.js @@ -0,0 +1,5 @@ +var dir_639c02752b2f8f0dbd6bec97ff3b969d = +[ + [ "include", "dir_623d500f3964709be0a6b3ba8db96a1c.html", "dir_623d500f3964709be0a6b3ba8db96a1c" ], + [ "optimization_test.c", "optimization__test_8c.html", "optimization__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html b/doc/doxygen/html/dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html new file mode 100644 index 0000000000000000000000000000000000000000..47c36cfefccef9d8c841f2a331e1423c325a7455 --- /dev/null +++ b/doc/doxygen/html/dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:moore__penrose__pseudo__inverse_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a> <a href="moore__penrose__pseudo__inverse_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:moore__penrose__pseudo__inverse_8h"><td class="mdescLeft"> </td><td class="mdescRight">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:pseudo__inverse_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="pseudo__inverse_8h.html">pseudo_inverse.h</a> <a href="pseudo__inverse_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:pseudo__inverse_8h"><td class="mdescLeft"> </td><td class="mdescRight">Compute the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__pseudo__inverse_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pseudo__inverse_8h.html">qr_pseudo_inverse.h</a> <a href="qr__pseudo__inverse_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__pseudo__inverse_8h"><td class="mdescLeft"> </td><td class="mdescRight">QR decomposition algorithms to compute the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.js b/doc/doxygen/html/dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.js new file mode 100644 index 0000000000000000000000000000000000000000..cb3f22cc2805efb7c43411680e0892c24be3c2d4 --- /dev/null +++ b/doc/doxygen/html/dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.js @@ -0,0 +1,6 @@ +var dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd = +[ + [ "moore_penrose_pseudo_inverse.h", "moore__penrose__pseudo__inverse_8h.html", "moore__penrose__pseudo__inverse_8h" ], + [ "pseudo_inverse.h", "pseudo__inverse_8h.html", "pseudo__inverse_8h" ], + [ "qr_pseudo_inverse.h", "qr__pseudo__inverse_8h.html", "qr__pseudo__inverse_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_6b02df0bd0782e84dd3cd412549b0acc.html b/doc/doxygen/html/dir_6b02df0bd0782e84dd3cd412549b0acc.html new file mode 100644 index 0000000000000000000000000000000000000000..508e76f4f6d7db7bf2e0fb55e03db7e0a153eeaa --- /dev/null +++ b/doc/doxygen/html/dir_6b02df0bd0782e84dd3cd412549b0acc.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_optimization Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_6b02df0bd0782e84dd3cd412549b0acc.html','');}); +/* @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="headertitle"> +<div class="title">position_optimization Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:loc__gauss__newton_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__gauss__newton_8c.html">loc_gauss_newton.c</a> <a href="loc__gauss__newton_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:loc__gauss__newton_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Gauss–Newton algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:loc__levenberg__marquardt_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8c.html">loc_levenberg_marquardt.c</a> <a href="loc__levenberg__marquardt_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:loc__levenberg__marquardt_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Levenberg–Marquardt (LVM) algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:multipath__dist__detection__mitigation_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html">multipath_dist_detection_mitigation.c</a> <a href="multipath__dist__detection__mitigation_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:multipath__dist__detection__mitigation_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_6b02df0bd0782e84dd3cd412549b0acc.js b/doc/doxygen/html/dir_6b02df0bd0782e84dd3cd412549b0acc.js new file mode 100644 index 0000000000000000000000000000000000000000..4addc06d6b4ada595a44d873ca5b5b973264af25 --- /dev/null +++ b/doc/doxygen/html/dir_6b02df0bd0782e84dd3cd412549b0acc.js @@ -0,0 +1,7 @@ +var dir_6b02df0bd0782e84dd3cd412549b0acc = +[ + [ "include", "dir_05fcd006305b35cd419f9fa0533f5c7b.html", "dir_05fcd006305b35cd419f9fa0533f5c7b" ], + [ "loc_gauss_newton.c", "loc__gauss__newton_8c.html", "loc__gauss__newton_8c" ], + [ "loc_levenberg_marquardt.c", "loc__levenberg__marquardt_8c.html", "loc__levenberg__marquardt_8c" ], + [ "multipath_dist_detection_mitigation.c", "multipath__dist__detection__mitigation_8c.html", "multipath__dist__detection__mitigation_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_6ba7a16e4c50d34812a44006ed482e9d.html b/doc/doxygen/html/dir_6ba7a16e4c50d34812a44006ed482e9d.html new file mode 100644 index 0000000000000000000000000000000000000000..8e148d393e2ec087075feb994abbe5f63723c42f --- /dev/null +++ b/doc/doxygen/html/dir_6ba7a16e4c50d34812a44006ed482e9d.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_6ba7a16e4c50d34812a44006ed482e9d.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:dist__based__fi_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__fi_8h.html">dist_based_fi.h</a> <a href="dist__based__fi_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:dist__based__fi_8h"><td class="mdescLeft"> </td><td class="mdescRight">Error function of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:dist__based__jacobian_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a> <a href="dist__based__jacobian_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:dist__based__jacobian_8h"><td class="mdescLeft"> </td><td class="mdescRight">Jacobian function of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:dist__based__position_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__position_8h.html">dist_based_position.h</a> <a href="dist__based__position_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:dist__based__position_8h"><td class="mdescLeft"> </td><td class="mdescRight">Functions of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_6ba7a16e4c50d34812a44006ed482e9d.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_6ba7a16e4c50d34812a44006ed482e9d.js b/doc/doxygen/html/dir_6ba7a16e4c50d34812a44006ed482e9d.js new file mode 100644 index 0000000000000000000000000000000000000000..d254e30091738ec68dd292d88492209ac17c0a1c --- /dev/null +++ b/doc/doxygen/html/dir_6ba7a16e4c50d34812a44006ed482e9d.js @@ -0,0 +1,6 @@ +var dir_6ba7a16e4c50d34812a44006ed482e9d = +[ + [ "dist_based_fi.h", "dist__based__fi_8h.html", "dist__based__fi_8h" ], + [ "dist_based_jacobian.h", "dist__based__jacobian_8h.html", "dist__based__jacobian_8h" ], + [ "dist_based_position.h", "dist__based__position_8h.html", "dist__based__position_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_7288dc322cfbdfeb7861adfdccb1ddcd.html b/doc/doxygen/html/dir_7288dc322cfbdfeb7861adfdccb1ddcd.html new file mode 100644 index 0000000000000000000000000000000000000000..f162d6848161a848faac4aba01088b8e44fd3aa6 --- /dev/null +++ b/doc/doxygen/html/dir_7288dc322cfbdfeb7861adfdccb1ddcd.html @@ -0,0 +1,124 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix_decompositions Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_7288dc322cfbdfeb7861adfdccb1ddcd.html','');}); +/* @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="headertitle"> +<div class="title">matrix_decompositions Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:givens__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="givens__test_8c.html">givens_test.c</a> <a href="givens__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:givens__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Givens algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:householder__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="householder__test_8c.html">householder_test.c</a> <a href="householder__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:householder__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Householder algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:lu__decomp__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp__test_8c.html">lu_decomp_test.c</a> <a href="lu__decomp__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:lu__decomp__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the LU algorithm with pivoting. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:svd__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="svd__test_8c.html">svd_test.c</a> <a href="svd__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:svd__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the SVD algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_7288dc322cfbdfeb7861adfdccb1ddcd.js b/doc/doxygen/html/dir_7288dc322cfbdfeb7861adfdccb1ddcd.js new file mode 100644 index 0000000000000000000000000000000000000000..ad5ac895a236b37541f70d4b690ee93fbfd1a562 --- /dev/null +++ b/doc/doxygen/html/dir_7288dc322cfbdfeb7861adfdccb1ddcd.js @@ -0,0 +1,8 @@ +var dir_7288dc322cfbdfeb7861adfdccb1ddcd = +[ + [ "include", "dir_5a43f5722226146f4ac0b20a7710cb0d.html", "dir_5a43f5722226146f4ac0b20a7710cb0d" ], + [ "givens_test.c", "givens__test_8c.html", "givens__test_8c" ], + [ "householder_test.c", "householder__test_8c.html", "householder__test_8c" ], + [ "lu_decomp_test.c", "lu__decomp__test_8c.html", "lu__decomp__test_8c" ], + [ "svd_test.c", "svd__test_8c.html", "svd__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html b/doc/doxygen/html/dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html new file mode 100644 index 0000000000000000000000000000000000000000..4a0c6b0a1bfc17fb9a6ee3f5cedfc7af8ac89621 --- /dev/null +++ b/doc/doxygen/html/dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:solve_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8h.html">solve.h</a> <a href="solve_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:solve_8h"><td class="mdescLeft"> </td><td class="mdescRight">Enables to solve systems of linear equations Ax = b for x. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_f6d35df7bd2aa2399e29232b65f55b23.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.js b/doc/doxygen/html/dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.js new file mode 100644 index 0000000000000000000000000000000000000000..0b2534428a1763a3bd1503a1fe0da260f0643b66 --- /dev/null +++ b/doc/doxygen/html/dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.js @@ -0,0 +1,4 @@ +var dir_7e2fea8632e67e4b5ff2ab6ffb8e1870 = +[ + [ "solve.h", "solve_8h.html", "solve_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_801c9944761e72e374dff631ac46ee01.html b/doc/doxygen/html/dir_801c9944761e72e374dff631ac46ee01.html new file mode 100644 index 0000000000000000000000000000000000000000..efdcd7ca7b3475b86b598d5e7cc4bd4a925dfcfb --- /dev/null +++ b/doc/doxygen/html/dir_801c9944761e72e374dff631ac46ee01.html @@ -0,0 +1,111 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: localization Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_801c9944761e72e374dff631ac46ee01.html','');}); +/* @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="headertitle"> +<div class="title">localization Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +<tr class="memitem:dir_fd0747fb67b11559bfa7954b6401be5e"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_801c9944761e72e374dff631ac46ee01.js b/doc/doxygen/html/dir_801c9944761e72e374dff631ac46ee01.js new file mode 100644 index 0000000000000000000000000000000000000000..76827aadb24897e253eb72b011cf7ff5450a922a --- /dev/null +++ b/doc/doxygen/html/dir_801c9944761e72e374dff631ac46ee01.js @@ -0,0 +1,5 @@ +var dir_801c9944761e72e374dff631ac46ee01 = +[ + [ "position_algos", "dir_fd0747fb67b11559bfa7954b6401be5e.html", "dir_fd0747fb67b11559bfa7954b6401be5e" ], + [ "position_optimization", "dir_37a5553f1548d2dee3f75063e28a3b6f.html", "dir_37a5553f1548d2dee3f75063e28a3b6f" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_8b81d7492c96188faba0bade87ee2c10.html b/doc/doxygen/html/dir_8b81d7492c96188faba0bade87ee2c10.html new file mode 100644 index 0000000000000000000000000000000000000000..71eb4e14fa668d7f19e589d22aba67473a72aab3 --- /dev/null +++ b/doc/doxygen/html/dir_8b81d7492c96188faba0bade87ee2c10.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pos_algos_common Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_8b81d7492c96188faba0bade87ee2c10.html','');}); +/* @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="headertitle"> +<div class="title">pos_algos_common Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:DOP_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="DOP_8c.html">DOP.c</a> <a href="DOP_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:DOP_8c"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Position Dilution of Precision (PDOP). <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:trilateration_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html">trilateration.c</a> <a href="trilateration_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:trilateration_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the trilateration algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_8b81d7492c96188faba0bade87ee2c10.js b/doc/doxygen/html/dir_8b81d7492c96188faba0bade87ee2c10.js new file mode 100644 index 0000000000000000000000000000000000000000..1f25d19f6bf456a036b80b777fa6745da4f5efc9 --- /dev/null +++ b/doc/doxygen/html/dir_8b81d7492c96188faba0bade87ee2c10.js @@ -0,0 +1,6 @@ +var dir_8b81d7492c96188faba0bade87ee2c10 = +[ + [ "include", "dir_321173b8d48684d54b5d9118730b6e4e.html", "dir_321173b8d48684d54b5d9118730b6e4e" ], + [ "DOP.c", "DOP_8c.html", "DOP_8c" ], + [ "trilateration.c", "trilateration_8c.html", "trilateration_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_8c4128baa09a573ad2b8b8c0061a04c9.html b/doc/doxygen/html/dir_8c4128baa09a573ad2b8b8c0061a04c9.html new file mode 100644 index 0000000000000000000000000000000000000000..ad5ae31dc32c019a962682cccd1563b0950228b8 --- /dev/null +++ b/doc/doxygen/html/dir_8c4128baa09a573ad2b8b8c0061a04c9.html @@ -0,0 +1,109 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: linear_algebra Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_8c4128baa09a573ad2b8b8c0061a04c9.html','');}); +/* @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="headertitle"> +<div class="title">linear_algebra Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_8c4128baa09a573ad2b8b8c0061a04c9.js b/doc/doxygen/html/dir_8c4128baa09a573ad2b8b8c0061a04c9.js new file mode 100644 index 0000000000000000000000000000000000000000..d7e105dae1ed2a8fd502e58d2703f5e5cc81b096 --- /dev/null +++ b/doc/doxygen/html/dir_8c4128baa09a573ad2b8b8c0061a04c9.js @@ -0,0 +1,8 @@ +var dir_8c4128baa09a573ad2b8b8c0061a04c9 = +[ + [ "basic_operations", "dir_c416454c2678f04387f9348cb110b9ee.html", "dir_c416454c2678f04387f9348cb110b9ee" ], + [ "matrix_decompositions", "dir_997ac76a3d72a25dec85442c5f6c585d.html", "dir_997ac76a3d72a25dec85442c5f6c585d" ], + [ "pseudo_inverse", "dir_26c6b27917397f8a74a0fdde30fa8c1c.html", "dir_26c6b27917397f8a74a0fdde30fa8c1c" ], + [ "solve_linear_equations", "dir_f6d35df7bd2aa2399e29232b65f55b23.html", "dir_f6d35df7bd2aa2399e29232b65f55b23" ], + [ "utilities", "dir_08749d3fb0d5743bfaf3c7bce248dc40.html", "dir_08749d3fb0d5743bfaf3c7bce248dc40" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_8e5c3f26a7da9560da5fd7be1ee471fe.html b/doc/doxygen/html/dir_8e5c3f26a7da9560da5fd7be1ee471fe.html new file mode 100644 index 0000000000000000000000000000000000000000..049e9dec43a083b34f1d09605d17095d04ddb9e1 --- /dev/null +++ b/doc/doxygen/html/dir_8e5c3f26a7da9560da5fd7be1ee471fe.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utilities Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_8e5c3f26a7da9560da5fd7be1ee471fe.html','');}); +/* @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="headertitle"> +<div class="title">utilities Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:utils__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="utils__test_8c.html">utils_test.c</a> <a href="utils__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:utils__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the utility functions. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_8e5c3f26a7da9560da5fd7be1ee471fe.html">utilities</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_8e5c3f26a7da9560da5fd7be1ee471fe.js b/doc/doxygen/html/dir_8e5c3f26a7da9560da5fd7be1ee471fe.js new file mode 100644 index 0000000000000000000000000000000000000000..cde27c1a643d4ee5f68fe939e64137a34281d4b3 --- /dev/null +++ b/doc/doxygen/html/dir_8e5c3f26a7da9560da5fd7be1ee471fe.js @@ -0,0 +1,5 @@ +var dir_8e5c3f26a7da9560da5fd7be1ee471fe = +[ + [ "include", "dir_482d4625c499ea39e333dde09ca074c3.html", "dir_482d4625c499ea39e333dde09ca074c3" ], + [ "utils_test.c", "utils__test_8c.html", "utils__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_920b8470fa3846349f110139d8392508.html b/doc/doxygen/html/dir_920b8470fa3846349f110139d8392508.html new file mode 100644 index 0000000000000000000000000000000000000000..2f06df92a771c934031dd2a7f4248b7ca93dfda1 --- /dev/null +++ b/doc/doxygen/html/dir_920b8470fa3846349f110139d8392508.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_920b8470fa3846349f110139d8392508.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:solve__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="solve__test_8h.html">solve_test.h</a> <a href="solve__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:solve__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving linear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c00c1b9b31ec8172d0e33f1bbb777699.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="dir_920b8470fa3846349f110139d8392508.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_920b8470fa3846349f110139d8392508.js b/doc/doxygen/html/dir_920b8470fa3846349f110139d8392508.js new file mode 100644 index 0000000000000000000000000000000000000000..0286ae6fb7ab3b9cb2a205e3f75a45f941de6d4e --- /dev/null +++ b/doc/doxygen/html/dir_920b8470fa3846349f110139d8392508.js @@ -0,0 +1,4 @@ +var dir_920b8470fa3846349f110139d8392508 = +[ + [ "solve_test.h", "solve__test_8h.html", "solve__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_943f05c9b1835bace55f73b49add4eb5.html b/doc/doxygen/html/dir_943f05c9b1835bace55f73b49add4eb5.html new file mode 100644 index 0000000000000000000000000000000000000000..640afbcd920fa28f1f19491acb8de48b2a66a795 --- /dev/null +++ b/doc/doxygen/html/dir_943f05c9b1835bace55f73b49add4eb5.html @@ -0,0 +1,109 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: non_linear_algebra Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_943f05c9b1835bace55f73b49add4eb5.html','');}); +/* @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="headertitle"> +<div class="title">non_linear_algebra Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_943f05c9b1835bace55f73b49add4eb5.js b/doc/doxygen/html/dir_943f05c9b1835bace55f73b49add4eb5.js new file mode 100644 index 0000000000000000000000000000000000000000..601cacde521a0ea7040e9f362ecfdd85a1c32116 --- /dev/null +++ b/doc/doxygen/html/dir_943f05c9b1835bace55f73b49add4eb5.js @@ -0,0 +1,5 @@ +var dir_943f05c9b1835bace55f73b49add4eb5 = +[ + [ "optimization", "dir_a849c678c2f9059c847e621780a4cff4.html", "dir_a849c678c2f9059c847e621780a4cff4" ], + [ "solve_non_linear_equations", "dir_96fb3641df0eaf7ad29b2346d426a787.html", "dir_96fb3641df0eaf7ad29b2346d426a787" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_96fb3641df0eaf7ad29b2346d426a787.html b/doc/doxygen/html/dir_96fb3641df0eaf7ad29b2346d426a787.html new file mode 100644 index 0000000000000000000000000000000000000000..ab27f83becf6b2b18b50e7efc5ff1f9c3a7d20db --- /dev/null +++ b/doc/doxygen/html/dir_96fb3641df0eaf7ad29b2346d426a787.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_non_linear_equations Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_96fb3641df0eaf7ad29b2346d426a787.html','');}); +/* @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="headertitle"> +<div class="title">solve_non_linear_equations Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:damped__newton__raphson_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8c.html">damped_newton_raphson.c</a> <a href="damped__newton__raphson_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:damped__newton__raphson_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the damped Newton–Raphson algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:fsolve_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve_8c.html">fsolve.c</a> <a href="fsolve_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:fsolve_8c"><td class="mdescLeft"> </td><td class="mdescRight">Solve multi-variant nonlinear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:newton__raphson_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="newton__raphson_8c.html">newton_raphson.c</a> <a href="newton__raphson_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:newton__raphson_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Newton–Raphson algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_96fb3641df0eaf7ad29b2346d426a787.js b/doc/doxygen/html/dir_96fb3641df0eaf7ad29b2346d426a787.js new file mode 100644 index 0000000000000000000000000000000000000000..ee31153b54e89add31e9e246dfcdb43c217f0b00 --- /dev/null +++ b/doc/doxygen/html/dir_96fb3641df0eaf7ad29b2346d426a787.js @@ -0,0 +1,7 @@ +var dir_96fb3641df0eaf7ad29b2346d426a787 = +[ + [ "include", "dir_11810571c148016bdf8359f21ff128b1.html", "dir_11810571c148016bdf8359f21ff128b1" ], + [ "damped_newton_raphson.c", "damped__newton__raphson_8c.html", "damped__newton__raphson_8c" ], + [ "fsolve.c", "fsolve_8c.html", "fsolve_8c" ], + [ "newton_raphson.c", "newton__raphson_8c.html", "newton__raphson_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_997ac76a3d72a25dec85442c5f6c585d.html b/doc/doxygen/html/dir_997ac76a3d72a25dec85442c5f6c585d.html new file mode 100644 index 0000000000000000000000000000000000000000..081415fbfcc31e47dbc8a8970d59b982464a01ba --- /dev/null +++ b/doc/doxygen/html/dir_997ac76a3d72a25dec85442c5f6c585d.html @@ -0,0 +1,127 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix_decompositions Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_997ac76a3d72a25dec85442c5f6c585d.html','');}); +/* @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="headertitle"> +<div class="title">matrix_decompositions Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:lu__decomp_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp_8c.html">lu_decomp.c</a> <a href="lu__decomp_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:lu__decomp_8c"><td class="mdescLeft"> </td><td class="mdescRight">Computes the LU decomposition of the matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__common_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8c.html">qr_common.c</a> <a href="qr__common_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__common_8c"><td class="mdescLeft"> </td><td class="mdescRight">Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__givens_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__givens_8c.html">qr_givens.c</a> <a href="qr__givens_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__givens_8c"><td class="mdescLeft"> </td><td class="mdescRight">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times $" src="form_36.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__householder_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__householder_8c.html">qr_householder.c</a> <a href="qr__householder_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__householder_8c"><td class="mdescLeft"> </td><td class="mdescRight">Householder algorithm for the QR-decomposition. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:svd_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html">svd.c</a> <a href="svd_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:svd_8c"><td class="mdescLeft"> </td><td class="mdescRight">Algorithm for the Singular Value Decomposition (SVD). Provide necessary methods to compute the compact SVD of a matrix. A = U*S*V, where U is a (m x l) orthogonal matrix, S is a (l x l) diagonal matrix, V is a (l x n) orthogonal matrix, and l = min(m,n). The SVD is computed by using the Golub–Kahan–Reinsch algorithm that works in two phases: bidiagonalization and a reduction to the diagonal form phase. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_997ac76a3d72a25dec85442c5f6c585d.js b/doc/doxygen/html/dir_997ac76a3d72a25dec85442c5f6c585d.js new file mode 100644 index 0000000000000000000000000000000000000000..286ee2761af721ed2f172b5cec09aa247a8f4e6f --- /dev/null +++ b/doc/doxygen/html/dir_997ac76a3d72a25dec85442c5f6c585d.js @@ -0,0 +1,9 @@ +var dir_997ac76a3d72a25dec85442c5f6c585d = +[ + [ "include", "dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html", "dir_f9311e7dae5ba7dbc6ad9f75e6d9537e" ], + [ "lu_decomp.c", "lu__decomp_8c.html", "lu__decomp_8c" ], + [ "qr_common.c", "qr__common_8c.html", "qr__common_8c" ], + [ "qr_givens.c", "qr__givens_8c.html", "qr__givens_8c" ], + [ "qr_householder.c", "qr__householder_8c.html", "qr__householder_8c" ], + [ "svd.c", "svd_8c.html", "svd_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_9a0e52744106406adeca8f277e27cc62.html b/doc/doxygen/html/dir_9a0e52744106406adeca8f277e27cc62.html new file mode 100644 index 0000000000000000000000000000000000000000..b2d66607e7f63bb1f14ab416e67a62ad57d0dff8 --- /dev/null +++ b/doc/doxygen/html/dir_9a0e52744106406adeca8f277e27cc62.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: distance_based Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_9a0e52744106406adeca8f277e27cc62.html','');}); +/* @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="headertitle"> +<div class="title">distance_based Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:distance__based__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="distance__based__test_8c.html">distance_based_test.c</a> <a href="distance__based__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:distance__based__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of localization algorithms of distance-based positioning systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9a0e52744106406adeca8f277e27cc62.html">distance_based</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_9a0e52744106406adeca8f277e27cc62.js b/doc/doxygen/html/dir_9a0e52744106406adeca8f277e27cc62.js new file mode 100644 index 0000000000000000000000000000000000000000..d846b55909ebfbf0e315e6e35320f4e6ab5df927 --- /dev/null +++ b/doc/doxygen/html/dir_9a0e52744106406adeca8f277e27cc62.js @@ -0,0 +1,5 @@ +var dir_9a0e52744106406adeca8f277e27cc62 = +[ + [ "include", "dir_1914560df4fa89960017a8bfd33591bb.html", "dir_1914560df4fa89960017a8bfd33591bb" ], + [ "distance_based_test.c", "distance__based__test_8c.html", "distance__based__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_9f6bed594baf424ccac6ba79953e888e.html b/doc/doxygen/html/dir_9f6bed594baf424ccac6ba79953e888e.html new file mode 100644 index 0000000000000000000000000000000000000000..edde32d0f232c4c838adf0d4ef2d11253b7bafc2 --- /dev/null +++ b/doc/doxygen/html/dir_9f6bed594baf424ccac6ba79953e888e.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_9f6bed594baf424ccac6ba79953e888e.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:magnetic__based__fi_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__fi_8c.html">magnetic_based_fi.c</a> <a href="magnetic__based__fi_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__fi_8c"><td class="mdescLeft"> </td><td class="mdescRight">Error function of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:magnetic__based__jacobian_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8c.html">magnetic_based_jacobian.c</a> <a href="magnetic__based__jacobian_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__jacobian_8c"><td class="mdescLeft"> </td><td class="mdescRight">Jacobian function of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:magnetic__based__position_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html">magnetic_based_position.c</a> <a href="magnetic__based__position_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__position_8c"><td class="mdescLeft"> </td><td class="mdescRight">Functions of of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_9f6bed594baf424ccac6ba79953e888e.js b/doc/doxygen/html/dir_9f6bed594baf424ccac6ba79953e888e.js new file mode 100644 index 0000000000000000000000000000000000000000..8515400bc19c763dd71befc847167de08596f85b --- /dev/null +++ b/doc/doxygen/html/dir_9f6bed594baf424ccac6ba79953e888e.js @@ -0,0 +1,7 @@ +var dir_9f6bed594baf424ccac6ba79953e888e = +[ + [ "include", "dir_b8d2d01ff28d5da2ee9069d013a4a508.html", "dir_b8d2d01ff28d5da2ee9069d013a4a508" ], + [ "magnetic_based_fi.c", "magnetic__based__fi_8c.html", "magnetic__based__fi_8c" ], + [ "magnetic_based_jacobian.c", "magnetic__based__jacobian_8c.html", "magnetic__based__jacobian_8c" ], + [ "magnetic_based_position.c", "magnetic__based__position_8c.html", "magnetic__based__position_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_a849c678c2f9059c847e621780a4cff4.html b/doc/doxygen/html/dir_a849c678c2f9059c847e621780a4cff4.html new file mode 100644 index 0000000000000000000000000000000000000000..2d4e307d26a3fdb9672244a5bce923a489da6d53 --- /dev/null +++ b/doc/doxygen/html/dir_a849c678c2f9059c847e621780a4cff4.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: optimization Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_a849c678c2f9059c847e621780a4cff4.html','');}); +/* @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="headertitle"> +<div class="title">optimization Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:levenberg__marquardt_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8c.html">levenberg_marquardt.c</a> <a href="levenberg__marquardt_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:levenberg__marquardt_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Levenberg–Marquardt (LVM) algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:modified__gauss__newton_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="modified__gauss__newton_8c.html">modified_gauss_newton.c</a> <a href="modified__gauss__newton_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:modified__gauss__newton_8c"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Gauss–Newton algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_a849c678c2f9059c847e621780a4cff4.js b/doc/doxygen/html/dir_a849c678c2f9059c847e621780a4cff4.js new file mode 100644 index 0000000000000000000000000000000000000000..fdfc6435b2166f9005c505add452ab85ee55bcfa --- /dev/null +++ b/doc/doxygen/html/dir_a849c678c2f9059c847e621780a4cff4.js @@ -0,0 +1,6 @@ +var dir_a849c678c2f9059c847e621780a4cff4 = +[ + [ "include", "dir_c50cc60bf0f01dd8b56a0a31510e7489.html", "dir_c50cc60bf0f01dd8b56a0a31510e7489" ], + [ "levenberg_marquardt.c", "levenberg__marquardt_8c.html", "levenberg__marquardt_8c" ], + [ "modified_gauss_newton.c", "modified__gauss__newton_8c.html", "modified__gauss__newton_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_b8d2d01ff28d5da2ee9069d013a4a508.html b/doc/doxygen/html/dir_b8d2d01ff28d5da2ee9069d013a4a508.html new file mode 100644 index 0000000000000000000000000000000000000000..8bad109a92d08d59573443d9de661dc6b72495d8 --- /dev/null +++ b/doc/doxygen/html/dir_b8d2d01ff28d5da2ee9069d013a4a508.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_b8d2d01ff28d5da2ee9069d013a4a508.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:magnetic__based__fi_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__fi_8h.html">magnetic_based_fi.h</a> <a href="magnetic__based__fi_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__fi_8h"><td class="mdescLeft"> </td><td class="mdescRight">Error function of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:magnetic__based__jacobian_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8h.html">magnetic_based_jacobian.h</a> <a href="magnetic__based__jacobian_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__jacobian_8h"><td class="mdescLeft"> </td><td class="mdescRight">Jacobian function of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:magnetic__based__position_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html">magnetic_based_position.h</a> <a href="magnetic__based__position_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:magnetic__based__position_8h"><td class="mdescLeft"> </td><td class="mdescRight">Functions of of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_b8d2d01ff28d5da2ee9069d013a4a508.js b/doc/doxygen/html/dir_b8d2d01ff28d5da2ee9069d013a4a508.js new file mode 100644 index 0000000000000000000000000000000000000000..4c3936d34ff5ee54b23e1c341bb06e4271f2bed0 --- /dev/null +++ b/doc/doxygen/html/dir_b8d2d01ff28d5da2ee9069d013a4a508.js @@ -0,0 +1,6 @@ +var dir_b8d2d01ff28d5da2ee9069d013a4a508 = +[ + [ "magnetic_based_fi.h", "magnetic__based__fi_8h.html", "magnetic__based__fi_8h" ], + [ "magnetic_based_jacobian.h", "magnetic__based__jacobian_8h.html", "magnetic__based__jacobian_8h" ], + [ "magnetic_based_position.h", "magnetic__based__position_8h.html", "magnetic__based__position_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_bb878afedbb83074fe4b7f6b65e06747.html b/doc/doxygen/html/dir_bb878afedbb83074fe4b7f6b65e06747.html new file mode 100644 index 0000000000000000000000000000000000000000..df138cc163bf1659cf3f79d5ec8031dad4d61af3 --- /dev/null +++ b/doc/doxygen/html/dir_bb878afedbb83074fe4b7f6b65e06747.html @@ -0,0 +1,109 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: linear_algebra Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_bb878afedbb83074fe4b7f6b65e06747.html','');}); +/* @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="headertitle"> +<div class="title">linear_algebra Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_bb878afedbb83074fe4b7f6b65e06747.js b/doc/doxygen/html/dir_bb878afedbb83074fe4b7f6b65e06747.js new file mode 100644 index 0000000000000000000000000000000000000000..ae16671291bb775ad22b1c5e461da0710e8a4a0d --- /dev/null +++ b/doc/doxygen/html/dir_bb878afedbb83074fe4b7f6b65e06747.js @@ -0,0 +1,8 @@ +var dir_bb878afedbb83074fe4b7f6b65e06747 = +[ + [ "basic_operations", "dir_d1d208ee40a2f911c6ff49bd490e63cd.html", "dir_d1d208ee40a2f911c6ff49bd490e63cd" ], + [ "matrix_decompositions", "dir_7288dc322cfbdfeb7861adfdccb1ddcd.html", "dir_7288dc322cfbdfeb7861adfdccb1ddcd" ], + [ "pseudo_inverse", "dir_1513adee4b8f281871e1ff2ded4af7fe.html", "dir_1513adee4b8f281871e1ff2ded4af7fe" ], + [ "solve_linear_equations", "dir_c00c1b9b31ec8172d0e33f1bbb777699.html", "dir_c00c1b9b31ec8172d0e33f1bbb777699" ], + [ "utilities", "dir_8e5c3f26a7da9560da5fd7be1ee471fe.html", "dir_8e5c3f26a7da9560da5fd7be1ee471fe" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_c00c1b9b31ec8172d0e33f1bbb777699.html b/doc/doxygen/html/dir_c00c1b9b31ec8172d0e33f1bbb777699.html new file mode 100644 index 0000000000000000000000000000000000000000..82b8ba890581fcac3d1d36b20912355eccb2ff6b --- /dev/null +++ b/doc/doxygen/html/dir_c00c1b9b31ec8172d0e33f1bbb777699.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_linear_equations Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_c00c1b9b31ec8172d0e33f1bbb777699.html','');}); +/* @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="headertitle"> +<div class="title">solve_linear_equations Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:solve__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="solve__test_8c.html">solve_test.c</a> <a href="solve__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:solve__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving linear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c00c1b9b31ec8172d0e33f1bbb777699.html">solve_linear_equations</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_c00c1b9b31ec8172d0e33f1bbb777699.js b/doc/doxygen/html/dir_c00c1b9b31ec8172d0e33f1bbb777699.js new file mode 100644 index 0000000000000000000000000000000000000000..cc9499a2e94847f64e94d30019bdf6778657d0de --- /dev/null +++ b/doc/doxygen/html/dir_c00c1b9b31ec8172d0e33f1bbb777699.js @@ -0,0 +1,5 @@ +var dir_c00c1b9b31ec8172d0e33f1bbb777699 = +[ + [ "include", "dir_920b8470fa3846349f110139d8392508.html", "dir_920b8470fa3846349f110139d8392508" ], + [ "solve_test.c", "solve__test_8c.html", "solve__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_c416454c2678f04387f9348cb110b9ee.html b/doc/doxygen/html/dir_c416454c2678f04387f9348cb110b9ee.html new file mode 100644 index 0000000000000000000000000000000000000000..d005c8a9bd7d5b0dba8a93bf2f04f958baca8e80 --- /dev/null +++ b/doc/doxygen/html/dir_c416454c2678f04387f9348cb110b9ee.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: basic_operations Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_c416454c2678f04387f9348cb110b9ee.html','');}); +/* @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="headertitle"> +<div class="title">basic_operations Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:matrix_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html">matrix.c</a> <a href="matrix_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:matrix_8c"><td class="mdescLeft"> </td><td class="mdescRight">Matrix computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:vector_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html">vector.c</a> <a href="vector_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:vector_8c"><td class="mdescLeft"> </td><td class="mdescRight">Vector computations. Vector computations include operations such as addition, subtraction, and inner product (dot product). <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_c416454c2678f04387f9348cb110b9ee.js b/doc/doxygen/html/dir_c416454c2678f04387f9348cb110b9ee.js new file mode 100644 index 0000000000000000000000000000000000000000..54582ac27bdf3f420f05339bc592fcfb9b970991 --- /dev/null +++ b/doc/doxygen/html/dir_c416454c2678f04387f9348cb110b9ee.js @@ -0,0 +1,6 @@ +var dir_c416454c2678f04387f9348cb110b9ee = +[ + [ "include", "dir_e663cf436b7a4f65fdac82a5d77479a9.html", "dir_e663cf436b7a4f65fdac82a5d77479a9" ], + [ "matrix.c", "matrix_8c.html", "matrix_8c" ], + [ "vector.c", "vector_8c.html", "vector_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_c50cc60bf0f01dd8b56a0a31510e7489.html b/doc/doxygen/html/dir_c50cc60bf0f01dd8b56a0a31510e7489.html new file mode 100644 index 0000000000000000000000000000000000000000..baf0dc2cc2a2eb132d9e89d6a4b9b2dbb286c03d --- /dev/null +++ b/doc/doxygen/html/dir_c50cc60bf0f01dd8b56a0a31510e7489.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_c50cc60bf0f01dd8b56a0a31510e7489.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:levenberg__marquardt_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a> <a href="levenberg__marquardt_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:levenberg__marquardt_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Levenberg–Marquardt (LVM) algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:modified__gauss__newton_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a> <a href="modified__gauss__newton_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:modified__gauss__newton_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Gauss–Newton algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="dir_c50cc60bf0f01dd8b56a0a31510e7489.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_c50cc60bf0f01dd8b56a0a31510e7489.js b/doc/doxygen/html/dir_c50cc60bf0f01dd8b56a0a31510e7489.js new file mode 100644 index 0000000000000000000000000000000000000000..65d4d020e6cd6e2be110f03c3854bc25c7ad8290 --- /dev/null +++ b/doc/doxygen/html/dir_c50cc60bf0f01dd8b56a0a31510e7489.js @@ -0,0 +1,5 @@ +var dir_c50cc60bf0f01dd8b56a0a31510e7489 = +[ + [ "levenberg_marquardt.h", "levenberg__marquardt_8h.html", "levenberg__marquardt_8h" ], + [ "modified_gauss_newton.h", "modified__gauss__newton_8h.html", "modified__gauss__newton_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html b/doc/doxygen/html/dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html new file mode 100644 index 0000000000000000000000000000000000000000..34f949f45eb3ea022b8b6a34692b0d4b0c77aadc --- /dev/null +++ b/doc/doxygen/html/dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_non_linear_equations Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html','');}); +/* @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="headertitle"> +<div class="title">solve_non_linear_equations Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:fsolve__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html">fsolve_test.c</a> <a href="fsolve__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:fsolve__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving non-linear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html">solve_non_linear_equations</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_c7944ce5d3d7fbd5a70a851e7cbdd521.js b/doc/doxygen/html/dir_c7944ce5d3d7fbd5a70a851e7cbdd521.js new file mode 100644 index 0000000000000000000000000000000000000000..9450d6476a2bc862c15ca8f059d57c527bd1a068 --- /dev/null +++ b/doc/doxygen/html/dir_c7944ce5d3d7fbd5a70a851e7cbdd521.js @@ -0,0 +1,5 @@ +var dir_c7944ce5d3d7fbd5a70a851e7cbdd521 = +[ + [ "include", "dir_5eb44610c4b05a35dc8627fc05b536b4.html", "dir_5eb44610c4b05a35dc8627fc05b536b4" ], + [ "fsolve_test.c", "fsolve__test_8c.html", "fsolve__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_ca5718251f4b73cea33729edc1e819e5.html b/doc/doxygen/html/dir_ca5718251f4b73cea33729edc1e819e5.html new file mode 100644 index 0000000000000000000000000000000000000000..af6372d62e7436f4284da996d9543360faa023b2 --- /dev/null +++ b/doc/doxygen/html/dir_ca5718251f4b73cea33729edc1e819e5.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_ca5718251f4b73cea33729edc1e819e5.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:multipath__algo__own__norm__distr__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__algo__own__norm__distr__test_8h.html">multipath_algo_own_norm_distr_test.h</a> <a href="multipath__algo__own__norm__distr__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:multipath__algo__own__norm__distr__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Example of the algorithm for the recognition and mitigation of multipath effects. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:position__optimization__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="position__optimization__test_8h.html">position_optimization_test.h</a> <a href="position__optimization__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:position__optimization__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms for localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_ca5718251f4b73cea33729edc1e819e5.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_ca5718251f4b73cea33729edc1e819e5.js b/doc/doxygen/html/dir_ca5718251f4b73cea33729edc1e819e5.js new file mode 100644 index 0000000000000000000000000000000000000000..7b5113f354f9a47b768caaa385f4927de26a7688 --- /dev/null +++ b/doc/doxygen/html/dir_ca5718251f4b73cea33729edc1e819e5.js @@ -0,0 +1,5 @@ +var dir_ca5718251f4b73cea33729edc1e819e5 = +[ + [ "multipath_algo_own_norm_distr_test.h", "multipath__algo__own__norm__distr__test_8h.html", "multipath__algo__own__norm__distr__test_8h" ], + [ "position_optimization_test.h", "position__optimization__test_8h.html", "position__optimization__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html b/doc/doxygen/html/dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html new file mode 100644 index 0000000000000000000000000000000000000000..191fb5ed854dbfc76c88be9d1b416d8e39dadf24 --- /dev/null +++ b/doc/doxygen/html/dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html @@ -0,0 +1,111 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: localization Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html','');}); +/* @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="headertitle"> +<div class="title">localization Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +<tr class="memitem:dir_fdc176930829c278cabf5fddd85dbef8"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.js b/doc/doxygen/html/dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.js new file mode 100644 index 0000000000000000000000000000000000000000..9cfce07e96ea4151481d065f3dd71c577ce044ab --- /dev/null +++ b/doc/doxygen/html/dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.js @@ -0,0 +1,5 @@ +var dir_ca7b3fe3a5c68321cdadecc73cd5d1a0 = +[ + [ "position_algos", "dir_fdc176930829c278cabf5fddd85dbef8.html", "dir_fdc176930829c278cabf5fddd85dbef8" ], + [ "position_optimization", "dir_6b02df0bd0782e84dd3cd412549b0acc.html", "dir_6b02df0bd0782e84dd3cd412549b0acc" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_d17d23561bfec00359efc467b3662047.html b/doc/doxygen/html/dir_d17d23561bfec00359efc467b3662047.html new file mode 100644 index 0000000000000000000000000000000000000000..10d4bb687b2223a7cce4be1d980c8e266c559980 --- /dev/null +++ b/doc/doxygen/html/dir_d17d23561bfec00359efc467b3662047.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_d17d23561bfec00359efc467b3662047.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:pos__algos__common__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="pos__algos__common__test_8h.html">pos_algos_common_test.h</a> <a href="pos__algos__common__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:pos__algos__common__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of common algorithms of localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_eb8d9579dd996e15d1d43dfa981f1bc9.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_d17d23561bfec00359efc467b3662047.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_d17d23561bfec00359efc467b3662047.js b/doc/doxygen/html/dir_d17d23561bfec00359efc467b3662047.js new file mode 100644 index 0000000000000000000000000000000000000000..0ceb0a046b7244bf83834c05148f2d4b19c83122 --- /dev/null +++ b/doc/doxygen/html/dir_d17d23561bfec00359efc467b3662047.js @@ -0,0 +1,4 @@ +var dir_d17d23561bfec00359efc467b3662047 = +[ + [ "pos_algos_common_test.h", "pos__algos__common__test_8h.html", "pos__algos__common__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_d1d208ee40a2f911c6ff49bd490e63cd.html b/doc/doxygen/html/dir_d1d208ee40a2f911c6ff49bd490e63cd.html new file mode 100644 index 0000000000000000000000000000000000000000..402da03617e4cea751cd4115e7ed6f5e9d10d603 --- /dev/null +++ b/doc/doxygen/html/dir_d1d208ee40a2f911c6ff49bd490e63cd.html @@ -0,0 +1,118 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: basic_operations Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_d1d208ee40a2f911c6ff49bd490e63cd.html','');}); +/* @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="headertitle"> +<div class="title">basic_operations Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:matrix__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8c.html">matrix_test.c</a> <a href="matrix__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:matrix__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of matrix computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:vector__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="vector__test_8c.html">vector_test.c</a> <a href="vector__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:vector__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of vector computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_d1d208ee40a2f911c6ff49bd490e63cd.js b/doc/doxygen/html/dir_d1d208ee40a2f911c6ff49bd490e63cd.js new file mode 100644 index 0000000000000000000000000000000000000000..40a1a682ce88e69d303022ba3ef874545aeba8df --- /dev/null +++ b/doc/doxygen/html/dir_d1d208ee40a2f911c6ff49bd490e63cd.js @@ -0,0 +1,6 @@ +var dir_d1d208ee40a2f911c6ff49bd490e63cd = +[ + [ "include", "dir_29979c7df1e854056800300ae76a816f.html", "dir_29979c7df1e854056800300ae76a816f" ], + [ "matrix_test.c", "matrix__test_8c.html", "matrix__test_8c" ], + [ "vector_test.c", "vector__test_8c.html", "vector__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_d1e348b883576f9e259f3b5246ea82c0.html b/doc/doxygen/html/dir_d1e348b883576f9e259f3b5246ea82c0.html new file mode 100644 index 0000000000000000000000000000000000000000..5f02da14f558f9066162f5b06ba690ecab007277 --- /dev/null +++ b/doc/doxygen/html/dir_d1e348b883576f9e259f3b5246ea82c0.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_d1e348b883576f9e259f3b5246ea82c0.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:moore__penrose__pinv__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pinv__test_8h.html">moore_penrose_pinv_test.h</a> <a href="moore__penrose__pinv__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:moore__penrose__pinv__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Moore–Penrose algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__pinv__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pinv__test_8h.html">qr_pinv_test.h</a> <a href="qr__pinv__test_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__pinv__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the QR-based pseudo-inverse algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_d1e348b883576f9e259f3b5246ea82c0.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_d1e348b883576f9e259f3b5246ea82c0.js b/doc/doxygen/html/dir_d1e348b883576f9e259f3b5246ea82c0.js new file mode 100644 index 0000000000000000000000000000000000000000..adea97fbe3a3ffb47236abf4f7f680406d8fd876 --- /dev/null +++ b/doc/doxygen/html/dir_d1e348b883576f9e259f3b5246ea82c0.js @@ -0,0 +1,5 @@ +var dir_d1e348b883576f9e259f3b5246ea82c0 = +[ + [ "moore_penrose_pinv_test.h", "moore__penrose__pinv__test_8h.html", "moore__penrose__pinv__test_8h" ], + [ "qr_pinv_test.h", "qr__pinv__test_8h.html", "qr__pinv__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_d28a4824dc47e487b107a5db32ef43c4.html b/doc/doxygen/html/dir_d28a4824dc47e487b107a5db32ef43c4.html new file mode 100644 index 0000000000000000000000000000000000000000..555c848c4c1e332ea944276118dede055b9f2605 --- /dev/null +++ b/doc/doxygen/html/dir_d28a4824dc47e487b107a5db32ef43c4.html @@ -0,0 +1,105 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: examples Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_d28a4824dc47e487b107a5db32ef43c4.html','');}); +/* @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="headertitle"> +<div class="title">examples Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_d28a4824dc47e487b107a5db32ef43c4.js b/doc/doxygen/html/dir_d28a4824dc47e487b107a5db32ef43c4.js new file mode 100644 index 0000000000000000000000000000000000000000..7eb289fe83de81fd154bb6bfa105697537c5ff9a --- /dev/null +++ b/doc/doxygen/html/dir_d28a4824dc47e487b107a5db32ef43c4.js @@ -0,0 +1,6 @@ +var dir_d28a4824dc47e487b107a5db32ef43c4 = +[ + [ "linear_algebra", "dir_bb878afedbb83074fe4b7f6b65e06747.html", "dir_bb878afedbb83074fe4b7f6b65e06747" ], + [ "localization", "dir_801c9944761e72e374dff631ac46ee01.html", "dir_801c9944761e72e374dff631ac46ee01" ], + [ "non_linear_algebra", "dir_e8f51c8b3be94f3d6e82400eb763d9de.html", "dir_e8f51c8b3be94f3d6e82400eb763d9de" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html b/doc/doxygen/html/dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html new file mode 100644 index 0000000000000000000000000000000000000000..5d1265f8a97a8f2e2894b5d124ecc864b73631bc --- /dev/null +++ b/doc/doxygen/html/dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:combinatorics_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html">combinatorics.h</a> <a href="combinatorics_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:combinatorics_8h"><td class="mdescLeft"> </td><td class="mdescRight">Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:norm__dist__rnd__generator_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a> <a href="norm__dist__rnd__generator_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:norm__dist__rnd__generator_8h"><td class="mdescLeft"> </td><td class="mdescRight">Generating normally distributed random numbers. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:shell__sort_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8h.html">shell_sort.h</a> <a href="shell__sort_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:shell__sort_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Shell sort algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:utils_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html">utils.h</a> <a href="utils_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:utils_8h"><td class="mdescLeft"> </td><td class="mdescRight">Utilities for linear algebra. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_d5f52845b1ed776b4ff9f3c6f4225d4b.js b/doc/doxygen/html/dir_d5f52845b1ed776b4ff9f3c6f4225d4b.js new file mode 100644 index 0000000000000000000000000000000000000000..22ea01a5a8e9f3593cc93038ebf5257442064fc2 --- /dev/null +++ b/doc/doxygen/html/dir_d5f52845b1ed776b4ff9f3c6f4225d4b.js @@ -0,0 +1,7 @@ +var dir_d5f52845b1ed776b4ff9f3c6f4225d4b = +[ + [ "combinatorics.h", "combinatorics_8h.html", "combinatorics_8h" ], + [ "norm_dist_rnd_generator.h", "norm__dist__rnd__generator_8h.html", "norm__dist__rnd__generator_8h" ], + [ "shell_sort.h", "shell__sort_8h.html", "shell__sort_8h" ], + [ "utils.h", "utils_8h.html", "utils_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_e663cf436b7a4f65fdac82a5d77479a9.html b/doc/doxygen/html/dir_e663cf436b7a4f65fdac82a5d77479a9.html new file mode 100644 index 0000000000000000000000000000000000000000..c9628758bd5b45cc85111e15397eac36b83e30d3 --- /dev/null +++ b/doc/doxygen/html/dir_e663cf436b7a4f65fdac82a5d77479a9.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_e663cf436b7a4f65fdac82a5d77479a9.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:matrix_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html">matrix.h</a> <a href="matrix_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:matrix_8h"><td class="mdescLeft"> </td><td class="mdescRight">Matrix computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:vector_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html">vector.h</a> <a href="vector_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:vector_8h"><td class="mdescLeft"> </td><td class="mdescRight">Vector computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_e663cf436b7a4f65fdac82a5d77479a9.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_e663cf436b7a4f65fdac82a5d77479a9.js b/doc/doxygen/html/dir_e663cf436b7a4f65fdac82a5d77479a9.js new file mode 100644 index 0000000000000000000000000000000000000000..25f2bd074e9fede6a144731d1cc75b5ddadc5b21 --- /dev/null +++ b/doc/doxygen/html/dir_e663cf436b7a4f65fdac82a5d77479a9.js @@ -0,0 +1,5 @@ +var dir_e663cf436b7a4f65fdac82a5d77479a9 = +[ + [ "matrix.h", "matrix_8h.html", "matrix_8h" ], + [ "vector.h", "vector_8h.html", "vector_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_e8f51c8b3be94f3d6e82400eb763d9de.html b/doc/doxygen/html/dir_e8f51c8b3be94f3d6e82400eb763d9de.html new file mode 100644 index 0000000000000000000000000000000000000000..96c24dcb2022eb3b3dfd19093e4a06c16905449f --- /dev/null +++ b/doc/doxygen/html/dir_e8f51c8b3be94f3d6e82400eb763d9de.html @@ -0,0 +1,109 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: non_linear_algebra Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_e8f51c8b3be94f3d6e82400eb763d9de.html','');}); +/* @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="headertitle"> +<div class="title">non_linear_algebra Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_e8f51c8b3be94f3d6e82400eb763d9de.js b/doc/doxygen/html/dir_e8f51c8b3be94f3d6e82400eb763d9de.js new file mode 100644 index 0000000000000000000000000000000000000000..a4bb74f60097be1086868d722c599528b4897718 --- /dev/null +++ b/doc/doxygen/html/dir_e8f51c8b3be94f3d6e82400eb763d9de.js @@ -0,0 +1,5 @@ +var dir_e8f51c8b3be94f3d6e82400eb763d9de = +[ + [ "optimization", "dir_639c02752b2f8f0dbd6bec97ff3b969d.html", "dir_639c02752b2f8f0dbd6bec97ff3b969d" ], + [ "solve_non_linear_equations", "dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html", "dir_c7944ce5d3d7fbd5a70a851e7cbdd521" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_eb8d9579dd996e15d1d43dfa981f1bc9.html b/doc/doxygen/html/dir_eb8d9579dd996e15d1d43dfa981f1bc9.html new file mode 100644 index 0000000000000000000000000000000000000000..f84be0250d9392f6ca7d900d6b24a3118ce66c49 --- /dev/null +++ b/doc/doxygen/html/dir_eb8d9579dd996e15d1d43dfa981f1bc9.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pos_algos_common Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_eb8d9579dd996e15d1d43dfa981f1bc9.html','');}); +/* @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="headertitle"> +<div class="title">pos_algos_common Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:pos__algos__common__test_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="pos__algos__common__test_8c.html">pos_algos_common_test.c</a> <a href="pos__algos__common__test_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:pos__algos__common__test_8c"><td class="mdescLeft"> </td><td class="mdescRight">Examples of common algorithms of localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_eb8d9579dd996e15d1d43dfa981f1bc9.html">pos_algos_common</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_eb8d9579dd996e15d1d43dfa981f1bc9.js b/doc/doxygen/html/dir_eb8d9579dd996e15d1d43dfa981f1bc9.js new file mode 100644 index 0000000000000000000000000000000000000000..c684f35fc3f469932c0eeca7cd674c50ef8552a2 --- /dev/null +++ b/doc/doxygen/html/dir_eb8d9579dd996e15d1d43dfa981f1bc9.js @@ -0,0 +1,5 @@ +var dir_eb8d9579dd996e15d1d43dfa981f1bc9 = +[ + [ "include", "dir_d17d23561bfec00359efc467b3662047.html", "dir_d17d23561bfec00359efc467b3662047" ], + [ "pos_algos_common_test.c", "pos__algos__common__test_8c.html", "pos__algos__common__test_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_f6d35df7bd2aa2399e29232b65f55b23.html b/doc/doxygen/html/dir_f6d35df7bd2aa2399e29232b65f55b23.html new file mode 100644 index 0000000000000000000000000000000000000000..11c9b445cbad30c01daf90e7a0bf7941ed61511d --- /dev/null +++ b/doc/doxygen/html/dir_f6d35df7bd2aa2399e29232b65f55b23.html @@ -0,0 +1,115 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_linear_equations Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_f6d35df7bd2aa2399e29232b65f55b23.html','');}); +/* @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="headertitle"> +<div class="title">solve_linear_equations Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:solve_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8c.html">solve.c</a> <a href="solve_8c_source.html">[code]</a></td></tr> +<tr class="memdesc:solve_8c"><td class="mdescLeft"> </td><td class="mdescRight">Enables to solve systems of linear equations Ax = b for x. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_f6d35df7bd2aa2399e29232b65f55b23.html">solve_linear_equations</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_f6d35df7bd2aa2399e29232b65f55b23.js b/doc/doxygen/html/dir_f6d35df7bd2aa2399e29232b65f55b23.js new file mode 100644 index 0000000000000000000000000000000000000000..066bfe6c0040ca3b53d40ee8b7754ebcde199514 --- /dev/null +++ b/doc/doxygen/html/dir_f6d35df7bd2aa2399e29232b65f55b23.js @@ -0,0 +1,5 @@ +var dir_f6d35df7bd2aa2399e29232b65f55b23 = +[ + [ "include", "dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html", "dir_7e2fea8632e67e4b5ff2ab6ffb8e1870" ], + [ "solve.c", "solve_8c.html", "solve_8c" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html b/doc/doxygen/html/dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html new file mode 100644 index 0000000000000000000000000000000000000000..accc92de44fc82192558349f04b0decebd6132c2 --- /dev/null +++ b/doc/doxygen/html/dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html @@ -0,0 +1,124 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: include Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html','');}); +/* @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="headertitle"> +<div class="title">include Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:lu__decomp_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp_8h.html">lu_decomp.h</a> <a href="lu__decomp_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:lu__decomp_8h"><td class="mdescLeft"> </td><td class="mdescRight">Computes the LU decomposition of the matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__common_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8h.html">qr_common.h</a> <a href="qr__common_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__common_8h"><td class="mdescLeft"> </td><td class="mdescRight">Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__givens_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__givens_8h.html">qr_givens.h</a> <a href="qr__givens_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__givens_8h"><td class="mdescLeft"> </td><td class="mdescRight">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__householder_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__householder_8h.html">qr_householder.h</a> <a href="qr__householder_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:qr__householder_8h"><td class="mdescLeft"> </td><td class="mdescRight">Householder algorithm for the QR-decomposition. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:svd_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html">svd.h</a> <a href="svd_8h_source.html">[code]</a></td></tr> +<tr class="memdesc:svd_8h"><td class="mdescLeft"> </td><td class="mdescRight">Algorithm for the Singular Value Decomposition (SVD). <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.js b/doc/doxygen/html/dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.js new file mode 100644 index 0000000000000000000000000000000000000000..cfb455499164dc07465d6cc92f9ed36d11f4dfd5 --- /dev/null +++ b/doc/doxygen/html/dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.js @@ -0,0 +1,8 @@ +var dir_f9311e7dae5ba7dbc6ad9f75e6d9537e = +[ + [ "lu_decomp.h", "lu__decomp_8h.html", "lu__decomp_8h" ], + [ "qr_common.h", "qr__common_8h.html", "qr__common_8h" ], + [ "qr_givens.h", "qr__givens_8h.html", "qr__givens_8h" ], + [ "qr_householder.h", "qr__householder_8h.html", "qr__householder_8h" ], + [ "svd.h", "svd_8h.html", "svd_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_fd0747fb67b11559bfa7954b6401be5e.html b/doc/doxygen/html/dir_fd0747fb67b11559bfa7954b6401be5e.html new file mode 100644 index 0000000000000000000000000000000000000000..874acd5091f6499c016144051d0754d9d401f702 --- /dev/null +++ b/doc/doxygen/html/dir_fd0747fb67b11559bfa7954b6401be5e.html @@ -0,0 +1,109 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_algos Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_fd0747fb67b11559bfa7954b6401be5e.html','');}); +/* @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="headertitle"> +<div class="title">position_algos Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_fd0747fb67b11559bfa7954b6401be5e.js b/doc/doxygen/html/dir_fd0747fb67b11559bfa7954b6401be5e.js new file mode 100644 index 0000000000000000000000000000000000000000..78a4094dd94713317a52f036f577a958069c2d30 --- /dev/null +++ b/doc/doxygen/html/dir_fd0747fb67b11559bfa7954b6401be5e.js @@ -0,0 +1,6 @@ +var dir_fd0747fb67b11559bfa7954b6401be5e = +[ + [ "distance_based", "dir_9a0e52744106406adeca8f277e27cc62.html", "dir_9a0e52744106406adeca8f277e27cc62" ], + [ "magnetic_based", "dir_20def5fb23a030baaea06d7c00c73368.html", "dir_20def5fb23a030baaea06d7c00c73368" ], + [ "pos_algos_common", "dir_eb8d9579dd996e15d1d43dfa981f1bc9.html", "dir_eb8d9579dd996e15d1d43dfa981f1bc9" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dir_fdc176930829c278cabf5fddd85dbef8.html b/doc/doxygen/html/dir_fdc176930829c278cabf5fddd85dbef8.html new file mode 100644 index 0000000000000000000000000000000000000000..c8b560d1b16755a8f7e53a7f086d132616aaea44 --- /dev/null +++ b/doc/doxygen/html/dir_fdc176930829c278cabf5fddd85dbef8.html @@ -0,0 +1,109 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_algos Directory 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dir_fdc176930829c278cabf5fddd85dbef8.html','');}); +/* @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="headertitle"> +<div class="title">position_algos Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dir_fdc176930829c278cabf5fddd85dbef8.js b/doc/doxygen/html/dir_fdc176930829c278cabf5fddd85dbef8.js new file mode 100644 index 0000000000000000000000000000000000000000..6340bb7d9fbf9ee91aa2aa82e73a92608abb3d19 --- /dev/null +++ b/doc/doxygen/html/dir_fdc176930829c278cabf5fddd85dbef8.js @@ -0,0 +1,6 @@ +var dir_fdc176930829c278cabf5fddd85dbef8 = +[ + [ "distance_based", "dir_143dcbc7e3ad8f423ba36defd23abfa7.html", "dir_143dcbc7e3ad8f423ba36defd23abfa7" ], + [ "magnetic_based", "dir_9f6bed594baf424ccac6ba79953e888e.html", "dir_9f6bed594baf424ccac6ba79953e888e" ], + [ "pos_algos_common", "dir_8b81d7492c96188faba0bade87ee2c10.html", "dir_8b81d7492c96188faba0bade87ee2c10" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dist__based__fi_8c.html b/doc/doxygen/html/dist__based__fi_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..1cbed195e28819cee96150f7416a2a16a1696c07 --- /dev/null +++ b/doc/doxygen/html/dist__based__fi_8c.html @@ -0,0 +1,245 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_fi.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__fi_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">dist_based_fi.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Error function of distance-based localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="dist__based__fi_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a67e1cf0904bc0be1258e5fb4cb292a9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ri)</td></tr> +<tr class="memdesc:a67e1cf0904bc0be1258e5fb4cb292a9a"><td class="mdescLeft"> </td><td class="mdescRight">Defines the error function of a distance-based localization system. <a href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">More...</a><br /></td></tr> +<tr class="separator:a67e1cf0904bc0be1258e5fb4cb292a9a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2a1d8806de5f7f5131be1fbd706c17fa"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[])</td></tr> +<tr class="memdesc:a2a1d8806de5f7f5131be1fbd706c17fa"><td class="mdescLeft"> </td><td class="mdescRight">Defines the error function of a distance-based localization system. <a href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">More...</a><br /></td></tr> +<tr class="separator:a2a1d8806de5f7f5131be1fbd706c17fa"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Error function of distance-based localization systems. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="dist__based__fi_8c_source.html">dist_based_fi.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a2a1d8806de5f7f5131be1fbd706c17fa"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2a1d8806de5f7f5131be1fbd706c17fa">◆ </a></span>dist_based_f_i()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_f_i </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_mat</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>d_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines the error function of a distance-based localization system. </p> +<p>This error function is related to multiple reference stations.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>Number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_mat[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">d_vec[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">f_vec[]</td><td>errors related to reference stations and destined position. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__fi_8c_source.html#l00047">47</a> of file <a class="el" href="dist__based__fi_8c_source.html">dist_based_fi.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a67e1cf0904bc0be1258e5fb4cb292a9a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a67e1cf0904bc0be1258e5fb4cb292a9a">◆ </a></span>dist_based_fi()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_based_fi </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ri</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines the error function of a distance-based localization system. </p> +<p>This error function is related to one reference station.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point[]</td><td>three-dimensional coordinates of a reference station. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ri</td><td>distance to a reference station.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the error related to a reference station and destined position. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__fi_8c_source.html#l00026">26</a> of file <a class="el" href="dist__based__fi_8c_source.html">dist_based_fi.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian_get_JTf()</a>, and <a class="el" href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian_get_JTJ()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dist__based__fi_8c.html">dist_based_fi.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__fi_8c.js b/doc/doxygen/html/dist__based__fi_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..4b2555bb9c3b5cdd86b556cb76f749c74264b536 --- /dev/null +++ b/doc/doxygen/html/dist__based__fi_8c.js @@ -0,0 +1,5 @@ +var dist__based__fi_8c = +[ + [ "dist_based_f_i", "dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa", null ], + [ "dist_based_fi", "dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dist__based__fi_8c_source.html b/doc/doxygen/html/dist__based__fi_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..64f165f670dbcdc2766880dd9dde9c4eec61ff60 --- /dev/null +++ b/doc/doxygen/html/dist__based__fi_8c_source.html @@ -0,0 +1,170 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_fi.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__fi_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">dist_based_fi.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="dist__based__fi_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a"> 26</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ri)</div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_i =</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  sqrt(</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  (point[0] - ref_point[0])</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  * (point[0]</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  - ref_point[0])</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  +</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  (point[1] - ref_point[1])</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  * (point[1]</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  - ref_point[1])</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  +</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  (point[2] - ref_point[2])</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  * (point[2]</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  - ref_point[2])</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  ) - ri;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> f_i;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div> +<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa"> 47</a></span> <span class="keywordtype">void</span> <a class="code" href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[])</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  uint8_t i;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">for</span> (i = 0; i < ref_points_num; i++) {</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  f_vec[i] =</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  sqrt(</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  (point[0] - ref_point_mat[i][0])</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  * (point[0]</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  - ref_point_mat[i][0])</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  +</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  (point[1]</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  - ref_point_mat[i][1])</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  * (point[1]</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  - ref_point_mat[i][1])</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  +</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  (point[2]</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  - ref_point_mat[i][2])</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  * (point[2]</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  - ref_point_mat[i][2])</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  )</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  - d_vec[i];</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="adist__based__fi_8c_html_a2a1d8806de5f7f5131be1fbd706c17fa"><div class="ttname"><a href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a></div><div class="ttdeci">void dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[])</div><div class="ttdoc">Defines the error function of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__fi_8c_source.html#l00047">dist_based_fi.c:47</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="adist__based__fi_8c_html_a67e1cf0904bc0be1258e5fb4cb292a9a"><div class="ttname"><a href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a></div><div class="ttdeci">matrix_t dist_based_fi(matrix_t point[3], matrix_t ref_point[3], matrix_t ri)</div><div class="ttdoc">Defines the error function of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__fi_8c_source.html#l00026">dist_based_fi.c:26</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dist__based__fi_8c.html">dist_based_fi.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__fi_8h.html b/doc/doxygen/html/dist__based__fi_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..e4597ffe9572c464f56fe3679b733520ab66a7b7 --- /dev/null +++ b/doc/doxygen/html/dist__based__fi_8h.html @@ -0,0 +1,244 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_fi.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__fi_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">dist_based_fi.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__distance__based.html">DISTANCE_BASED</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Error function of distance-based localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="dist__based__fi_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a67e1cf0904bc0be1258e5fb4cb292a9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ri)</td></tr> +<tr class="memdesc:a67e1cf0904bc0be1258e5fb4cb292a9a"><td class="mdescLeft"> </td><td class="mdescRight">Defines the error function of a distance-based localization system. <a href="dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a">More...</a><br /></td></tr> +<tr class="separator:a67e1cf0904bc0be1258e5fb4cb292a9a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2a1d8806de5f7f5131be1fbd706c17fa"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[])</td></tr> +<tr class="memdesc:a2a1d8806de5f7f5131be1fbd706c17fa"><td class="mdescLeft"> </td><td class="mdescRight">Defines the error function of a distance-based localization system. <a href="dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa">More...</a><br /></td></tr> +<tr class="separator:a2a1d8806de5f7f5131be1fbd706c17fa"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Error function of distance-based localization systems. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="dist__based__fi_8h_source.html">dist_based_fi.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a2a1d8806de5f7f5131be1fbd706c17fa"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2a1d8806de5f7f5131be1fbd706c17fa">◆ </a></span>dist_based_f_i()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_f_i </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_mat</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>d_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines the error function of a distance-based localization system. </p> +<p>This error function is related to multiple reference stations.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>Number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_mat[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">d_vec[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">f_vec[]</td><td>errors related to reference stations and destined position. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__fi_8c_source.html#l00047">47</a> of file <a class="el" href="dist__based__fi_8c_source.html">dist_based_fi.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a67e1cf0904bc0be1258e5fb4cb292a9a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a67e1cf0904bc0be1258e5fb4cb292a9a">◆ </a></span>dist_based_fi()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_based_fi </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ri</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines the error function of a distance-based localization system. </p> +<p>This error function is related to one reference station.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point[]</td><td>three-dimensional coordinates of a reference station. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ri</td><td>distance to a reference station.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the error related to a reference station and destined position. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__fi_8c_source.html#l00026">26</a> of file <a class="el" href="dist__based__fi_8c_source.html">dist_based_fi.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian_get_JTf()</a>, and <a class="el" href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian_get_JTJ()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_6ba7a16e4c50d34812a44006ed482e9d.html">include</a></li><li class="navelem"><a class="el" href="dist__based__fi_8h.html">dist_based_fi.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__fi_8h.js b/doc/doxygen/html/dist__based__fi_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..b8fec3a32cd3421b8a21047863ba601fe987a7cf --- /dev/null +++ b/doc/doxygen/html/dist__based__fi_8h.js @@ -0,0 +1,5 @@ +var dist__based__fi_8h = +[ + [ "dist_based_f_i", "dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa", null ], + [ "dist_based_fi", "dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dist__based__fi_8h_source.html b/doc/doxygen/html/dist__based__fi_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..b2dbd43e9b7448eada63eb8dc92ef97ff8d8e1b7 --- /dev/null +++ b/doc/doxygen/html/dist__based__fi_8h_source.html @@ -0,0 +1,131 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_fi.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__fi_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">dist_based_fi.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="dist__based__fi_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef DIST_BASED_FI_H_</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define DIST_BASED_FI_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ri);</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> <a class="code" href="dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif </span><span class="comment">/* DIST_BASED_FI_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="adist__based__fi_8h_html_a2a1d8806de5f7f5131be1fbd706c17fa"><div class="ttname"><a href="dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a></div><div class="ttdeci">void dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[])</div><div class="ttdoc">Defines the error function of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__fi_8c_source.html#l00047">dist_based_fi.c:47</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="adist__based__fi_8h_html_a67e1cf0904bc0be1258e5fb4cb292a9a"><div class="ttname"><a href="dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a></div><div class="ttdeci">matrix_t dist_based_fi(matrix_t point[3], matrix_t ref_point[3], matrix_t ri)</div><div class="ttdoc">Defines the error function of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__fi_8c_source.html#l00026">dist_based_fi.c:26</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_6ba7a16e4c50d34812a44006ed482e9d.html">include</a></li><li class="navelem"><a class="el" href="dist__based__fi_8h.html">dist_based_fi.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__jacobian_8c.html b/doc/doxygen/html/dist__based__jacobian_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..47a1619afc6c63bf6f6f48edc6c51c96c68ece72 --- /dev/null +++ b/doc/doxygen/html/dist__based__jacobian_8c.html @@ -0,0 +1,388 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_jacobian.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__jacobian_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">dist_based_jacobian.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Jacobian function of distance-based localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__fi_8h_source.html">dist_based_fi.h</a>"</code><br /> +</div> +<p><a href="dist__based__jacobian_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a769d35615d26a67b97bfd40b5d26a95c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> JTf[3])</td></tr> +<tr class="memdesc:a769d35615d26a67b97bfd40b5d26a95c"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of distance-based localization system. <a href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">More...</a><br /></td></tr> +<tr class="separator:a769d35615d26a67b97bfd40b5d26a95c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a59b1a3323c2896ff28f71135af0204a2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</td></tr> +<tr class="memdesc:a59b1a3323c2896ff28f71135af0204a2"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of distance-based localization system. <a href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">More...</a><br /></td></tr> +<tr class="separator:a59b1a3323c2896ff28f71135af0204a2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8f900ff7d66d260d3b2e3e0ef2757ccc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian_get_J</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_points_num][3])</td></tr> +<tr class="memdesc:a8f900ff7d66d260d3b2e3e0ef2757ccc"><td class="mdescLeft"> </td><td class="mdescRight">Computes the Jacobian matrix of distance-based localization system. <a href="dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">More...</a><br /></td></tr> +<tr class="separator:a8f900ff7d66d260d3b2e3e0ef2757ccc"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a04231d3d216ce6814eb3e183f7a2e408"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</td></tr> +<tr class="memdesc:a04231d3d216ce6814eb3e183f7a2e408"><td class="mdescLeft"> </td><td class="mdescRight">Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of distance-based localization system. <a href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">More...</a><br /></td></tr> +<tr class="separator:a04231d3d216ce6814eb3e183f7a2e408"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Jacobian function of distance-based localization systems. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a8f900ff7d66d260d3b2e3e0ef2757ccc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8f900ff7d66d260d3b2e3e0ef2757ccc">◆ </a></span>dist_based_jacobian_get_J()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_J </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[ref_points_num][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the Jacobian matrix of distance-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">J[][]</td><td>includes the Jacobian Matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00100">100</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a04231d3d216ce6814eb3e183f7a2e408"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a04231d3d216ce6814eb3e183f7a2e408">◆ </a></span>dist_based_jacobian_get_J_mul_s()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_J_mul_s </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>s</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J_s</em>[ref_points_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of distance-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">s[]</td><td>correction vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">J_s[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00132">132</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a769d35615d26a67b97bfd40b5d26a95c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a769d35615d26a67b97bfd40b5d26a95c">◆ </a></span>dist_based_jacobian_get_JTf()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_JTf </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>JTf</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of distance-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_vec[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">JTf[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00028">28</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="dist__based__fi_8c_source.html#l00026">dist_based_fi()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="vector_8c_source.html#l00032">vector_clear()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a59b1a3323c2896ff28f71135af0204a2"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a59b1a3323c2896ff28f71135af0204a2">◆ </a></span>dist_based_jacobian_get_JTJ()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_JTJ </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[3][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of distance-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_vec[][]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">JTJ[][]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00056">56</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="dist__based__fi_8c_source.html#l00026">dist_based_fi()</a>, <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dist__based__jacobian_8c.html">dist_based_jacobian.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__jacobian_8c.js b/doc/doxygen/html/dist__based__jacobian_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..562fccdcf14e6e8a92a26ef1a459295a83d34c12 --- /dev/null +++ b/doc/doxygen/html/dist__based__jacobian_8c.js @@ -0,0 +1,7 @@ +var dist__based__jacobian_8c = +[ + [ "dist_based_jacobian_get_J", "dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc", null ], + [ "dist_based_jacobian_get_J_mul_s", "dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408", null ], + [ "dist_based_jacobian_get_JTf", "dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c", null ], + [ "dist_based_jacobian_get_JTJ", "dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dist__based__jacobian_8c_source.html b/doc/doxygen/html/dist__based__jacobian_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..f0e691ed49dc77690ed6523f0db402452a751490 --- /dev/null +++ b/doc/doxygen/html/dist__based__jacobian_8c_source.html @@ -0,0 +1,271 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_jacobian.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__jacobian_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">dist_based_jacobian.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="dist__based__jacobian_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="dist__based__fi_8h.html">dist_based_fi.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c"> 28</a></span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num],</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> JTf[3])</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t i;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_i = 0.0;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> denom = 0.0;</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(3, JTf);</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">for</span> (i = 0; i < ref_points_num; i++) {</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  f_i =</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a>(point,</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  (<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> *)&ref_point_matrix[i],</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  dist_vec[i]);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  denom = f_i + dist_vec[i];</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">if</span> (denom != 0) {</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  JTf[0] += (point[0] - ref_point_matrix[i][0]) * f_i</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  / denom;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  JTf[1] += (point[1] - ref_point_matrix[i][1]) * f_i</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  / denom;</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  JTf[2] += (point[2] - ref_point_matrix[i][2]) * f_i</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  / denom;</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2"> 56</a></span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  uint8_t i;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> denom = 0.0;</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_i = 0.0;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(3, 3, JTJ);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">for</span> (i = 0; i < ref_points_num; i++) {</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  f_i =</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a>(point,</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  (<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> *)&ref_point_matrix[i],</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  dist_vec[i]) + dist_vec[i];</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  denom = f_i * f_i;</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span> (denom != 0) {</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  JTJ[0][0] += (point[0] - ref_point_matrix[i][0]) *</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  (point[0] - ref_point_matrix[i][0])</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  / denom;</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  JTJ[1][1] += (point[1] - ref_point_matrix[i][1]) *</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  (point[1] - ref_point_matrix[i][1])</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  / denom;</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  JTJ[2][2] += (point[2] - ref_point_matrix[i][2]) *</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  (point[2] - ref_point_matrix[i][2])</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  / denom;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  JTJ[0][1] += (point[0] - ref_point_matrix[i][0]) *</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  (point[1] - ref_point_matrix[i][1])</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  / denom;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  JTJ[0][2] += (point[0] - ref_point_matrix[i][0]) *</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  (point[2] - ref_point_matrix[i][2])</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  / denom;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  JTJ[1][2] += (point[1] - ref_point_matrix[i][1]) *</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  (point[2] - ref_point_matrix[i][2])</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  / denom;</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  JTJ[1][0] = JTJ[0][1];</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  JTJ[2][0] = JTJ[0][2];</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  JTJ[2][1] = JTJ[1][2];</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div> +<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc"> 100</a></span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian_get_J</a>(uint8_t ref_points_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_points_num][3])</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> {</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  uint8_t i;</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> denom;</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">for</span> (i = 0; i < ref_points_num; i++) {</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  denom =</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  sqrt(</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  pow(</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  point[0]</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  - ref_point_matrix[i][0],</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  2)</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  +</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  pow(</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  point[1]</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  - ref_point_matrix[i][1],</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  2)</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  + pow(</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  point[2]</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  - ref_point_matrix[i][2],</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  2));</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span> (denom != 0) {</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  J[i][0] = (point[0] - ref_point_matrix[i][0]) / denom;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  J[i][1] = (point[1] - ref_point_matrix[i][1]) / denom;</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  J[i][2] = (point[2] - ref_point_matrix[i][2]) / denom;</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">//compute: J(x)*s</span></div> +<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408"> 132</a></span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> {</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  uint8_t i;</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> denom;</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> j_i_0 = 0;</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> j_i_1 = 0;</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> j_i_2 = 0;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">for</span> (i = 0; i < ref_points_num; i++) {</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  denom =</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  sqrt(</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  pow(</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  point[0]</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  - ref_point_matrix[i][0],</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  2)</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  +</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  pow(</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  point[1]</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  - ref_point_matrix[i][1],</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  2)</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  + pow(</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  point[2]</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  - ref_point_matrix[i][2],</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  2));</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (denom != 0) {</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  j_i_0 = (point[0] - ref_point_matrix[i][0]) / denom;</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  j_i_1 = (point[1] - ref_point_matrix[i][1]) / denom;</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  j_i_2 = (point[2] - ref_point_matrix[i][2]) / denom;</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  J_s[i] = j_i_0 * s[0] + j_i_1 * s[1] + j_i_2 * s[2];</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_a0e06b2cfb86340e88be7b1219bef0ce3"><div class="ttname"><a href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a></div><div class="ttdeci">void matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00046">matrix.c:46</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a04231d3d216ce6814eb3e183f7a2e408"><div class="ttname"><a href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a></div><div class="ttdeci">void dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])</div><div class="ttdoc">Computes of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00132">dist_based_jacobian.c:132</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a59b1a3323c2896ff28f71135af0204a2"><div class="ttname"><a href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a></div><div class="ttdeci">void dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian.c:56</a></div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a8f900ff7d66d260d3b2e3e0ef2757ccc"><div class="ttname"><a href="dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian_get_J</a></div><div class="ttdeci">void dist_based_jacobian_get_J(uint8_t ref_points_num, matrix_t point[3], matrix_t ref_point_matrix[ref_points_num][3], matrix_t J[ref_points_num][3])</div><div class="ttdoc">Computes the Jacobian matrix of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00100">dist_based_jacobian.c:100</a></div></div> +<div class="ttc" id="adist__based__fi_8h_html"><div class="ttname"><a href="dist__based__fi_8h.html">dist_based_fi.h</a></div><div class="ttdoc">Error function of distance-based localization systems.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="adist__based__fi_8c_html_a67e1cf0904bc0be1258e5fb4cb292a9a"><div class="ttname"><a href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi</a></div><div class="ttdeci">matrix_t dist_based_fi(matrix_t point[3], matrix_t ref_point[3], matrix_t ri)</div><div class="ttdoc">Defines the error function of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__fi_8c_source.html#l00026">dist_based_fi.c:26</a></div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a769d35615d26a67b97bfd40b5d26a95c"><div class="ttname"><a href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a></div><div class="ttdeci">void dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian.c:28</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dist__based__jacobian_8c.html">dist_based_jacobian.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__jacobian_8h.html b/doc/doxygen/html/dist__based__jacobian_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..4a8d0d20d4b8fefb9dcdd02b19e57d2fa01c2685 --- /dev/null +++ b/doc/doxygen/html/dist__based__jacobian_8h.html @@ -0,0 +1,386 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_jacobian.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__jacobian_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">dist_based_jacobian.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__distance__based.html">DISTANCE_BASED</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Jacobian function of distance-based localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="dist__based__jacobian_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a769d35615d26a67b97bfd40b5d26a95c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> JTf[3])</td></tr> +<tr class="memdesc:a769d35615d26a67b97bfd40b5d26a95c"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of distance-based localization system. <a href="dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c">More...</a><br /></td></tr> +<tr class="separator:a769d35615d26a67b97bfd40b5d26a95c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a59b1a3323c2896ff28f71135af0204a2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</td></tr> +<tr class="memdesc:a59b1a3323c2896ff28f71135af0204a2"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of distance-based localization system. <a href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">More...</a><br /></td></tr> +<tr class="separator:a59b1a3323c2896ff28f71135af0204a2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a04231d3d216ce6814eb3e183f7a2e408"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</td></tr> +<tr class="memdesc:a04231d3d216ce6814eb3e183f7a2e408"><td class="mdescLeft"> </td><td class="mdescRight">Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of distance-based localization system. <a href="dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408">More...</a><br /></td></tr> +<tr class="separator:a04231d3d216ce6814eb3e183f7a2e408"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8f900ff7d66d260d3b2e3e0ef2757ccc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian_get_J</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_points_num][3])</td></tr> +<tr class="memdesc:a8f900ff7d66d260d3b2e3e0ef2757ccc"><td class="mdescLeft"> </td><td class="mdescRight">Computes the Jacobian matrix of distance-based localization system. <a href="dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">More...</a><br /></td></tr> +<tr class="separator:a8f900ff7d66d260d3b2e3e0ef2757ccc"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Jacobian function of distance-based localization systems. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="dist__based__jacobian_8h_source.html">dist_based_jacobian.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a8f900ff7d66d260d3b2e3e0ef2757ccc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8f900ff7d66d260d3b2e3e0ef2757ccc">◆ </a></span>dist_based_jacobian_get_J()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_J </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[ref_points_num][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the Jacobian matrix of distance-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">J[][]</td><td>includes the Jacobian Matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00100">100</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a04231d3d216ce6814eb3e183f7a2e408"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a04231d3d216ce6814eb3e183f7a2e408">◆ </a></span>dist_based_jacobian_get_J_mul_s()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_J_mul_s </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>s</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J_s</em>[ref_points_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of distance-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">s[]</td><td>correction vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">J_s[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00132">132</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a769d35615d26a67b97bfd40b5d26a95c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a769d35615d26a67b97bfd40b5d26a95c">◆ </a></span>dist_based_jacobian_get_JTf()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_JTf </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>JTf</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of distance-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_vec[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">JTf[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00028">28</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="dist__based__fi_8c_source.html#l00026">dist_based_fi()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="vector_8c_source.html#l00032">vector_clear()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a59b1a3323c2896ff28f71135af0204a2"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a59b1a3323c2896ff28f71135af0204a2">◆ </a></span>dist_based_jacobian_get_JTJ()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_jacobian_get_JTJ </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[3][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of distance-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_vec[][]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">JTJ[][]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__jacobian_8c_source.html#l00056">56</a> of file <a class="el" href="dist__based__jacobian_8c_source.html">dist_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="dist__based__fi_8c_source.html#l00026">dist_based_fi()</a>, <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_6ba7a16e4c50d34812a44006ed482e9d.html">include</a></li><li class="navelem"><a class="el" href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__jacobian_8h.js b/doc/doxygen/html/dist__based__jacobian_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..cc5109e0d3767cbfc7668789bb79205408ba2ab7 --- /dev/null +++ b/doc/doxygen/html/dist__based__jacobian_8h.js @@ -0,0 +1,7 @@ +var dist__based__jacobian_8h = +[ + [ "dist_based_jacobian_get_J", "dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc", null ], + [ "dist_based_jacobian_get_J_mul_s", "dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408", null ], + [ "dist_based_jacobian_get_JTf", "dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c", null ], + [ "dist_based_jacobian_get_JTJ", "dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dist__based__jacobian_8h_source.html b/doc/doxygen/html/dist__based__jacobian_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..dd7b75fa2ebaec8c2f1b886d82e6cce5714b1466 --- /dev/null +++ b/doc/doxygen/html/dist__based__jacobian_8h_source.html @@ -0,0 +1,149 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_jacobian.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__jacobian_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">dist_based_jacobian.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="dist__based__jacobian_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef DIST_BASED_JACOBIAN_H_</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define DIST_BASED_JACOBIAN_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num],</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> JTf[3]);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_vec[ref_points_num],</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">void</span> <a class="code" href="dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian_get_J</a>(uint8_t ref_points_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_points_num][3]);</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#endif </span><span class="comment">/* DIST_BASED_JACOBIAN_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="adist__based__jacobian_8h_html_a8f900ff7d66d260d3b2e3e0ef2757ccc"><div class="ttname"><a href="dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian_get_J</a></div><div class="ttdeci">void dist_based_jacobian_get_J(uint8_t ref_points_num, matrix_t point[3], matrix_t ref_point_matrix[ref_points_num][3], matrix_t J[ref_points_num][3])</div><div class="ttdoc">Computes the Jacobian matrix of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00100">dist_based_jacobian.c:100</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adist__based__jacobian_8h_html_a59b1a3323c2896ff28f71135af0204a2"><div class="ttname"><a href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a></div><div class="ttdeci">void dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian.c:56</a></div></div> +<div class="ttc" id="adist__based__jacobian_8h_html_a769d35615d26a67b97bfd40b5d26a95c"><div class="ttname"><a href="dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a></div><div class="ttdeci">void dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian.c:28</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="adist__based__jacobian_8h_html_a04231d3d216ce6814eb3e183f7a2e408"><div class="ttname"><a href="dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a></div><div class="ttdeci">void dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])</div><div class="ttdoc">Computes of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00132">dist_based_jacobian.c:132</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_6ba7a16e4c50d34812a44006ed482e9d.html">include</a></li><li class="navelem"><a class="el" href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__position_8c.html b/doc/doxygen/html/dist__based__position_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..9c3e10ad539de2e5a4d081467844b1a6b89124f7 --- /dev/null +++ b/doc/doxygen/html/dist__based__position_8c.html @@ -0,0 +1,227 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_position.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__position_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">dist_based_position.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Functions of distance-based localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="dist__based__position_8h_source.html">dist_based_position.h</a>"</code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="dist__based__position_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a308f40001270af6663e2b1f9aff47cc3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_get_absolute_error</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[], uint8_t length)</td></tr> +<tr class="memdesc:a308f40001270af6663e2b1f9aff47cc3"><td class="mdescLeft"> </td><td class="mdescRight">Computes the absolute error of a position of a distance-based localization system. <a href="dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3">More...</a><br /></td></tr> +<tr class="separator:a308f40001270af6663e2b1f9aff47cc3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a756c1407a4ba61d312a676ffd824517d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d">dist_based_get_distance_to_anchor</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3])</td></tr> +<tr class="memdesc:a756c1407a4ba61d312a676ffd824517d"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distance between a mobile station and a reference station of a distance-based localization system. <a href="dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d">More...</a><br /></td></tr> +<tr class="separator:a756c1407a4ba61d312a676ffd824517d"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Functions of distance-based localization systems. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="dist__based__position_8c_source.html">dist_based_position.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a308f40001270af6663e2b1f9aff47cc3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a308f40001270af6663e2b1f9aff47cc3">◆ </a></span>dist_based_get_absolute_error()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_get_absolute_error </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>approx_value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>absolute_error_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the absolute error of a position of a distance-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">value_arr[]</td><td>true position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">approx_value_arr[]</td><td>approximate position of the mobile device. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">absolute_error_arr[]</td><td>includes the absolute error. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>arrays length. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__position_8c_source.html#l00029">29</a> of file <a class="el" href="dist__based__position_8c_source.html">dist_based_position.c</a>.</p> + +</div> +</div> +<a id="a756c1407a4ba61d312a676ffd824517d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a756c1407a4ba61d312a676ffd824517d">◆ </a></span>dist_based_get_distance_to_anchor()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_based_get_distance_to_anchor </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distance between a mobile station and a reference station of a distance-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__position_8c_source.html#l00045">45</a> of file <a class="el" href="dist__based__position_8c_source.html">dist_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dist__based__position_8c.html">dist_based_position.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__position_8c.js b/doc/doxygen/html/dist__based__position_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..743ad9a924de42848d880bb6017d5395ea2d4216 --- /dev/null +++ b/doc/doxygen/html/dist__based__position_8c.js @@ -0,0 +1,5 @@ +var dist__based__position_8c = +[ + [ "dist_based_get_absolute_error", "dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3", null ], + [ "dist_based_get_distance_to_anchor", "dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dist__based__position_8c_source.html b/doc/doxygen/html/dist__based__position_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..8696ca2e5e5784239df96aa51a58977e27a440c5 --- /dev/null +++ b/doc/doxygen/html/dist__based__position_8c_source.html @@ -0,0 +1,156 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_position.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__position_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">dist_based_position.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="dist__based__position_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="dist__based__position_8h.html">dist_based_position.h</a>"</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3"> 29</a></span> <span class="keywordtype">void</span> <a class="code" href="dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_get_absolute_error</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[],</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[],</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[],</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  uint8_t length)</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t i;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">if</span> ((value_arr != NULL) && (approx_value_arr != NULL)</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  && (absolute_error_arr != NULL)) {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  absolute_error_arr[i] = fabs(</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  value_arr[i] - approx_value_arr[i]);</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d"> 45</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d">dist_based_get_distance_to_anchor</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3])</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist = 0.0;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diff_vec[3];</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(3, ref_point, point, diff_vec);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  dist = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(3, diff_vec);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> dist;</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="adist__based__position_8h_html"><div class="ttname"><a href="dist__based__position_8h.html">dist_based_position.h</a></div><div class="ttdoc">Functions of distance-based localization systems.</div></div> +<div class="ttc" id="adist__based__position_8c_html_a756c1407a4ba61d312a676ffd824517d"><div class="ttname"><a href="dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d">dist_based_get_distance_to_anchor</a></div><div class="ttdeci">matrix_t dist_based_get_distance_to_anchor(matrix_t ref_point[3], matrix_t point[3])</div><div class="ttdoc">Computes the distance between a mobile station and a reference station of a distance-based localizati...</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__position_8c_source.html#l00045">dist_based_position.c:45</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adist__based__position_8c_html_a308f40001270af6663e2b1f9aff47cc3"><div class="ttname"><a href="dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_get_absolute_error</a></div><div class="ttdeci">void dist_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length)</div><div class="ttdoc">Computes the absolute error of a position of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__position_8c_source.html#l00029">dist_based_position.c:29</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dist__based__position_8c.html">dist_based_position.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__position_8h.html b/doc/doxygen/html/dist__based__position_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..e440891d0475a0eccd5331ebd319f97685b38c39 --- /dev/null +++ b/doc/doxygen/html/dist__based__position_8h.html @@ -0,0 +1,226 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_position.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__position_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">dist_based_position.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__distance__based.html">DISTANCE_BASED</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Functions of distance-based localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="dist__based__position_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a308f40001270af6663e2b1f9aff47cc3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_get_absolute_error</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[], uint8_t length)</td></tr> +<tr class="memdesc:a308f40001270af6663e2b1f9aff47cc3"><td class="mdescLeft"> </td><td class="mdescRight">Computes the absolute error of a position of a distance-based localization system. <a href="dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3">More...</a><br /></td></tr> +<tr class="separator:a308f40001270af6663e2b1f9aff47cc3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a756c1407a4ba61d312a676ffd824517d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d">dist_based_get_distance_to_anchor</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3])</td></tr> +<tr class="memdesc:a756c1407a4ba61d312a676ffd824517d"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distance between a mobile station and a reference station of a distance-based localization system. <a href="dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d">More...</a><br /></td></tr> +<tr class="separator:a756c1407a4ba61d312a676ffd824517d"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Functions of distance-based localization systems. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="dist__based__position_8h_source.html">dist_based_position.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a308f40001270af6663e2b1f9aff47cc3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a308f40001270af6663e2b1f9aff47cc3">◆ </a></span>dist_based_get_absolute_error()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void dist_based_get_absolute_error </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>approx_value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>absolute_error_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the absolute error of a position of a distance-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">value_arr[]</td><td>true position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">approx_value_arr[]</td><td>approximate position of the mobile device. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">absolute_error_arr[]</td><td>includes the absolute error. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>arrays length. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__position_8c_source.html#l00029">29</a> of file <a class="el" href="dist__based__position_8c_source.html">dist_based_position.c</a>.</p> + +</div> +</div> +<a id="a756c1407a4ba61d312a676ffd824517d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a756c1407a4ba61d312a676ffd824517d">◆ </a></span>dist_based_get_distance_to_anchor()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_based_get_distance_to_anchor </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distance between a mobile station and a reference station of a distance-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="dist__based__position_8c_source.html#l00045">45</a> of file <a class="el" href="dist__based__position_8c_source.html">dist_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_6ba7a16e4c50d34812a44006ed482e9d.html">include</a></li><li class="navelem"><a class="el" href="dist__based__position_8h.html">dist_based_position.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/dist__based__position_8h.js b/doc/doxygen/html/dist__based__position_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..f82fad8f04ad7db88feaddb646a1c4640c6a1baa --- /dev/null +++ b/doc/doxygen/html/dist__based__position_8h.js @@ -0,0 +1,5 @@ +var dist__based__position_8h = +[ + [ "dist_based_get_absolute_error", "dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3", null ], + [ "dist_based_get_distance_to_anchor", "dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/dist__based__position_8h_source.html b/doc/doxygen/html/dist__based__position_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..ebffaf6672c4495660853ae88d9fa08d934a2d2e --- /dev/null +++ b/doc/doxygen/html/dist__based__position_8h_source.html @@ -0,0 +1,135 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: dist_based_position.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('dist__based__position_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">dist_based_position.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="dist__based__position_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef DIST_BASED_POSITION_H_</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define DIST_BASED_POSITION_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">void</span> <a class="code" href="dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_get_absolute_error</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[],</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[],</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[],</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  uint8_t length);</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d">dist_based_get_distance_to_anchor</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3]);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif </span><span class="comment">/* DIST_BASED_POSITION_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="adist__based__position_8h_html_a308f40001270af6663e2b1f9aff47cc3"><div class="ttname"><a href="dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_get_absolute_error</a></div><div class="ttdeci">void dist_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length)</div><div class="ttdoc">Computes the absolute error of a position of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__position_8c_source.html#l00029">dist_based_position.c:29</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adist__based__position_8h_html_a756c1407a4ba61d312a676ffd824517d"><div class="ttname"><a href="dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d">dist_based_get_distance_to_anchor</a></div><div class="ttdeci">matrix_t dist_based_get_distance_to_anchor(matrix_t ref_point[3], matrix_t point[3])</div><div class="ttdoc">Computes the distance between a mobile station and a reference station of a distance-based localizati...</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__position_8c_source.html#l00045">dist_based_position.c:45</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_143dcbc7e3ad8f423ba36defd23abfa7.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_6ba7a16e4c50d34812a44006ed482e9d.html">include</a></li><li class="navelem"><a class="el" href="dist__based__position_8h.html">dist_based_position.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/distance__based__test_8c.html b/doc/doxygen/html/distance__based__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..1df529cb61e22788abab2ca1e982333b4ce99b62 --- /dev/null +++ b/doc/doxygen/html/distance__based__test_8c.html @@ -0,0 +1,158 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: distance_based_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('distance__based__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">distance_based_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of localization algorithms of distance-based positioning systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="trilateration_8h_source.html">trilateration.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__position_8h_source.html">dist_based_position.h</a>"</code><br /> +</div> +<p><a href="distance__based__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a3a6d73a022976728a5a298ba62d8e115"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test</a> (void)</td></tr> +<tr class="memdesc:a3a6d73a022976728a5a298ba62d8e115"><td class="mdescLeft"> </td><td class="mdescRight">Example of a distance-based localization system. <a href="distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115">More...</a><br /></td></tr> +<tr class="separator:a3a6d73a022976728a5a298ba62d8e115"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of localization algorithms of distance-based positioning systems. </p> +<p>Localization algorithms examples using distance measures (see the <a class="el" href="dist__based__position_8h.html">methods of distance-based</a> localization systems).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="distance__based__test_8c_source.html">distance_based_test.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a3a6d73a022976728a5a298ba62d8e115"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3a6d73a022976728a5a298ba62d8e115">◆ </a></span>distance_based_test()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void distance_based_test </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Example of a distance-based localization system. </p> +<p>This example shows how to use the trilateration algorithm, whereby an estimated position is calculated based on the distance measurements. </p> + +<p class="definition">Definition at line <a class="el" href="distance__based__test_8c_source.html#l00032">32</a> of file <a class="el" href="distance__based__test_8c_source.html">distance_based_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, and <a class="el" href="vector_8c_source.html#l00284">vector_flex_print()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9a0e52744106406adeca8f277e27cc62.html">distance_based</a></li><li class="navelem"><a class="el" href="distance__based__test_8c.html">distance_based_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/distance__based__test_8c.js b/doc/doxygen/html/distance__based__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..fd99a0a71c6a873fc365d3f35742d04c8415158c --- /dev/null +++ b/doc/doxygen/html/distance__based__test_8c.js @@ -0,0 +1,4 @@ +var distance__based__test_8c = +[ + [ "distance_based_test", "distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/distance__based__test_8c_source.html b/doc/doxygen/html/distance__based__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..ffa56bc16e931873e4bcd8ec98f540c697eea5f2 --- /dev/null +++ b/doc/doxygen/html/distance__based__test_8c_source.html @@ -0,0 +1,156 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: distance_based_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('distance__based__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">distance_based_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="distance__based__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="trilateration_8h.html">trilateration.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="dist__based__position_8h.html">dist_based_position.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115"> 32</a></span> <span class="keywordtype">void</span> <a class="code" href="distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  puts(<span class="stringliteral">"***************** Distance-based system example *****************"</span>);</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_pos_matrix[4][3] = { { 0, 0, 1.67 }, <span class="comment">// P1</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  { 4.5, 0, 0.75 }, <span class="comment">// P2</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  { 4.5, 4.45, 0.75 }, <span class="comment">// P3</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  { 0, 4.92, 0.86 } <span class="comment">// P4</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  };</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> true_pos[3] = { 1.0000, 3.0000, 0.0000 }; <span class="comment">// is usually unknown</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">/* measured distances to the reference stations */</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_dist_arr[4] = { 3.577157155, 4.685985423, 3.883094303,</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  2.320377599 };</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">/* estimated position */</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_pos[4];</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  uint8_t ref_point_num = 4;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a>(ref_point_num, ref_pos_matrix, measured_dist_arr,</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  est_pos, NULL);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  printf(<span class="stringliteral">"true position = "</span>);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, true_pos, 5, 4);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  printf(<span class="stringliteral">"estimated position = "</span>);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, &est_pos[1], 5, 7);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="atrilateration_8h_html"><div class="ttname"><a href="trilateration_8h.html">trilateration.h</a></div><div class="ttdoc">Implement the trilateration algorithm.</div></div> +<div class="ttc" id="adist__based__position_8h_html"><div class="ttname"><a href="dist__based__position_8h.html">dist_based_position.h</a></div><div class="ttdoc">Functions of distance-based localization systems.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adistance__based__test_8c_html_a3a6d73a022976728a5a298ba62d8e115"><div class="ttname"><a href="distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test</a></div><div class="ttdeci">void distance_based_test(void)</div><div class="ttdoc">Example of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="distance__based__test_8c_source.html#l00032">distance_based_test.c:32</a></div></div> +<div class="ttc" id="atrilateration_8h_html_adf749802a4d86c2a97a6bac50d17bfea"><div class="ttname"><a href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a></div><div class="ttdeci">void trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00069">trilateration.c:69</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9a0e52744106406adeca8f277e27cc62.html">distance_based</a></li><li class="navelem"><a class="el" href="distance__based__test_8c.html">distance_based_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/distance__based__test_8h.html b/doc/doxygen/html/distance__based__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..18a2c7cecdbbecd3cc592bb47a667867482a9ac4 --- /dev/null +++ b/doc/doxygen/html/distance__based__test_8h.html @@ -0,0 +1,153 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: distance_based_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('distance__based__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">distance_based_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of localization algorithms of distance-based positioning systems. +<a href="#details">More...</a></p> + +<p><a href="distance__based__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a3a6d73a022976728a5a298ba62d8e115"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test</a> (void)</td></tr> +<tr class="memdesc:a3a6d73a022976728a5a298ba62d8e115"><td class="mdescLeft"> </td><td class="mdescRight">Example of a distance-based localization system. <a href="distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115">More...</a><br /></td></tr> +<tr class="separator:a3a6d73a022976728a5a298ba62d8e115"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of localization algorithms of distance-based positioning systems. </p> +<p>Localization algorithms examples using distance measures (see the <a class="el" href="dist__based__position_8h.html">methods of distance-based</a> localization systems).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="distance__based__test_8h_source.html">distance_based_test.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a3a6d73a022976728a5a298ba62d8e115"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3a6d73a022976728a5a298ba62d8e115">◆ </a></span>distance_based_test()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void distance_based_test </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Example of a distance-based localization system. </p> +<p>This example shows how to use the trilateration algorithm, whereby an estimated position is calculated based on the distance measurements. </p> + +<p class="definition">Definition at line <a class="el" href="distance__based__test_8c_source.html#l00032">32</a> of file <a class="el" href="distance__based__test_8c_source.html">distance_based_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, and <a class="el" href="vector_8c_source.html#l00284">vector_flex_print()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9a0e52744106406adeca8f277e27cc62.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_1914560df4fa89960017a8bfd33591bb.html">include</a></li><li class="navelem"><a class="el" href="distance__based__test_8h.html">distance_based_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/distance__based__test_8h.js b/doc/doxygen/html/distance__based__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..117c2b8dbcc0a177d346a3bb12431451c550038c --- /dev/null +++ b/doc/doxygen/html/distance__based__test_8h.js @@ -0,0 +1,4 @@ +var distance__based__test_8h = +[ + [ "distance_based_test", "distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/distance__based__test_8h_source.html b/doc/doxygen/html/distance__based__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c4606990028d8fc15545cf5d1a8fe640b6afc9cc --- /dev/null +++ b/doc/doxygen/html/distance__based__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: distance_based_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('distance__based__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">distance_based_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="distance__based__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef DISTANCE_BASED_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#define DISTANCE_BASED_TEST_H_</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">void</span> <a class="code" href="distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif </span><span class="comment">/* DISTANCE_BASED_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="adistance__based__test_8h_html_a3a6d73a022976728a5a298ba62d8e115"><div class="ttname"><a href="distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test</a></div><div class="ttdeci">void distance_based_test(void)</div><div class="ttdoc">Example of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="distance__based__test_8c_source.html#l00032">distance_based_test.c:32</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9a0e52744106406adeca8f277e27cc62.html">distance_based</a></li><li class="navelem"><a class="el" href="dir_1914560df4fa89960017a8bfd33591bb.html">include</a></li><li class="navelem"><a class="el" href="distance__based__test_8h.html">distance_based_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/doc.png b/doc/doxygen/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 Binary files /dev/null and b/doc/doxygen/html/doc.png differ diff --git a/doc/doxygen/html/doxygen.css b/doc/doxygen/html/doxygen.css new file mode 100644 index 0000000000000000000000000000000000000000..5bc13aac517a91ee463c28677d2b6993eee721f6 --- /dev/null +++ b/doc/doxygen/html/doxygen.css @@ -0,0 +1,1766 @@ +/* The standard CSS for doxygen 1.8.16 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #FFFFFF; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/doc/doxygen/html/doxygen.png b/doc/doxygen/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 Binary files /dev/null and b/doc/doxygen/html/doxygen.png differ diff --git a/doc/doxygen/html/dynsections.js b/doc/doxygen/html/dynsections.js new file mode 100644 index 0000000000000000000000000000000000000000..c8e84aaa6f6e05af6f2f5c70055938319d21ab55 --- /dev/null +++ b/doc/doxygen/html/dynsections.js @@ -0,0 +1,127 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l<level+1) { + i.removeClass('iconfopen iconfclosed').addClass('iconfopen'); + a.html('▼'); + $(this).show(); + } else if (l==level+1) { + i.removeClass('iconfclosed iconfopen').addClass('iconfclosed'); + a.html('►'); + $(this).show(); + } else { + $(this).hide(); + } + }); + updateStripes(); +} + +function toggleFolder(id) +{ + // the clicked row + var currentRow = $('#row_'+id); + + // all rows after the clicked row + var rows = currentRow.nextAll("tr"); + + var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub + + // only match elements AFTER this one (can't hide elements before) + var childRows = rows.filter(function() { return this.id.match(re); }); + + // first row is visible we are HIDING + if (childRows.filter(':first').is(':visible')===true) { + // replace down arrow by right arrow for current row + var currentRowSpans = currentRow.find("span"); + currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); + currentRowSpans.filter(".arrow").html('►'); + rows.filter("[id^=row_"+id+"]").hide(); // hide all children + } else { // we are SHOWING + // replace right arrow by down arrow for current row + var currentRowSpans = currentRow.find("span"); + currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen"); + currentRowSpans.filter(".arrow").html('▼'); + // replace down arrows by right arrows for child rows + var childRowsSpans = childRows.find("span"); + childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); + childRowsSpans.filter(".arrow").html('►'); + childRows.show(); //show all children + } + updateStripes(); +} + + +function toggleInherit(id) +{ + var rows = $('tr.inherit.'+id); + var img = $('tr.inherit_header.'+id+' img'); + var src = $(img).attr('src'); + if (rows.filter(':first').is(':visible')===true) { + rows.css('display','none'); + $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + rows.css('display','table-row'); // using show() causes jump in firefox + $(img).attr('src',src.substring(0,src.length-10)+'open.png'); + } +} +/* @license-end */ + +$(document).ready(function() { + $('.code,.codeRef').each(function() { + $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); + $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); + }); +}); diff --git a/doc/doxygen/html/files.html b/doc/doxygen/html/files.html new file mode 100644 index 0000000000000000000000000000000000000000..aff89ec5bef792fb3b99109fcad1da7887bffc2e --- /dev/null +++ b/doc/doxygen/html/files.html @@ -0,0 +1,203 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: File List</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('files.html','');}); +/* @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="headertitle"> +<div class="title">File List</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory"> +<table class="directory"> +<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="combinatorics_8c_source.html"><span class="icondoc"></span></a><a class="el" href="combinatorics_8c.html" target="_self">combinatorics.c</a></td><td class="desc">Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order </td></tr> +<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="combinatorics_8h_source.html"><span class="icondoc"></span></a><a class="el" href="combinatorics_8h.html" target="_self">combinatorics.h</a></td><td class="desc">Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order </td></tr> +<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="damped__newton__raphson_8c_source.html"><span class="icondoc"></span></a><a class="el" href="damped__newton__raphson_8c.html" target="_self">damped_newton_raphson.c</a></td><td class="desc">Implement the damped Newton–Raphson algorithm </td></tr> +<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="damped__newton__raphson_8h_source.html"><span class="icondoc"></span></a><a class="el" href="damped__newton__raphson_8h.html" target="_self">damped_newton_raphson.h</a></td><td class="desc">Implement the damped Newton–Raphson algorithm </td></tr> +<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="dist__based__fi_8c_source.html"><span class="icondoc"></span></a><a class="el" href="dist__based__fi_8c.html" target="_self">dist_based_fi.c</a></td><td class="desc">Error function of distance-based localization systems </td></tr> +<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="dist__based__fi_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dist__based__fi_8h.html" target="_self">dist_based_fi.h</a></td><td class="desc">Error function of distance-based localization systems </td></tr> +<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="dist__based__jacobian_8c_source.html"><span class="icondoc"></span></a><a class="el" href="dist__based__jacobian_8c.html" target="_self">dist_based_jacobian.c</a></td><td class="desc">Jacobian function of distance-based localization systems </td></tr> +<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="dist__based__jacobian_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dist__based__jacobian_8h.html" target="_self">dist_based_jacobian.h</a></td><td class="desc">Jacobian function of distance-based localization systems </td></tr> +<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="dist__based__position_8c_source.html"><span class="icondoc"></span></a><a class="el" href="dist__based__position_8c.html" target="_self">dist_based_position.c</a></td><td class="desc">Functions of distance-based localization systems </td></tr> +<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="dist__based__position_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dist__based__position_8h.html" target="_self">dist_based_position.h</a></td><td class="desc">Functions of distance-based localization systems </td></tr> +<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="distance__based__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="distance__based__test_8c.html" target="_self">distance_based_test.c</a></td><td class="desc">Examples of localization algorithms of distance-based positioning systems </td></tr> +<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="distance__based__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="distance__based__test_8h.html" target="_self">distance_based_test.h</a></td><td class="desc">Examples of localization algorithms of distance-based positioning systems </td></tr> +<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="DOP_8c_source.html"><span class="icondoc"></span></a><a class="el" href="DOP_8c.html" target="_self">DOP.c</a></td><td class="desc">Compute the Position Dilution of Precision (PDOP) </td></tr> +<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="DOP_8h_source.html"><span class="icondoc"></span></a><a class="el" href="DOP_8h.html" target="_self">DOP.h</a></td><td class="desc">Compute the Position Dilution of Precision (PDOP) </td></tr> +<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="fsolve_8c_source.html"><span class="icondoc"></span></a><a class="el" href="fsolve_8c.html" target="_self">fsolve.c</a></td><td class="desc">Solve multi-variant nonlinear equation systems </td></tr> +<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="fsolve_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fsolve_8h.html" target="_self">fsolve.h</a></td><td class="desc">Solve multi-variant nonlinear equation systems </td></tr> +<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="fsolve__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="fsolve__test_8c.html" target="_self">fsolve_test.c</a></td><td class="desc">Examples of solving non-linear equation systems </td></tr> +<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="fsolve__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fsolve__test_8h.html" target="_self">fsolve_test.h</a></td><td class="desc">Examples of solving non-linear equation systems </td></tr> +<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="givens__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="givens__test_8c.html" target="_self">givens_test.c</a></td><td class="desc">Examples of the Givens algorithm </td></tr> +<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="givens__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="givens__test_8h.html" target="_self">givens_test.h</a></td><td class="desc">Examples of the Givens algorithm </td></tr> +<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="householder__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="householder__test_8c.html" target="_self">householder_test.c</a></td><td class="desc">Examples of the Householder algorithm </td></tr> +<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="householder__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="householder__test_8h.html" target="_self">householder_test.h</a></td><td class="desc">Examples of the Householder algorithm </td></tr> +<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="levenberg__marquardt_8c_source.html"><span class="icondoc"></span></a><a class="el" href="levenberg__marquardt_8c.html" target="_self">levenberg_marquardt.c</a></td><td class="desc">Implement the Levenberg–Marquardt (LVM) algorithm </td></tr> +<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="levenberg__marquardt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="levenberg__marquardt_8h.html" target="_self">levenberg_marquardt.h</a></td><td class="desc">Implement the Levenberg–Marquardt (LVM) algorithm </td></tr> +<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="loc__gauss__newton_8c_source.html"><span class="icondoc"></span></a><a class="el" href="loc__gauss__newton_8c.html" target="_self">loc_gauss_newton.c</a></td><td class="desc">Implement the Gauss–Newton algorithm </td></tr> +<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="loc__gauss__newton_8h_source.html"><span class="icondoc"></span></a><a class="el" href="loc__gauss__newton_8h.html" target="_self">loc_gauss_newton.h</a></td><td class="desc">Implement the Gauss–Newton algorithm for position optimization </td></tr> +<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="loc__levenberg__marquardt_8c_source.html"><span class="icondoc"></span></a><a class="el" href="loc__levenberg__marquardt_8c.html" target="_self">loc_levenberg_marquardt.c</a></td><td class="desc">Implement the Levenberg–Marquardt (LVM) algorithm </td></tr> +<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="loc__levenberg__marquardt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="loc__levenberg__marquardt_8h.html" target="_self">loc_levenberg_marquardt.h</a></td><td class="desc">Implement the Levenberg–Marquardt (LVM) algorithm for position optimization </td></tr> +<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="lu__decomp_8c_source.html"><span class="icondoc"></span></a><a class="el" href="lu__decomp_8c.html" target="_self">lu_decomp.c</a></td><td class="desc">Computes the LU decomposition of the matrix </td></tr> +<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="lu__decomp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lu__decomp_8h.html" target="_self">lu_decomp.h</a></td><td class="desc">Computes the LU decomposition of the matrix </td></tr> +<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="lu__decomp__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="lu__decomp__test_8c.html" target="_self">lu_decomp_test.c</a></td><td class="desc">Examples of the LU algorithm with pivoting </td></tr> +<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="lu__decomp__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lu__decomp__test_8h.html" target="_self">lu_decomp_test.h</a></td><td class="desc">Examples of the LU algorithm with pivoting </td></tr> +<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__fi_8c_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__fi_8c.html" target="_self">magnetic_based_fi.c</a></td><td class="desc">Error function of DC-pulsed, magnetic localization system </td></tr> +<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__fi_8h_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__fi_8h.html" target="_self">magnetic_based_fi.h</a></td><td class="desc">Error function of DC-pulsed, magnetic localization system </td></tr> +<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__jacobian_8c_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__jacobian_8c.html" target="_self">magnetic_based_jacobian.c</a></td><td class="desc">Jacobian function of DC-pulsed, magnetic localization system </td></tr> +<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__jacobian_8h_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__jacobian_8h.html" target="_self">magnetic_based_jacobian.h</a></td><td class="desc">Jacobian function of DC-pulsed, magnetic localization system </td></tr> +<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__position_8c_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__position_8c.html" target="_self">magnetic_based_position.c</a></td><td class="desc">Functions of of DC-pulsed, magnetic localization system </td></tr> +<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__position_8h_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__position_8h.html" target="_self">magnetic_based_position.h</a></td><td class="desc">Functions of of DC-pulsed, magnetic localization system </td></tr> +<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__test_8c.html" target="_self">magnetic_based_test.c</a></td><td class="desc">Examples of localization algorithms of magnetic-based positioning systems </td></tr> +<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="magnetic__based__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="magnetic__based__test_8h.html" target="_self">magnetic_based_test.h</a></td><td class="desc">Examples of localization algorithms of magnetic-based positioning systems </td></tr> +<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="matrix_8c_source.html"><span class="icondoc"></span></a><a class="el" href="matrix_8c.html" target="_self">matrix.c</a></td><td class="desc">Matrix computations </td></tr> +<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="matrix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="matrix_8h.html" target="_self">matrix.h</a></td><td class="desc">Matrix computations </td></tr> +<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="matrix__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="matrix__test_8c.html" target="_self">matrix_test.c</a></td><td class="desc">Examples of matrix computations </td></tr> +<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="matrix__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="matrix__test_8h.html" target="_self">matrix_test.h</a></td><td class="desc">Examples of matrix computations </td></tr> +<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="modified__gauss__newton_8c_source.html"><span class="icondoc"></span></a><a class="el" href="modified__gauss__newton_8c.html" target="_self">modified_gauss_newton.c</a></td><td class="desc">Implement the Gauss–Newton algorithm </td></tr> +<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="modified__gauss__newton_8h_source.html"><span class="icondoc"></span></a><a class="el" href="modified__gauss__newton_8h.html" target="_self">modified_gauss_newton.h</a></td><td class="desc">Implement the Gauss–Newton algorithm </td></tr> +<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="moore__penrose__pinv__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="moore__penrose__pinv__test_8c.html" target="_self">moore_penrose_pinv_test.c</a></td><td class="desc">Examples of the Moore–Penrose algorithm </td></tr> +<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="moore__penrose__pinv__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="moore__penrose__pinv__test_8h.html" target="_self">moore_penrose_pinv_test.h</a></td><td class="desc">Examples of the Moore–Penrose algorithm </td></tr> +<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="moore__penrose__pseudo__inverse_8c_source.html"><span class="icondoc"></span></a><a class="el" href="moore__penrose__pseudo__inverse_8c.html" target="_self">moore_penrose_pseudo_inverse.c</a></td><td class="desc">Moore–Penrose algorithm to compute the pseudo-inverse of a rectangular matrix </td></tr> +<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="moore__penrose__pseudo__inverse_8h_source.html"><span class="icondoc"></span></a><a class="el" href="moore__penrose__pseudo__inverse_8h.html" target="_self">moore_penrose_pseudo_inverse.h</a></td><td class="desc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix </td></tr> +<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="multipath__algo__own__norm__distr__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="multipath__algo__own__norm__distr__test_8c.html" target="_self">multipath_algo_own_norm_distr_test.c</a></td><td class="desc">Example of the algorithm for the recognition and mitigation of multipath effects </td></tr> +<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="multipath__algo__own__norm__distr__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="multipath__algo__own__norm__distr__test_8h.html" target="_self">multipath_algo_own_norm_distr_test.h</a></td><td class="desc">Example of the algorithm for the recognition and mitigation of multipath effects </td></tr> +<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="multipath__dist__detection__mitigation_8c_source.html"><span class="icondoc"></span></a><a class="el" href="multipath__dist__detection__mitigation_8c.html" target="_self">multipath_dist_detection_mitigation.c</a></td><td class="desc">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm </td></tr> +<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="multipath__dist__detection__mitigation_8h_source.html"><span class="icondoc"></span></a><a class="el" href="multipath__dist__detection__mitigation_8h.html" target="_self">multipath_dist_detection_mitigation.h</a></td><td class="desc">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm </td></tr> +<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="newton__raphson_8c_source.html"><span class="icondoc"></span></a><a class="el" href="newton__raphson_8c.html" target="_self">newton_raphson.c</a></td><td class="desc">Implement the Newton–Raphson algorithm </td></tr> +<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="newton__raphson_8h_source.html"><span class="icondoc"></span></a><a class="el" href="newton__raphson_8h.html" target="_self">newton_raphson.h</a></td><td class="desc">Implement the Newton–Raphson algorithm </td></tr> +<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="norm__dist__rnd__generator_8c_source.html"><span class="icondoc"></span></a><a class="el" href="norm__dist__rnd__generator_8c.html" target="_self">norm_dist_rnd_generator.c</a></td><td class="desc">Generating normally distributed random numbers </td></tr> +<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="norm__dist__rnd__generator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="norm__dist__rnd__generator_8h.html" target="_self">norm_dist_rnd_generator.h</a></td><td class="desc">Generating normally distributed random numbers </td></tr> +<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="optimization__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="optimization__test_8c.html" target="_self">optimization_test.c</a></td><td class="desc">Examples of optimization algorithms </td></tr> +<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="optimization__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="optimization__test_8h.html" target="_self">optimization_test.h</a></td><td class="desc">Examples of optimization algorithms </td></tr> +<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="pos__algos__common__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="pos__algos__common__test_8c.html" target="_self">pos_algos_common_test.c</a></td><td class="desc">Examples of common algorithms of localization systems </td></tr> +<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="pos__algos__common__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pos__algos__common__test_8h.html" target="_self">pos_algos_common_test.h</a></td><td class="desc">Examples of common algorithms of localization systems </td></tr> +<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="position__optimization__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="position__optimization__test_8c.html" target="_self">position_optimization_test.c</a></td><td class="desc">Examples of optimization algorithms for localization systems </td></tr> +<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="position__optimization__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="position__optimization__test_8h.html" target="_self">position_optimization_test.h</a></td><td class="desc">Examples of optimization algorithms for localization systems </td></tr> +<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="pseudo__inverse_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pseudo__inverse_8h.html" target="_self">pseudo_inverse.h</a></td><td class="desc">Compute the pseudo-inverse of a matrix </td></tr> +<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__common_8c_source.html"><span class="icondoc"></span></a><a class="el" href="qr__common_8c.html" target="_self">qr_common.c</a></td><td class="desc">Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using </td></tr> +<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__common_8h_source.html"><span class="icondoc"></span></a><a class="el" href="qr__common_8h.html" target="_self">qr_common.h</a></td><td class="desc">Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using </td></tr> +<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__givens_8c_source.html"><span class="icondoc"></span></a><a class="el" href="qr__givens_8c.html" target="_self">qr_givens.c</a></td><td class="desc">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times $" src="form_36.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix </td></tr> +<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__givens_8h_source.html"><span class="icondoc"></span></a><a class="el" href="qr__givens_8h.html" target="_self">qr_givens.h</a></td><td class="desc">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix </td></tr> +<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__householder_8c_source.html"><span class="icondoc"></span></a><a class="el" href="qr__householder_8c.html" target="_self">qr_householder.c</a></td><td class="desc">Householder algorithm for the QR-decomposition </td></tr> +<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__householder_8h_source.html"><span class="icondoc"></span></a><a class="el" href="qr__householder_8h.html" target="_self">qr_householder.h</a></td><td class="desc">Householder algorithm for the QR-decomposition </td></tr> +<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__pinv__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="qr__pinv__test_8c.html" target="_self">qr_pinv_test.c</a></td><td class="desc">Examples of the QR-based pseudo-inverse algorithm </td></tr> +<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__pinv__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="qr__pinv__test_8h.html" target="_self">qr_pinv_test.h</a></td><td class="desc">Examples of the QR-based pseudo-inverse algorithm </td></tr> +<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__pseudo__inverse_8c_source.html"><span class="icondoc"></span></a><a class="el" href="qr__pseudo__inverse_8c.html" target="_self">qr_pseudo_inverse.c</a></td><td class="desc">QR decomposition algorithms to compute the pseudo-inverse of a matrix </td></tr> +<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="qr__pseudo__inverse_8h_source.html"><span class="icondoc"></span></a><a class="el" href="qr__pseudo__inverse_8h.html" target="_self">qr_pseudo_inverse.h</a></td><td class="desc">QR decomposition algorithms to compute the pseudo-inverse of a matrix </td></tr> +<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="shell__sort_8c_source.html"><span class="icondoc"></span></a><a class="el" href="shell__sort_8c.html" target="_self">shell_sort.c</a></td><td class="desc">Implement the Shell sort algorithm </td></tr> +<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="shell__sort_8h_source.html"><span class="icondoc"></span></a><a class="el" href="shell__sort_8h.html" target="_self">shell_sort.h</a></td><td class="desc">Implement the Shell sort algorithm </td></tr> +<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="solve_8c_source.html"><span class="icondoc"></span></a><a class="el" href="solve_8c.html" target="_self">solve.c</a></td><td class="desc">Enables to solve systems of linear equations Ax = b for x </td></tr> +<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="solve_8h_source.html"><span class="icondoc"></span></a><a class="el" href="solve_8h.html" target="_self">solve.h</a></td><td class="desc">Enables to solve systems of linear equations Ax = b for x </td></tr> +<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="solve__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="solve__test_8c.html" target="_self">solve_test.c</a></td><td class="desc">Examples of solving linear equation systems </td></tr> +<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="solve__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="solve__test_8h.html" target="_self">solve_test.h</a></td><td class="desc">Examples of solving linear equation systems </td></tr> +<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="svd_8c_source.html"><span class="icondoc"></span></a><a class="el" href="svd_8c.html" target="_self">svd.c</a></td><td class="desc">Algorithm for the Singular Value Decomposition (SVD). Provide necessary methods to compute the compact SVD of a matrix. A = U*S*V, where U is a (m x l) orthogonal matrix, S is a (l x l) diagonal matrix, V is a (l x n) orthogonal matrix, and l = min(m,n). The SVD is computed by using the Golub–Kahan–Reinsch algorithm that works in two phases: bidiagonalization and a reduction to the diagonal form phase </td></tr> +<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="svd_8h_source.html"><span class="icondoc"></span></a><a class="el" href="svd_8h.html" target="_self">svd.h</a></td><td class="desc">Algorithm for the Singular Value Decomposition (SVD) </td></tr> +<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="svd__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="svd__test_8c.html" target="_self">svd_test.c</a></td><td class="desc">Examples of the SVD algorithm </td></tr> +<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="svd__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="svd__test_8h.html" target="_self">svd_test.h</a></td><td class="desc">Examples of the SVD algorithm </td></tr> +<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="trilateration_8c_source.html"><span class="icondoc"></span></a><a class="el" href="trilateration_8c.html" target="_self">trilateration.c</a></td><td class="desc">Implement the trilateration algorithm </td></tr> +<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="trilateration_8h_source.html"><span class="icondoc"></span></a><a class="el" href="trilateration_8h.html" target="_self">trilateration.h</a></td><td class="desc">Implement the trilateration algorithm </td></tr> +<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="utils_8c_source.html"><span class="icondoc"></span></a><a class="el" href="utils_8c.html" target="_self">utils.c</a></td><td class="desc">Utilities for linear algebra. Utility-functions are needed by the linear algebra-module as well as other modules such as the position algorithm-module </td></tr> +<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="utils_8h.html" target="_self">utils.h</a></td><td class="desc">Utilities for linear algebra </td></tr> +<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="utils__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="utils__test_8c.html" target="_self">utils_test.c</a></td><td class="desc">Examples of the utility functions </td></tr> +<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="utils__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="utils__test_8h.html" target="_self">utils_test.h</a></td><td class="desc">Examples of the utility functions </td></tr> +<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="vector_8c_source.html"><span class="icondoc"></span></a><a class="el" href="vector_8c.html" target="_self">vector.c</a></td><td class="desc">Vector computations. Vector computations include operations such as addition, subtraction, and inner product (dot product) </td></tr> +<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="vector_8h_source.html"><span class="icondoc"></span></a><a class="el" href="vector_8h.html" target="_self">vector.h</a></td><td class="desc">Vector computations </td></tr> +<tr id="row_93_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="vector__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="vector__test_8c.html" target="_self">vector_test.c</a></td><td class="desc">Examples of vector computations </td></tr> +<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="vector__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="vector__test_8h.html" target="_self">vector_test.h</a></td><td class="desc">Examples of vector computations </td></tr> +</table> +</div><!-- directory --> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/files_dup.js b/doc/doxygen/html/files_dup.js new file mode 100644 index 0000000000000000000000000000000000000000..a16fb60def3bd56519fac2755e959a1f48e05d67 --- /dev/null +++ b/doc/doxygen/html/files_dup.js @@ -0,0 +1,98 @@ +var files_dup = +[ + [ "combinatorics.c", "combinatorics_8c.html", "combinatorics_8c" ], + [ "combinatorics.h", "combinatorics_8h.html", "combinatorics_8h" ], + [ "damped_newton_raphson.c", "damped__newton__raphson_8c.html", "damped__newton__raphson_8c" ], + [ "damped_newton_raphson.h", "damped__newton__raphson_8h.html", "damped__newton__raphson_8h" ], + [ "dist_based_fi.c", "dist__based__fi_8c.html", "dist__based__fi_8c" ], + [ "dist_based_fi.h", "dist__based__fi_8h.html", "dist__based__fi_8h" ], + [ "dist_based_jacobian.c", "dist__based__jacobian_8c.html", "dist__based__jacobian_8c" ], + [ "dist_based_jacobian.h", "dist__based__jacobian_8h.html", "dist__based__jacobian_8h" ], + [ "dist_based_position.c", "dist__based__position_8c.html", "dist__based__position_8c" ], + [ "dist_based_position.h", "dist__based__position_8h.html", "dist__based__position_8h" ], + [ "distance_based_test.c", "distance__based__test_8c.html", "distance__based__test_8c" ], + [ "distance_based_test.h", "distance__based__test_8h.html", "distance__based__test_8h" ], + [ "DOP.c", "DOP_8c.html", "DOP_8c" ], + [ "DOP.h", "DOP_8h.html", "DOP_8h" ], + [ "fsolve.c", "fsolve_8c.html", "fsolve_8c" ], + [ "fsolve.h", "fsolve_8h.html", "fsolve_8h" ], + [ "fsolve_test.c", "fsolve__test_8c.html", "fsolve__test_8c" ], + [ "fsolve_test.h", "fsolve__test_8h.html", "fsolve__test_8h" ], + [ "givens_test.c", "givens__test_8c.html", "givens__test_8c" ], + [ "givens_test.h", "givens__test_8h.html", "givens__test_8h" ], + [ "householder_test.c", "householder__test_8c.html", "householder__test_8c" ], + [ "householder_test.h", "householder__test_8h.html", "householder__test_8h" ], + [ "levenberg_marquardt.c", "levenberg__marquardt_8c.html", "levenberg__marquardt_8c" ], + [ "levenberg_marquardt.h", "levenberg__marquardt_8h.html", "levenberg__marquardt_8h" ], + [ "loc_gauss_newton.c", "loc__gauss__newton_8c.html", "loc__gauss__newton_8c" ], + [ "loc_gauss_newton.h", "loc__gauss__newton_8h.html", "loc__gauss__newton_8h" ], + [ "loc_levenberg_marquardt.c", "loc__levenberg__marquardt_8c.html", "loc__levenberg__marquardt_8c" ], + [ "loc_levenberg_marquardt.h", "loc__levenberg__marquardt_8h.html", "loc__levenberg__marquardt_8h" ], + [ "lu_decomp.c", "lu__decomp_8c.html", "lu__decomp_8c" ], + [ "lu_decomp.h", "lu__decomp_8h.html", "lu__decomp_8h" ], + [ "lu_decomp_test.c", "lu__decomp__test_8c.html", "lu__decomp__test_8c" ], + [ "lu_decomp_test.h", "lu__decomp__test_8h.html", "lu__decomp__test_8h" ], + [ "magnetic_based_fi.c", "magnetic__based__fi_8c.html", "magnetic__based__fi_8c" ], + [ "magnetic_based_fi.h", "magnetic__based__fi_8h.html", "magnetic__based__fi_8h" ], + [ "magnetic_based_jacobian.c", "magnetic__based__jacobian_8c.html", "magnetic__based__jacobian_8c" ], + [ "magnetic_based_jacobian.h", "magnetic__based__jacobian_8h.html", "magnetic__based__jacobian_8h" ], + [ "magnetic_based_position.c", "magnetic__based__position_8c.html", "magnetic__based__position_8c" ], + [ "magnetic_based_position.h", "magnetic__based__position_8h.html", "magnetic__based__position_8h" ], + [ "magnetic_based_test.c", "magnetic__based__test_8c.html", "magnetic__based__test_8c" ], + [ "magnetic_based_test.h", "magnetic__based__test_8h.html", "magnetic__based__test_8h" ], + [ "matrix.c", "matrix_8c.html", "matrix_8c" ], + [ "matrix.h", "matrix_8h.html", "matrix_8h" ], + [ "matrix_test.c", "matrix__test_8c.html", "matrix__test_8c" ], + [ "matrix_test.h", "matrix__test_8h.html", "matrix__test_8h" ], + [ "modified_gauss_newton.c", "modified__gauss__newton_8c.html", "modified__gauss__newton_8c" ], + [ "modified_gauss_newton.h", "modified__gauss__newton_8h.html", "modified__gauss__newton_8h" ], + [ "moore_penrose_pinv_test.c", "moore__penrose__pinv__test_8c.html", "moore__penrose__pinv__test_8c" ], + [ "moore_penrose_pinv_test.h", "moore__penrose__pinv__test_8h.html", "moore__penrose__pinv__test_8h" ], + [ "moore_penrose_pseudo_inverse.c", "moore__penrose__pseudo__inverse_8c.html", "moore__penrose__pseudo__inverse_8c" ], + [ "moore_penrose_pseudo_inverse.h", "moore__penrose__pseudo__inverse_8h.html", "moore__penrose__pseudo__inverse_8h" ], + [ "multipath_algo_own_norm_distr_test.c", "multipath__algo__own__norm__distr__test_8c.html", "multipath__algo__own__norm__distr__test_8c" ], + [ "multipath_algo_own_norm_distr_test.h", "multipath__algo__own__norm__distr__test_8h.html", "multipath__algo__own__norm__distr__test_8h" ], + [ "multipath_dist_detection_mitigation.c", "multipath__dist__detection__mitigation_8c.html", "multipath__dist__detection__mitigation_8c" ], + [ "multipath_dist_detection_mitigation.h", "multipath__dist__detection__mitigation_8h.html", "multipath__dist__detection__mitigation_8h" ], + [ "newton_raphson.c", "newton__raphson_8c.html", "newton__raphson_8c" ], + [ "newton_raphson.h", "newton__raphson_8h.html", "newton__raphson_8h" ], + [ "norm_dist_rnd_generator.c", "norm__dist__rnd__generator_8c.html", "norm__dist__rnd__generator_8c" ], + [ "norm_dist_rnd_generator.h", "norm__dist__rnd__generator_8h.html", "norm__dist__rnd__generator_8h" ], + [ "optimization_test.c", "optimization__test_8c.html", "optimization__test_8c" ], + [ "optimization_test.h", "optimization__test_8h.html", "optimization__test_8h" ], + [ "pos_algos_common_test.c", "pos__algos__common__test_8c.html", "pos__algos__common__test_8c" ], + [ "pos_algos_common_test.h", "pos__algos__common__test_8h.html", "pos__algos__common__test_8h" ], + [ "position_optimization_test.c", "position__optimization__test_8c.html", "position__optimization__test_8c" ], + [ "position_optimization_test.h", "position__optimization__test_8h.html", "position__optimization__test_8h" ], + [ "pseudo_inverse.h", "pseudo__inverse_8h.html", "pseudo__inverse_8h" ], + [ "qr_common.c", "qr__common_8c.html", "qr__common_8c" ], + [ "qr_common.h", "qr__common_8h.html", "qr__common_8h" ], + [ "qr_givens.c", "qr__givens_8c.html", "qr__givens_8c" ], + [ "qr_givens.h", "qr__givens_8h.html", "qr__givens_8h" ], + [ "qr_householder.c", "qr__householder_8c.html", "qr__householder_8c" ], + [ "qr_householder.h", "qr__householder_8h.html", "qr__householder_8h" ], + [ "qr_pinv_test.c", "qr__pinv__test_8c.html", "qr__pinv__test_8c" ], + [ "qr_pinv_test.h", "qr__pinv__test_8h.html", "qr__pinv__test_8h" ], + [ "qr_pseudo_inverse.c", "qr__pseudo__inverse_8c.html", "qr__pseudo__inverse_8c" ], + [ "qr_pseudo_inverse.h", "qr__pseudo__inverse_8h.html", "qr__pseudo__inverse_8h" ], + [ "shell_sort.c", "shell__sort_8c.html", "shell__sort_8c" ], + [ "shell_sort.h", "shell__sort_8h.html", "shell__sort_8h" ], + [ "solve.c", "solve_8c.html", "solve_8c" ], + [ "solve.h", "solve_8h.html", "solve_8h" ], + [ "solve_test.c", "solve__test_8c.html", "solve__test_8c" ], + [ "solve_test.h", "solve__test_8h.html", "solve__test_8h" ], + [ "svd.c", "svd_8c.html", "svd_8c" ], + [ "svd.h", "svd_8h.html", "svd_8h" ], + [ "svd_test.c", "svd__test_8c.html", "svd__test_8c" ], + [ "svd_test.h", "svd__test_8h.html", "svd__test_8h" ], + [ "trilateration.c", "trilateration_8c.html", "trilateration_8c" ], + [ "trilateration.h", "trilateration_8h.html", "trilateration_8h" ], + [ "utils.c", "utils_8c.html", "utils_8c" ], + [ "utils.h", "utils_8h.html", "utils_8h" ], + [ "utils_test.c", "utils__test_8c.html", "utils__test_8c" ], + [ "utils_test.h", "utils__test_8h.html", "utils__test_8h" ], + [ "vector.c", "vector_8c.html", "vector_8c" ], + [ "vector.h", "vector_8h.html", "vector_8h" ], + [ "vector_test.c", "vector__test_8c.html", "vector__test_8c" ], + [ "vector_test.h", "vector__test_8h.html", "vector__test_8h" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/folderclosed.png b/doc/doxygen/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 Binary files /dev/null and b/doc/doxygen/html/folderclosed.png differ diff --git a/doc/doxygen/html/folderopen.png b/doc/doxygen/html/folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c7f676a3b3ef8c2c307d319dff3c6a604eb227 Binary files /dev/null and b/doc/doxygen/html/folderopen.png differ diff --git a/doc/doxygen/html/form_0.png b/doc/doxygen/html/form_0.png new file mode 100644 index 0000000000000000000000000000000000000000..64b738f85f9e15c03617848a55f202d3605662e5 Binary files /dev/null and b/doc/doxygen/html/form_0.png differ diff --git a/doc/doxygen/html/form_1.png b/doc/doxygen/html/form_1.png new file mode 100644 index 0000000000000000000000000000000000000000..371640b87f2d85dc7f174d62726d6b465c4a7102 Binary files /dev/null and b/doc/doxygen/html/form_1.png differ diff --git a/doc/doxygen/html/form_10.png b/doc/doxygen/html/form_10.png new file mode 100644 index 0000000000000000000000000000000000000000..c899dc412f504c8276854a2eef6a427b1454ea5f Binary files /dev/null and b/doc/doxygen/html/form_10.png differ diff --git a/doc/doxygen/html/form_11.png b/doc/doxygen/html/form_11.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c782222aed3f0ce6b71ef95e202484d9c030c3 Binary files /dev/null and b/doc/doxygen/html/form_11.png differ diff --git a/doc/doxygen/html/form_12.png b/doc/doxygen/html/form_12.png new file mode 100644 index 0000000000000000000000000000000000000000..487d61a047e2a60d782358c6aa71f00e5d0a40c0 Binary files /dev/null and b/doc/doxygen/html/form_12.png differ diff --git a/doc/doxygen/html/form_13.png b/doc/doxygen/html/form_13.png new file mode 100644 index 0000000000000000000000000000000000000000..b313c5faa596ef9a65d4733f3f9b8259571ef3c3 Binary files /dev/null and b/doc/doxygen/html/form_13.png differ diff --git a/doc/doxygen/html/form_14.png b/doc/doxygen/html/form_14.png new file mode 100644 index 0000000000000000000000000000000000000000..d1395888519924dc28b56bfeada308a9e8cf9ca8 Binary files /dev/null and b/doc/doxygen/html/form_14.png differ diff --git a/doc/doxygen/html/form_15.png b/doc/doxygen/html/form_15.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8c8742056a830109add1dbedf7f9db0f091a6a Binary files /dev/null and b/doc/doxygen/html/form_15.png differ diff --git a/doc/doxygen/html/form_16.png b/doc/doxygen/html/form_16.png new file mode 100644 index 0000000000000000000000000000000000000000..fb24b419fb0bd1ad044a5b4247f311063c41fad6 Binary files /dev/null and b/doc/doxygen/html/form_16.png differ diff --git a/doc/doxygen/html/form_17.png b/doc/doxygen/html/form_17.png new file mode 100644 index 0000000000000000000000000000000000000000..633b80f352cc2e305b932cb0fca2fcebb1299cbd Binary files /dev/null and b/doc/doxygen/html/form_17.png differ diff --git a/doc/doxygen/html/form_18.png b/doc/doxygen/html/form_18.png new file mode 100644 index 0000000000000000000000000000000000000000..c899dc412f504c8276854a2eef6a427b1454ea5f Binary files /dev/null and b/doc/doxygen/html/form_18.png differ diff --git a/doc/doxygen/html/form_19.png b/doc/doxygen/html/form_19.png new file mode 100644 index 0000000000000000000000000000000000000000..ec6ed8bea76e274a712befd841a559f12f667cae Binary files /dev/null and b/doc/doxygen/html/form_19.png differ diff --git a/doc/doxygen/html/form_2.png b/doc/doxygen/html/form_2.png new file mode 100644 index 0000000000000000000000000000000000000000..18fb9158e82f95aac5a1a4a4e0f6fd7d8361a974 Binary files /dev/null and b/doc/doxygen/html/form_2.png differ diff --git a/doc/doxygen/html/form_20.png b/doc/doxygen/html/form_20.png new file mode 100644 index 0000000000000000000000000000000000000000..956ddd0b9996a928a275d3149a7591d2c3d1e5ad Binary files /dev/null and b/doc/doxygen/html/form_20.png differ diff --git a/doc/doxygen/html/form_21.png b/doc/doxygen/html/form_21.png new file mode 100644 index 0000000000000000000000000000000000000000..ea35caddf5301a9c576cc9b6d67210b8db883aeb Binary files /dev/null and b/doc/doxygen/html/form_21.png differ diff --git a/doc/doxygen/html/form_22.png b/doc/doxygen/html/form_22.png new file mode 100644 index 0000000000000000000000000000000000000000..fa21ae542cd2ce16e9af9e9e8eacc6364e7712b2 Binary files /dev/null and b/doc/doxygen/html/form_22.png differ diff --git a/doc/doxygen/html/form_23.png b/doc/doxygen/html/form_23.png new file mode 100644 index 0000000000000000000000000000000000000000..6f933ccaa1acde1b9924021eee27be7b9156bd83 Binary files /dev/null and b/doc/doxygen/html/form_23.png differ diff --git a/doc/doxygen/html/form_24.png b/doc/doxygen/html/form_24.png new file mode 100644 index 0000000000000000000000000000000000000000..221360853e54dc3042cac51ba0ccdab724efdce6 Binary files /dev/null and b/doc/doxygen/html/form_24.png differ diff --git a/doc/doxygen/html/form_25.png b/doc/doxygen/html/form_25.png new file mode 100644 index 0000000000000000000000000000000000000000..5cec2c4858147fac9bff777dbb9c53801ad9d882 Binary files /dev/null and b/doc/doxygen/html/form_25.png differ diff --git a/doc/doxygen/html/form_26.png b/doc/doxygen/html/form_26.png new file mode 100644 index 0000000000000000000000000000000000000000..9e88a460c59828fa5747a00edf5af0537e87687e Binary files /dev/null and b/doc/doxygen/html/form_26.png differ diff --git a/doc/doxygen/html/form_27.png b/doc/doxygen/html/form_27.png new file mode 100644 index 0000000000000000000000000000000000000000..bfbd3af44c0bb77501d1981eb27119bc19be9e1d Binary files /dev/null and b/doc/doxygen/html/form_27.png differ diff --git a/doc/doxygen/html/form_28.png b/doc/doxygen/html/form_28.png new file mode 100644 index 0000000000000000000000000000000000000000..12d9829f2ba77cca0c4d033d144b1d0af843fbec Binary files /dev/null and b/doc/doxygen/html/form_28.png differ diff --git a/doc/doxygen/html/form_29.png b/doc/doxygen/html/form_29.png new file mode 100644 index 0000000000000000000000000000000000000000..2acd67ba20bc6c685157638d56db48acea361e27 Binary files /dev/null and b/doc/doxygen/html/form_29.png differ diff --git a/doc/doxygen/html/form_3.png b/doc/doxygen/html/form_3.png new file mode 100644 index 0000000000000000000000000000000000000000..530cc880960fc354e6e12d5dcfb0509fcaad1ecb Binary files /dev/null and b/doc/doxygen/html/form_3.png differ diff --git a/doc/doxygen/html/form_30.png b/doc/doxygen/html/form_30.png new file mode 100644 index 0000000000000000000000000000000000000000..c3e0fc48c2335149ab47cc9b19781f00e576eed1 Binary files /dev/null and b/doc/doxygen/html/form_30.png differ diff --git a/doc/doxygen/html/form_31.png b/doc/doxygen/html/form_31.png new file mode 100644 index 0000000000000000000000000000000000000000..98e175c4dd56cd0e905b0460d028578ec5b8583f Binary files /dev/null and b/doc/doxygen/html/form_31.png differ diff --git a/doc/doxygen/html/form_32.png b/doc/doxygen/html/form_32.png new file mode 100644 index 0000000000000000000000000000000000000000..653e822640ff2263d5ed86f431d50867d611989a Binary files /dev/null and b/doc/doxygen/html/form_32.png differ diff --git a/doc/doxygen/html/form_33.png b/doc/doxygen/html/form_33.png new file mode 100644 index 0000000000000000000000000000000000000000..65e8b3ef73541f31b7f6b670a32777ea6699f490 Binary files /dev/null and b/doc/doxygen/html/form_33.png differ diff --git a/doc/doxygen/html/form_34.png b/doc/doxygen/html/form_34.png new file mode 100644 index 0000000000000000000000000000000000000000..1087279bf475288aa88ef0766c5e18a5048ae393 Binary files /dev/null and b/doc/doxygen/html/form_34.png differ diff --git a/doc/doxygen/html/form_35.png b/doc/doxygen/html/form_35.png new file mode 100644 index 0000000000000000000000000000000000000000..40a566e07dd119bbd9b349275ff76434fe3b4ac0 Binary files /dev/null and b/doc/doxygen/html/form_35.png differ diff --git a/doc/doxygen/html/form_36.png b/doc/doxygen/html/form_36.png new file mode 100644 index 0000000000000000000000000000000000000000..40a566e07dd119bbd9b349275ff76434fe3b4ac0 Binary files /dev/null and b/doc/doxygen/html/form_36.png differ diff --git a/doc/doxygen/html/form_37.png b/doc/doxygen/html/form_37.png new file mode 100644 index 0000000000000000000000000000000000000000..4764f39ad29152a134da455c841a51b10e30ef4b Binary files /dev/null and b/doc/doxygen/html/form_37.png differ diff --git a/doc/doxygen/html/form_38.png b/doc/doxygen/html/form_38.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a66f78ac05b38dd53824297944f0ce78bcef6f Binary files /dev/null and b/doc/doxygen/html/form_38.png differ diff --git a/doc/doxygen/html/form_39.png b/doc/doxygen/html/form_39.png new file mode 100644 index 0000000000000000000000000000000000000000..1df9ace158e53742624ee4378f4a7579325d585e Binary files /dev/null and b/doc/doxygen/html/form_39.png differ diff --git a/doc/doxygen/html/form_4.png b/doc/doxygen/html/form_4.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4ed80aaf379e01461b947de9604feca7e9deee Binary files /dev/null and b/doc/doxygen/html/form_4.png differ diff --git a/doc/doxygen/html/form_40.png b/doc/doxygen/html/form_40.png new file mode 100644 index 0000000000000000000000000000000000000000..ecde283ca3ea979cb1b42cbc6b49c1f43bedccdb Binary files /dev/null and b/doc/doxygen/html/form_40.png differ diff --git a/doc/doxygen/html/form_41.png b/doc/doxygen/html/form_41.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b9b853d4bcd944ee7b34611f2a8b2f21ca6f75 Binary files /dev/null and b/doc/doxygen/html/form_41.png differ diff --git a/doc/doxygen/html/form_42.png b/doc/doxygen/html/form_42.png new file mode 100644 index 0000000000000000000000000000000000000000..75033c424ae9233828eca495f9087a29cb575681 Binary files /dev/null and b/doc/doxygen/html/form_42.png differ diff --git a/doc/doxygen/html/form_43.png b/doc/doxygen/html/form_43.png new file mode 100644 index 0000000000000000000000000000000000000000..2187624e52dccc5890db88027bc2c0990785db5f Binary files /dev/null and b/doc/doxygen/html/form_43.png differ diff --git a/doc/doxygen/html/form_44.png b/doc/doxygen/html/form_44.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba5dce130b07bee6906b2ab6a2ca9822cfe0943 Binary files /dev/null and b/doc/doxygen/html/form_44.png differ diff --git a/doc/doxygen/html/form_45.png b/doc/doxygen/html/form_45.png new file mode 100644 index 0000000000000000000000000000000000000000..b82dc56f0da8c24d9784172198a4ed07219ffa81 Binary files /dev/null and b/doc/doxygen/html/form_45.png differ diff --git a/doc/doxygen/html/form_46.png b/doc/doxygen/html/form_46.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef9bb35fc8a5c4cf2b09c2210f7963985f92482 Binary files /dev/null and b/doc/doxygen/html/form_46.png differ diff --git a/doc/doxygen/html/form_47.png b/doc/doxygen/html/form_47.png new file mode 100644 index 0000000000000000000000000000000000000000..de28f6bc3697ec0d843a0a42b563f2f55f4d22c2 Binary files /dev/null and b/doc/doxygen/html/form_47.png differ diff --git a/doc/doxygen/html/form_48.png b/doc/doxygen/html/form_48.png new file mode 100644 index 0000000000000000000000000000000000000000..b20a85ba9114f7800c8613f706339b164327f1f4 Binary files /dev/null and b/doc/doxygen/html/form_48.png differ diff --git a/doc/doxygen/html/form_49.png b/doc/doxygen/html/form_49.png new file mode 100644 index 0000000000000000000000000000000000000000..de03318c0cfce22b9d3b0d10b23d5392994a853f Binary files /dev/null and b/doc/doxygen/html/form_49.png differ diff --git a/doc/doxygen/html/form_5.png b/doc/doxygen/html/form_5.png new file mode 100644 index 0000000000000000000000000000000000000000..82ef8ae48809e572c86fd4e73a4340a2fcff396d Binary files /dev/null and b/doc/doxygen/html/form_5.png differ diff --git a/doc/doxygen/html/form_50.png b/doc/doxygen/html/form_50.png new file mode 100644 index 0000000000000000000000000000000000000000..de03318c0cfce22b9d3b0d10b23d5392994a853f Binary files /dev/null and b/doc/doxygen/html/form_50.png differ diff --git a/doc/doxygen/html/form_51.png b/doc/doxygen/html/form_51.png new file mode 100644 index 0000000000000000000000000000000000000000..521c64504a903f694dce91d29129289a953aca46 Binary files /dev/null and b/doc/doxygen/html/form_51.png differ diff --git a/doc/doxygen/html/form_52.png b/doc/doxygen/html/form_52.png new file mode 100644 index 0000000000000000000000000000000000000000..1c580213095b86af9c2d0c32fea04728dc396fc6 Binary files /dev/null and b/doc/doxygen/html/form_52.png differ diff --git a/doc/doxygen/html/form_53.png b/doc/doxygen/html/form_53.png new file mode 100644 index 0000000000000000000000000000000000000000..344fb39cad1c00bc4edaf89d0a3e918f8d76cdf6 Binary files /dev/null and b/doc/doxygen/html/form_53.png differ diff --git a/doc/doxygen/html/form_54.png b/doc/doxygen/html/form_54.png new file mode 100644 index 0000000000000000000000000000000000000000..42a74cbffc1b735b4ebc6fffefa4b5a10e977172 Binary files /dev/null and b/doc/doxygen/html/form_54.png differ diff --git a/doc/doxygen/html/form_55.png b/doc/doxygen/html/form_55.png new file mode 100644 index 0000000000000000000000000000000000000000..80450595a7298aaa5ac31cb8127abf2e51e20269 Binary files /dev/null and b/doc/doxygen/html/form_55.png differ diff --git a/doc/doxygen/html/form_56.png b/doc/doxygen/html/form_56.png new file mode 100644 index 0000000000000000000000000000000000000000..60bf71ab86ee8af879cc87651a467baff89b1070 Binary files /dev/null and b/doc/doxygen/html/form_56.png differ diff --git a/doc/doxygen/html/form_57.png b/doc/doxygen/html/form_57.png new file mode 100644 index 0000000000000000000000000000000000000000..ab225b85fbb5df89b6384ec9cd1cc9538ab714d7 Binary files /dev/null and b/doc/doxygen/html/form_57.png differ diff --git a/doc/doxygen/html/form_58.png b/doc/doxygen/html/form_58.png new file mode 100644 index 0000000000000000000000000000000000000000..ecde283ca3ea979cb1b42cbc6b49c1f43bedccdb Binary files /dev/null and b/doc/doxygen/html/form_58.png differ diff --git a/doc/doxygen/html/form_59.png b/doc/doxygen/html/form_59.png new file mode 100644 index 0000000000000000000000000000000000000000..eb0d5ad1e084364ee5e29faa16d4e8b0197380c2 Binary files /dev/null and b/doc/doxygen/html/form_59.png differ diff --git a/doc/doxygen/html/form_6.png b/doc/doxygen/html/form_6.png new file mode 100644 index 0000000000000000000000000000000000000000..5a2f64463b26431615b986f324c6ca100786723a Binary files /dev/null and b/doc/doxygen/html/form_6.png differ diff --git a/doc/doxygen/html/form_60.png b/doc/doxygen/html/form_60.png new file mode 100644 index 0000000000000000000000000000000000000000..912b42c884134b15dc0b8cefd85ab57271a0a841 Binary files /dev/null and b/doc/doxygen/html/form_60.png differ diff --git a/doc/doxygen/html/form_61.png b/doc/doxygen/html/form_61.png new file mode 100644 index 0000000000000000000000000000000000000000..ecde283ca3ea979cb1b42cbc6b49c1f43bedccdb Binary files /dev/null and b/doc/doxygen/html/form_61.png differ diff --git a/doc/doxygen/html/form_7.png b/doc/doxygen/html/form_7.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8c8742056a830109add1dbedf7f9db0f091a6a Binary files /dev/null and b/doc/doxygen/html/form_7.png differ diff --git a/doc/doxygen/html/form_8.png b/doc/doxygen/html/form_8.png new file mode 100644 index 0000000000000000000000000000000000000000..fb24b419fb0bd1ad044a5b4247f311063c41fad6 Binary files /dev/null and b/doc/doxygen/html/form_8.png differ diff --git a/doc/doxygen/html/form_9.png b/doc/doxygen/html/form_9.png new file mode 100644 index 0000000000000000000000000000000000000000..28f2907ff0e7b5487064c44f53b99633e2950127 Binary files /dev/null and b/doc/doxygen/html/form_9.png differ diff --git a/doc/doxygen/html/formula.repository b/doc/doxygen/html/formula.repository new file mode 100644 index 0000000000000000000000000000000000000000..ccb6150a9914bdcbf937f983a08db73d0a789506 --- /dev/null +++ b/doc/doxygen/html/formula.repository @@ -0,0 +1,62 @@ +\form#0:$ \vec{f}(x_1, x_2) = \begin{bmatrix} x_1 \mathrm{e}^{x_2} - y_1, ~\hdots, x_1\mathrm{e}^{8x_2}-y_8 \end{bmatrix}^{T}, $ +\form#1:$ {J_f} = \begin{bmatrix} \frac{\partial f_1}{\partial x1} & \frac{\partial f_1}{\partial x_2} \\ \frac{\partial f_2}{\partial x1} & \frac{\partial f_2}{\partial x_2} \\ \vdots & \vdots & \\ \frac{\partial f_n}{\partial x1} & \frac{\partial f_n}{\partial x_2} \\ \end{bmatrix} = \begin{bmatrix} \mathrm{e}^{x_2} & \mathrm{e}^{x_2} x_1\\ \mathrm{e}^{2 x_2} & 2\mathrm{e}^{2x_2} x_1 \\ \vdots & \vdots & \\ \mathrm{e}^{8 x_2} & 8\mathrm{e}^{8x_2} x_1 \\ \end{bmatrix}. $ +\form#2:$ \vec{f}(x_1, x_2, x_3, x_4)= \begin{bmatrix} x_1 \sin\left( x_2 +x_3\right) +x_4 - y_1 \\ \vdots \\ x_1 \sin\left( 12 x_2 +x_3\right) +x_4 - y_{12} \end{bmatrix}. $ +\form#3:$ J_f = \left[\begin{matrix} \sin\left( x_2 +x_3\right) & x_1 \cos\left( x_2 +x_3\right) & x_1\cos\left( x_2 +x_3\right) \\ \sin\left( 2 x_2 +x_3\right) & 2 x_1 \cos\left( 2 x_2 +x_3\right) & x_1 \cos\left( 2 x_2 +x_3\right)\\ \vdots & \vdots \\ \sin\left( 12 x_2 +x_3\right) & 12 x_1 \cos\left( 12 x_2 +x_3\right) & x_1 \cos\left( 12 x_2 +x_3\right) \end{matrix}\right]. $ +\form#4:$ g(\vec{x}, t) = x_1 \mathrm{e}^{x_2t}, $ +\form#5:$\vec{x} = [x_1, x_2]^T$ +\form#6:$ \vec{x_0} = [6,.3]$ +\form#7:$ d(t_i, y_i)$ +\form#8:$ t_i $ +\form#9:$ \lbrace 1, \hdots, 8 \rbrace$ +\form#10:$ y_i$ +\form#11:$\lbrace 8.3, 11.0, 14.7, 19.7, 26.7, 35.2, 44.4, 55.9 \rbrace $ +\form#12:$ g(\vec{x}, t) = x_1 \sin\left( x_2t +x_3\right) + x_4, $ +\form#13:$\vec{x} = [x_1, x_2, x_3, x_4]^T$ +\form#14:$\vec{x_0} = [17, 0.5, 10.5, 77]$ +\form#15:$ d(t_i, y_i) $ +\form#16:$t_i $ +\form#17:$\lbrace 1, \hdots, 12 \rbrace$ +\form#18:$y_i$ +\form#19:$\lbrace 61, 65, 72, 78, 85, 90, 92, 92, 88, 81, 72, 63 \rbrace$ +\form#20:$ f_1 \left(x_1, x_2 \right) = \begin{bmatrix} x_1^3 + x_2 - 1 \\ x_2^3 - x_1 + 1 \\ \end{bmatrix} $ +\form#21:$ x_1 $ +\form#22:$ x_2 $ +\form#23:$ f_1 $ +\form#24:$ J_1 \left( x_1, x_2\right) = \begin{bmatrix} 3 \times x_1^2 & 1 \\ -1 & 3 \times x_2^2 \\ \end{bmatrix} $ +\form#25:$ J_1 $ +\form#26:$ f_2 $ +\form#27:$ f_2 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} 3 x_1 - \cos\left( x_2 \times x_3 \right) - \dfrac{1}{2} \\ x_1^2 - 81 \left( x_2 + 0.1 \right)^2 + \sin(x_3) + 1.06 \\ \exp \left( -x1 \times x_2 \right) + 20 x_3 + \dfrac{10 \pi -3}{3} \\ \end{bmatrix} $ +\form#28:$ x_3 $ +\form#29:$ J_2 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} 3 & x_3 \sin\left( x_2 x_3 \right) & x_2 \sin\left( x_2 x_3 \right) \\ 2 x_1 & -162 x2 - \dfrac{81}{5} & \cos(x_3) \\ -x_2 \exp\left( -x_1 x_2 \right) & -x_1 \exp\left( -x_1 x_2 \right) & 20 \end{bmatrix} $ +\form#30:$ J_2 $ +\form#31:$ f_3 $ +\form#32:$ f_3 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} \exp \left( -x_1 x_2 \right) + \log \left( x_1 \right)-\exp \left( -2 \right) \\ \exp \left( x_1 \right) - \dfrac{\sqrt{x_3}}{x_1} - \exp \left( 1 \right) + 2\\ x_1 + x_2 - x_2 x_3 + 5 \\ \end{bmatrix} $ +\form#33:$ J_3 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} \dfrac{1}{x_1}-x_2 \exp\left(-x_1 x_2\right) & -x_1\exp\left(-x_1 x_2\right) & 0 \\ \exp\left(x_1\right) + \dfrac{\sqrt{x_3}}{x_1^2} & 0 & \dfrac{-1}{2x_1\sqrt{x_3}} \\ 1 & 1-x_3 & -x_2 \end{bmatrix} $ +\form#34:$ J_3 $ +\form#35:$\times$ +\form#36:$\times $ +\form#37:$ \binom{n}{k} combinations $ +\form#38:$ J_f^{T} \vec{f} $ +\form#39:$ J_f $ +\form#40:$ J_f^{T} J_{f} $ +\form#41:$ J_f^{T} \vec{s} $ +\form#42:$ A \vec{x} = 0 $ +\form#43:$(x_0)$ +\form#44:$ d = x_0 - \left( x_1^{2} + x_2^{2} + x_3^{2} \right)$ +\form#45:$ A $ +\form#46:$ A \vec{x} = \vec{b}$ +\form#47:$ \vec{b} $ +\form#48:$ vec{b} $ +\form#49:$ A \vec{x_0} = \vec{b_0}$ +\form#50:$ A \vec{x_0} = \vec{b_0} $ +\form#51:$ A \vec{x_0} = 0 $ +\form#52:$ \tau $ +\form#53:$ \beta_0 $ +\form#54:$ \beta_1 $ +\form#55:$ \mu $ +\form#56:$ \rho_{\mu} $ +\form#57:$ \mu_0 $ +\form#58:$ J_f^T J_f $ +\form#59:$ J_f^{T} J_f + \mu^{(i)})^{2} I $ +\form#60:$ \sigma_{M,W} $ +\form#61:$J_f^T J_f$ diff --git a/doc/doxygen/html/fsolve_8c.html b/doc/doxygen/html/fsolve_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..b469940d8ee5e6f09b7cd02a2737dc55dd308c62 --- /dev/null +++ b/doc/doxygen/html/fsolve_8c.html @@ -0,0 +1,212 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">fsolve.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Solve multi-variant nonlinear equation systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="fsolve_8h_source.html">fsolve.h</a>"</code><br /> +<code>#include "<a class="el" href="newton__raphson_8h_source.html">newton_raphson.h</a>"</code><br /> +<code>#include "<a class="el" href="damped__newton__raphson_8h_source.html">damped_newton_raphson.h</a>"</code><br /> +</div> +<p><a href="fsolve_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a690a05654627b94634ffed0893946ba7"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a> (uint8_t f_length, uint8_t x0_length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[], enum <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> algo, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][x0_length]))</td></tr> +<tr class="memdesc:a690a05654627b94634ffed0893946ba7"><td class="mdescLeft"> </td><td class="mdescRight">Solve systems of multi-variant nonlinear equations. <a href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">More...</a><br /></td></tr> +<tr class="separator:a690a05654627b94634ffed0893946ba7"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Solve multi-variant nonlinear equation systems. </p> +<p>The multi-variant nonlinear equation systems are solved using damped or the Newton–Raphson algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="fsolve_8c_source.html">fsolve.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a690a05654627b94634ffed0893946ba7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a690a05654627b94634ffed0893946ba7">◆ </a></span>fsolve()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t fsolve </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>x0_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">enum <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> </td> + <td class="paramname"><em>algo</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][x0_length]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve systems of multi-variant nonlinear equations. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. The user can choose between the damped or the Newton–Raphson algorithms.</p> +<dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_length</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_arr[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">algo</td><td>damped or the Newton–Raphson algorithm. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">est_x_arr[]</td><td>estimated (solution) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="fsolve_8c_source.html#l00029">29</a> of file <a class="el" href="fsolve_8c_source.html">fsolve.c</a>.</p> + +<p class="reference">References <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="fsolve_8h_source.html#l00032">Damped_Newton_Raphson</a>, <a class="el" href="fsolve_8h_source.html#l00031">Newton_Raphson</a>, and <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="fsolve_8c.html">fsolve.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/fsolve_8c.js b/doc/doxygen/html/fsolve_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..836b12411760095f241c2a97348d7c7386175daf --- /dev/null +++ b/doc/doxygen/html/fsolve_8c.js @@ -0,0 +1,4 @@ +var fsolve_8c = +[ + [ "fsolve", "fsolve_8c.html#a690a05654627b94634ffed0893946ba7", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/fsolve_8c_source.html b/doc/doxygen/html/fsolve_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..bd607dca445999b7c8bd725d333c64d18a8e9c68 --- /dev/null +++ b/doc/doxygen/html/fsolve_8c_source.html @@ -0,0 +1,167 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">fsolve.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="fsolve_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="fsolve_8h.html">fsolve.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="newton__raphson_8h.html">newton_raphson.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="fsolve_8h.html#a690a05654627b94634ffed0893946ba7"> 29</a></span> uint8_t <a class="code" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(uint8_t f_length, uint8_t x0_length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[],</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">enum</span> <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> algo, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[],</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][x0_length]))</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordtype">double</span> tol = 1e-9;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  uint8_t max_it_num = 77;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  uint8_t iter_num = 0;</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">switch</span> (algo) {</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">case</span> <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a>:</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  iter_num = <a class="code" href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a>(f_length, x0_length, x0_arr, tol,</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  max_it_num,</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  est_x_arr, get_non_lin_sys, get_jacobian);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">case</span> <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a>:</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">double</span> min_lamda = 4.8828125e-04;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  iter_num = <a class="code" href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a>(f_length, x0_length, x0_arr,</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  min_lamda,</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  tol, max_it_num, est_x_arr,</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  get_non_lin_sys, get_jacobian);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">default</span>:</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  iter_num = <a class="code" href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a>(f_length, x0_length, x0_arr, tol,</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  max_it_num,</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  est_x_arr, get_non_lin_sys, get_jacobian);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> iter_num;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="anewton__raphson_8h_html"><div class="ttname"><a href="newton__raphson_8h.html">newton_raphson.h</a></div><div class="ttdoc">Implement the Newton–Raphson algorithm.</div></div> +<div class="ttc" id="afsolve_8h_html"><div class="ttname"><a href="fsolve_8h.html">fsolve.h</a></div><div class="ttdoc">Solve multi-variant nonlinear equation systems.</div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="adamped__newton__raphson_8c_html_a0cf3dc5e334091bc43820fa1d8e86c14"><div class="ttname"><a href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson</a></div><div class="ttdeci">uint8_t damped_newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double min_lamda, double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Implements the damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson.c:32</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a></div><div class="ttdeci">NON_LIN_ALGORITHM</div><div class="ttdoc">Possible algorithms to solve multi-variant nonlinear equation systems.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00030">fsolve.h:30</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a></div><div class="ttdoc">Damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00032">fsolve.h:32</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adamped__newton__raphson_8h_html"><div class="ttname"><a href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a></div><div class="ttdoc">Implement the damped Newton–Raphson algorithm.</div></div> +<div class="ttc" id="anewton__raphson_8h_html_ac6837f695990867bd72cf23ee93961cc"><div class="ttname"><a href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a></div><div class="ttdeci">uint8_t newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Implements the Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="newton__raphson_8c_source.html#l00028">newton_raphson.c:28</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a></div><div class="ttdoc">Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00031">fsolve.h:31</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="afsolve_8c_html_a690a05654627b94634ffed0893946ba7"><div class="ttname"><a href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a></div><div class="ttdeci">uint8_t fsolve(uint8_t f_length, uint8_t x0_length, vector_t x0_arr[], enum NON_LIN_ALGORITHM algo, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][x0_length]))</div><div class="ttdoc">Solve systems of multi-variant nonlinear equations.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8c_source.html#l00029">fsolve.c:29</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="fsolve_8c.html">fsolve.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/fsolve_8h.html b/doc/doxygen/html/fsolve_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..02cae371d8e3aa7d1abba2dba7ae3405a7b3b11b --- /dev/null +++ b/doc/doxygen/html/fsolve_8h.html @@ -0,0 +1,241 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve_8h.html','');}); +/* @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="#enum-members">Enumerations</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">fsolve.h File Reference<div class="ingroups"><a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a> » <a class="el" href="group__solve__non__linear__equations.html">SOLVE_NON_LINEAR_EQUATIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Solve multi-variant nonlinear equation systems. +<a href="#details">More...</a></p> + +<p><a href="fsolve_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> +Enumerations</h2></td></tr> +<tr class="memitem:a806eab83c4b4a937b86ebcfd984f9206"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> { <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a>, +<a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a> + }</td></tr> +<tr class="memdesc:a806eab83c4b4a937b86ebcfd984f9206"><td class="mdescLeft"> </td><td class="mdescRight">Possible algorithms to solve multi-variant nonlinear equation systems. <a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">More...</a><br /></td></tr> +<tr class="separator:a806eab83c4b4a937b86ebcfd984f9206"><td class="memSeparator" colspan="2"> </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:a690a05654627b94634ffed0893946ba7"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve_8h.html#a690a05654627b94634ffed0893946ba7">fsolve</a> (uint8_t f_length, uint8_t x0_length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[], enum <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> algo, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][x0_length]))</td></tr> +<tr class="memdesc:a690a05654627b94634ffed0893946ba7"><td class="mdescLeft"> </td><td class="mdescRight">Solve systems of multi-variant nonlinear equations. <a href="fsolve_8h.html#a690a05654627b94634ffed0893946ba7">More...</a><br /></td></tr> +<tr class="separator:a690a05654627b94634ffed0893946ba7"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Solve multi-variant nonlinear equation systems. </p> +<p>The multi-variant nonlinear equation systems are solved using damped or the Newton–Raphson algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="fsolve_8h_source.html">fsolve.h</a>.</p> +</div><h2 class="groupheader">Enumeration Type Documentation</h2> +<a id="a806eab83c4b4a937b86ebcfd984f9206"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a806eab83c4b4a937b86ebcfd984f9206">◆ </a></span>NON_LIN_ALGORITHM</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">enum <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Possible algorithms to solve multi-variant nonlinear equation systems. </p> +<table class="fieldtable"> +<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117"></a>Newton_Raphson </td><td class="fielddoc"><p>Newton–Raphson algorithm. </p> +</td></tr> +<tr><td class="fieldname"><a id="a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783"></a>Damped_Newton_Raphson </td><td class="fielddoc"><p>Damped Newton–Raphson algorithm. </p> +</td></tr> +</table> + +<p class="definition">Definition at line <a class="el" href="fsolve_8h_source.html#l00030">30</a> of file <a class="el" href="fsolve_8h_source.html">fsolve.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a id="a690a05654627b94634ffed0893946ba7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a690a05654627b94634ffed0893946ba7">◆ </a></span>fsolve()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t fsolve </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>x0_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">enum <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> </td> + <td class="paramname"><em>algo</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][x0_length]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve systems of multi-variant nonlinear equations. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. The user can choose between the damped or the Newton–Raphson algorithms.</p> +<dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_length</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_arr[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">algo</td><td>damped or the Newton–Raphson algorithm. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">est_x_arr[]</td><td>estimated (solution) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="fsolve_8c_source.html#l00029">29</a> of file <a class="el" href="fsolve_8c_source.html">fsolve.c</a>.</p> + +<p class="reference">References <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="fsolve_8h_source.html#l00032">Damped_Newton_Raphson</a>, <a class="el" href="fsolve_8h_source.html#l00031">Newton_Raphson</a>, and <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li><li class="navelem"><a class="el" href="fsolve_8h.html">fsolve.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/fsolve_8h.js b/doc/doxygen/html/fsolve_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..5c7eba430a3a614a7585e15d898dfe9c12fc29b4 --- /dev/null +++ b/doc/doxygen/html/fsolve_8h.js @@ -0,0 +1,8 @@ +var fsolve_8h = +[ + [ "NON_LIN_ALGORITHM", "fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206", [ + [ "Newton_Raphson", "fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117", null ], + [ "Damped_Newton_Raphson", "fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783", null ] + ] ], + [ "fsolve", "fsolve_8h.html#a690a05654627b94634ffed0893946ba7", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/fsolve_8h_source.html b/doc/doxygen/html/fsolve_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..86b5cb8b06cd38b50195b1864f3231a52ede77a2 --- /dev/null +++ b/doc/doxygen/html/fsolve_8h_source.html @@ -0,0 +1,134 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">fsolve.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="fsolve_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef FSOLVE_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define FSOLVE_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206"> 30</a></span> <span class="keyword">enum</span> <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> {</div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117"> 31</a></span>  <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a>, </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783"> 32</a></span>  <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a> </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> };</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> uint8_t <a class="code" href="fsolve_8h.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(uint8_t f_length, uint8_t x0_length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[],</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">enum</span> <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> algo, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][x0_length]));</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#endif </span><span class="comment">/* FSOLVE_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="afsolve_8h_html_a690a05654627b94634ffed0893946ba7"><div class="ttname"><a href="fsolve_8h.html#a690a05654627b94634ffed0893946ba7">fsolve</a></div><div class="ttdeci">uint8_t fsolve(uint8_t f_length, uint8_t x0_length, vector_t x0_arr[], enum NON_LIN_ALGORITHM algo, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][x0_length]))</div><div class="ttdoc">Solve systems of multi-variant nonlinear equations.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8c_source.html#l00029">fsolve.c:29</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a></div><div class="ttdeci">NON_LIN_ALGORITHM</div><div class="ttdoc">Possible algorithms to solve multi-variant nonlinear equation systems.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00030">fsolve.h:30</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a></div><div class="ttdoc">Damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00032">fsolve.h:32</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a></div><div class="ttdoc">Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00031">fsolve.h:31</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li><li class="navelem"><a class="el" href="fsolve_8h.html">fsolve.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/fsolve__test_8c.html b/doc/doxygen/html/fsolve__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..d679a6b8855dfc182b42d33cd163f5e9a5fb2c51 --- /dev/null +++ b/doc/doxygen/html/fsolve__test_8c.html @@ -0,0 +1,409 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">fsolve_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of solving non-linear equation systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <stdlib.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include <complex.h></code><br /> +<code>#include <float.h></code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="damped__newton__raphson_8h_source.html">damped_newton_raphson.h</a>"</code><br /> +<code>#include "<a class="el" href="newton__raphson_8h_source.html">newton_raphson.h</a>"</code><br /> +<code>#include "<a class="el" href="fsolve_8h_source.html">fsolve.h</a>"</code><br /> +</div> +<p><a href="fsolve__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:aefd0d3fa000963221de289a3933b7c9b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f1_vec[])</td></tr> +<tr class="memdesc:aefd0d3fa000963221de289a3933b7c9b"><td class="mdescLeft"> </td><td class="mdescRight">The non-linear system f1. <a href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">More...</a><br /></td></tr> +<tr class="separator:aefd0d3fa000963221de289a3933b7c9b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3344cde9f5060d7ab962fbaaf1cdd88f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">get_non_lin_sys_J1_</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J1[][2])</td></tr> +<tr class="memdesc:a3344cde9f5060d7ab962fbaaf1cdd88f"><td class="mdescLeft"> </td><td class="mdescRight">The Jacobian matrix of the non-linear system <img class="formulaInl" alt="$ f_1 $" src="form_23.png"/>. <a href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">More...</a><br /></td></tr> +<tr class="separator:a3344cde9f5060d7ab962fbaaf1cdd88f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae36fe8e55d180d348ef331efbbc5b908"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f2_vec[])</td></tr> +<tr class="memdesc:ae36fe8e55d180d348ef331efbbc5b908"><td class="mdescLeft"> </td><td class="mdescRight">The non-linear system <img class="formulaInl" alt="$ f_2 $" src="form_26.png"/>. <a href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">More...</a><br /></td></tr> +<tr class="separator:ae36fe8e55d180d348ef331efbbc5b908"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab95955c80b1896b9e75a04faa4ce742e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">get_non_lin_sys_J2_</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J2[][3])</td></tr> +<tr class="memdesc:ab95955c80b1896b9e75a04faa4ce742e"><td class="mdescLeft"> </td><td class="mdescRight">The Jacobian matrix of the non-linear system <img class="formulaInl" alt="$ f_2 $" src="form_26.png"/>. <a href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">More...</a><br /></td></tr> +<tr class="separator:ab95955c80b1896b9e75a04faa4ce742e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8f8a1fe785d5304202601b95e1e6871a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f3_vec[])</td></tr> +<tr class="memdesc:a8f8a1fe785d5304202601b95e1e6871a"><td class="mdescLeft"> </td><td class="mdescRight">The non-linear system <img class="formulaInl" alt="$ f_3 $" src="form_31.png"/>. <a href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">More...</a><br /></td></tr> +<tr class="separator:a8f8a1fe785d5304202601b95e1e6871a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6686e4624961ca943bebb616e763a100"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">get_non_lin_sys_J3_</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J3[][3])</td></tr> +<tr class="memdesc:a6686e4624961ca943bebb616e763a100"><td class="mdescLeft"> </td><td class="mdescRight">The Jacobian matrix of the non-linear system <img class="formulaInl" alt="$ f_3 $" src="form_31.png"/>. <a href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">More...</a><br /></td></tr> +<tr class="separator:a6686e4624961ca943bebb616e763a100"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a53bbdeb6ad57eeb4b512c4620b64cc37"><td class="memItemLeft" align="right" valign="top"><a id="a53bbdeb6ad57eeb4b512c4620b64cc37"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test</a> (void)</td></tr> +<tr class="memdesc:a53bbdeb6ad57eeb4b512c4620b64cc37"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving non-linear equation systems. <br /></td></tr> +<tr class="separator:a53bbdeb6ad57eeb4b512c4620b64cc37"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of solving non-linear equation systems. </p> +<p>Solving non-linear equation systems examples (see <a class="el" href="fsolve_8h.html">fsolve</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="fsolve__test_8c_source.html">fsolve_test.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="aefd0d3fa000963221de289a3933b7c9b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aefd0d3fa000963221de289a3933b7c9b">◆ </a></span>get_non_lin_sys_f1_()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_non_lin_sys_f1_ </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f1_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>The non-linear system f1. </p> +<p><img class="formulaInl" alt="$ f_1 \left(x_1, x_2 \right) = \begin{bmatrix} x_1^3 + x_2 - 1 \\ x_2^3 - x_1 + 1 \\ \end{bmatrix} $" src="form_20.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>pointer to the <img class="formulaInl" alt="$ x_1 $" src="form_21.png"/> and <img class="formulaInl" alt="$ x_2 $" src="form_22.png"/> values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">f1_vec[]</td><td>pointer to the <img class="formulaInl" alt="$ f_1 $" src="form_23.png"/> function values. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="fsolve__test_8c_source.html#l00054">54</a> of file <a class="el" href="fsolve__test_8c_source.html">fsolve_test.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +<a id="ae36fe8e55d180d348ef331efbbc5b908"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae36fe8e55d180d348ef331efbbc5b908">◆ </a></span>get_non_lin_sys_f2_()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_non_lin_sys_f2_ </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f2_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>The non-linear system <img class="formulaInl" alt="$ f_2 $" src="form_26.png"/>. </p> +<p><img class="formulaInl" alt="$ f_2 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} 3 x_1 - \cos\left( x_2 \times x_3 \right) - \dfrac{1}{2} \\ x_1^2 - 81 \left( x_2 + 0.1 \right)^2 + \sin(x_3) + 1.06 \\ \exp \left( -x1 \times x_2 \right) + 20 x_3 + \dfrac{10 \pi -3}{3} \\ \end{bmatrix} $" src="form_27.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>pointer to the <img class="formulaInl" alt="$ x_1 $" src="form_21.png"/>, <img class="formulaInl" alt="$ x_2 $" src="form_22.png"/>, and <img class="formulaInl" alt="$ x_3 $" src="form_28.png"/> values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">f2_vec[]</td><td>pointer to the <img class="formulaInl" alt="$ f_2 $" src="form_26.png"/> function values. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="fsolve__test_8c_source.html#l00110">110</a> of file <a class="el" href="fsolve__test_8c_source.html">fsolve_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00054">M_PI</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +<a id="a8f8a1fe785d5304202601b95e1e6871a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8f8a1fe785d5304202601b95e1e6871a">◆ </a></span>get_non_lin_sys_f3_()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_non_lin_sys_f3_ </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f3_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>The non-linear system <img class="formulaInl" alt="$ f_3 $" src="form_31.png"/>. </p> +<p><img class="formulaInl" alt="$ f_3 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} \exp \left( -x_1 x_2 \right) + \log \left( x_1 \right)-\exp \left( -2 \right) \\ \exp \left( x_1 \right) - \dfrac{\sqrt{x_3}}{x_1} - \exp \left( 1 \right) + 2\\ x_1 + x_2 - x_2 x_3 + 5 \\ \end{bmatrix} $" src="form_32.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>pointer to the <img class="formulaInl" alt="$ x_1 $" src="form_21.png"/>, <img class="formulaInl" alt="$ x_2 $" src="form_22.png"/>, and <img class="formulaInl" alt="$ x_3 $" src="form_28.png"/> values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">f3_vec[]</td><td>pointer to the <img class="formulaInl" alt="$ f_3 $" src="form_31.png"/> function values. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="fsolve__test_8c_source.html#l00174">174</a> of file <a class="el" href="fsolve__test_8c_source.html">fsolve_test.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +<a id="a3344cde9f5060d7ab962fbaaf1cdd88f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3344cde9f5060d7ab962fbaaf1cdd88f">◆ </a></span>get_non_lin_sys_J1_()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_non_lin_sys_J1_ </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J1</em>[][2] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>The Jacobian matrix of the non-linear system <img class="formulaInl" alt="$ f_1 $" src="form_23.png"/>. </p> +<p><img class="formulaInl" alt="$ J_1 \left( x_1, x_2\right) = \begin{bmatrix} 3 \times x_1^2 & 1 \\ -1 & 3 \times x_2^2 \\ \end{bmatrix} $" src="form_24.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>pointer to the <img class="formulaInl" alt="$ x_1 $" src="form_21.png"/> and <img class="formulaInl" alt="$ x_2 $" src="form_22.png"/> values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">J1[][]</td><td>pointer to the Jacobian function <img class="formulaInl" alt="$ J_1 $" src="form_25.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="fsolve__test_8c_source.html#l00080">80</a> of file <a class="el" href="fsolve__test_8c_source.html">fsolve_test.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +<a id="ab95955c80b1896b9e75a04faa4ce742e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab95955c80b1896b9e75a04faa4ce742e">◆ </a></span>get_non_lin_sys_J2_()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_non_lin_sys_J2_ </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J2</em>[][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>The Jacobian matrix of the non-linear system <img class="formulaInl" alt="$ f_2 $" src="form_26.png"/>. </p> +<p><img class="formulaInl" alt="$ J_2 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} 3 & x_3 \sin\left( x_2 x_3 \right) & x_2 \sin\left( x_2 x_3 \right) \\ 2 x_1 & -162 x2 - \dfrac{81}{5} & \cos(x_3) \\ -x_2 \exp\left( -x_1 x_2 \right) & -x_1 \exp\left( -x_1 x_2 \right) & 20 \end{bmatrix} $" src="form_29.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>pointer to the <img class="formulaInl" alt="$ x_1 $" src="form_21.png"/>, <img class="formulaInl" alt="$ x_2 $" src="form_22.png"/>, and <img class="formulaInl" alt="$ x_3 $" src="form_28.png"/> values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">J2[][]</td><td>pointer to the Jacobian function <img class="formulaInl" alt="$ J_2 $" src="form_30.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="fsolve__test_8c_source.html#l00139">139</a> of file <a class="el" href="fsolve__test_8c_source.html">fsolve_test.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +<a id="a6686e4624961ca943bebb616e763a100"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6686e4624961ca943bebb616e763a100">◆ </a></span>get_non_lin_sys_J3_()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_non_lin_sys_J3_ </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J3</em>[][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>The Jacobian matrix of the non-linear system <img class="formulaInl" alt="$ f_3 $" src="form_31.png"/>. </p> +<p><img class="formulaInl" alt="$ J_3 \left( x_1, x_2, x_3 \right) = \begin{bmatrix} \dfrac{1}{x_1}-x_2 \exp\left(-x_1 x_2\right) & -x_1\exp\left(-x_1 x_2\right) & 0 \\ \exp\left(x_1\right) + \dfrac{\sqrt{x_3}}{x_1^2} & 0 & \dfrac{-1}{2x_1\sqrt{x_3}} \\ 1 & 1-x_3 & -x_2 \end{bmatrix} $" src="form_33.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_arr[]</td><td>pointer to the <img class="formulaInl" alt="$ x_1 $" src="form_21.png"/>, <img class="formulaInl" alt="$ x_2 $" src="form_22.png"/>, and <img class="formulaInl" alt="$ x_3 $" src="form_28.png"/> values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">J3[][]</td><td>pointer to the Jacobian function <img class="formulaInl" alt="$ J_3 $" src="form_34.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="fsolve__test_8c_source.html#l00210">210</a> of file <a class="el" href="fsolve__test_8c_source.html">fsolve_test.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="fsolve__test_8c.html">fsolve_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/fsolve__test_8c.js b/doc/doxygen/html/fsolve__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..0d4b588f0583f4b5cd916d165e10a7a59955f5a8 --- /dev/null +++ b/doc/doxygen/html/fsolve__test_8c.js @@ -0,0 +1,10 @@ +var fsolve__test_8c = +[ + [ "fsolve_test", "fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37", null ], + [ "get_non_lin_sys_f1_", "fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b", null ], + [ "get_non_lin_sys_f2_", "fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908", null ], + [ "get_non_lin_sys_f3_", "fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a", null ], + [ "get_non_lin_sys_J1_", "fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f", null ], + [ "get_non_lin_sys_J2_", "fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e", null ], + [ "get_non_lin_sys_J3_", "fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/fsolve__test_8c_source.html b/doc/doxygen/html/fsolve__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c5d341cf300b5bc43436f3f7926a3c1de3b3ce3a --- /dev/null +++ b/doc/doxygen/html/fsolve__test_8c_source.html @@ -0,0 +1,399 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">fsolve_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="fsolve__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdlib.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <complex.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="newton__raphson_8h.html">newton_raphson.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="fsolve_8h.html">fsolve.h</a>"</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/********************** f1 ******************************/</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * f1(x1,x2) = [x1^3 + x2 - 1;</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * x2^3 - x1 + 1]</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b"> 54</a></span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f1_vec[])</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  f1_vec[0] = pow(x_arr[0], 3) + x_arr[1] - 1;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  f1_vec[1] = pow(x_arr[1], 3) - x_arr[0] + 1;</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> * J1(x1,x2) = [3*x1^2, 1;</span></div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> * -1, 3*x2^2]</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f"> 80</a></span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">get_non_lin_sys_J1_</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J1[][2])</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  J1[0][0] = 3 * pow(x_arr[0], 2);</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  J1[0][1] = 1;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  J1[1][0] = -1;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  J1[1][1] = 3 * pow(x_arr[1], 2);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">/****************************** f2 ********************************/</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> * f2(x1,x2,x3) = [3*x1-cos(x2*x3)-1/2;</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> * x1^2-81*(x2+0.1)^2+sin(x3)+1.06;</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> * exp(-x1*x2)+20*x3+(10*pi-3)/3</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"> * ]</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908"> 110</a></span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f2_vec[])</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> {</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  f2_vec[0] = 3 * x_arr[0] - cos(x_arr[1] * x_arr[2]) - 0.5;</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  f2_vec[1] = pow(x_arr[0], 2) - 81 * pow((x_arr[1] + 0.1), 2)</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  + sin(x_arr[2]) + 1.06;</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  f2_vec[2] = exp(-x_arr[0] * x_arr[1]) + 20 * x_arr[2]</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  + (10 * <a class="code" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a> - 3) / 3;</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> * [ 3, x3*sin(x2*x3), x2*sin(x2*x3)]</span></div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> * Jf2 = [ 2*x1, -162*x2 - 81/5, cos(x3)]</span></div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"> * [ -x2*exp(-x1*x2), -x1*exp(-x1*x2), 20]</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e"> 139</a></span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">get_non_lin_sys_J2_</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J2[][3])</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> {</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  J2[0][0] = 3;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  J2[0][1] = x_arr[2] * sin(x_arr[1] * x_arr[2]);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  J2[0][2] = x_arr[1] * sin(x_arr[1] * x_arr[2]);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  J2[1][0] = 2 * x_arr[0];</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  J2[1][1] = -162 * x_arr[1] - 16.2;</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  J2[1][2] = cos(x_arr[2]);</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  J2[2][0] = -x_arr[1] * exp(-x_arr[0] * x_arr[1]);</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  J2[2][1] = -x_arr[0] * exp(-x_arr[0] * x_arr[1]);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  J2[2][2] = 20;</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">/****************************** f3 ********************************/</span></div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment"> * f3(x1,x2,x3) = [exp(-x1*x2) + log(x1)-exp(-2);</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment"> * exp(x1)-sqrt(x3)/x1-exp(1)+2;</span></div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment"> * x1 + x2 - x2*x3+5</span></div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment"> * ]</span></div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a"> 174</a></span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f3_vec[])</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">double</span> complex z;</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  f3_vec[0] = exp(-x_arr[0] * x_arr[1]) + log(x_arr[0]) - exp(-2);</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (x_arr[2] < 0) {</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  z = csqrtl(x_arr[2]);</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  f3_vec[1] = exp(x_arr[0]) - creal(z) / x_arr[0] - exp(1) + 2;</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  f3_vec[1] = exp(x_arr[0]) - sqrt(x_arr[2]) / x_arr[0] - exp(1)</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  + 2;</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  f3_vec[2] = x_arr[0] + x_arr[1] - x_arr[1] * x_arr[2] + 5;</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> }</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment"> * [ 1/x1 - x2*exp(-x1*x2), -x1*exp(-x1*x2), 0]</span></div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"> * Jf3 = [ exp(x1) + x3^(1/2)/x1^2, 0, -1/(2*x1*x3^(1/2))]</span></div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> * [ 1, 1 - x3, -x2]</span></div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100"> 210</a></span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">get_non_lin_sys_J3_</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J3[][3])</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> {</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordtype">double</span> complex z;</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  J3[0][0] = 1 / x_arr[0] - x_arr[1] * exp(-x_arr[0] * x_arr[1]);</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  J3[0][1] = -x_arr[0] * exp(-x_arr[0] * x_arr[1]);</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  J3[0][2] = 0;</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">if</span> (x_arr[2] < 0) {</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  z = csqrtl(x_arr[2]);</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  J3[1][0] = exp(x_arr[0]) + creal(z) / pow(x_arr[0], 2);</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  J3[1][0] = exp(x_arr[0]) + sqrt(x_arr[2]) / pow(x_arr[0], 2);</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  J3[1][1] = 0;</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (x_arr[2] < 0) {</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  z = csqrtl(x_arr[2]);</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">if</span> ((x_arr[0] == 0) || (creal(z) == 0)) {</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="comment">//J3[1][2] = -1;</span></div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  J3[1][2] = -DBL_MAX;</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  J3[1][2] = -1 / (2 * x_arr[0] * creal(z));</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  J3[1][2] = -1 / (2 * x_arr[0] * sqrt(x_arr[2]));</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  J3[2][0] = 1;</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  J3[2][1] = 1 - x_arr[2];</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  J3[2][2] = -x_arr[1];</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> }</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div> +<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37"> 245</a></span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> {</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  puts(<span class="stringliteral">"############ Test Solve Non-linear Algebra Module ############"</span>);</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  puts(</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="stringliteral">"\n******************************* f1 ******************************"</span>);</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f1_vec[2];</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1_arr[2] = { 3, 2 };</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J1[2][2];</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a>(x1_arr, f1_vec);</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">get_non_lin_sys_J1_</a>(x1_arr, J1);</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  uint8_t f1_length = 2;</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr1[2] = { .5, .5 };</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  uint8_t n = 2;</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x1[n];</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  uint8_t iter_num;</div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">enum</span> <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a> algo;</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  </div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  algo = <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a>;</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  iter_num = <a class="code" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(f1_length, n, x0_arr1, algo, est_x1,</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  &<a class="code" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a>, &<a class="code" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">get_non_lin_sys_J1_</a>);</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// iter_num = newton_raphson(f1_length, n, x0_arr1, eps, max_it_num, est_x1,</span></div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// &get_non_lin_sys_f1_, &get_non_lin_sys_J1_);</span></div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  printf(<span class="stringliteral">"iter_num = %u\nx1 = "</span>, iter_num);</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, est_x1, 3, 3);</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a>(est_x1, f1_vec);</div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  printf(<span class="stringliteral">"f1(x1) = "</span>);</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(f1_length, f1_vec, 3, 3);</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  puts(<span class="stringliteral">"\nDamped Newton"</span>);</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  iter_num = 0;</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(n, est_x1);</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(f1_length, f1_vec);</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  algo = <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a>;</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  iter_num = <a class="code" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(f1_length, n, x0_arr1, algo, est_x1,</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  &<a class="code" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a>, &<a class="code" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">get_non_lin_sys_J1_</a>);</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  printf(<span class="stringliteral">"iter_num = %u\nx1 = "</span>, iter_num);</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, est_x1, 3, 3);</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a>(est_x1, f1_vec);</div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  printf(<span class="stringliteral">"f1(x1) = "</span>);</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(f1_length, f1_vec, 3, 3);</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  puts(</div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="stringliteral">"/\n******************************** f2 ******************************/"</span>);</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f2_vec[3];</div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J2[3][3];</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x2_arr[3] = { 0.1, 0.2, 0.3 };</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a>(x2_arr, f2_vec);</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">get_non_lin_sys_J2_</a>(x2_arr, J2);</div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  uint8_t f2_length = 3;</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  n = 3;</div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x2[n];</div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr2[3] = { 1, 1, 1 };</div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  algo = <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a>;</div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  iter_num = <a class="code" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(f2_length, n, x0_arr2, algo, est_x2,</div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  &<a class="code" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a>, &<a class="code" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">get_non_lin_sys_J2_</a>);</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment">// iter_num = newton_raphson(f2_length, n, x0_arr2, eps, max_it_num, est_x2,</span></div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment">// &get_non_lin_sys_f2_, &get_non_lin_sys_J2_);</span></div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  printf(<span class="stringliteral">"iter_num = %u\nx2 = "</span>, iter_num);</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, est_x2, 3, 9);</div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a>(est_x2, f2_vec);</div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  printf(<span class="stringliteral">"f2(x2) = "</span>);</div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(f2_length, f2_vec, 3, 3);</div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  </div> +<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  puts(<span class="stringliteral">"\nDamped Newton"</span>);</div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  iter_num = 0;</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(n, est_x2);</div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(f2_length, f2_vec);</div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  algo = <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a>;</div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  iter_num = <a class="code" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(f2_length, n, x0_arr2, algo, est_x2,</div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  &<a class="code" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a>, &<a class="code" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">get_non_lin_sys_J2_</a>);</div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  printf(<span class="stringliteral">"iter_num = %u\nx2 = "</span>, iter_num);</div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, est_x2, 3, 9);</div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a>(est_x2, f2_vec);</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  printf(<span class="stringliteral">"f2(x2) = "</span>);</div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(f2_length, f2_vec, 3, 3);</div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  puts(</div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="stringliteral">"/\n******************************** f3 ******************************/"</span>);</div> +<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div> +<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f3_vec[3];</div> +<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x3_arr[3] = { 1e1, 2e2, 3e3 };</div> +<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J3[3][3];</div> +<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a>(x3_arr, f3_vec);</div> +<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">get_non_lin_sys_J3_</a>(x3_arr, J3);</div> +<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  </div> +<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  uint8_t f3_length = 3;</div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  n = 3;</div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x3[n];</div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr3[3] = { 1, 1, 1 };</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  algo = <a class="code" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a>;</div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  iter_num = <a class="code" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(f3_length, n, x0_arr3, algo, est_x3,</div> +<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  &<a class="code" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a>,</div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  &<a class="code" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">get_non_lin_sys_J3_</a>);</div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment">// iter_num = newton_raphson(f3_length, n, x0_arr3, eps, max_it_num, est_x3,</span></div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment">// &get_non_lin_sys_f3_, &get_non_lin_sys_J3_);</span></div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  printf(<span class="stringliteral">"iter_num = %u\nx2 = "</span>, iter_num);</div> +<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, est_x3, 3, 9);</div> +<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a>(est_x3, f3_vec);</div> +<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  printf(<span class="stringliteral">"f3(x3) = "</span>);</div> +<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(f3_length, f3_vec, 3, 3);</div> +<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  </div> +<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  puts(<span class="stringliteral">"\nDamped Newton"</span>);</div> +<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  iter_num = 0;</div> +<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(n, est_x3);</div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(f3_length, f3_vec);</div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  iter_num = <a class="code" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a>(f3_length, n, x0_arr3, algo, est_x3,</div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  &<a class="code" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a>,</div> +<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  &<a class="code" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">get_non_lin_sys_J3_</a>);</div> +<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  printf(<span class="stringliteral">"iter_num = %u\nx3 = "</span>, iter_num);</div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, est_x3, 3, 9);</div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a>(est_x3, f3_vec);</div> +<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  printf(<span class="stringliteral">"f3(x3) = "</span>);</div> +<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(f3_length, f3_vec, 3, 3);</div> +<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="anewton__raphson_8h_html"><div class="ttname"><a href="newton__raphson_8h.html">newton_raphson.h</a></div><div class="ttdoc">Implement the Newton–Raphson algorithm.</div></div> +<div class="ttc" id="afsolve__test_8c_html_a3344cde9f5060d7ab962fbaaf1cdd88f"><div class="ttname"><a href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">get_non_lin_sys_J1_</a></div><div class="ttdeci">void get_non_lin_sys_J1_(vector_t x_arr[], matrix_t J1[][2])</div><div class="ttdoc">The Jacobian matrix of the non-linear system .</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00080">fsolve_test.c:80</a></div></div> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="afsolve_8h_html"><div class="ttname"><a href="fsolve_8h.html">fsolve.h</a></div><div class="ttdoc">Solve multi-variant nonlinear equation systems.</div></div> +<div class="ttc" id="afsolve__test_8c_html_a6686e4624961ca943bebb616e763a100"><div class="ttname"><a href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">get_non_lin_sys_J3_</a></div><div class="ttdeci">void get_non_lin_sys_J3_(vector_t x_arr[], matrix_t J3[][3])</div><div class="ttdoc">The Jacobian matrix of the non-linear system .</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00210">fsolve_test.c:210</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="afsolve__test_8c_html_aefd0d3fa000963221de289a3933b7c9b"><div class="ttname"><a href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">get_non_lin_sys_f1_</a></div><div class="ttdeci">void get_non_lin_sys_f1_(vector_t x_arr[], vector_t f1_vec[])</div><div class="ttdoc">The non-linear system f1.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00054">fsolve_test.c:54</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">NON_LIN_ALGORITHM</a></div><div class="ttdeci">NON_LIN_ALGORITHM</div><div class="ttdoc">Possible algorithms to solve multi-variant nonlinear equation systems.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00030">fsolve.h:30</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">Damped_Newton_Raphson</a></div><div class="ttdoc">Damped Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00032">fsolve.h:32</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="adamped__newton__raphson_8h_html"><div class="ttname"><a href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a></div><div class="ttdoc">Implement the damped Newton–Raphson algorithm.</div></div> +<div class="ttc" id="amatrix_8h_html_ae71449b1cc6e6250b91f539153a7a0d3"><div class="ttname"><a href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a></div><div class="ttdeci">#define M_PI</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00054">matrix.h:54</a></div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="afsolve__test_8c_html_ab95955c80b1896b9e75a04faa4ce742e"><div class="ttname"><a href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">get_non_lin_sys_J2_</a></div><div class="ttdeci">void get_non_lin_sys_J2_(vector_t x_arr[], matrix_t J2[][3])</div><div class="ttdoc">The Jacobian matrix of the non-linear system .</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00139">fsolve_test.c:139</a></div></div> +<div class="ttc" id="afsolve__test_8c_html_ae36fe8e55d180d348ef331efbbc5b908"><div class="ttname"><a href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">get_non_lin_sys_f2_</a></div><div class="ttdeci">void get_non_lin_sys_f2_(vector_t x_arr[], vector_t f2_vec[])</div><div class="ttdoc">The non-linear system .</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00110">fsolve_test.c:110</a></div></div> +<div class="ttc" id="afsolve__test_8c_html_a53bbdeb6ad57eeb4b512c4620b64cc37"><div class="ttname"><a href="fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test</a></div><div class="ttdeci">void fsolve_test(void)</div><div class="ttdoc">Examples of solving non-linear equation systems.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00245">fsolve_test.c:245</a></div></div> +<div class="ttc" id="afsolve_8h_html_a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117"><div class="ttname"><a href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">Newton_Raphson</a></div><div class="ttdoc">Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8h_source.html#l00031">fsolve.h:31</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="afsolve__test_8c_html_a8f8a1fe785d5304202601b95e1e6871a"><div class="ttname"><a href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">get_non_lin_sys_f3_</a></div><div class="ttdeci">void get_non_lin_sys_f3_(vector_t x_arr[], vector_t f3_vec[])</div><div class="ttdoc">The non-linear system .</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00174">fsolve_test.c:174</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="afsolve_8c_html_a690a05654627b94634ffed0893946ba7"><div class="ttname"><a href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve</a></div><div class="ttdeci">uint8_t fsolve(uint8_t f_length, uint8_t x0_length, vector_t x0_arr[], enum NON_LIN_ALGORITHM algo, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][x0_length]))</div><div class="ttdoc">Solve systems of multi-variant nonlinear equations.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve_8c_source.html#l00029">fsolve.c:29</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="fsolve__test_8c.html">fsolve_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/fsolve__test_8h.html b/doc/doxygen/html/fsolve__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..5d5132c08b22fff0743295ad1fcf40b89c80ccbf --- /dev/null +++ b/doc/doxygen/html/fsolve__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">fsolve_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of solving non-linear equation systems. +<a href="#details">More...</a></p> + +<p><a href="fsolve__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a53bbdeb6ad57eeb4b512c4620b64cc37"><td class="memItemLeft" align="right" valign="top"><a id="a53bbdeb6ad57eeb4b512c4620b64cc37"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test</a> (void)</td></tr> +<tr class="memdesc:a53bbdeb6ad57eeb4b512c4620b64cc37"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving non-linear equation systems. <br /></td></tr> +<tr class="separator:a53bbdeb6ad57eeb4b512c4620b64cc37"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of solving non-linear equation systems. </p> +<p>Solving non-linear equation systems examples (see <a class="el" href="fsolve_8h.html">fsolve</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="fsolve__test_8h_source.html">fsolve_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_5eb44610c4b05a35dc8627fc05b536b4.html">include</a></li><li class="navelem"><a class="el" href="fsolve__test_8h.html">fsolve_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/fsolve__test_8h.js b/doc/doxygen/html/fsolve__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..ba6d31b93d9029733a1b6dbc9f95c1bb7103039c --- /dev/null +++ b/doc/doxygen/html/fsolve__test_8h.js @@ -0,0 +1,4 @@ +var fsolve__test_8h = +[ + [ "fsolve_test", "fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/fsolve__test_8h_source.html b/doc/doxygen/html/fsolve__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..212f6aa3240c1723d59e1c70952be63c0a041336 --- /dev/null +++ b/doc/doxygen/html/fsolve__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: fsolve_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('fsolve__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">fsolve_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="fsolve__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef FSOLVE_TEST_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define FSOLVE_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code" href="fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif </span><span class="comment">/* FSOLVE_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="afsolve__test_8h_html_a53bbdeb6ad57eeb4b512c4620b64cc37"><div class="ttname"><a href="fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test</a></div><div class="ttdeci">void fsolve_test(void)</div><div class="ttdoc">Examples of solving non-linear equation systems.</div><div class="ttdef"><b>Definition:</b> <a href="fsolve__test_8c_source.html#l00245">fsolve_test.c:245</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c7944ce5d3d7fbd5a70a851e7cbdd521.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_5eb44610c4b05a35dc8627fc05b536b4.html">include</a></li><li class="navelem"><a class="el" href="fsolve__test_8h.html">fsolve_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/functions.html b/doc/doxygen/html/functions.html new file mode 100644 index 0000000000000000000000000000000000000000..1953f998bc2210dcb0ab5314a6df4aab7ffe051a --- /dev/null +++ b/doc/doxygen/html/functions.html @@ -0,0 +1,108 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Data Fields</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('functions.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul> +<li>col_num +: <a class="el" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t</a> +</li> +<li>row_num +: <a class="el" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/functions_vars.html b/doc/doxygen/html/functions_vars.html new file mode 100644 index 0000000000000000000000000000000000000000..89dca0cf374f31d4fdbe21f7993816062f74393b --- /dev/null +++ b/doc/doxygen/html/functions_vars.html @@ -0,0 +1,108 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Data Fields - Variables</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('functions_vars.html','');}); +/* @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="contents"> + <ul> +<li>col_num +: <a class="el" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t</a> +</li> +<li>row_num +: <a class="el" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/getting-started.html b/doc/doxygen/html/getting-started.html new file mode 100644 index 0000000000000000000000000000000000000000..66fff6f4872de2966c0b6f740be3ea309a9afed7 --- /dev/null +++ b/doc/doxygen/html/getting-started.html @@ -0,0 +1,231 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Getting started</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('getting-started.html','');}); +/* @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="PageDoc"><div class="header"> + <div class="headertitle"> +<div class="title">Getting started </div> </div> +</div><!--header--> +<div class="contents"> +<div class="toc"><h3>Table of Contents</h3> +<ul><li class="level1"><a href="#downloading-RcdMathLib-code">Downloading RcdMathLib code</a></li> +<li class="level1"><a href="#compiling-RcdMathLib">Compiling RcdMathLib</a><ul><li class="level2"><a href="#setting-up-a-toolchain-full-fledge">Setting up a toolchain for full-fledged devices</a></li> +<li class="level2"><a href="#setting-up-a-toolchain-res-lim">Setting up a toolchain for resource-limited devices</a></li> +<li class="level2"><a href="#the-build-system-full-fledge">The build system for full-fledged devices</a></li> +<li class="level2"><a href="#the-build-system-res-lim">The build system for resource-limited devices</a></li> +<li class="level2"><a href="#building-and-executing-an-example-res-lim">Building and executing an example for resource-limited devices</a></li> +</ul> +</li> +</ul> +</div> +<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi</dd></dl> +<h1><a class="anchor" id="downloading-RcdMathLib-code"></a> +Downloading RcdMathLib code</h1> +<p>You can obtain the latest RcdMathLib code from our <a href="https://github.com/RIOT-OS/">Github</a> repository either by <a href="https://github.com/RIOT-OS/RIOT/releases">downloading the latest tarball</a> or by cloning the <a href="https://github.com/RIOT-OS/RIOT">git repository</a>.</p> +<p>In order to clone the RIOT repository, you need the <a href="http://git-scm.com/">Git revision control system</a> and run the following command:</p> +<div class="fragment"><div class="line">git clone git://github.com/RIOT-OS/RIOT.git</div> +</div><!-- fragment --><h1><a class="anchor" id="compiling-RcdMathLib"></a> +Compiling RcdMathLib</h1> +<h2><a class="anchor" id="setting-up-a-toolchain-full-fledge"></a> +Setting up a toolchain for full-fledged devices</h2> +<p>RcdMathLib can be run on full-fledged devices such as a Personal Computer (PC) or a server. It can also be executed on the embedded system Raspberry Pi running an Operating System (OS) such as the Raspbian or the Ubuntu Core. For platforms based on full-fledged OSs like the Linux or Windows, we recommend the GNU Compiler Collection (GCC). We also recommend the use of the Eclipse (IDE).</p> +<p>The PATH environment variable should be set with bin-directory of the GCC compiler. On a typical shell like bash or zsh this can be done using export, e.g.</p> +<blockquote class="doxtable"> +<p>export PATH=${PATH}:/path/to/gcc/bin </p> +</blockquote> +<p>For windows, add the bin-directory to your PATH under System Properties->Advanced-> Environment Variables, e.g.</p> +<blockquote class="doxtable"> +<p>"C:\gcc\bin" </p> +</blockquote> +<h2><a class="anchor" id="setting-up-a-toolchain-res-lim"></a> +Setting up a toolchain for resource-limited devices</h2> +<p>Depending on the hardware you want to use, you need to first install a corresponding toolchain. We recommend the use of the <a href="https://riot-os.org/">RIOT-OS</a>, since it supports 8-bit platforms (e.g. Arduino Mega 2560), 16-bit platforms (e.g. MSP430), and 32-bit platforms (e.g. ARM). The RIOT-OS is an open source IoT operating system developed at the ''Freie Universität Berlin''. In general, an OS allows the management and sharing of resources as well as the development of multi-tasking applications in a computer system. The Wiki on RIOT's Github page contains a lot of information that can help you with your platform:</p> +<ul> +<li><a href="https://github.com/RIOT-OS/RIOT/wiki/Family:-ARM">ARM-based platforms</a></li> +<li><a href="https://github.com/RIOT-OS/RIOT/wiki/Family:-MSP430">TI MSP430</a></li> +<li><a href="https://github.com/RIOT-OS/RIOT/wiki/Family%3A-ATmega">Atmel ATmega</a></li> +<li><a href="https://github.com/RIOT-OS/RIOT/wiki/Family:-native">native</a></li> +</ul> +<h2><a class="anchor" id="the-build-system-full-fledge"></a> +The build system for full-fledged devices</h2> +<p>RcdMathLib can be built using the <a href="https://www.eclipse.org/">Eclipse IDE</a> for C/C++ Developers. The simplest way to compile and link an application with the RcdMathLib is: Firstly, to download <a href="https://git.imp.fu-berlin.de/zkasmi/test_my_lib/blob/master/RcdMathLib_eclipse_version.zip">RcdMathLib_eclipse_version.zip</a> file or to clone it:</p> +<div class="fragment"><div class="line">git clone git@git.imp.fu-berlin.de:zkasmi/test_my_lib.git</div> +</div><!-- fragment --><p>After cloning or downloading the RcdMathLib, the Eclipse version of the RcdMathLib can be used as follows:</p><ol type="1"> +<li>Create a workspace folder (e.g. rcd_math_lib_workspace).</li> +<li>Start the Eclipse IDE and browse to the created workspace folder.</li> +<li>Open File->Import->General.</li> +<li>Select ''Existing Project into Workspace'' from the Selection Wizard.</li> +<li>Select Next->''archive file''-->Browse.</li> +<li>After Browsing to the <a href="https://git.imp.fu-berlin.de/zkasmi/test_my_lib/blob/master/RcdMathLib_eclipse_version.zip">RcdMathLib_eclipse_version.zip</a> file, click on Finish.</li> +<li>Compile the whole project.</li> +</ol> +<p>Another method to use the RcdMathLib in the Eclipse IDE is:</p><ol type="1"> +<li>Clone the whole RcdMathLib version for full-fledged devices: <div class="fragment"><div class="line">git clone git@git.imp.fu-berlin.de:zkasmi/my_lib_full_fledged_devices.git</div> +</div><!-- fragment --></li> +<li>Create a new C project by choosing the project type under Executable: <code>Hello World ANSI C Project</code>, as well as the <code>Cross GCC</code> Tool-chains.</li> +<li>Try to compile and execute the <code>Hello World ANSI C Project</code>.</li> +<li>Copy the RcdMathLib- and the examples-directories, as well as the 'eclipse_path_includes_settings.xml' configuration file into the src-directory of your project.</li> +<li><p class="startli">Import the 'eclipse_path_includes_settings.xml' file as follows:</p> +<blockquote class="doxtable"> +<ul> +<li>Open File -> Import -> C/C++ and Select ''C/C++ Project Settings'' from the Selection Wizard.</li> +<li>Click Next->''Select Settings file''-->Browse.</li> +<li>After Browsing to the xml-configuration file, click on Finish. </li> +</ul> +</blockquote> +</li> +<li>Compile the whole project.</li> +<li>Optional: replace the main()-function with the main.c file of the cloned RcdMathLib version for full-fledged devices.</li> +</ol> +<p>Third method (intern): Set up the <a href="https://www.eclipse.org/">Eclipse IDE</a> as follows:</p><ol type="1"> +<li>Create a new C project, choose the project type under Executable: <code>Hello World ANSI C Project</code>, as well as the <code>Cross GCC</code> Tool-chains.</li> +<li>Try to compile and execute the <code>Hello World ANSI C Project</code>.</li> +<li>Copy the RcdMathLib-directory into the src-directory.</li> +<li>Replace the file containing the main()-function with the main.c file of the RcdMathLib.</li> +<li>Setting the include-paths of the modules in the Eclipse IDE: Properties/Paths and Symbols/GNU C</li> +</ol> +<h2><a class="anchor" id="the-build-system-res-lim"></a> +The build system for resource-limited devices</h2> +<p>RcdMathLib and RIOT use <a href="https://www.gnu.org/software/make/">GNU make</a> as build system. The simplest way to compile and link an application with RcdMathLib, is to set up a Makefile providing at least the following variables:</p> +<ul> +<li><code>APPLICATION</code>: should contain the (unique) name of your application</li> +<li><code>BOARD</code>: specifies the platform the application should be build for by default</li> +<li><code>RIOTBASE</code>: specifies the path to the copy of the RIOT repository (note, the <code></code> macro can be used to give a relative path)</li> +<li><code>RCDMATHLIB</code>: specifies the path to the copy of the RcdMathLib repository (note, the <code></code> macro can be used to give a relative path)</li> +<li><code>USEMODULE</code>: specifies the module of the RcdMathLib that you may want to use</li> +</ul> +<p>Additionally it has to include the <code>Makefile.include</code>, located in RcdMathLib's as well as RIOT's root directories. A minimal application Makefile looks like this:</p> +<div class="fragment"><div class="line"># a minimal application Makefile</div> +<div class="line">APPLICATION = mini-makefile</div> +<div class="line">BOARD ?= native</div> +<div class="line">RIOTBASE ?= $(CURDIR)/../RIOT</div> +<div class="line">RCDMATHLIB ?= $(CURDIR)/../RcdMathLib</div> +<div class="line">USEMODULE += basic_operations</div> +<div class="line"> </div> +<div class="line">include $(RIOTBASE)/MicroPosMath-Lib/Makefile.include</div> +<div class="line">include $(RIOTBASE)/Makefile.include</div> +</div><!-- fragment --><p>The <code>?=</code> operator can be used in order to allow overwriting variables from the command line. For example, the target platform can be specified from the command line as follows:</p> +<div class="fragment"><div class="line">make BOARD=stm32f4discovery</div> +</div><!-- fragment --><p>In this case the STM32F4 discovery board is specified. Furthermore, the basic operations sub-module is selected by the <code>USEMODULE</code> macro.</p> +<p>Other sub-modules such as the matrix decompositions or utilities modules can be selected, e.g.:</p> +<div class="fragment"><div class="line">USEMODULE += matrix_decompositions </div> +<div class="line">USEMODULE += utilities </div> +</div><!-- fragment --><p> The dependency of the RcdMathLib modules and sub-modules to each other is automatically calculated by special Makefiles located in the module directories.</p> +<p>Besides typical targets like <code>clean</code>, <code>all</code>, or <code>doc</code>, RIOT provides the special targets <code>flash</code> and <code>term</code> to invoke the configured flashing and terminal tools for the specified platform. These targets use the variable <code>PORT</code> for the serial communication to the device. Neither this variable nor the targets <code>flash</code> and <code>term</code> are mandatory for the native port.</p> +<p>Unless specified otherwise, make will create an elf-file as well as an Intel hex file in the <code>bin</code> folder of your application directory.</p> +<p>Please visit the <a href="https://github.com/RIOT-OS/RIOT/wiki/The-Make-Build-System">Wiki</a> to learn more about the build system of the RIOT.</p> +<h2><a class="anchor" id="building-and-executing-an-example-res-lim"></a> +Building and executing an example for resource-limited devices</h2> +<p>RcdMathLib provides a number of examples in the <code>examples/</code> directory. Every example has a README that documents its usage and its purpose. Furthermore the examples are described in the doc-directory. You can build your own application or the examples by typing</p> +<div class="fragment"><div class="line">make BOARD=stm32f4discovery</div> +</div><!-- fragment --><p>or</p> +<div class="fragment"><div class="line">make all BOARD=stm32f4discovery</div> +</div><!-- fragment --><p>into your shell.</p> +<p>To flash the application to a board just type</p> +<div class="fragment"><div class="line">make flash BOARD=stm32f4discovery</div> +</div><!-- fragment --><p>You can then access the board via the serial interface:</p> +<div class="fragment"><div class="line">make term BOARD=stm32f4discovery</div> +</div><!-- fragment --><p>If you are using multiple boards you can use the <code>PORT</code> macro to specify the serial interface:</p> +<div class="fragment"><div class="line">make term BOARD=stm32f4discovery PORT=/dev/ttyACM1</div> +</div><!-- fragment --><p>We use <code>pyterm</code> as the default terminal application. It is shipped with RIOT in the <code>dist/tools/pyterm/</code> directory. If you choose to use another terminal program you can set <code>TERMPROG</code> (and if need be the <code>TERMFLAGS</code>) macros:</p> +<div class="fragment"><div class="line">make -C examples/gnrc_networking/ term \</div> +<div class="line"> BOARD=samr21-xpro \</div> +<div class="line"> TERMPROG=gtkterm \</div> +<div class="line"> TERMFLAGS="-s 115200 -p /dev/ttyACM0 -e"</div> +</div><!-- fragment --><p>Please visit the <a href="https://github.com/RIOT-OS/RIOT/wiki">Wiki</a> to learn more about flashing devices. </p> +</div></div><!-- contents --> +</div><!-- PageDoc --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/givens__test_8c.html b/doc/doxygen/html/givens__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..21d25d8fcacedd7aa70f3cc441fc36a0a4a05466 --- /dev/null +++ b/doc/doxygen/html/givens__test_8c.html @@ -0,0 +1,129 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: givens_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('givens__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">givens_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the Givens algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="qr__givens_8h_source.html">qr_givens.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="givens__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a7b8199da35e2aec77e76bbb9c52a28ae"><td class="memItemLeft" align="right" valign="top"><a id="a7b8199da35e2aec77e76bbb9c52a28ae"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test</a> (void)</td></tr> +<tr class="memdesc:a7b8199da35e2aec77e76bbb9c52a28ae"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Givens algorithm. <br /></td></tr> +<tr class="separator:a7b8199da35e2aec77e76bbb9c52a28ae"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the Givens algorithm. </p> +<p>Givens algorithm examples (see <a class="el" href="qr__givens_8h.html">qr_givens.h</a> the "Givens" approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="givens__test_8c_source.html">givens_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="givens__test_8c.html">givens_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/givens__test_8c.js b/doc/doxygen/html/givens__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..a12c7830f216fa18c050de7d14e8ce22c78624bd --- /dev/null +++ b/doc/doxygen/html/givens__test_8c.js @@ -0,0 +1,4 @@ +var givens__test_8c = +[ + [ "givens_test", "givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/givens__test_8c_source.html b/doc/doxygen/html/givens__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..b1f1e196cdfd1de784599fba49e02a9e8f073b4b --- /dev/null +++ b/doc/doxygen/html/givens__test_8c_source.html @@ -0,0 +1,215 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: givens_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('givens__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">givens_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="givens__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="qr__givens_8h.html">qr_givens.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae"> 28</a></span> <span class="keywordtype">void</span> <a class="code" href="givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xj, xij;</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  xj = 100;</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  xij = 130;</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_s_t_r_vec[4];</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a>(xj, xij, c_s_t_r_vec);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  printf(<span class="stringliteral">"c = %7.4f\n"</span>, c_s_t_r_vec[0]);</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  printf(<span class="stringliteral">"s = %7.4f\n"</span>, c_s_t_r_vec[1]);</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  printf(<span class="stringliteral">"t = %7.4f\n"</span>, c_s_t_r_vec[2]);</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  printf(<span class="stringliteral">"r = %7.4f\n"</span>, c_s_t_r_vec[3]);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  puts(<span class="stringliteral">"************ MATRIX A ************"</span>);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[10][5] = {</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 },</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  { 0.0975, 0.1419, 0.7577, 0.8235, 0.4898 },</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  { 0.2785, 0.4218, 0.7431, 0.6948, 0.4456 },</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  { 0.5469, 0.9157, 0.3922, 0.3171, 0.6463 },</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  { 0.9575, 0.7922, 0.6555, 0.9502, 0.7094 },</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  { 0.9649, 0.9595, 0.1712, 0.0344, 0.7547 }</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  };</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  uint8_t m, n;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  m = 10;</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  n = 5;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A[m][n];</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  puts(<span class="stringliteral">"+++++++ Reduced QR-form +++++++"</span>);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_Q[m][n];</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(m, n, copy_A, n, red_Q, <span class="keyword">true</span>);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  printf(<span class="stringliteral">"red_Q = "</span>);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, red_Q, 7, 4);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  printf(<span class="stringliteral">"red_R = "</span>);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, copy_A, 7, 4);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  puts(<span class="stringliteral">"+++++++ Full QR-form +++++++"</span>);</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> full_Q[m][m];</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(m, n, copy_A, m, full_Q, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  printf(<span class="stringliteral">"full_Q = "</span>);</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, m, full_Q, 7, 4);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  printf(<span class="stringliteral">"full_R = "</span>);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, copy_A, 7, 4);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  puts(<span class="stringliteral">"************ MATRIX B ************"</span>);</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[7][7] =</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  { 0.8147, 0.5469, 0.8003, 0.0357, 0.6555, 0.8235, 0.7655 },</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  { 0.9058, 0.9575, 0.1419, 0.8491, 0.1712, 0.6948, 0.7952 },</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  { 0.1270, 0.9649, 0.4218, 0.9340, 0.7060, 0.3171, 0.1869 },</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  { 0.9134, 0.1576, 0.9157, 0.6787, 0.0318, 0.9502, 0.4898 },</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  { 0.6324, 0.9706, 0.7922, 0.7577, 0.2769, 0.0344, 0.4456 },</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  { 0.0975, 0.9572, 0.9595, 0.7431, 0.0462, 0.4387, 0.6463 },</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  { 0.2785, 0.4854, 0.6557, 0.3922, 0.0971, 0.3816, 0.7094 }</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  };</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  m = 7;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  n = 7;</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_B[m][n];</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  puts(<span class="stringliteral">"+++++++ Reduced QR-form +++++++"</span>);</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, B, copy_B);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_Q1[m][n];</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(m, n, copy_B, n, red_Q1, <span class="keyword">true</span>);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  printf(<span class="stringliteral">"red_Q = "</span>);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, red_Q1, 7, 4);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  printf(<span class="stringliteral">"red_R = "</span>);</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, copy_B, 7, 4);</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  puts(<span class="stringliteral">"+++++++ Full QR-form +++++++"</span>);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, B, copy_B);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> full_Q1[m][m];</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(m, n, copy_B, m, full_Q1, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  printf(<span class="stringliteral">"full_Q = "</span>);</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, m, full_Q1, 7, 4);</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  printf(<span class="stringliteral">"full_R = "</span>);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, copy_B, 7, 4);</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="agivens__test_8c_html_a7b8199da35e2aec77e76bbb9c52a28ae"><div class="ttname"><a href="givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test</a></div><div class="ttdeci">void givens_test(void)</div><div class="ttdoc">Examples of the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="givens__test_8c_source.html#l00028">givens_test.c:28</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="aqr__givens_8h_html_a07adca97c58afc057a5cff738f6473cc"><div class="ttname"><a href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a></div><div class="ttdeci">int8_t qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00033">qr_givens.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="aqr__givens_8h_html_a53f748fbc6f8a129deb6a048d423d644"><div class="ttname"><a href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a></div><div class="ttdeci">void qr_givens_get_params(matrix_t xjj, matrix_t xij, matrix_t c_s_t_r_vec[])</div><div class="ttdoc">Compute the Givens parameters.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00110">qr_givens.c:110</a></div></div> +<div class="ttc" id="aqr__givens_8h_html"><div class="ttname"><a href="qr__givens_8h.html">qr_givens.h</a></div><div class="ttdoc">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices ...</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_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="givens__test_8c.html">givens_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/givens__test_8h.html b/doc/doxygen/html/givens__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..76116337c52e01eab9d66a9c594833059a8791ca --- /dev/null +++ b/doc/doxygen/html/givens__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: givens_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('givens__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">givens_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the Givens algorithm. +<a href="#details">More...</a></p> + +<p><a href="givens__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a7b8199da35e2aec77e76bbb9c52a28ae"><td class="memItemLeft" align="right" valign="top"><a id="a7b8199da35e2aec77e76bbb9c52a28ae"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test</a> (void)</td></tr> +<tr class="memdesc:a7b8199da35e2aec77e76bbb9c52a28ae"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Givens algorithm. <br /></td></tr> +<tr class="separator:a7b8199da35e2aec77e76bbb9c52a28ae"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the Givens algorithm. </p> +<p>Givens algorithm examples (see <a class="el" href="qr__givens_8h.html">qr_givens.h</a> the "Givens" approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="givens__test_8h_source.html">givens_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="givens__test_8h.html">givens_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/givens__test_8h.js b/doc/doxygen/html/givens__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..475fea9d123c9d4b372680ee2a1003aa9c45f876 --- /dev/null +++ b/doc/doxygen/html/givens__test_8h.js @@ -0,0 +1,4 @@ +var givens__test_8h = +[ + [ "givens_test", "givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/givens__test_8h_source.html b/doc/doxygen/html/givens__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..6eea239493a2887bf76d694d72dc46c312d5431d --- /dev/null +++ b/doc/doxygen/html/givens__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: givens_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('givens__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">givens_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="givens__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef GIVENS_TEST_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define GIVENS_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code" href="givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif </span><span class="comment">/* GIVENS_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="agivens__test_8h_html_a7b8199da35e2aec77e76bbb9c52a28ae"><div class="ttname"><a href="givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test</a></div><div class="ttdeci">void givens_test(void)</div><div class="ttdoc">Examples of the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="givens__test_8c_source.html#l00028">givens_test.c:28</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="givens__test_8h.html">givens_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals.html b/doc/doxygen/html/globals.html new file mode 100644 index 0000000000000000000000000000000000000000..83857029304f0f18c86b53ca977ae56ca60c207f --- /dev/null +++ b/doc/doxygen/html/globals.html @@ -0,0 +1,110 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_a"></a>- a -</h3><ul> +<li>ALGORITHM +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">pseudo_inverse.h</a> +</li> +<li>AR +: <a class="el" href="magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe">magnetic_based_position.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_c.html b/doc/doxygen/html/globals_c.html new file mode 100644 index 0000000000000000000000000000000000000000..1a41b5203051bc0fa31aa81a914138a414e73d9a --- /dev/null +++ b/doc/doxygen/html/globals_c.html @@ -0,0 +1,124 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_c.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_c"></a>- c -</h3><ul> +<li>COMBI_EMPTY +: <a class="el" href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872">combinatorics.h</a> +</li> +<li>COMBI_END +: <a class="el" href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7">combinatorics.h</a> +</li> +<li>COMBI_ERROR +: <a class="el" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">combinatorics.h</a> +</li> +<li>COMBI_SUCCESS +: <a class="el" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">combinatorics.h</a> +</li> +<li>combinatorics_get_next_without_rep() +: <a class="el" href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics.c</a> +, <a class="el" href="combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics.h</a> +</li> +<li>combinatorics_init() +: <a class="el" href="combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics.h</a> +, <a class="el" href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_d.html b/doc/doxygen/html/globals_d.html new file mode 100644 index 0000000000000000000000000000000000000000..e84806f7fad7fe9653d1f3338a7973fae59cc416 --- /dev/null +++ b/doc/doxygen/html/globals_d.html @@ -0,0 +1,147 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_d.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_d"></a>- d -</h3><ul> +<li>Damped_Newton_Raphson +: <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">fsolve.h</a> +</li> +<li>damped_newton_raphson() +: <a class="el" href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson.c</a> +, <a class="el" href="damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson.h</a> +</li> +<li>dist_based_f_i() +: <a class="el" href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_fi.c</a> +, <a class="el" href="dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_fi.h</a> +</li> +<li>dist_based_fi() +: <a class="el" href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi.c</a> +, <a class="el" href="dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi.h</a> +</li> +<li>dist_based_get_absolute_error() +: <a class="el" href="dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_position.c</a> +, <a class="el" href="dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_position.h</a> +</li> +<li>dist_based_get_distance_to_anchor() +: <a class="el" href="dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d">dist_based_position.c</a> +, <a class="el" href="dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d">dist_based_position.h</a> +</li> +<li>dist_based_jacobian_get_J() +: <a class="el" href="dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian.c</a> +, <a class="el" href="dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian.h</a> +</li> +<li>dist_based_jacobian_get_J_mul_s() +: <a class="el" href="dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian.h</a> +, <a class="el" href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian.c</a> +</li> +<li>dist_based_jacobian_get_JTf() +: <a class="el" href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian.c</a> +, <a class="el" href="dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian.h</a> +</li> +<li>dist_based_jacobian_get_JTJ() +: <a class="el" href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian.c</a> +, <a class="el" href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian.h</a> +</li> +<li>distance_based_test() +: <a class="el" href="distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test.h</a> +, <a class="el" href="distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_defs.html b/doc/doxygen/html/globals_defs.html new file mode 100644 index 0000000000000000000000000000000000000000..3ea9f9df1ae392cb57bc8835d31f6233252a5f5b --- /dev/null +++ b/doc/doxygen/html/globals_defs.html @@ -0,0 +1,188 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_defs.html','');}); +/* @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="contents"> + <ul> +<li>AR +: <a class="el" href="magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe">magnetic_based_position.h</a> +</li> +<li>COMBI_EMPTY +: <a class="el" href="combinatorics_8h.html#a744ae7aa581aa908643d95d470394872">combinatorics.h</a> +</li> +<li>COMBI_END +: <a class="el" href="combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7">combinatorics.h</a> +</li> +<li>COMBI_ERROR +: <a class="el" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">combinatorics.h</a> +</li> +<li>COMBI_SUCCESS +: <a class="el" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">combinatorics.h</a> +</li> +<li>I0 +: <a class="el" href="magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718">magnetic_based_position.h</a> +</li> +<li>K +: <a class="el" href="magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254">magnetic_based_position.h</a> +</li> +<li>K_T +: <a class="el" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">magnetic_based_position.h</a> +</li> +<li>M_PI +: <a class="el" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">matrix.h</a> +, <a class="el" href="utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">utils.h</a> +</li> +<li>MACHEPS +: <a class="el" href="matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192">matrix.h</a> +</li> +<li>matrix_t +: <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix.h</a> +</li> +<li>MAX_COL_NUM +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MAX_ROW_NUM +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MG_TO_T +: <a class="el" href="magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691">magnetic_based_position.h</a> +</li> +<li>MILPS_MAX_DIST +: <a class="el" href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc">magnetic_based_position.h</a> +</li> +<li>MOORE_PENROSE_INVALID_RANK_VALUE +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MOORE_PENROSE_PSEUDO_COMP_SUCCESS +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MU0 +: <a class="el" href="magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4">magnetic_based_position.h</a> +</li> +<li>NW +: <a class="el" href="magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687">magnetic_based_position.h</a> +</li> +<li>PI +: <a class="el" href="norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca">norm_dist_rnd_generator.h</a> +, <a class="el" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca">magnetic_based_position.h</a> +</li> +<li>R0 +: <a class="el" href="magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f">magnetic_based_position.h</a> +</li> +<li>SVD_COMPUTE_NEGLIGIBLE_VALUES +: <a class="el" href="svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5">svd.h</a> +</li> +<li>SVD_ORDER_ABSOLUTE_SING_VALUES +: <a class="el" href="svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a">svd.h</a> +</li> +<li>SVD_QR_STEP +: <a class="el" href="svd_8h.html#af9e7db6685a0631312bfb93cc58dd756">svd.h</a> +</li> +<li>SVD_SPLIT_AT_NEGLIGIBLE_VALUES +: <a class="el" href="svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4">svd.h</a> +</li> +<li>vector_t +: <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_dup.js b/doc/doxygen/html/globals_dup.js new file mode 100644 index 0000000000000000000000000000000000000000..19322cb282106d31eaea8fb686a963bd05c589f8 --- /dev/null +++ b/doc/doxygen/html/globals_dup.js @@ -0,0 +1,22 @@ +var globals_dup = +[ + [ "a", "globals.html", null ], + [ "c", "globals_c.html", null ], + [ "d", "globals_d.html", null ], + [ "f", "globals_f.html", null ], + [ "g", "globals_g.html", null ], + [ "h", "globals_h.html", null ], + [ "i", "globals_i.html", null ], + [ "k", "globals_k.html", null ], + [ "l", "globals_l.html", null ], + [ "m", "globals_m.html", null ], + [ "n", "globals_n.html", null ], + [ "o", "globals_o.html", null ], + [ "p", "globals_p.html", null ], + [ "q", "globals_q.html", null ], + [ "r", "globals_r.html", null ], + [ "s", "globals_s.html", null ], + [ "t", "globals_t.html", null ], + [ "u", "globals_u.html", null ], + [ "v", "globals_v.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/globals_enum.html b/doc/doxygen/html/globals_enum.html new file mode 100644 index 0000000000000000000000000000000000000000..382a7527c99b906504c2a1899bdbfa3ef031b881 --- /dev/null +++ b/doc/doxygen/html/globals_enum.html @@ -0,0 +1,111 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_enum.html','');}); +/* @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="contents"> + <ul> +<li>ALGORITHM +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">pseudo_inverse.h</a> +</li> +<li>NON_LIN_ALGORITHM +: <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">fsolve.h</a> +</li> +<li>QR_ALGORITHM +: <a class="el" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">qr_common.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_eval.html b/doc/doxygen/html/globals_eval.html new file mode 100644 index 0000000000000000000000000000000000000000..2e47a643b1a7dc10a4e52b43c5e3aa2bdb5431b5 --- /dev/null +++ b/doc/doxygen/html/globals_eval.html @@ -0,0 +1,120 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_eval.html','');}); +/* @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="contents"> + <ul> +<li>Damped_Newton_Raphson +: <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783">fsolve.h</a> +</li> +<li>Gauss +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">pseudo_inverse.h</a> +</li> +<li>Givens +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">pseudo_inverse.h</a> +</li> +<li>Householder +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">pseudo_inverse.h</a> +</li> +<li>Moore_Penrose +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">pseudo_inverse.h</a> +</li> +<li>Newton_Raphson +: <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">fsolve.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_f.html b/doc/doxygen/html/globals_f.html new file mode 100644 index 0000000000000000000000000000000000000000..f99987ebc2d3ad05f0cd036198ff2b7d16eade71 --- /dev/null +++ b/doc/doxygen/html/globals_f.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_f.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_f"></a>- f -</h3><ul> +<li>fsolve() +: <a class="el" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve.c</a> +, <a class="el" href="fsolve_8h.html#a690a05654627b94634ffed0893946ba7">fsolve.h</a> +</li> +<li>fsolve_test() +: <a class="el" href="fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test.c</a> +, <a class="el" href="fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func.html b/doc/doxygen/html/globals_func.html new file mode 100644 index 0000000000000000000000000000000000000000..2c67062d9a42b36de1f529a0558feee00a0b094f --- /dev/null +++ b/doc/doxygen/html/globals_func.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func.html','');}); +/* @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="contents"> +  + +<h3><a id="index_c"></a>- c -</h3><ul> +<li>combinatorics_get_next_without_rep() +: <a class="el" href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics.c</a> +, <a class="el" href="combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics.h</a> +</li> +<li>combinatorics_init() +: <a class="el" href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics.c</a> +, <a class="el" href="combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func.js b/doc/doxygen/html/globals_func.js new file mode 100644 index 0000000000000000000000000000000000000000..73d4c59cee4b2f06d8b70d68709e5b656e66b5d3 --- /dev/null +++ b/doc/doxygen/html/globals_func.js @@ -0,0 +1,20 @@ +var globals_func = +[ + [ "c", "globals_func.html", null ], + [ "d", "globals_func_d.html", null ], + [ "f", "globals_func_f.html", null ], + [ "g", "globals_func_g.html", null ], + [ "h", "globals_func_h.html", null ], + [ "i", "globals_func_i.html", null ], + [ "l", "globals_func_l.html", null ], + [ "m", "globals_func_m.html", null ], + [ "n", "globals_func_n.html", null ], + [ "o", "globals_func_o.html", null ], + [ "p", "globals_func_p.html", null ], + [ "q", "globals_func_q.html", null ], + [ "r", "globals_func_r.html", null ], + [ "s", "globals_func_s.html", null ], + [ "t", "globals_func_t.html", null ], + [ "u", "globals_func_u.html", null ], + [ "v", "globals_func_v.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/globals_func_d.html b/doc/doxygen/html/globals_func_d.html new file mode 100644 index 0000000000000000000000000000000000000000..427ef148b97084237a773ff6d8bc4f267ae67773 --- /dev/null +++ b/doc/doxygen/html/globals_func_d.html @@ -0,0 +1,144 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_d.html','');}); +/* @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="contents"> +  + +<h3><a id="index_d"></a>- d -</h3><ul> +<li>damped_newton_raphson() +: <a class="el" href="damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson.c</a> +, <a class="el" href="damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14">damped_newton_raphson.h</a> +</li> +<li>dist_based_f_i() +: <a class="el" href="dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_fi.h</a> +, <a class="el" href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_fi.c</a> +</li> +<li>dist_based_fi() +: <a class="el" href="dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi.c</a> +, <a class="el" href="dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a">dist_based_fi.h</a> +</li> +<li>dist_based_get_absolute_error() +: <a class="el" href="dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_position.h</a> +, <a class="el" href="dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3">dist_based_position.c</a> +</li> +<li>dist_based_get_distance_to_anchor() +: <a class="el" href="dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d">dist_based_position.c</a> +, <a class="el" href="dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d">dist_based_position.h</a> +</li> +<li>dist_based_jacobian_get_J() +: <a class="el" href="dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian.c</a> +, <a class="el" href="dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc">dist_based_jacobian.h</a> +</li> +<li>dist_based_jacobian_get_J_mul_s() +: <a class="el" href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian.c</a> +, <a class="el" href="dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian.h</a> +</li> +<li>dist_based_jacobian_get_JTf() +: <a class="el" href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian.c</a> +, <a class="el" href="dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian.h</a> +</li> +<li>dist_based_jacobian_get_JTJ() +: <a class="el" href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian.h</a> +, <a class="el" href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian.c</a> +</li> +<li>distance_based_test() +: <a class="el" href="distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test.h</a> +, <a class="el" href="distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115">distance_based_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_f.html b/doc/doxygen/html/globals_func_f.html new file mode 100644 index 0000000000000000000000000000000000000000..d3364e207e5d7af1f513c605fa0fd8131da6be4f --- /dev/null +++ b/doc/doxygen/html/globals_func_f.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_f.html','');}); +/* @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="contents"> +  + +<h3><a id="index_f"></a>- f -</h3><ul> +<li>fsolve() +: <a class="el" href="fsolve_8c.html#a690a05654627b94634ffed0893946ba7">fsolve.c</a> +, <a class="el" href="fsolve_8h.html#a690a05654627b94634ffed0893946ba7">fsolve.h</a> +</li> +<li>fsolve_test() +: <a class="el" href="fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test.c</a> +, <a class="el" href="fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37">fsolve_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_g.html b/doc/doxygen/html/globals_func_g.html new file mode 100644 index 0000000000000000000000000000000000000000..e4d44f731c4dd25ce1e2497855a00655f16dae9c --- /dev/null +++ b/doc/doxygen/html/globals_func_g.html @@ -0,0 +1,158 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_g.html','');}); +/* @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="contents"> +  + +<h3><a id="index_g"></a>- g -</h3><ul> +<li>get_damped_norm() +: <a class="el" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">damped_newton_raphson.c</a> +, <a class="el" href="damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a">damped_newton_raphson.h</a> +</li> +<li>get_delta_x() +: <a class="el" href="damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e">damped_newton_raphson.h</a> +, <a class="el" href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">damped_newton_raphson.c</a> +</li> +<li>get_exact_distance_to_anchor() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a">multipath_dist_detection_mitigation.c</a> +</li> +<li>get_non_lin_sys_f1_() +: <a class="el" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_f2_() +: <a class="el" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_f3_() +: <a class="el" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_J1_() +: <a class="el" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_J2_() +: <a class="el" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_J3_() +: <a class="el" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">fsolve_test.c</a> +</li> +<li>get_norm_distr_rand_num() +: <a class="el" href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">norm_dist_rnd_generator.h</a> +, <a class="el" href="norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf">norm_dist_rnd_generator.c</a> +</li> +<li>get_optimal_partial_r_noised_vec() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e">multipath_dist_detection_mitigation.c</a> +</li> +<li>get_optimal_partial_ref_matrix() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39">multipath_dist_detection_mitigation.c</a> +</li> +<li>get_PDOP() +: <a class="el" href="DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">DOP.h</a> +, <a class="el" href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">DOP.c</a> +</li> +<li>get_rand_num() +: <a class="el" href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">norm_dist_rnd_generator.h</a> +, <a class="el" href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">norm_dist_rnd_generator.c</a> +</li> +<li>givens_test() +: <a class="el" href="givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test.c</a> +, <a class="el" href="givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_h.html b/doc/doxygen/html/globals_func_h.html new file mode 100644 index 0000000000000000000000000000000000000000..31ba6a1f91644aa91f2243b7a7bc230682be44da --- /dev/null +++ b/doc/doxygen/html/globals_func_h.html @@ -0,0 +1,108 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_h.html','');}); +/* @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="contents"> +  + +<h3><a id="index_h"></a>- h -</h3><ul> +<li>householder_test() +: <a class="el" href="householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test.c</a> +, <a class="el" href="householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_i.html b/doc/doxygen/html/globals_func_i.html new file mode 100644 index 0000000000000000000000000000000000000000..63182120ac897d8f1a51a3f02ad535ecc00d23fe --- /dev/null +++ b/doc/doxygen/html/globals_func_i.html @@ -0,0 +1,120 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_i.html','');}); +/* @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="contents"> +  + +<h3><a id="index_i"></a>- i -</h3><ul> +<li>int_shell_sort() +: <a class="el" href="shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e">shell_sort.h</a> +, <a class="el" href="shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e">shell_sort.c</a> +</li> +<li>inv_triangular_matrices_test() +: <a class="el" href="matrix__test_8c.html#a5713bd664a96ccd028896420050f22df">matrix_test.c</a> +, <a class="el" href="matrix__test_8h.html#a5713bd664a96ccd028896420050f22df">matrix_test.h</a> +</li> +<li>is_anchor() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1">multipath_dist_detection_mitigation.c</a> +</li> +<li>is_member() +: <a class="el" href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8">multipath_dist_detection_mitigation.c</a> +, <a class="el" href="multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8">multipath_dist_detection_mitigation.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_l.html b/doc/doxygen/html/globals_func_l.html new file mode 100644 index 0000000000000000000000000000000000000000..27740673cb04ea747a87858b80751f5ecb7d11db --- /dev/null +++ b/doc/doxygen/html/globals_func_l.html @@ -0,0 +1,132 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_l.html','');}); +/* @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="contents"> +  + +<h3><a id="index_l"></a>- l -</h3><ul> +<li>loc_gauss_newton() +: <a class="el" href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton.h</a> +, <a class="el" href="loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton.c</a> +</li> +<li>loc_levenberg_marquardt() +: <a class="el" href="loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt.c</a> +, <a class="el" href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt.h</a> +</li> +<li>loc_levenberg_marquardt_correction() +: <a class="el" href="loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt.h</a> +, <a class="el" href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt.c</a> +</li> +<li>loc_levenberg_marquardt_get_JTJ_mu2_I() +: <a class="el" href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt.c</a> +, <a class="el" href="loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt.h</a> +</li> +<li>loc_levenberg_marquardt_get_mu0() +: <a class="el" href="loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt.h</a> +, <a class="el" href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt.c</a> +</li> +<li>lu_decomp() +: <a class="el" href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp.h</a> +, <a class="el" href="lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp.c</a> +</li> +<li>lu_decomp_test() +: <a class="el" href="lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test.c</a> +, <a class="el" href="lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_m.html b/doc/doxygen/html/globals_func_m.html new file mode 100644 index 0000000000000000000000000000000000000000..b8c5d2f116cdd81b364ce8124334652a917ead49 --- /dev/null +++ b/doc/doxygen/html/globals_func_m.html @@ -0,0 +1,356 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_m.html','');}); +/* @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="contents"> +  + +<h3><a id="index_m"></a>- m -</h3><ul> +<li>magnetic_based_f_i() +: <a class="el" href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_fi.h</a> +, <a class="el" href="magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_fi.c</a> +</li> +<li>magnetic_based_get_absolute_error() +: <a class="el" href="magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d">magnetic_based_position.c</a> +, <a class="el" href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">magnetic_based_position.h</a> +</li> +<li>magnetic_based_get_distances() +: <a class="el" href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_distances_to_anchors() +: <a class="el" href="magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_position.c</a> +, <a class="el" href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_position.h</a> +</li> +<li>magnetic_based_get_magnetic_field() +: <a class="el" href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_magnetic_field_vec() +: <a class="el" href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_r() +: <a class="el" href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_position.c</a> +</li> +<li>magnetic_based_jacobian_get_J() +: <a class="el" href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian.c</a> +, <a class="el" href="magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian.h</a> +</li> +<li>magnetic_based_jacobian_get_J_mul_s() +: <a class="el" href="magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian.h</a> +, <a class="el" href="magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian.c</a> +</li> +<li>magnetic_based_jacobian_get_JTf() +: <a class="el" href="magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian.h</a> +, <a class="el" href="magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian.c</a> +</li> +<li>magnetic_based_jacobian_get_JTJ() +: <a class="el" href="magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian.h</a> +, <a class="el" href="magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian.c</a> +</li> +<li>magnetic_based_preprocessing_get_position() +: <a class="el" href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_position.c</a> +</li> +<li>magnetic_based_test() +: <a class="el" href="magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test.h</a> +, <a class="el" href="magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test.c</a> +</li> +<li>matrix_add() +: <a class="el" href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">matrix.h</a> +, <a class="el" href="matrix_8c.html#ac7101bbaa3a2698658276a7e21501093">matrix.c</a> +</li> +<li>matrix_add_to_diag() +: <a class="el" href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix.h</a> +, <a class="el" href="matrix_8c.html#aa8acafd4181978f536976f8151e51516">matrix.c</a> +</li> +<li>matrix_clear() +: <a class="el" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix.c</a> +, <a class="el" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix.h</a> +</li> +<li>matrix_copy() +: <a class="el" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix.h</a> +, <a class="el" href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix.c</a> +</li> +<li>matrix_flex_part_print() +: <a class="el" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix.h</a> +, <a class="el" href="matrix_8c.html#a72297a60e572f85929989e813388a9c5">matrix.c</a> +</li> +<li>matrix_flex_print() +: <a class="el" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix.h</a> +, <a class="el" href="matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2">matrix.c</a> +</li> +<li>matrix_get_abs_max_elem_and_index_in_part_column() +: <a class="el" href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">matrix.h</a> +, <a class="el" href="matrix_8c.html#a5f6a1948ec005cff4985559821c4943f">matrix.c</a> +</li> +<li>matrix_get_abs_max_elem_in_column() +: <a class="el" href="matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672">matrix.h</a> +, <a class="el" href="matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672">matrix.c</a> +</li> +<li>matrix_get_abs_max_elem_in_part_column() +: <a class="el" href="matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252">matrix.h</a> +, <a class="el" href="matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252">matrix.c</a> +</li> +<li>matrix_get_column_vec() +: <a class="el" href="matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864">matrix.h</a> +, <a class="el" href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">matrix.c</a> +</li> +<li>matrix_get_diag_mat() +: <a class="el" href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix.h</a> +, <a class="el" href="matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a">matrix.c</a> +</li> +<li>matrix_get_diag_mat_new() +: <a class="el" href="matrix_8h.html#ae808f007791f060590d39c7668501988">matrix.h</a> +, <a class="el" href="matrix_8c.html#ae808f007791f060590d39c7668501988">matrix.c</a> +</li> +<li>matrix_get_frob_norm() +: <a class="el" href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">matrix.h</a> +, <a class="el" href="matrix_8c.html#aaf85a32b8562c91d2d1889819580375e">matrix.c</a> +</li> +<li>matrix_get_inv_low_triang() +: <a class="el" href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix.h</a> +, <a class="el" href="matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix.c</a> +</li> +<li>matrix_get_inv_upp_triang() +: <a class="el" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix.h</a> +, <a class="el" href="matrix_8c.html#ab166871472924745f70e2bb6e17498c8">matrix.c</a> +</li> +<li>matrix_get_low_triang() +: <a class="el" href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix.h</a> +, <a class="el" href="matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845">matrix.c</a> +</li> +<li>matrix_get_max_elem_in_column() +: <a class="el" href="matrix_8h.html#aef8d1508ad101227ab255a714ab22b94">matrix.h</a> +, <a class="el" href="matrix_8c.html#aef8d1508ad101227ab255a714ab22b94">matrix.c</a> +</li> +<li>matrix_get_max_elem_in_part_column() +: <a class="el" href="matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix.h</a> +, <a class="el" href="matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix.c</a> +</li> +<li>matrix_get_part_column_vec() +: <a class="el" href="matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix.c</a> +, <a class="el" href="matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix.h</a> +</li> +<li>matrix_get_rank() +: <a class="el" href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix.h</a> +, <a class="el" href="matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix.c</a> +</li> +<li>matrix_get_two_norm() +: <a class="el" href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix.h</a> +, <a class="el" href="matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0">matrix.c</a> +</li> +<li>matrix_get_upp_triang() +: <a class="el" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix.h</a> +, <a class="el" href="matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix.c</a> +</li> +<li>matrix_in_place_transpose() +: <a class="el" href="matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e">matrix.c</a> +, <a class="el" href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix.h</a> +</li> +<li>matrix_init() +: <a class="el" href="matrix_8h.html#acfd2bbc4a90915e57a4555694e842312">matrix.h</a> +, <a class="el" href="matrix_8c.html#acfd2bbc4a90915e57a4555694e842312">matrix.c</a> +</li> +<li>matrix_mul() +: <a class="el" href="matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a">matrix.c</a> +, <a class="el" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix.h</a> +</li> +<li>matrix_mul_col_vec_row_vec() +: <a class="el" href="matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix.h</a> +, <a class="el" href="matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix.c</a> +</li> +<li>matrix_mul_scalar() +: <a class="el" href="matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix.c</a> +, <a class="el" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix.h</a> +</li> +<li>matrix_mul_scalar_vec_matr() +: <a class="el" href="matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix.h</a> +, <a class="el" href="matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix.c</a> +</li> +<li>matrix_mul_vec() +: <a class="el" href="matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb">matrix.c</a> +, <a class="el" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix.h</a> +</li> +<li>matrix_part_copy() +: <a class="el" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix.h</a> +, <a class="el" href="matrix_8c.html#a56513a88eff05b0683320c532fadf945">matrix.c</a> +</li> +<li>matrix_part_mul() +: <a class="el" href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix.h</a> +, <a class="el" href="matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix.c</a> +</li> +<li>matrix_part_mul_scalar_vec_matr() +: <a class="el" href="matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix.c</a> +, <a class="el" href="matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix.h</a> +</li> +<li>matrix_part_print() +: <a class="el" href="matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029">matrix.h</a> +, <a class="el" href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">matrix.c</a> +</li> +<li>matrix_part_swap_rows() +: <a class="el" href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix.h</a> +, <a class="el" href="matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2">matrix.c</a> +</li> +<li>matrix_print() +: <a class="el" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix.h</a> +, <a class="el" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix.c</a> +</li> +<li>matrix_read() +: <a class="el" href="matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix.c</a> +, <a class="el" href="matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix.h</a> +</li> +<li>matrix_set_diag_elements() +: <a class="el" href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix.c</a> +, <a class="el" href="matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix.h</a> +</li> +<li>matrix_sub() +: <a class="el" href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">matrix.h</a> +, <a class="el" href="matrix_8c.html#aed6fab1ffa40243eeb08117215082be3">matrix.c</a> +</li> +<li>matrix_swap_rows() +: <a class="el" href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix.h</a> +, <a class="el" href="matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix.c</a> +</li> +<li>matrix_test() +: <a class="el" href="matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test.c</a> +, <a class="el" href="matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test.h</a> +</li> +<li>matrix_trans_mul_itself() +: <a class="el" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix.h</a> +, <a class="el" href="matrix_8c.html#a0107887a6c40980fa639750be8262f01">matrix.c</a> +</li> +<li>matrix_trans_mul_vec() +: <a class="el" href="matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix.c</a> +, <a class="el" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix.h</a> +</li> +<li>matrix_transpose() +: <a class="el" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix.h</a> +, <a class="el" href="matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix.c</a> +</li> +<li>matrix_vec_mul_matr() +: <a class="el" href="matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix.h</a> +, <a class="el" href="matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix.c</a> +</li> +<li>matrix_write() +: <a class="el" href="matrix_8c.html#a90b6eafa665d34d7330581c32564d632">matrix.c</a> +, <a class="el" href="matrix_8h.html#a90b6eafa665d34d7330581c32564d632">matrix.h</a> +</li> +<li>modified_gauss_newton() +: <a class="el" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton.h</a> +, <a class="el" href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton.c</a> +</li> +<li>moore_penrose_get_pinv() +: <a class="el" href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_pseudo_inverse.c</a> +, <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_pseudo_inverse.h</a> +</li> +<li>moore_penrose_pinv_compute_print() +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pseudo_inverse.h</a> +, <a class="el" href="moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pseudo_inverse.c</a> +</li> +<li>moore_penrose_pinv_test() +: <a class="el" href="moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test.c</a> +, <a class="el" href="moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test.h</a> +</li> +<li>multipath_algo_own_norm_distr_test() +: <a class="el" href="multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test.h</a> +, <a class="el" href="multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_n.html b/doc/doxygen/html/globals_func_n.html new file mode 100644 index 0000000000000000000000000000000000000000..5ff1b029e177cfb477eadd94d9d0eb381e2ab289 --- /dev/null +++ b/doc/doxygen/html/globals_func_n.html @@ -0,0 +1,108 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_n.html','');}); +/* @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="contents"> +  + +<h3><a id="index_n"></a>- n -</h3><ul> +<li>newton_raphson() +: <a class="el" href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson.h</a> +, <a class="el" href="newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_o.html b/doc/doxygen/html/globals_func_o.html new file mode 100644 index 0000000000000000000000000000000000000000..b87190ac5e7bb84c458e02256a083ba16b890c75 --- /dev/null +++ b/doc/doxygen/html/globals_func_o.html @@ -0,0 +1,145 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_o.html','');}); +/* @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="contents"> +  + +<h3><a id="index_o"></a>- o -</h3><ul> +<li>opt_levenberg_marquardt() +: <a class="el" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">levenberg_marquardt.h</a> +, <a class="el" href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">levenberg_marquardt.c</a> +</li> +<li>opt_levenberg_marquardt_correction() +: <a class="el" href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">levenberg_marquardt.c</a> +</li> +<li>opt_levenberg_marquardt_get_mu0() +: <a class="el" href="levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">levenberg_marquardt.h</a> +, <a class="el" href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">levenberg_marquardt.c</a> +</li> +<li>optimization_exponential_data_test() +: <a class="el" href="optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_test.h</a> +, <a class="el" href="optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_test.c</a> +</li> +<li>optimization_get_exp_f() +: <a class="el" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_test.c</a> +</li> +<li>optimization_get_exp_Jacobian() +: <a class="el" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_test.c</a> +</li> +<li>optimization_get_f_error() +: <a class="el" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_test.c</a> +</li> +<li>optimization_get_J() +: <a class="el" href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">optimization_test.c</a> +</li> +<li>optimization_get_sin_f() +: <a class="el" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_test.c</a> +</li> +<li>optimization_get_sin_Jacobian() +: <a class="el" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_test.c</a> +</li> +<li>optimization_sinusoidal_data_test() +: <a class="el" href="optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_test.c</a> +, <a class="el" href="optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_test.h</a> +</li> +<li>optimization_test() +: <a class="el" href="optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20">optimization_test.h</a> +, <a class="el" href="optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20">optimization_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_p.html b/doc/doxygen/html/globals_func_p.html new file mode 100644 index 0000000000000000000000000000000000000000..a8139779910d32a2624a676d5521c5d68029ec4a --- /dev/null +++ b/doc/doxygen/html/globals_func_p.html @@ -0,0 +1,112 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_p.html','');}); +/* @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="contents"> +  + +<h3><a id="index_p"></a>- p -</h3><ul> +<li>pos_algos_common_test() +: <a class="el" href="pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test.h</a> +, <a class="el" href="pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test.c</a> +</li> +<li>position_optimization_test() +: <a class="el" href="position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test.h</a> +, <a class="el" href="position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_q.html b/doc/doxygen/html/globals_func_q.html new file mode 100644 index 0000000000000000000000000000000000000000..8c906924dd557ee7b0a3d9e8c3c0d6881d58549e --- /dev/null +++ b/doc/doxygen/html/globals_func_q.html @@ -0,0 +1,132 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_q.html','');}); +/* @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="contents"> +  + +<h3><a id="index_q"></a>- q -</h3><ul> +<li>qr_common_backward_subst() +: <a class="el" href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common.h</a> +, <a class="el" href="qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common.c</a> +</li> +<li>qr_common_get_reduced_QR() +: <a class="el" href="qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b">qr_common.c</a> +, <a class="el" href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common.h</a> +</li> +<li>qr_get_pinv() +: <a class="el" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_pseudo_inverse.h</a> +, <a class="el" href="qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_pseudo_inverse.c</a> +</li> +<li>qr_givens_decomp() +: <a class="el" href="qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc">qr_givens.c</a> +, <a class="el" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens.h</a> +</li> +<li>qr_givens_get_params() +: <a class="el" href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens.h</a> +, <a class="el" href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens.c</a> +</li> +<li>qr_householder_decomp() +: <a class="el" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder.h</a> +, <a class="el" href="qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder.c</a> +</li> +<li>qr_pinv_test() +: <a class="el" href="qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test.c</a> +, <a class="el" href="qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_r.html b/doc/doxygen/html/globals_func_r.html new file mode 100644 index 0000000000000000000000000000000000000000..d904efce582a854fc2cd51c7ab0668727addd9b8 --- /dev/null +++ b/doc/doxygen/html/globals_func_r.html @@ -0,0 +1,108 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_r.html','');}); +/* @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="contents"> +  + +<h3><a id="index_r"></a>- r -</h3><ul> +<li>recog_mitigate_multipath() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47">multipath_dist_detection_mitigation.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_s.html b/doc/doxygen/html/globals_func_s.html new file mode 100644 index 0000000000000000000000000000000000000000..86a5f848a5fbd739e557b993da0337cd9884b5fe --- /dev/null +++ b/doc/doxygen/html/globals_func_s.html @@ -0,0 +1,168 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_s.html','');}); +/* @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="contents"> +  + +<h3><a id="index_s"></a>- s -</h3><ul> +<li>shell_sort() +: <a class="el" href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort.h</a> +, <a class="el" href="shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort.c</a> +</li> +<li>sim_UWB_dist() +: <a class="el" href="multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957">multipath_dist_detection_mitigation.c</a> +, <a class="el" href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">multipath_dist_detection_mitigation.h</a> +</li> +<li>solve() +: <a class="el" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve.h</a> +, <a class="el" href="solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1">solve.c</a> +</li> +<li>solve_big_matrix_test() +: <a class="el" href="solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371">solve_test.c</a> +, <a class="el" href="solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371">solve_test.h</a> +</li> +<li>solve_givens() +: <a class="el" href="solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88">solve.h</a> +, <a class="el" href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88">solve.c</a> +</li> +<li>solve_householder() +: <a class="el" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve.h</a> +, <a class="el" href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve.c</a> +</li> +<li>solve_lu_decomp() +: <a class="el" href="solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve.h</a> +, <a class="el" href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve.c</a> +</li> +<li>solve_test() +: <a class="el" href="solve__test_8c.html#a468b4492daa139d24a18624526001220">solve_test.c</a> +, <a class="el" href="solve__test_8h.html#a468b4492daa139d24a18624526001220">solve_test.h</a> +</li> +<li>svd() +: <a class="el" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd.h</a> +, <a class="el" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd.c</a> +</li> +<li>svd_compute_print_U_S_V_s() +: <a class="el" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd.h</a> +, <a class="el" href="svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd.c</a> +</li> +<li>svd_get_reciproc_singular_values() +: <a class="el" href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">svd.h</a> +, <a class="el" href="svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb">svd.c</a> +</li> +<li>svd_get_S_dim() +: <a class="el" href="svd_8h.html#aeb7ac3eac076a0f52c729849599808a6">svd.h</a> +, <a class="el" href="svd_8c.html#aeb7ac3eac076a0f52c729849599808a6">svd.c</a> +</li> +<li>svd_get_single_values_num() +: <a class="el" href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd.c</a> +, <a class="el" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd.h</a> +</li> +<li>svd_get_U_dim() +: <a class="el" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd.h</a> +, <a class="el" href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8">svd.c</a> +</li> +<li>svd_get_V_dim() +: <a class="el" href="svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd.c</a> +, <a class="el" href="svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd.h</a> +</li> +<li>svd_test() +: <a class="el" href="svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test.h</a> +, <a class="el" href="svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_t.html b/doc/doxygen/html/globals_func_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c7d5bce2be942c8334e5533d12e9f3de53f6d9b4 --- /dev/null +++ b/doc/doxygen/html/globals_func_t.html @@ -0,0 +1,144 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_t.html','');}); +/* @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="contents"> +  + +<h3><a id="index_t"></a>- t -</h3><ul> +<li>triangular_matrices_test() +: <a class="el" href="matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f">matrix_test.h</a> +, <a class="el" href="matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f">matrix_test.c</a> +</li> +<li>trilateration1() +: <a class="el" href="trilateration_8c.html#a95fc45efcb10019be21704539eeedefb">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">trilateration.h</a> +</li> +<li>trilateration2() +: <a class="el" href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration.c</a> +</li> +<li>trilateration_get_A_matrix() +: <a class="el" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration.h</a> +</li> +<li>trilateration_get_b_vector() +: <a class="el" href="trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration.c</a> +</li> +<li>trilateration_get_particular_solution() +: <a class="el" href="trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358">trilateration.c</a> +</li> +<li>trilateration_get_quadratic_equation_solution() +: <a class="el" href="trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">trilateration.c</a> +</li> +<li>trilateration_get_rank_and_homogeneous_solution() +: <a class="el" href="trilateration_8h.html#ab5f06e68df75b4708d722c268932578c">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c">trilateration.c</a> +</li> +<li>trilateration_preprocessed_get_particular_solution() +: <a class="el" href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758">trilateration.h</a> +</li> +<li>trilateration_solve_linear_equation() +: <a class="el" href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#a4270371ead754327c478d19d57bfafba">trilateration.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_u.html b/doc/doxygen/html/globals_func_u.html new file mode 100644 index 0000000000000000000000000000000000000000..ba6763a29e5e5a96c6f795d3e4716bf1c9732b66 --- /dev/null +++ b/doc/doxygen/html/globals_func_u.html @@ -0,0 +1,156 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_u.html','');}); +/* @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="contents"> +  + +<h3><a id="index_u"></a>- u -</h3><ul> +<li>utils_get_median() +: <a class="el" href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils.h</a> +, <a class="el" href="utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee">utils.c</a> +</li> +<li>utils_get_save_square_root() +: <a class="el" href="utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8">utils.c</a> +, <a class="el" href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">utils.h</a> +</li> +<li>utils_max() +: <a class="el" href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils.h</a> +, <a class="el" href="utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils.c</a> +</li> +<li>utils_mean() +: <a class="el" href="utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6">utils.c</a> +, <a class="el" href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">utils.h</a> +</li> +<li>utils_min() +: <a class="el" href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">utils.h</a> +, <a class="el" href="utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d">utils.c</a> +</li> +<li>utils_moving_average() +: <a class="el" href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">utils.h</a> +, <a class="el" href="utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1">utils.c</a> +</li> +<li>utils_printf() +: <a class="el" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils.h</a> +, <a class="el" href="utils_8c.html#a335d8d6c4b945638261228cd116cccd6">utils.c</a> +</li> +<li>utils_sind() +: <a class="el" href="utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils.c</a> +, <a class="el" href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils.h</a> +</li> +<li>utils_swap() +: <a class="el" href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">utils.h</a> +, <a class="el" href="utils_8c.html#ad21f654c48115ba2419ca98644a44ae9">utils.c</a> +</li> +<li>utils_test() +: <a class="el" href="utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test.h</a> +, <a class="el" href="utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test.c</a> +</li> +<li>utils_to_radian() +: <a class="el" href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils.h</a> +, <a class="el" href="utils_8c.html#a689d2d3db40d341609423404abc5a23a">utils.c</a> +</li> +<li>utils_u8_max() +: <a class="el" href="utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils.h</a> +, <a class="el" href="utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils.c</a> +</li> +<li>utils_u8_min() +: <a class="el" href="utils_8c.html#a81dabd4841ab656130497f0600979850">utils.c</a> +, <a class="el" href="utils_8h.html#a81dabd4841ab656130497f0600979850">utils.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_func_v.html b/doc/doxygen/html/globals_func_v.html new file mode 100644 index 0000000000000000000000000000000000000000..de19f86139a41fa8b0a8f5d6671d42ca3ba67f03 --- /dev/null +++ b/doc/doxygen/html/globals_func_v.html @@ -0,0 +1,204 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_func_v.html','');}); +/* @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="contents"> +  + +<h3><a id="index_v"></a>- v -</h3><ul> +<li>vector_add() +: <a class="el" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector.h</a> +, <a class="el" href="vector_8c.html#a92917951880002814392c2367896d7a0">vector.c</a> +</li> +<li>vector_clear() +: <a class="el" href="vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14">vector.c</a> +, <a class="el" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector.h</a> +</li> +<li>vector_copy() +: <a class="el" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector.h</a> +, <a class="el" href="vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6">vector.c</a> +</li> +<li>vector_flex_print() +: <a class="el" href="vector_8c.html#ab2827264910e858f238868695a92db4b">vector.c</a> +, <a class="el" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector.h</a> +</li> +<li>vector_get_elements() +: <a class="el" href="vector_8h.html#a1348a041e323e7b333482242b51a7674">vector.h</a> +, <a class="el" href="vector_8c.html#a1348a041e323e7b333482242b51a7674">vector.c</a> +</li> +<li>vector_get_euclidean_distance() +: <a class="el" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector.h</a> +, <a class="el" href="vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9">vector.c</a> +</li> +<li>vector_get_index_vector() +: <a class="el" href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">vector.h</a> +, <a class="el" href="vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba">vector.c</a> +</li> +<li>vector_get_max_and_index() +: <a class="el" href="vector_8c.html#a982bc2f9e4755461eac46c6322b4562d">vector.c</a> +, <a class="el" href="vector_8h.html#a982bc2f9e4755461eac46c6322b4562d">vector.h</a> +</li> +<li>vector_get_mean_value() +: <a class="el" href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">vector.h</a> +, <a class="el" href="vector_8c.html#a4a8fae4c69677390016c116123d9eff8">vector.c</a> +</li> +<li>vector_get_norm2() +: <a class="el" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector.h</a> +, <a class="el" href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector.c</a> +</li> +<li>vector_get_residual() +: <a class="el" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector.h</a> +, <a class="el" href="vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector.c</a> +</li> +<li>vector_get_scalar_product() +: <a class="el" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector.h</a> +, <a class="el" href="vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector.c</a> +</li> +<li>vector_get_square_norm2() +: <a class="el" href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector.h</a> +, <a class="el" href="vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector.c</a> +</li> +<li>vector_get_sum() +: <a class="el" href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">vector.h</a> +, <a class="el" href="vector_8c.html#af1767c4decdd472ed81035a19cf2152b">vector.c</a> +</li> +<li>vector_in_place_scalar_mul() +: <a class="el" href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">vector.h</a> +, <a class="el" href="vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4">vector.c</a> +</li> +<li>vector_is_equal() +: <a class="el" href="vector_8c.html#af98f2e3896ce7b96d598b11033ac1795">vector.c</a> +, <a class="el" href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">vector.h</a> +</li> +<li>vector_mul() +: <a class="el" href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector.h</a> +, <a class="el" href="vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector.c</a> +</li> +<li>vector_print() +: <a class="el" href="vector_8h.html#a8f24286db94dba6ab181edcdfe296262">vector.h</a> +, <a class="el" href="vector_8c.html#a8f24286db94dba6ab181edcdfe296262">vector.c</a> +</li> +<li>vector_print_u8_array() +: <a class="el" href="vector_8c.html#a8ec75dc585746d950ab517e9929f31fe">vector.c</a> +, <a class="el" href="vector_8h.html#a8ec75dc585746d950ab517e9929f31fe">vector.h</a> +</li> +<li>vector_scalar_div() +: <a class="el" href="vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b">vector.c</a> +, <a class="el" href="vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b">vector.h</a> +</li> +<li>vector_scalar_mul() +: <a class="el" href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">vector.h</a> +, <a class="el" href="vector_8c.html#a3c0bdd0e463fb34757a71470c55af845">vector.c</a> +</li> +<li>vector_square() +: <a class="el" href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">vector.h</a> +, <a class="el" href="vector_8c.html#afc68fab0b07c974faf5a457d20b01c58">vector.c</a> +</li> +<li>vector_sub() +: <a class="el" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector.h</a> +, <a class="el" href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">vector.c</a> +</li> +<li>vector_test() +: <a class="el" href="vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21">vector_test.h</a> +, <a class="el" href="vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21">vector_test.c</a> +</li> +<li>vector_uint32_is_equal() +: <a class="el" href="vector_8h.html#a421f989647bf55af29c0f55b7f33d35a">vector.h</a> +, <a class="el" href="vector_8c.html#a421f989647bf55af29c0f55b7f33d35a">vector.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_g.html b/doc/doxygen/html/globals_g.html new file mode 100644 index 0000000000000000000000000000000000000000..1e93c7624688952877f4dbcc02b0e2c606f4edec --- /dev/null +++ b/doc/doxygen/html/globals_g.html @@ -0,0 +1,164 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_g.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_g"></a>- g -</h3><ul> +<li>Gauss +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">pseudo_inverse.h</a> +</li> +<li>get_damped_norm() +: <a class="el" href="damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a">damped_newton_raphson.c</a> +, <a class="el" href="damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a">damped_newton_raphson.h</a> +</li> +<li>get_delta_x() +: <a class="el" href="damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e">damped_newton_raphson.c</a> +, <a class="el" href="damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e">damped_newton_raphson.h</a> +</li> +<li>get_exact_distance_to_anchor() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a">multipath_dist_detection_mitigation.c</a> +</li> +<li>get_non_lin_sys_f1_() +: <a class="el" href="fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_f2_() +: <a class="el" href="fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_f3_() +: <a class="el" href="fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_J1_() +: <a class="el" href="fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_J2_() +: <a class="el" href="fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e">fsolve_test.c</a> +</li> +<li>get_non_lin_sys_J3_() +: <a class="el" href="fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100">fsolve_test.c</a> +</li> +<li>get_norm_distr_rand_num() +: <a class="el" href="norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf">norm_dist_rnd_generator.c</a> +, <a class="el" href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">norm_dist_rnd_generator.h</a> +</li> +<li>get_optimal_partial_r_noised_vec() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e">multipath_dist_detection_mitigation.c</a> +</li> +<li>get_optimal_partial_ref_matrix() +: <a class="el" href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">multipath_dist_detection_mitigation.h</a> +, <a class="el" href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39">multipath_dist_detection_mitigation.c</a> +</li> +<li>get_PDOP() +: <a class="el" href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">DOP.c</a> +, <a class="el" href="DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">DOP.h</a> +</li> +<li>get_rand_num() +: <a class="el" href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">norm_dist_rnd_generator.c</a> +, <a class="el" href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">norm_dist_rnd_generator.h</a> +</li> +<li>Givens +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">pseudo_inverse.h</a> +</li> +<li>givens_test() +: <a class="el" href="givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test.h</a> +, <a class="el" href="givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae">givens_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_h.html b/doc/doxygen/html/globals_h.html new file mode 100644 index 0000000000000000000000000000000000000000..af539fe142bbc2592064dc6460258b504be90983 --- /dev/null +++ b/doc/doxygen/html/globals_h.html @@ -0,0 +1,111 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_h.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_h"></a>- h -</h3><ul> +<li>Householder +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">pseudo_inverse.h</a> +</li> +<li>householder_test() +: <a class="el" href="householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test.h</a> +, <a class="el" href="householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_i.html b/doc/doxygen/html/globals_i.html new file mode 100644 index 0000000000000000000000000000000000000000..df42e488e54ab10658199d25e4ab74f36845492c --- /dev/null +++ b/doc/doxygen/html/globals_i.html @@ -0,0 +1,123 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_i.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_i"></a>- i -</h3><ul> +<li>I0 +: <a class="el" href="magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718">magnetic_based_position.h</a> +</li> +<li>int_shell_sort() +: <a class="el" href="shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e">shell_sort.h</a> +, <a class="el" href="shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e">shell_sort.c</a> +</li> +<li>inv_triangular_matrices_test() +: <a class="el" href="matrix__test_8h.html#a5713bd664a96ccd028896420050f22df">matrix_test.h</a> +, <a class="el" href="matrix__test_8c.html#a5713bd664a96ccd028896420050f22df">matrix_test.c</a> +</li> +<li>is_anchor() +: <a class="el" href="multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1">multipath_dist_detection_mitigation.c</a> +, <a class="el" href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">multipath_dist_detection_mitigation.h</a> +</li> +<li>is_member() +: <a class="el" href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8">multipath_dist_detection_mitigation.c</a> +, <a class="el" href="multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8">multipath_dist_detection_mitigation.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_k.html b/doc/doxygen/html/globals_k.html new file mode 100644 index 0000000000000000000000000000000000000000..9c362cf8002fde2853bcf8b1ecb9895a639e303a --- /dev/null +++ b/doc/doxygen/html/globals_k.html @@ -0,0 +1,110 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_k.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_k"></a>- k -</h3><ul> +<li>K +: <a class="el" href="magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254">magnetic_based_position.h</a> +</li> +<li>K_T +: <a class="el" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">magnetic_based_position.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_l.html b/doc/doxygen/html/globals_l.html new file mode 100644 index 0000000000000000000000000000000000000000..b102d626d1c7a497b07a5e5980815142f2a69849 --- /dev/null +++ b/doc/doxygen/html/globals_l.html @@ -0,0 +1,132 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_l.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_l"></a>- l -</h3><ul> +<li>loc_gauss_newton() +: <a class="el" href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton.h</a> +, <a class="el" href="loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton.c</a> +</li> +<li>loc_levenberg_marquardt() +: <a class="el" href="loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt.c</a> +, <a class="el" href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt.h</a> +</li> +<li>loc_levenberg_marquardt_correction() +: <a class="el" href="loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt.h</a> +, <a class="el" href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt.c</a> +</li> +<li>loc_levenberg_marquardt_get_JTJ_mu2_I() +: <a class="el" href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt.c</a> +, <a class="el" href="loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt.h</a> +</li> +<li>loc_levenberg_marquardt_get_mu0() +: <a class="el" href="loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt.h</a> +, <a class="el" href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt.c</a> +</li> +<li>lu_decomp() +: <a class="el" href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp.h</a> +, <a class="el" href="lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp.c</a> +</li> +<li>lu_decomp_test() +: <a class="el" href="lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test.c</a> +, <a class="el" href="lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_m.html b/doc/doxygen/html/globals_m.html new file mode 100644 index 0000000000000000000000000000000000000000..7365c96b39324f60b42d6bed101857e8e5f51736 --- /dev/null +++ b/doc/doxygen/html/globals_m.html @@ -0,0 +1,396 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_m.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_m"></a>- m -</h3><ul> +<li>M_PI +: <a class="el" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">matrix.h</a> +, <a class="el" href="utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">utils.h</a> +</li> +<li>MACHEPS +: <a class="el" href="matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192">matrix.h</a> +</li> +<li>magnetic_based_f_i() +: <a class="el" href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_fi.h</a> +, <a class="el" href="magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_fi.c</a> +</li> +<li>magnetic_based_get_absolute_error() +: <a class="el" href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_distances() +: <a class="el" href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_distances_to_anchors() +: <a class="el" href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_magnetic_field() +: <a class="el" href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_magnetic_field_vec() +: <a class="el" href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_position.c</a> +</li> +<li>magnetic_based_get_r() +: <a class="el" href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_position.c</a> +</li> +<li>magnetic_based_jacobian_get_J() +: <a class="el" href="magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian.h</a> +, <a class="el" href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian.c</a> +</li> +<li>magnetic_based_jacobian_get_J_mul_s() +: <a class="el" href="magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian.h</a> +, <a class="el" href="magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian.c</a> +</li> +<li>magnetic_based_jacobian_get_JTf() +: <a class="el" href="magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian.h</a> +, <a class="el" href="magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian.c</a> +</li> +<li>magnetic_based_jacobian_get_JTJ() +: <a class="el" href="magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian.h</a> +, <a class="el" href="magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian.c</a> +</li> +<li>magnetic_based_preprocessing_get_position() +: <a class="el" href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_position.h</a> +, <a class="el" href="magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_position.c</a> +</li> +<li>magnetic_based_test() +: <a class="el" href="magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test.h</a> +, <a class="el" href="magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test.c</a> +</li> +<li>matrix_add() +: <a class="el" href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">matrix.h</a> +, <a class="el" href="matrix_8c.html#ac7101bbaa3a2698658276a7e21501093">matrix.c</a> +</li> +<li>matrix_add_to_diag() +: <a class="el" href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix.h</a> +, <a class="el" href="matrix_8c.html#aa8acafd4181978f536976f8151e51516">matrix.c</a> +</li> +<li>matrix_clear() +: <a class="el" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix.h</a> +, <a class="el" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix.c</a> +</li> +<li>matrix_copy() +: <a class="el" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix.h</a> +, <a class="el" href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix.c</a> +</li> +<li>matrix_flex_part_print() +: <a class="el" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix.h</a> +, <a class="el" href="matrix_8c.html#a72297a60e572f85929989e813388a9c5">matrix.c</a> +</li> +<li>matrix_flex_print() +: <a class="el" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix.h</a> +, <a class="el" href="matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2">matrix.c</a> +</li> +<li>matrix_get_abs_max_elem_and_index_in_part_column() +: <a class="el" href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">matrix.h</a> +, <a class="el" href="matrix_8c.html#a5f6a1948ec005cff4985559821c4943f">matrix.c</a> +</li> +<li>matrix_get_abs_max_elem_in_column() +: <a class="el" href="matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672">matrix.h</a> +, <a class="el" href="matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672">matrix.c</a> +</li> +<li>matrix_get_abs_max_elem_in_part_column() +: <a class="el" href="matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252">matrix.h</a> +, <a class="el" href="matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252">matrix.c</a> +</li> +<li>matrix_get_column_vec() +: <a class="el" href="matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864">matrix.h</a> +, <a class="el" href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">matrix.c</a> +</li> +<li>matrix_get_diag_mat() +: <a class="el" href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix.h</a> +, <a class="el" href="matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a">matrix.c</a> +</li> +<li>matrix_get_diag_mat_new() +: <a class="el" href="matrix_8h.html#ae808f007791f060590d39c7668501988">matrix.h</a> +, <a class="el" href="matrix_8c.html#ae808f007791f060590d39c7668501988">matrix.c</a> +</li> +<li>matrix_get_frob_norm() +: <a class="el" href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">matrix.h</a> +, <a class="el" href="matrix_8c.html#aaf85a32b8562c91d2d1889819580375e">matrix.c</a> +</li> +<li>matrix_get_inv_low_triang() +: <a class="el" href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix.h</a> +, <a class="el" href="matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix.c</a> +</li> +<li>matrix_get_inv_upp_triang() +: <a class="el" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix.h</a> +, <a class="el" href="matrix_8c.html#ab166871472924745f70e2bb6e17498c8">matrix.c</a> +</li> +<li>matrix_get_low_triang() +: <a class="el" href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix.h</a> +, <a class="el" href="matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845">matrix.c</a> +</li> +<li>matrix_get_max_elem_in_column() +: <a class="el" href="matrix_8h.html#aef8d1508ad101227ab255a714ab22b94">matrix.h</a> +, <a class="el" href="matrix_8c.html#aef8d1508ad101227ab255a714ab22b94">matrix.c</a> +</li> +<li>matrix_get_max_elem_in_part_column() +: <a class="el" href="matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix.h</a> +, <a class="el" href="matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix.c</a> +</li> +<li>matrix_get_part_column_vec() +: <a class="el" href="matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix.h</a> +, <a class="el" href="matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix.c</a> +</li> +<li>matrix_get_rank() +: <a class="el" href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix.h</a> +, <a class="el" href="matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix.c</a> +</li> +<li>matrix_get_two_norm() +: <a class="el" href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix.h</a> +, <a class="el" href="matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0">matrix.c</a> +</li> +<li>matrix_get_upp_triang() +: <a class="el" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix.h</a> +, <a class="el" href="matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix.c</a> +</li> +<li>matrix_in_place_transpose() +: <a class="el" href="matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e">matrix.c</a> +, <a class="el" href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix.h</a> +</li> +<li>matrix_init() +: <a class="el" href="matrix_8h.html#acfd2bbc4a90915e57a4555694e842312">matrix.h</a> +, <a class="el" href="matrix_8c.html#acfd2bbc4a90915e57a4555694e842312">matrix.c</a> +</li> +<li>matrix_mul() +: <a class="el" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix.h</a> +, <a class="el" href="matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a">matrix.c</a> +</li> +<li>matrix_mul_col_vec_row_vec() +: <a class="el" href="matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix.h</a> +, <a class="el" href="matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix.c</a> +</li> +<li>matrix_mul_scalar() +: <a class="el" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix.h</a> +, <a class="el" href="matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix.c</a> +</li> +<li>matrix_mul_scalar_vec_matr() +: <a class="el" href="matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix.h</a> +, <a class="el" href="matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix.c</a> +</li> +<li>matrix_mul_vec() +: <a class="el" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix.h</a> +, <a class="el" href="matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb">matrix.c</a> +</li> +<li>matrix_part_copy() +: <a class="el" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix.h</a> +, <a class="el" href="matrix_8c.html#a56513a88eff05b0683320c532fadf945">matrix.c</a> +</li> +<li>matrix_part_mul() +: <a class="el" href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix.h</a> +, <a class="el" href="matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix.c</a> +</li> +<li>matrix_part_mul_scalar_vec_matr() +: <a class="el" href="matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix.h</a> +, <a class="el" href="matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix.c</a> +</li> +<li>matrix_part_print() +: <a class="el" href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">matrix.c</a> +, <a class="el" href="matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029">matrix.h</a> +</li> +<li>matrix_part_swap_rows() +: <a class="el" href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix.h</a> +, <a class="el" href="matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2">matrix.c</a> +</li> +<li>matrix_print() +: <a class="el" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix.h</a> +, <a class="el" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix.c</a> +</li> +<li>matrix_read() +: <a class="el" href="matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix.c</a> +, <a class="el" href="matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix.h</a> +</li> +<li>matrix_set_diag_elements() +: <a class="el" href="matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix.h</a> +, <a class="el" href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix.c</a> +</li> +<li>matrix_sub() +: <a class="el" href="matrix_8c.html#aed6fab1ffa40243eeb08117215082be3">matrix.c</a> +, <a class="el" href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">matrix.h</a> +</li> +<li>matrix_swap_rows() +: <a class="el" href="matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix.c</a> +, <a class="el" href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix.h</a> +</li> +<li>matrix_t +: <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix.h</a> +</li> +<li>matrix_test() +: <a class="el" href="matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test.h</a> +, <a class="el" href="matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test.c</a> +</li> +<li>matrix_trans_mul_itself() +: <a class="el" href="matrix_8c.html#a0107887a6c40980fa639750be8262f01">matrix.c</a> +, <a class="el" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix.h</a> +</li> +<li>matrix_trans_mul_vec() +: <a class="el" href="matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix.c</a> +, <a class="el" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix.h</a> +</li> +<li>matrix_transpose() +: <a class="el" href="matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix.c</a> +, <a class="el" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix.h</a> +</li> +<li>matrix_vec_mul_matr() +: <a class="el" href="matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix.c</a> +, <a class="el" href="matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix.h</a> +</li> +<li>matrix_write() +: <a class="el" href="matrix_8h.html#a90b6eafa665d34d7330581c32564d632">matrix.h</a> +, <a class="el" href="matrix_8c.html#a90b6eafa665d34d7330581c32564d632">matrix.c</a> +</li> +<li>MAX_COL_NUM +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MAX_ROW_NUM +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MG_TO_T +: <a class="el" href="magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691">magnetic_based_position.h</a> +</li> +<li>MILPS_MAX_DIST +: <a class="el" href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc">magnetic_based_position.h</a> +</li> +<li>modified_gauss_newton() +: <a class="el" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton.h</a> +, <a class="el" href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton.c</a> +</li> +<li>Moore_Penrose +: <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">pseudo_inverse.h</a> +</li> +<li>moore_penrose_get_pinv() +: <a class="el" href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_pseudo_inverse.c</a> +, <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MOORE_PENROSE_INVALID_RANK_VALUE +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e">moore_penrose_pseudo_inverse.h</a> +</li> +<li>moore_penrose_pinv_compute_print() +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pseudo_inverse.h</a> +, <a class="el" href="moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pseudo_inverse.c</a> +</li> +<li>moore_penrose_pinv_test() +: <a class="el" href="moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test.c</a> +, <a class="el" href="moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test.h</a> +</li> +<li>MOORE_PENROSE_PSEUDO_COMP_SUCCESS +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED +: <a class="el" href="moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1">moore_penrose_pseudo_inverse.h</a> +</li> +<li>MU0 +: <a class="el" href="magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4">magnetic_based_position.h</a> +</li> +<li>multipath_algo_own_norm_distr_test() +: <a class="el" href="multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test.c</a> +, <a class="el" href="multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_n.html b/doc/doxygen/html/globals_n.html new file mode 100644 index 0000000000000000000000000000000000000000..b1a972fbd0a39d7cea0e045e49b047d1b2c0984c --- /dev/null +++ b/doc/doxygen/html/globals_n.html @@ -0,0 +1,117 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_n.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_n"></a>- n -</h3><ul> +<li>Newton_Raphson +: <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117">fsolve.h</a> +</li> +<li>newton_raphson() +: <a class="el" href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson.h</a> +, <a class="el" href="newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson.c</a> +</li> +<li>NON_LIN_ALGORITHM +: <a class="el" href="fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206">fsolve.h</a> +</li> +<li>NW +: <a class="el" href="magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687">magnetic_based_position.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_o.html b/doc/doxygen/html/globals_o.html new file mode 100644 index 0000000000000000000000000000000000000000..b50368be3e8f2b1d47fac3ace385a204403fa43f --- /dev/null +++ b/doc/doxygen/html/globals_o.html @@ -0,0 +1,145 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_o.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_o"></a>- o -</h3><ul> +<li>opt_levenberg_marquardt() +: <a class="el" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">levenberg_marquardt.h</a> +, <a class="el" href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">levenberg_marquardt.c</a> +</li> +<li>opt_levenberg_marquardt_correction() +: <a class="el" href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">levenberg_marquardt.c</a> +</li> +<li>opt_levenberg_marquardt_get_mu0() +: <a class="el" href="levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">levenberg_marquardt.h</a> +, <a class="el" href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">levenberg_marquardt.c</a> +</li> +<li>optimization_exponential_data_test() +: <a class="el" href="optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_test.h</a> +, <a class="el" href="optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_test.c</a> +</li> +<li>optimization_get_exp_f() +: <a class="el" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_test.c</a> +</li> +<li>optimization_get_exp_Jacobian() +: <a class="el" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_test.c</a> +</li> +<li>optimization_get_f_error() +: <a class="el" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_test.c</a> +</li> +<li>optimization_get_J() +: <a class="el" href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">optimization_test.c</a> +</li> +<li>optimization_get_sin_f() +: <a class="el" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_test.c</a> +</li> +<li>optimization_get_sin_Jacobian() +: <a class="el" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_test.c</a> +</li> +<li>optimization_sinusoidal_data_test() +: <a class="el" href="optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_test.c</a> +, <a class="el" href="optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_test.h</a> +</li> +<li>optimization_test() +: <a class="el" href="optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20">optimization_test.h</a> +, <a class="el" href="optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20">optimization_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_p.html b/doc/doxygen/html/globals_p.html new file mode 100644 index 0000000000000000000000000000000000000000..06a31de34af7fc995fd9bde8099c788fea792e10 --- /dev/null +++ b/doc/doxygen/html/globals_p.html @@ -0,0 +1,116 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_p.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_p"></a>- p -</h3><ul> +<li>PI +: <a class="el" href="norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca">norm_dist_rnd_generator.h</a> +, <a class="el" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca">magnetic_based_position.h</a> +</li> +<li>pos_algos_common_test() +: <a class="el" href="pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test.c</a> +, <a class="el" href="pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test.h</a> +</li> +<li>position_optimization_test() +: <a class="el" href="position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test.c</a> +, <a class="el" href="position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_q.html b/doc/doxygen/html/globals_q.html new file mode 100644 index 0000000000000000000000000000000000000000..79f1e27f4975f284482f62e6837ebb8c9f9c6fe9 --- /dev/null +++ b/doc/doxygen/html/globals_q.html @@ -0,0 +1,135 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_q.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_q"></a>- q -</h3><ul> +<li>QR_ALGORITHM +: <a class="el" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">qr_common.h</a> +</li> +<li>qr_common_backward_subst() +: <a class="el" href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common.h</a> +, <a class="el" href="qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common.c</a> +</li> +<li>qr_common_get_reduced_QR() +: <a class="el" href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common.h</a> +, <a class="el" href="qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b">qr_common.c</a> +</li> +<li>qr_get_pinv() +: <a class="el" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_pseudo_inverse.h</a> +, <a class="el" href="qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_pseudo_inverse.c</a> +</li> +<li>qr_givens_decomp() +: <a class="el" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens.h</a> +, <a class="el" href="qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc">qr_givens.c</a> +</li> +<li>qr_givens_get_params() +: <a class="el" href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens.h</a> +, <a class="el" href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens.c</a> +</li> +<li>qr_householder_decomp() +: <a class="el" href="qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder.c</a> +, <a class="el" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder.h</a> +</li> +<li>qr_pinv_test() +: <a class="el" href="qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test.h</a> +, <a class="el" href="qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test.c</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_r.html b/doc/doxygen/html/globals_r.html new file mode 100644 index 0000000000000000000000000000000000000000..8f8f6012c5d1b73f7ccba9dedff6e626cd32a226 --- /dev/null +++ b/doc/doxygen/html/globals_r.html @@ -0,0 +1,111 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_r.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_r"></a>- r -</h3><ul> +<li>R0 +: <a class="el" href="magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f">magnetic_based_position.h</a> +</li> +<li>recog_mitigate_multipath() +: <a class="el" href="multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47">multipath_dist_detection_mitigation.c</a> +, <a class="el" href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">multipath_dist_detection_mitigation.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_s.html b/doc/doxygen/html/globals_s.html new file mode 100644 index 0000000000000000000000000000000000000000..491dade612cac5ac4efc31a1711ed34a555effca --- /dev/null +++ b/doc/doxygen/html/globals_s.html @@ -0,0 +1,180 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_s.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_s"></a>- s -</h3><ul> +<li>shell_sort() +: <a class="el" href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort.h</a> +, <a class="el" href="shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort.c</a> +</li> +<li>sim_UWB_dist() +: <a class="el" href="multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957">multipath_dist_detection_mitigation.c</a> +, <a class="el" href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">multipath_dist_detection_mitigation.h</a> +</li> +<li>solve() +: <a class="el" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve.h</a> +, <a class="el" href="solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1">solve.c</a> +</li> +<li>solve_big_matrix_test() +: <a class="el" href="solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371">solve_test.c</a> +, <a class="el" href="solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371">solve_test.h</a> +</li> +<li>solve_givens() +: <a class="el" href="solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88">solve.h</a> +, <a class="el" href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88">solve.c</a> +</li> +<li>solve_householder() +: <a class="el" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve.h</a> +, <a class="el" href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve.c</a> +</li> +<li>solve_lu_decomp() +: <a class="el" href="solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve.h</a> +, <a class="el" href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve.c</a> +</li> +<li>solve_test() +: <a class="el" href="solve__test_8c.html#a468b4492daa139d24a18624526001220">solve_test.c</a> +, <a class="el" href="solve__test_8h.html#a468b4492daa139d24a18624526001220">solve_test.h</a> +</li> +<li>svd() +: <a class="el" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd.h</a> +, <a class="el" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd.c</a> +</li> +<li>SVD_COMPUTE_NEGLIGIBLE_VALUES +: <a class="el" href="svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5">svd.h</a> +</li> +<li>svd_compute_print_U_S_V_s() +: <a class="el" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd.h</a> +, <a class="el" href="svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd.c</a> +</li> +<li>svd_get_reciproc_singular_values() +: <a class="el" href="svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb">svd.c</a> +, <a class="el" href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">svd.h</a> +</li> +<li>svd_get_S_dim() +: <a class="el" href="svd_8h.html#aeb7ac3eac076a0f52c729849599808a6">svd.h</a> +, <a class="el" href="svd_8c.html#aeb7ac3eac076a0f52c729849599808a6">svd.c</a> +</li> +<li>svd_get_single_values_num() +: <a class="el" href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd.c</a> +, <a class="el" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd.h</a> +</li> +<li>svd_get_U_dim() +: <a class="el" href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8">svd.c</a> +, <a class="el" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd.h</a> +</li> +<li>svd_get_V_dim() +: <a class="el" href="svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd.h</a> +, <a class="el" href="svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd.c</a> +</li> +<li>SVD_ORDER_ABSOLUTE_SING_VALUES +: <a class="el" href="svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a">svd.h</a> +</li> +<li>SVD_QR_STEP +: <a class="el" href="svd_8h.html#af9e7db6685a0631312bfb93cc58dd756">svd.h</a> +</li> +<li>SVD_SPLIT_AT_NEGLIGIBLE_VALUES +: <a class="el" href="svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4">svd.h</a> +</li> +<li>svd_test() +: <a class="el" href="svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test.c</a> +, <a class="el" href="svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_t.html b/doc/doxygen/html/globals_t.html new file mode 100644 index 0000000000000000000000000000000000000000..dbca5fdb387afc07cfcd212c5a1f92085eb14da8 --- /dev/null +++ b/doc/doxygen/html/globals_t.html @@ -0,0 +1,144 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_t.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_t"></a>- t -</h3><ul> +<li>triangular_matrices_test() +: <a class="el" href="matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f">matrix_test.h</a> +, <a class="el" href="matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f">matrix_test.c</a> +</li> +<li>trilateration1() +: <a class="el" href="trilateration_8c.html#a95fc45efcb10019be21704539eeedefb">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">trilateration.h</a> +</li> +<li>trilateration2() +: <a class="el" href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration.c</a> +</li> +<li>trilateration_get_A_matrix() +: <a class="el" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration.h</a> +</li> +<li>trilateration_get_b_vector() +: <a class="el" href="trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration.c</a> +</li> +<li>trilateration_get_particular_solution() +: <a class="el" href="trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358">trilateration.c</a> +</li> +<li>trilateration_get_quadratic_equation_solution() +: <a class="el" href="trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">trilateration.c</a> +</li> +<li>trilateration_get_rank_and_homogeneous_solution() +: <a class="el" href="trilateration_8h.html#ab5f06e68df75b4708d722c268932578c">trilateration.h</a> +, <a class="el" href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c">trilateration.c</a> +</li> +<li>trilateration_preprocessed_get_particular_solution() +: <a class="el" href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758">trilateration.h</a> +</li> +<li>trilateration_solve_linear_equation() +: <a class="el" href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">trilateration.c</a> +, <a class="el" href="trilateration_8h.html#a4270371ead754327c478d19d57bfafba">trilateration.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_u.html b/doc/doxygen/html/globals_u.html new file mode 100644 index 0000000000000000000000000000000000000000..c6f2b230de3ad48ecc1d9dd59518a3cd94786c9a --- /dev/null +++ b/doc/doxygen/html/globals_u.html @@ -0,0 +1,156 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_u.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_u"></a>- u -</h3><ul> +<li>utils_get_median() +: <a class="el" href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils.h</a> +, <a class="el" href="utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee">utils.c</a> +</li> +<li>utils_get_save_square_root() +: <a class="el" href="utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8">utils.c</a> +, <a class="el" href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">utils.h</a> +</li> +<li>utils_max() +: <a class="el" href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils.h</a> +, <a class="el" href="utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils.c</a> +</li> +<li>utils_mean() +: <a class="el" href="utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6">utils.c</a> +, <a class="el" href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">utils.h</a> +</li> +<li>utils_min() +: <a class="el" href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">utils.h</a> +, <a class="el" href="utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d">utils.c</a> +</li> +<li>utils_moving_average() +: <a class="el" href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">utils.h</a> +, <a class="el" href="utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1">utils.c</a> +</li> +<li>utils_printf() +: <a class="el" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils.h</a> +, <a class="el" href="utils_8c.html#a335d8d6c4b945638261228cd116cccd6">utils.c</a> +</li> +<li>utils_sind() +: <a class="el" href="utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils.c</a> +, <a class="el" href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils.h</a> +</li> +<li>utils_swap() +: <a class="el" href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">utils.h</a> +, <a class="el" href="utils_8c.html#ad21f654c48115ba2419ca98644a44ae9">utils.c</a> +</li> +<li>utils_test() +: <a class="el" href="utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test.h</a> +, <a class="el" href="utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test.c</a> +</li> +<li>utils_to_radian() +: <a class="el" href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils.h</a> +, <a class="el" href="utils_8c.html#a689d2d3db40d341609423404abc5a23a">utils.c</a> +</li> +<li>utils_u8_max() +: <a class="el" href="utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils.h</a> +, <a class="el" href="utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils.c</a> +</li> +<li>utils_u8_min() +: <a class="el" href="utils_8c.html#a81dabd4841ab656130497f0600979850">utils.c</a> +, <a class="el" href="utils_8h.html#a81dabd4841ab656130497f0600979850">utils.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/globals_v.html b/doc/doxygen/html/globals_v.html new file mode 100644 index 0000000000000000000000000000000000000000..fea65170de8f2c0b31090d5483352ce3246e75e9 --- /dev/null +++ b/doc/doxygen/html/globals_v.html @@ -0,0 +1,207 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Globals</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('globals_v.html','');}); +/* @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="contents"> +<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div> + +<h3><a id="index_v"></a>- v -</h3><ul> +<li>vector_add() +: <a class="el" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector.h</a> +, <a class="el" href="vector_8c.html#a92917951880002814392c2367896d7a0">vector.c</a> +</li> +<li>vector_clear() +: <a class="el" href="vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14">vector.c</a> +, <a class="el" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector.h</a> +</li> +<li>vector_copy() +: <a class="el" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector.h</a> +, <a class="el" href="vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6">vector.c</a> +</li> +<li>vector_flex_print() +: <a class="el" href="vector_8c.html#ab2827264910e858f238868695a92db4b">vector.c</a> +, <a class="el" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector.h</a> +</li> +<li>vector_get_elements() +: <a class="el" href="vector_8h.html#a1348a041e323e7b333482242b51a7674">vector.h</a> +, <a class="el" href="vector_8c.html#a1348a041e323e7b333482242b51a7674">vector.c</a> +</li> +<li>vector_get_euclidean_distance() +: <a class="el" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector.h</a> +, <a class="el" href="vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9">vector.c</a> +</li> +<li>vector_get_index_vector() +: <a class="el" href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">vector.h</a> +, <a class="el" href="vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba">vector.c</a> +</li> +<li>vector_get_max_and_index() +: <a class="el" href="vector_8c.html#a982bc2f9e4755461eac46c6322b4562d">vector.c</a> +, <a class="el" href="vector_8h.html#a982bc2f9e4755461eac46c6322b4562d">vector.h</a> +</li> +<li>vector_get_mean_value() +: <a class="el" href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">vector.h</a> +, <a class="el" href="vector_8c.html#a4a8fae4c69677390016c116123d9eff8">vector.c</a> +</li> +<li>vector_get_norm2() +: <a class="el" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector.h</a> +, <a class="el" href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector.c</a> +</li> +<li>vector_get_residual() +: <a class="el" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector.h</a> +, <a class="el" href="vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector.c</a> +</li> +<li>vector_get_scalar_product() +: <a class="el" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector.h</a> +, <a class="el" href="vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector.c</a> +</li> +<li>vector_get_square_norm2() +: <a class="el" href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector.h</a> +, <a class="el" href="vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector.c</a> +</li> +<li>vector_get_sum() +: <a class="el" href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">vector.h</a> +, <a class="el" href="vector_8c.html#af1767c4decdd472ed81035a19cf2152b">vector.c</a> +</li> +<li>vector_in_place_scalar_mul() +: <a class="el" href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">vector.h</a> +, <a class="el" href="vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4">vector.c</a> +</li> +<li>vector_is_equal() +: <a class="el" href="vector_8c.html#af98f2e3896ce7b96d598b11033ac1795">vector.c</a> +, <a class="el" href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">vector.h</a> +</li> +<li>vector_mul() +: <a class="el" href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector.h</a> +, <a class="el" href="vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector.c</a> +</li> +<li>vector_print() +: <a class="el" href="vector_8h.html#a8f24286db94dba6ab181edcdfe296262">vector.h</a> +, <a class="el" href="vector_8c.html#a8f24286db94dba6ab181edcdfe296262">vector.c</a> +</li> +<li>vector_print_u8_array() +: <a class="el" href="vector_8c.html#a8ec75dc585746d950ab517e9929f31fe">vector.c</a> +, <a class="el" href="vector_8h.html#a8ec75dc585746d950ab517e9929f31fe">vector.h</a> +</li> +<li>vector_scalar_div() +: <a class="el" href="vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b">vector.c</a> +, <a class="el" href="vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b">vector.h</a> +</li> +<li>vector_scalar_mul() +: <a class="el" href="vector_8c.html#a3c0bdd0e463fb34757a71470c55af845">vector.c</a> +, <a class="el" href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">vector.h</a> +</li> +<li>vector_square() +: <a class="el" href="vector_8c.html#afc68fab0b07c974faf5a457d20b01c58">vector.c</a> +, <a class="el" href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">vector.h</a> +</li> +<li>vector_sub() +: <a class="el" href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">vector.c</a> +, <a class="el" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector.h</a> +</li> +<li>vector_t +: <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector.h</a> +</li> +<li>vector_test() +: <a class="el" href="vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21">vector_test.h</a> +, <a class="el" href="vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21">vector_test.c</a> +</li> +<li>vector_uint32_is_equal() +: <a class="el" href="vector_8c.html#a421f989647bf55af29c0f55b7f33d35a">vector.c</a> +, <a class="el" href="vector_8h.html#a421f989647bf55af29c0f55b7f33d35a">vector.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__basic__operations.html b/doc/doxygen/html/group__basic__operations.html new file mode 100644 index 0000000000000000000000000000000000000000..d7c2be997b7677501f969cbb2b7610dbf3a55551 --- /dev/null +++ b/doc/doxygen/html/group__basic__operations.html @@ -0,0 +1,123 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: BASIC_OPERATIONS</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__basic__operations.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">BASIC_OPERATIONS<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Matrix basic operations. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:matrix_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html">matrix.h</a></td></tr> +<tr class="memdesc:matrix_8h"><td class="mdescLeft"> </td><td class="mdescRight">Matrix computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:vector_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html">vector.h</a></td></tr> +<tr class="memdesc:vector_8h"><td class="mdescLeft"> </td><td class="mdescRight">Vector computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Matrix basic operations. </p> +<p>This module provides functions to perform basic matrix operations such as matrix addition, multiplication, or transposition.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__basic__operations.js b/doc/doxygen/html/group__basic__operations.js new file mode 100644 index 0000000000000000000000000000000000000000..cd176810dee362a07498d7ffc00b6c59ebb1598c --- /dev/null +++ b/doc/doxygen/html/group__basic__operations.js @@ -0,0 +1,5 @@ +var group__basic__operations = +[ + [ "matrix.h", "matrix_8h.html", null ], + [ "vector.h", "vector_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__distance__based.html b/doc/doxygen/html/group__distance__based.html new file mode 100644 index 0000000000000000000000000000000000000000..b1873bfa02282a5ae2b6d937a85312d52bf528e2 --- /dev/null +++ b/doc/doxygen/html/group__distance__based.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: DISTANCE_BASED</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__distance__based.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">DISTANCE_BASED<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>localization algorithms of distance-based localization systems. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:dist__based__fi_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__fi_8h.html">dist_based_fi.h</a></td></tr> +<tr class="memdesc:dist__based__fi_8h"><td class="mdescLeft"> </td><td class="mdescRight">Error function of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:dist__based__jacobian_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a></td></tr> +<tr class="memdesc:dist__based__jacobian_8h"><td class="mdescLeft"> </td><td class="mdescRight">Jacobian function of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:dist__based__position_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dist__based__position_8h.html">dist_based_position.h</a></td></tr> +<tr class="memdesc:dist__based__position_8h"><td class="mdescLeft"> </td><td class="mdescRight">Functions of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>localization algorithms of distance-based localization systems. </p> +<p>The localization module contains functions to compute a position of a mobile device using distance measurements signals.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__distance__based.js b/doc/doxygen/html/group__distance__based.js new file mode 100644 index 0000000000000000000000000000000000000000..16407838a1efede060d277eede539fb03170a8bc --- /dev/null +++ b/doc/doxygen/html/group__distance__based.js @@ -0,0 +1,6 @@ +var group__distance__based = +[ + [ "dist_based_fi.h", "dist__based__fi_8h.html", null ], + [ "dist_based_jacobian.h", "dist__based__jacobian_8h.html", null ], + [ "dist_based_position.h", "dist__based__position_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__examples.html b/doc/doxygen/html/group__examples.html new file mode 100644 index 0000000000000000000000000000000000000000..eaab997f36e2ba245c73d99ad2dbdeb044b38875 --- /dev/null +++ b/doc/doxygen/html/group__examples.html @@ -0,0 +1,168 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: EXAMPLES</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__examples.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">EXAMPLES</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the RcdMathLib. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:matrix__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8h.html">matrix_test.h</a></td></tr> +<tr class="memdesc:matrix__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of matrix computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:vector__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="vector__test_8h.html">vector_test.h</a></td></tr> +<tr class="memdesc:vector__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of vector computations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:givens__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="givens__test_8h.html">givens_test.h</a></td></tr> +<tr class="memdesc:givens__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Givens algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:householder__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="householder__test_8h.html">householder_test.h</a></td></tr> +<tr class="memdesc:householder__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Householder algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:lu__decomp__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp__test_8h.html">lu_decomp_test.h</a></td></tr> +<tr class="memdesc:lu__decomp__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the LU algorithm with pivoting. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:svd__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="svd__test_8h.html">svd_test.h</a></td></tr> +<tr class="memdesc:svd__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the SVD algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:moore__penrose__pinv__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pinv__test_8h.html">moore_penrose_pinv_test.h</a></td></tr> +<tr class="memdesc:moore__penrose__pinv__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Moore–Penrose algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__pinv__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pinv__test_8h.html">qr_pinv_test.h</a></td></tr> +<tr class="memdesc:qr__pinv__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the QR-based pseudo-inverse algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:solve__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="solve__test_8h.html">solve_test.h</a></td></tr> +<tr class="memdesc:solve__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving linear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:utils__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="utils__test_8h.html">utils_test.h</a></td></tr> +<tr class="memdesc:utils__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the utility functions. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:distance__based__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="distance__based__test_8h.html">distance_based_test.h</a></td></tr> +<tr class="memdesc:distance__based__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of localization algorithms of distance-based positioning systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:magnetic__based__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__test_8h.html">magnetic_based_test.h</a></td></tr> +<tr class="memdesc:magnetic__based__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of localization algorithms of magnetic-based positioning systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:pos__algos__common__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="pos__algos__common__test_8h.html">pos_algos_common_test.h</a></td></tr> +<tr class="memdesc:pos__algos__common__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of common algorithms of localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:multipath__algo__own__norm__distr__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__algo__own__norm__distr__test_8h.html">multipath_algo_own_norm_distr_test.h</a></td></tr> +<tr class="memdesc:multipath__algo__own__norm__distr__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Example of the algorithm for the recognition and mitigation of multipath effects. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:position__optimization__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="position__optimization__test_8h.html">position_optimization_test.h</a></td></tr> +<tr class="memdesc:position__optimization__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms for localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:optimization__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8h.html">optimization_test.h</a></td></tr> +<tr class="memdesc:optimization__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:fsolve__test_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve__test_8h.html">fsolve_test.h</a></td></tr> +<tr class="memdesc:fsolve__test_8h"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving non-linear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Examples of the RcdMathLib. </p> +<p>Includes examples of all RcdMathLib's modules.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__examples.js b/doc/doxygen/html/group__examples.js new file mode 100644 index 0000000000000000000000000000000000000000..d4bcbd55caa002b474eeecba48c221bed7329824 --- /dev/null +++ b/doc/doxygen/html/group__examples.js @@ -0,0 +1,20 @@ +var group__examples = +[ + [ "matrix_test.h", "matrix__test_8h.html", null ], + [ "vector_test.h", "vector__test_8h.html", null ], + [ "givens_test.h", "givens__test_8h.html", null ], + [ "householder_test.h", "householder__test_8h.html", null ], + [ "lu_decomp_test.h", "lu__decomp__test_8h.html", null ], + [ "svd_test.h", "svd__test_8h.html", null ], + [ "moore_penrose_pinv_test.h", "moore__penrose__pinv__test_8h.html", null ], + [ "qr_pinv_test.h", "qr__pinv__test_8h.html", null ], + [ "solve_test.h", "solve__test_8h.html", null ], + [ "utils_test.h", "utils__test_8h.html", null ], + [ "distance_based_test.h", "distance__based__test_8h.html", null ], + [ "magnetic_based_test.h", "magnetic__based__test_8h.html", null ], + [ "pos_algos_common_test.h", "pos__algos__common__test_8h.html", null ], + [ "multipath_algo_own_norm_distr_test.h", "multipath__algo__own__norm__distr__test_8h.html", null ], + [ "position_optimization_test.h", "position__optimization__test_8h.html", null ], + [ "optimization_test.h", "optimization__test_8h.html", null ], + [ "fsolve_test.h", "fsolve__test_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__linear__algebra.html b/doc/doxygen/html/group__linear__algebra.html new file mode 100644 index 0000000000000000000000000000000000000000..744b04d557b6fd3daa19e5824de1338fe8bd313e --- /dev/null +++ b/doc/doxygen/html/group__linear__algebra.html @@ -0,0 +1,132 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: LINEAR_ALGEBRA</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__linear__algebra.html','');}); +/* @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="#groups">Modules</a> </div> + <div class="headertitle"> +<div class="title">LINEAR_ALGEBRA</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Linear algebra operations. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> +Modules</h2></td></tr> +<tr class="memitem:group__basic__operations"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__basic__operations.html">BASIC_OPERATIONS</a></td></tr> +<tr class="memdesc:group__basic__operations"><td class="mdescLeft"> </td><td class="mdescRight">Matrix basic operations. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__matrix__decompositions"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix__decompositions.html">MATRIX_DECOMPOSITIONS</a></td></tr> +<tr class="memdesc:group__matrix__decompositions"><td class="mdescLeft"> </td><td class="mdescRight">Matrix decomposition algorithms. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__pseudo__inverse"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pseudo__inverse.html">PSEUDO_INVERSE</a></td></tr> +<tr class="memdesc:group__pseudo__inverse"><td class="mdescLeft"> </td><td class="mdescRight">Algorithms to calculate the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__solve__linear__equations"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__solve__linear__equations.html">SOLVE_LINEAR_EQUATIONS</a></td></tr> +<tr class="memdesc:group__solve__linear__equations"><td class="mdescLeft"> </td><td class="mdescRight">Enables to solve systems of linear equations Ax = b for x. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__utilities"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__utilities.html">UTILITIES</a></td></tr> +<tr class="memdesc:group__utilities"><td class="mdescLeft"> </td><td class="mdescRight">Utilities for linear algebra. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Linear algebra operations. </p> +<p>The linear algebra module contains functions that are specific to vector and matrix operations, and other algebraic operations. This module is composed of five submodules: basic_operation, matrix_decompositions, pseudo_inverse, solve_linear_equations, and utilities submodules.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__linear__algebra.js b/doc/doxygen/html/group__linear__algebra.js new file mode 100644 index 0000000000000000000000000000000000000000..617c8c3c8bc011256bb8bf6b4a3daa8000eb6262 --- /dev/null +++ b/doc/doxygen/html/group__linear__algebra.js @@ -0,0 +1,8 @@ +var group__linear__algebra = +[ + [ "BASIC_OPERATIONS", "group__basic__operations.html", "group__basic__operations" ], + [ "MATRIX_DECOMPOSITIONS", "group__matrix__decompositions.html", "group__matrix__decompositions" ], + [ "PSEUDO_INVERSE", "group__pseudo__inverse.html", "group__pseudo__inverse" ], + [ "SOLVE_LINEAR_EQUATIONS", "group__solve__linear__equations.html", "group__solve__linear__equations" ], + [ "UTILITIES", "group__utilities.html", "group__utilities" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__localization.html b/doc/doxygen/html/group__localization.html new file mode 100644 index 0000000000000000000000000000000000000000..af1e9106c58d5f1e63c4040dbe1c991533501c18 --- /dev/null +++ b/doc/doxygen/html/group__localization.html @@ -0,0 +1,123 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: LOCALIZATION</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__localization.html','');}); +/* @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="#groups">Modules</a> </div> + <div class="headertitle"> +<div class="title">LOCALIZATION</div> </div> +</div><!--header--> +<div class="contents"> + +<p>localization and optimization algorithms of distance- and magnetic-based localization systems. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> +Modules</h2></td></tr> +<tr class="memitem:group__position__algos"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__position__algos.html">POSITION_ALGOS</a></td></tr> +<tr class="memdesc:group__position__algos"><td class="mdescLeft"> </td><td class="mdescRight">localization algorithms of distance- and magnetic-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__position__optimization"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__position__optimization.html">POSITION_OPTIMIZATION</a></td></tr> +<tr class="memdesc:group__position__optimization"><td class="mdescLeft"> </td><td class="mdescRight">position optimization of distance- and magnetic-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>localization and optimization algorithms of distance- and magnetic-based localization systems. </p> +<p>The localization module contains functions to compute a position of a mobile device using distance measurements or DC-pulsed, magnetic signals. This module also includes optimization algorithms such as the Levenberg–Marquardt approach to optimize the calculated position. The localization module also involves a method to recognize and mitigate the multipath errors on the mobile station.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__localization.js b/doc/doxygen/html/group__localization.js new file mode 100644 index 0000000000000000000000000000000000000000..325b5943c4a1555ed56412ae6b7224e99b8bbc3c --- /dev/null +++ b/doc/doxygen/html/group__localization.js @@ -0,0 +1,5 @@ +var group__localization = +[ + [ "POSITION_ALGOS", "group__position__algos.html", "group__position__algos" ], + [ "POSITION_OPTIMIZATION", "group__position__optimization.html", "group__position__optimization" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__magnetic__based.html b/doc/doxygen/html/group__magnetic__based.html new file mode 100644 index 0000000000000000000000000000000000000000..b66a234d282ee84bfab011c307dc613a2f24e917 --- /dev/null +++ b/doc/doxygen/html/group__magnetic__based.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: MAGNETIC_BASED</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__magnetic__based.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">MAGNETIC_BASED<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>localization algorithms of magnetic-based localization systems. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:magnetic__based__fi_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__fi_8h.html">magnetic_based_fi.h</a></td></tr> +<tr class="memdesc:magnetic__based__fi_8h"><td class="mdescLeft"> </td><td class="mdescRight">Error function of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:magnetic__based__jacobian_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8h.html">magnetic_based_jacobian.h</a></td></tr> +<tr class="memdesc:magnetic__based__jacobian_8h"><td class="mdescLeft"> </td><td class="mdescRight">Jacobian function of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:magnetic__based__position_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html">magnetic_based_position.h</a></td></tr> +<tr class="memdesc:magnetic__based__position_8h"><td class="mdescLeft"> </td><td class="mdescRight">Functions of of DC-pulsed, magnetic localization system. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>localization algorithms of magnetic-based localization systems. </p> +<p>The localization module contains functions to compute a position of a mobile device using artificially generated DC-pulsed, magnetic signals.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__magnetic__based.js b/doc/doxygen/html/group__magnetic__based.js new file mode 100644 index 0000000000000000000000000000000000000000..70c7d0408479c1d6a8073daa4bc4bd497006553a --- /dev/null +++ b/doc/doxygen/html/group__magnetic__based.js @@ -0,0 +1,6 @@ +var group__magnetic__based = +[ + [ "magnetic_based_fi.h", "magnetic__based__fi_8h.html", null ], + [ "magnetic_based_jacobian.h", "magnetic__based__jacobian_8h.html", null ], + [ "magnetic_based_position.h", "magnetic__based__position_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__matrix__decompositions.html b/doc/doxygen/html/group__matrix__decompositions.html new file mode 100644 index 0000000000000000000000000000000000000000..f842bb68654f820ecb9792bc305ab9dfb87e028a --- /dev/null +++ b/doc/doxygen/html/group__matrix__decompositions.html @@ -0,0 +1,132 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: MATRIX_DECOMPOSITIONS</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__matrix__decompositions.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">MATRIX_DECOMPOSITIONS<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Matrix decomposition algorithms. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:lu__decomp_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp_8h.html">lu_decomp.h</a></td></tr> +<tr class="memdesc:lu__decomp_8h"><td class="mdescLeft"> </td><td class="mdescRight">Computes the LU decomposition of the matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__common_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8h.html">qr_common.h</a></td></tr> +<tr class="memdesc:qr__common_8h"><td class="mdescLeft"> </td><td class="mdescRight">Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__givens_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__givens_8h.html">qr_givens.h</a></td></tr> +<tr class="memdesc:qr__givens_8h"><td class="mdescLeft"> </td><td class="mdescRight">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__householder_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__householder_8h.html">qr_householder.h</a></td></tr> +<tr class="memdesc:qr__householder_8h"><td class="mdescLeft"> </td><td class="mdescRight">Householder algorithm for the QR-decomposition. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:svd_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html">svd.h</a></td></tr> +<tr class="memdesc:svd_8h"><td class="mdescLeft"> </td><td class="mdescRight">Algorithm for the Singular Value Decomposition (SVD). <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Matrix decomposition algorithms. </p> +<p>This module provides algorithms of matrix decomposition such as Householder, Givens, or Golub-Kahan-Reinsch algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__matrix__decompositions.js b/doc/doxygen/html/group__matrix__decompositions.js new file mode 100644 index 0000000000000000000000000000000000000000..028acc776edc2849ede913a09ac8dd93601b5d04 --- /dev/null +++ b/doc/doxygen/html/group__matrix__decompositions.js @@ -0,0 +1,8 @@ +var group__matrix__decompositions = +[ + [ "lu_decomp.h", "lu__decomp_8h.html", null ], + [ "qr_common.h", "qr__common_8h.html", null ], + [ "qr_givens.h", "qr__givens_8h.html", null ], + [ "qr_householder.h", "qr__householder_8h.html", null ], + [ "svd.h", "svd_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__non__linear__algebra.html b/doc/doxygen/html/group__non__linear__algebra.html new file mode 100644 index 0000000000000000000000000000000000000000..b76ace1ecdfbf45df3a4fc9cf5544814872ef73e --- /dev/null +++ b/doc/doxygen/html/group__non__linear__algebra.html @@ -0,0 +1,123 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: NON_LINEAR_ALGEBRA</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__non__linear__algebra.html','');}); +/* @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="#groups">Modules</a> </div> + <div class="headertitle"> +<div class="title">NON_LINEAR_ALGEBRA</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Non-linear algebra operations. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> +Modules</h2></td></tr> +<tr class="memitem:group__optimization"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__optimization.html">OPTIMIZATION</a></td></tr> +<tr class="memdesc:group__optimization"><td class="mdescLeft"> </td><td class="mdescRight">Solving problems of regression smoothing and curve fitting. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__solve__non__linear__equations"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__solve__non__linear__equations.html">SOLVE_NON_LINEAR_EQUATIONS</a></td></tr> +<tr class="memdesc:group__solve__non__linear__equations"><td class="mdescLeft"> </td><td class="mdescRight">Enables to solve multi-variant nonlinear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Non-linear algebra operations. </p> +<p>The non-linear algebra module contains functions to solve multi-variant nonlinear equations as wells algorithms solving problems of regression smoothing and curve fitting. This module also enables enables the optimization of an approximate solution by using Non-linear Least Squares (NLS) methods such as modified Gauss–Newton (GN) or the Levenberg–Marquardt (LVM) algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__non__linear__algebra.js b/doc/doxygen/html/group__non__linear__algebra.js new file mode 100644 index 0000000000000000000000000000000000000000..a1d85859e0d8219f09efda7b28110355a622f167 --- /dev/null +++ b/doc/doxygen/html/group__non__linear__algebra.js @@ -0,0 +1,5 @@ +var group__non__linear__algebra = +[ + [ "OPTIMIZATION", "group__optimization.html", "group__optimization" ], + [ "SOLVE_NON_LINEAR_EQUATIONS", "group__solve__non__linear__equations.html", "group__solve__non__linear__equations" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__optimization.html b/doc/doxygen/html/group__optimization.html new file mode 100644 index 0000000000000000000000000000000000000000..0ec25790b94e3639aa2e3bc7c9e19b8987b37b23 --- /dev/null +++ b/doc/doxygen/html/group__optimization.html @@ -0,0 +1,123 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: OPTIMIZATION</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__optimization.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">OPTIMIZATION<div class="ingroups"><a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Solving problems of regression smoothing and curve fitting. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:levenberg__marquardt_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a></td></tr> +<tr class="memdesc:levenberg__marquardt_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Levenberg–Marquardt (LVM) algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:modified__gauss__newton_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a></td></tr> +<tr class="memdesc:modified__gauss__newton_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Gauss–Newton algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Solving problems of regression smoothing and curve fitting. </p> +<p>This module also enables the optimization of an approximate solution by using Non-linear Least Squares (NLS) methods such as modified Gauss–Newton (GN) or the Levenberg–Marquardt (LVM) algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__optimization.js b/doc/doxygen/html/group__optimization.js new file mode 100644 index 0000000000000000000000000000000000000000..71d469a0ef06bdc8a48abc60ffc1532b552181c8 --- /dev/null +++ b/doc/doxygen/html/group__optimization.js @@ -0,0 +1,5 @@ +var group__optimization = +[ + [ "levenberg_marquardt.h", "levenberg__marquardt_8h.html", null ], + [ "modified_gauss_newton.h", "modified__gauss__newton_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__pos__algos__common.html b/doc/doxygen/html/group__pos__algos__common.html new file mode 100644 index 0000000000000000000000000000000000000000..bb7cc3cb7ed77446ca7addcc6c723fdeb7359706 --- /dev/null +++ b/doc/doxygen/html/group__pos__algos__common.html @@ -0,0 +1,123 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: POS_ALGOS_COMMON</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__pos__algos__common.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">POS_ALGOS_COMMON<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Common algorithms of localization systems. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:DOP_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="DOP_8h.html">DOP.h</a></td></tr> +<tr class="memdesc:DOP_8h"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Position Dilution of Precision (PDOP). <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:trilateration_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html">trilateration.h</a></td></tr> +<tr class="memdesc:trilateration_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the trilateration algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Common algorithms of localization systems. </p> +<p>This module contains common functions such as the trilateration or the Position Dilution of Precision (PDOP).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__pos__algos__common.js b/doc/doxygen/html/group__pos__algos__common.js new file mode 100644 index 0000000000000000000000000000000000000000..f4ca7f47c700c7eee2408f5524d37f7c154affb7 --- /dev/null +++ b/doc/doxygen/html/group__pos__algos__common.js @@ -0,0 +1,5 @@ +var group__pos__algos__common = +[ + [ "DOP.h", "DOP_8h.html", null ], + [ "trilateration.h", "trilateration_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__position__algos.html b/doc/doxygen/html/group__position__algos.html new file mode 100644 index 0000000000000000000000000000000000000000..13858d388e9ace523830473c5db74c92afdbd63c --- /dev/null +++ b/doc/doxygen/html/group__position__algos.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: POSITION_ALGOS</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__position__algos.html','');}); +/* @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="#groups">Modules</a> </div> + <div class="headertitle"> +<div class="title">POSITION_ALGOS<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>localization algorithms of distance- and magnetic-based localization systems. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> +Modules</h2></td></tr> +<tr class="memitem:group__distance__based"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__distance__based.html">DISTANCE_BASED</a></td></tr> +<tr class="memdesc:group__distance__based"><td class="mdescLeft"> </td><td class="mdescRight">localization algorithms of distance-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__magnetic__based"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__magnetic__based.html">MAGNETIC_BASED</a></td></tr> +<tr class="memdesc:group__magnetic__based"><td class="mdescLeft"> </td><td class="mdescRight">localization algorithms of magnetic-based localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:group__pos__algos__common"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pos__algos__common.html">POS_ALGOS_COMMON</a></td></tr> +<tr class="memdesc:group__pos__algos__common"><td class="mdescLeft"> </td><td class="mdescRight">Common algorithms of localization systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>localization algorithms of distance- and magnetic-based localization systems. </p> +<p>The localization module contains functions to compute a position of a mobile device using distance measurements or DC-pulsed, magnetic signals.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__position__algos.js b/doc/doxygen/html/group__position__algos.js new file mode 100644 index 0000000000000000000000000000000000000000..8455c52638df4c862bc50701d8591fc95f194738 --- /dev/null +++ b/doc/doxygen/html/group__position__algos.js @@ -0,0 +1,6 @@ +var group__position__algos = +[ + [ "DISTANCE_BASED", "group__distance__based.html", "group__distance__based" ], + [ "MAGNETIC_BASED", "group__magnetic__based.html", "group__magnetic__based" ], + [ "POS_ALGOS_COMMON", "group__pos__algos__common.html", "group__pos__algos__common" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__position__optimization.html b/doc/doxygen/html/group__position__optimization.html new file mode 100644 index 0000000000000000000000000000000000000000..fc60de10489f419dbc7b956b6682aaa60b48e383 --- /dev/null +++ b/doc/doxygen/html/group__position__optimization.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: POSITION_OPTIMIZATION</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__position__optimization.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">POSITION_OPTIMIZATION<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>position optimization of distance- and magnetic-based localization systems. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:loc__gauss__newton_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__gauss__newton_8h.html">loc_gauss_newton.h</a></td></tr> +<tr class="memdesc:loc__gauss__newton_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Gauss–Newton algorithm for position optimization. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:loc__levenberg__marquardt_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a></td></tr> +<tr class="memdesc:loc__levenberg__marquardt_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Levenberg–Marquardt (LVM) algorithm for position optimization. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:multipath__dist__detection__mitigation_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a></td></tr> +<tr class="memdesc:multipath__dist__detection__mitigation_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>position optimization of distance- and magnetic-based localization systems. </p> +<p>The optimization module enables the refinement of a position of a mobile device using algorithms such as Gauss–Newton, Levenberg, or a Multipath Distance Detection and Mitigation (MDDM) algorithm.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__position__optimization.js b/doc/doxygen/html/group__position__optimization.js new file mode 100644 index 0000000000000000000000000000000000000000..84d8d228ac57b715f27d4b12314f33f7f903648c --- /dev/null +++ b/doc/doxygen/html/group__position__optimization.js @@ -0,0 +1,6 @@ +var group__position__optimization = +[ + [ "loc_gauss_newton.h", "loc__gauss__newton_8h.html", null ], + [ "loc_levenberg_marquardt.h", "loc__levenberg__marquardt_8h.html", null ], + [ "multipath_dist_detection_mitigation.h", "multipath__dist__detection__mitigation_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__pseudo__inverse.html b/doc/doxygen/html/group__pseudo__inverse.html new file mode 100644 index 0000000000000000000000000000000000000000..8810636c5b70a15849fdba36d69835b56779609a --- /dev/null +++ b/doc/doxygen/html/group__pseudo__inverse.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: PSEUDO_INVERSE</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__pseudo__inverse.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">PSEUDO_INVERSE<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Algorithms to calculate the pseudo-inverse of a matrix. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:moore__penrose__pseudo__inverse_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></td></tr> +<tr class="memdesc:moore__penrose__pseudo__inverse_8h"><td class="mdescLeft"> </td><td class="mdescRight">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:pseudo__inverse_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="pseudo__inverse_8h.html">pseudo_inverse.h</a></td></tr> +<tr class="memdesc:pseudo__inverse_8h"><td class="mdescLeft"> </td><td class="mdescRight">Compute the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:qr__pseudo__inverse_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pseudo__inverse_8h.html">qr_pseudo_inverse.h</a></td></tr> +<tr class="memdesc:qr__pseudo__inverse_8h"><td class="mdescLeft"> </td><td class="mdescRight">QR decomposition algorithms to compute the pseudo-inverse of a matrix. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Algorithms to calculate the pseudo-inverse of a matrix. </p> +<p>The pseudo-inverse matrix can be computed using QR-decomposition or SVD algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__pseudo__inverse.js b/doc/doxygen/html/group__pseudo__inverse.js new file mode 100644 index 0000000000000000000000000000000000000000..2c209c40e0d3b40e964c4ca87a8d1a50442445ec --- /dev/null +++ b/doc/doxygen/html/group__pseudo__inverse.js @@ -0,0 +1,6 @@ +var group__pseudo__inverse = +[ + [ "moore_penrose_pseudo_inverse.h", "moore__penrose__pseudo__inverse_8h.html", null ], + [ "pseudo_inverse.h", "pseudo__inverse_8h.html", null ], + [ "qr_pseudo_inverse.h", "qr__pseudo__inverse_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__solve__linear__equations.html b/doc/doxygen/html/group__solve__linear__equations.html new file mode 100644 index 0000000000000000000000000000000000000000..9a22afbc5e02b14218fbf3befd78244975fd32be --- /dev/null +++ b/doc/doxygen/html/group__solve__linear__equations.html @@ -0,0 +1,120 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: SOLVE_LINEAR_EQUATIONS</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__solve__linear__equations.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">SOLVE_LINEAR_EQUATIONS<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Enables to solve systems of linear equations Ax = b for x. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:solve_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8h.html">solve.h</a></td></tr> +<tr class="memdesc:solve_8h"><td class="mdescLeft"> </td><td class="mdescRight">Enables to solve systems of linear equations Ax = b for x. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Enables to solve systems of linear equations Ax = b for x. </p> +<p>The user can select various algorithm such as the Moore–Penrose inverse, the Givens or the Householder algorithm for the QR-decomposition to solve the systems of linear equations.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__solve__linear__equations.js b/doc/doxygen/html/group__solve__linear__equations.js new file mode 100644 index 0000000000000000000000000000000000000000..4a9b86f2593419a9e914020178ed8b5bfbace383 --- /dev/null +++ b/doc/doxygen/html/group__solve__linear__equations.js @@ -0,0 +1,4 @@ +var group__solve__linear__equations = +[ + [ "solve.h", "solve_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__solve__non__linear__equations.html b/doc/doxygen/html/group__solve__non__linear__equations.html new file mode 100644 index 0000000000000000000000000000000000000000..e5339b751daffd69a27652ae4f058631260f971d --- /dev/null +++ b/doc/doxygen/html/group__solve__non__linear__equations.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: SOLVE_NON_LINEAR_EQUATIONS</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__solve__non__linear__equations.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">SOLVE_NON_LINEAR_EQUATIONS<div class="ingroups"><a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Enables to solve multi-variant nonlinear equation systems. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:damped__newton__raphson_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="damped__newton__raphson_8h.html">damped_newton_raphson.h</a></td></tr> +<tr class="memdesc:damped__newton__raphson_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the damped Newton–Raphson algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:fsolve_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="fsolve_8h.html">fsolve.h</a></td></tr> +<tr class="memdesc:fsolve_8h"><td class="mdescLeft"> </td><td class="mdescRight">Solve multi-variant nonlinear equation systems. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:newton__raphson_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="newton__raphson_8h.html">newton_raphson.h</a></td></tr> +<tr class="memdesc:newton__raphson_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Newton–Raphson algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Enables to solve multi-variant nonlinear equation systems. </p> +<p>The multi-variant nonlinear equation systems are solved using damped or the Newton–Raphson algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__solve__non__linear__equations.js b/doc/doxygen/html/group__solve__non__linear__equations.js new file mode 100644 index 0000000000000000000000000000000000000000..ba842257ea8f6be36e9a833e9de6a04c81729bcc --- /dev/null +++ b/doc/doxygen/html/group__solve__non__linear__equations.js @@ -0,0 +1,6 @@ +var group__solve__non__linear__equations = +[ + [ "damped_newton_raphson.h", "damped__newton__raphson_8h.html", null ], + [ "fsolve.h", "fsolve_8h.html", null ], + [ "newton_raphson.h", "newton__raphson_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__utilities.html b/doc/doxygen/html/group__utilities.html new file mode 100644 index 0000000000000000000000000000000000000000..0a982fe0af6937c3d9ec72d4614b4c282ca96772 --- /dev/null +++ b/doc/doxygen/html/group__utilities.html @@ -0,0 +1,129 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: UTILITIES</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__utilities.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">UTILITIES<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Utilities for linear algebra. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:combinatorics_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html">combinatorics.h</a></td></tr> +<tr class="memdesc:combinatorics_8h"><td class="mdescLeft"> </td><td class="mdescRight">Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:norm__dist__rnd__generator_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a></td></tr> +<tr class="memdesc:norm__dist__rnd__generator_8h"><td class="mdescLeft"> </td><td class="mdescRight">Generating normally distributed random numbers. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:shell__sort_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8h.html">shell_sort.h</a></td></tr> +<tr class="memdesc:shell__sort_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Shell sort algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:utils_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html">utils.h</a></td></tr> +<tr class="memdesc:utils_8h"><td class="mdescLeft"> </td><td class="mdescRight">Utilities for linear algebra. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Utilities for linear algebra. </p> +<p>Utility-functions are needed by linear algebra-module as well as other modules such as the position algorithm-module.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__utilities.js b/doc/doxygen/html/group__utilities.js new file mode 100644 index 0000000000000000000000000000000000000000..a97ad6df971568f4267192f902dbabb8c6ed0491 --- /dev/null +++ b/doc/doxygen/html/group__utilities.js @@ -0,0 +1,7 @@ +var group__utilities = +[ + [ "combinatorics.h", "combinatorics_8h.html", null ], + [ "norm_dist_rnd_generator.h", "norm__dist__rnd__generator_8h.html", null ], + [ "shell_sort.h", "shell__sort_8h.html", null ], + [ "utils.h", "utils_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/group__utils.html b/doc/doxygen/html/group__utils.html new file mode 100644 index 0000000000000000000000000000000000000000..5e529cf35f90022e6b1abd7db0db596a0b1147b7 --- /dev/null +++ b/doc/doxygen/html/group__utils.html @@ -0,0 +1,129 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: UTILS</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group__utils.html','');}); +/* @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="#files">Files</a> </div> + <div class="headertitle"> +<div class="title">UTILS<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Utilities for linear algebra. +<a href="#details">More...</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:combinatorics_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="combinatorics_8h.html">combinatorics.h</a></td></tr> +<tr class="memdesc:combinatorics_8h"><td class="mdescLeft"> </td><td class="mdescRight">Calculate possible <img class="formulaInl" alt="$ \binom{n}{k} combinations $" src="form_37.png"/> without repetition in ascending order. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:norm__dist__rnd__generator_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a></td></tr> +<tr class="memdesc:norm__dist__rnd__generator_8h"><td class="mdescLeft"> </td><td class="mdescRight">Generating normally distributed random numbers. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:shell__sort_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8h.html">shell_sort.h</a></td></tr> +<tr class="memdesc:shell__sort_8h"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Shell sort algorithm. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:utils_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html">utils.h</a></td></tr> +<tr class="memdesc:utils_8h"><td class="mdescLeft"> </td><td class="mdescRight">Utilities for linear algebra. <br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<p>Utilities for linear algebra. </p> +<p>Utility-functions are needed by linear algebra-module as well as other modules such as the position algorithm-module.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi </dd></dl> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/group__utils.js b/doc/doxygen/html/group__utils.js new file mode 100644 index 0000000000000000000000000000000000000000..29aa53d6a8f7714f346e5f98aaa43813f4c25274 --- /dev/null +++ b/doc/doxygen/html/group__utils.js @@ -0,0 +1,7 @@ +var group__utils = +[ + [ "combinatorics.h", "combinatorics_8h.html", null ], + [ "norm_dist_rnd_generator.h", "norm__dist__rnd__generator_8h.html", null ], + [ "shell_sort.h", "shell__sort_8h.html", null ], + [ "utils.h", "utils_8h.html", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/householder__test_8c.html b/doc/doxygen/html/householder__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..fafbc9683ca418370693c48d5ed73fca38a15447 --- /dev/null +++ b/doc/doxygen/html/householder__test_8c.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: householder_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('householder__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">householder_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the Householder algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdbool.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__householder_8h_source.html">qr_householder.h</a>"</code><br /> +</div> +<p><a href="householder__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:aacc09bb5d8990f8f6f3bc872b9a8d9a0"><td class="memItemLeft" align="right" valign="top"><a id="aacc09bb5d8990f8f6f3bc872b9a8d9a0"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test</a> (void)</td></tr> +<tr class="memdesc:aacc09bb5d8990f8f6f3bc872b9a8d9a0"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Householder algorithm. <br /></td></tr> +<tr class="separator:aacc09bb5d8990f8f6f3bc872b9a8d9a0"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the Householder algorithm. </p> +<p>Householder algorithm examples (see the <a class="el" href="qr__householder_8h.html">Householder</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="householder__test_8c_source.html">householder_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="householder__test_8c.html">householder_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/householder__test_8c.js b/doc/doxygen/html/householder__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..cd145dd978b4cdc3ab289ac924891b4759ba6b83 --- /dev/null +++ b/doc/doxygen/html/householder__test_8c.js @@ -0,0 +1,4 @@ +var householder__test_8c = +[ + [ "householder_test", "householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/householder__test_8c_source.html b/doc/doxygen/html/householder__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..94e5e5ee74a5a8334dafb850ef30ed4a6aa1e1a7 --- /dev/null +++ b/doc/doxygen/html/householder__test_8c_source.html @@ -0,0 +1,178 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: householder_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('householder__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">householder_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="householder__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="qr__householder_8h.html">qr_householder.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0"> 31</a></span> <span class="keywordtype">void</span> <a class="code" href="householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[10][5] = { { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 },</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { 0.0975, 0.1419, 0.7577, 0.8235, 0.4898 },</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { 0.2785, 0.4218, 0.7431, 0.6948, 0.4456 },</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  { 0.5469, 0.9157, 0.3922, 0.3171, 0.6463 },</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  { 0.9575, 0.7922, 0.6555, 0.9502, 0.7094 },</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  { 0.9649, 0.9595, 0.1712, 0.0344, 0.7547 } };</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  uint8_t m = 10, n = 5;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A[m][n];</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q_red[m][n];</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m];</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(m, n, Q_red);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(m, n, copy_A, n, Q_red, <span class="keyword">true</span>);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  printf(<span class="stringliteral">"Q_red = "</span>);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, Q_red, 7, 4);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  printf(<span class="stringliteral">"R_red = "</span>);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, copy_A, 7, 4);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(m, m, Q);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(m, n, copy_A, m, Q, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  printf(<span class="stringliteral">"Q = "</span>);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, m, Q, 7, 4);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  printf(<span class="stringliteral">"R = "</span>);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, copy_A, 7, 4);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[4][4] = {</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  { 6, 0, 0, 6 },</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  { 2, 5, 0, 4 },</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  { 0, 6, 2, 3 },</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  { 0, 1, 5, 5 }</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  };</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  m = 4;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  n = 4;</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q1_red[m][n];</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(m, n, B, m, Q1_red, <span class="keyword">true</span>);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  printf(<span class="stringliteral">"Q1 = "</span>);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, m, Q1_red, 7, 4);</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  printf(<span class="stringliteral">"R1 = "</span>);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, B, 7, 4);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__householder_8h_html_a926e8bce91b658f64837d5c93b0bc74f"><div class="ttname"><a href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a></div><div class="ttdeci">int8_t qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__householder_8c_source.html#l00033">qr_householder.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0e06b2cfb86340e88be7b1219bef0ce3"><div class="ttname"><a href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a></div><div class="ttdeci">void matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00046">matrix.c:46</a></div></div> +<div class="ttc" id="aqr__householder_8h_html"><div class="ttname"><a href="qr__householder_8h.html">qr_householder.h</a></div><div class="ttdoc">Householder algorithm for the QR-decomposition.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="ahouseholder__test_8c_html_aacc09bb5d8990f8f6f3bc872b9a8d9a0"><div class="ttname"><a href="householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test</a></div><div class="ttdeci">void householder_test(void)</div><div class="ttdoc">Examples of the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="householder__test_8c_source.html#l00031">householder_test.c:31</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="householder__test_8c.html">householder_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/householder__test_8h.html b/doc/doxygen/html/householder__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..a1172faadd17b51ab0a98f92dab702cba8e9eae0 --- /dev/null +++ b/doc/doxygen/html/householder__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: householder_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('householder__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">householder_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the Householder algorithm. +<a href="#details">More...</a></p> + +<p><a href="householder__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:aacc09bb5d8990f8f6f3bc872b9a8d9a0"><td class="memItemLeft" align="right" valign="top"><a id="aacc09bb5d8990f8f6f3bc872b9a8d9a0"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test</a> (void)</td></tr> +<tr class="memdesc:aacc09bb5d8990f8f6f3bc872b9a8d9a0"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Householder algorithm. <br /></td></tr> +<tr class="separator:aacc09bb5d8990f8f6f3bc872b9a8d9a0"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the Householder algorithm. </p> +<p>Householder algorithm examples (see the <a class="el" href="qr__householder_8h.html">Householder</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="householder__test_8h_source.html">householder_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="householder__test_8h.html">householder_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/householder__test_8h.js b/doc/doxygen/html/householder__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..13a0c5027f7da34790a07e4d1c2f80aec74ec37d --- /dev/null +++ b/doc/doxygen/html/householder__test_8h.js @@ -0,0 +1,4 @@ +var householder__test_8h = +[ + [ "householder_test", "householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/householder__test_8h_source.html b/doc/doxygen/html/householder__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..45ff9111d4dceb8be38b3c89c3bced57979bf4c4 --- /dev/null +++ b/doc/doxygen/html/householder__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: householder_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('householder__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">householder_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="householder__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef HOUSEHOLDER_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define HOUSEHOLDER_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif </span><span class="comment">/* HOUSEHOLDER_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="ahouseholder__test_8h_html_aacc09bb5d8990f8f6f3bc872b9a8d9a0"><div class="ttname"><a href="householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0">householder_test</a></div><div class="ttdeci">void householder_test(void)</div><div class="ttdoc">Examples of the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="householder__test_8c_source.html#l00031">householder_test.c:31</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="householder__test_8h.html">householder_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/ieee__mobile__computing__lin__alg_8c_source.html b/doc/doxygen/html/ieee__mobile__computing__lin__alg_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..9ed6703f1ef70094c40965415e361f1992ba81c6 --- /dev/null +++ b/doc/doxygen/html/ieee__mobile__computing__lin__alg_8c_source.html @@ -0,0 +1,466 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: F:/temp/publish/RcdMathLib_full_fledged_devices_tmp/RcdMathLib_app/src/RcdMathLib/examples/ieee_mobile_computing_lin_alg.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('ieee__mobile__computing__lin__alg_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">ieee_mobile_computing_lin_alg.c</div> </div> +</div><!--header--> +<div class="contents"> +<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * ieee_mobile_computing.c</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: 26.09.2019</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: zakaria</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="qr__givens_8h.html">qr_givens.h</a>"</span></div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="qr__householder_8h.html">qr_householder.h</a>"</span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="qr__common_8h.html">qr_common.h</a>"</span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="svd_8h.html">svd.h</a>"</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="solve_8h.html">solve.h</a>"</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define SEC 1000000</span></div> +<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define ROW_MAX 10</span></div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define COL_MAX 5</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[10][5] = { { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 },</div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  { 0.0975, 0.1419, 0.7577, 0.8235, 0.4898 },</div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  { 0.2785, 0.4218, 0.7431, 0.6948, 0.4456 },</div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  { 0.5469, 0.9157, 0.3922, 0.3171, 0.6463 },</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  { 0.9575, 0.7922, 0.6555, 0.9502, 0.7094 },</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  { 0.9649, 0.9595, 0.1712, 0.0344, 0.7547 } };</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A[10][5] = { { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 },</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  { 0.0975, 0.1419, 0.7577, 0.8235, 0.4898 },</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  { 0.2785, 0.4218, 0.7431, 0.6948, 0.4456 },</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { 0.5469, 0.9157, 0.3922, 0.3171, 0.6463 },</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { 0.9575, 0.7922, 0.6555, 0.9502, 0.7094 },</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  { 0.9649, 0.9595, 0.1712, 0.0344, 0.7547 } };</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[5][10] = { { 0.2760, 0.4984, 0.7513, 0.9593, 0.8407, 0.3500, 0.3517, 0.2858, 0.0759, 0.1299 },</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  { 0.6797, 0.9597, 0.2551, 0.5472, 0.2543, 0.1966, 0.8308, 0.7572, 0.0540, 0.5688 },</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  { 0.6551, 0.3404, 0.5060, 0.1386, 0.8143, 0.2511, 0.5853, 0.7537, 0.5308, 0.4694 },</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  { 0.1626, 0.5853, 0.6991, 0.1493, 0.2435, 0.6160, 0.5497, 0.3804, 0.7792, 0.0119 },</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  { 0.1190, 0.2238, 0.8909, 0.2575, 0.9293, 0.4733, 0.9172, 0.5678, 0.9340, 0.3371 } };</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[10] = { 1.2902, 0.8819, 0.9721, 1.2347, 0.9185, 0.9844, 1.0627, 1.0280, 1.7283, 1.0618 };</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_matrix_mul(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  puts(<span class="stringliteral">"########### Measures of the times of matrices multiplications ###########"</span>);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> C[10][10];</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < ROW_MAX; i++) {</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// Start timer</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a>(COL_MAX, A, ROW_MAX, B, 0, i, 0, COL_MAX - 1, 0, COL_MAX - 1, 0, ROW_MAX - 1, ROW_MAX, C);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// Stop timer</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  printf(<span class="stringliteral">"C_%u = "</span>, i + 1);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a>(ROW_MAX, ROW_MAX, C, 0, i, 0, ROW_MAX - 1, 1, 4);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  puts(<span class="stringliteral">" "</span>);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keywordtype">void</span> ieee_solve_lin_equ_sys(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> {</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  puts(<span class="stringliteral">"Square sub-matrices:"</span>);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">for</span> (uint8_t i = 1; i < COL_MAX; i++) {</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sub_A[i + 1][i + 1];</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  i + 1, sub_A);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  printf(<span class="stringliteral">"(%u,%u) matrix: "</span>, i + 1, i + 1);</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(i + 1, i + 1, sub_A, 3, 4);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">enum</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>;</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  puts(<span class="stringliteral">"Moore Penrose: "</span>);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x[i + 1];</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(i+1, x);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  int8_t error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(i + 1, i + 1, sub_A, b, x, algo);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(i + 1, x, 3, 4);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  i + 1, sub_A);</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> A_mul_x[i+1];</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(i+1, i+1, sub_A, x, A_mul_x);</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> resid = <a class="code" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a>(i+1, A_mul_x, b);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  printf(<span class="stringliteral">"residual = %e\n"</span>, resid);</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(i+1, x);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>;</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  puts(<span class="stringliteral">"Givens: "</span>);</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// matrix_part_copy(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</span></div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// i + 1, sub_A);</span></div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(i + 1, i + 1, sub_A, b, x, algo);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(i + 1, x, 3, 4);</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  i + 1, sub_A);</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(i+1, i+1, sub_A, x, A_mul_x);</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  resid = <a class="code" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a>(i+1, A_mul_x, b);</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  printf(<span class="stringliteral">"residual = %e\n"</span>, resid);</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(i+1, x);</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>;</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  puts(<span class="stringliteral">"Householder: "</span>);</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// matrix_part_copy(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</span></div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// i + 1, sub_A);</span></div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(i + 1, i + 1, sub_A, b, x, algo);</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(i + 1, x, 3, 4);</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  i + 1, sub_A);</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(i+1, i+1, sub_A, x, A_mul_x);</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  resid = <a class="code" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a>(i+1, A_mul_x, b);</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  printf(<span class="stringliteral">"residual = %e\n"</span>, resid);</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(i+1, x);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a>;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  puts(<span class="stringliteral">"Gauss"</span>);</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// matrix_part_copy(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</span></div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// i + 1, sub_A);</span></div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(i + 1, i + 1, sub_A, b, x, algo);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(i + 1, x, 3, 4);</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, i, i + 1,</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  i + 1, sub_A);</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(i+1, i+1, sub_A, x, A_mul_x);</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  resid = <a class="code" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a>(i+1, A_mul_x, b);</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  printf(<span class="stringliteral">"residual = %e\n"</span>, resid);</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  } <span class="comment">//for</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  puts(<span class="stringliteral">"Rectangular sub-matrices:"</span>);</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">for</span> (uint8_t i = COL_MAX; i < ROW_MAX; i++) {</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sub_A[i + 1][COL_MAX];</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, COL_MAX - 1,</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  i + 1, COL_MAX, sub_A);</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  printf(<span class="stringliteral">"(%u,%u) matrix: "</span>, i + 1, COL_MAX);</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(i + 1, COL_MAX, sub_A, 3, 4);</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keyword">enum</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>;</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  puts(<span class="stringliteral">"Moore Penrose: "</span>);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x[COL_MAX];</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(COL_MAX, x);</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  int8_t error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(i + 1, COL_MAX, sub_A, b, x, algo);</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(COL_MAX, x, 3, 4);</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(COL_MAX, x);</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>;</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  puts(<span class="stringliteral">"Givens: "</span>);</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, COL_MAX - 1,</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  i + 1, COL_MAX, sub_A);</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(i + 1, COL_MAX, sub_A, b, x, algo);</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(COL_MAX, x, 3, 4);</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(COL_MAX, x);</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>;</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  puts(<span class="stringliteral">"Householder: "</span>);</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, copy_A, 0, i, 0, COL_MAX - 1,</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  i + 1, COL_MAX, sub_A);</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(i + 1, COL_MAX, sub_A, b, x, algo);</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(COL_MAX, x, 3, 4);</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }<span class="comment">//for</span></div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> }</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_qr_givens(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> {</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">for</span> (uint8_t i = 4; i < ROW_MAX; i++) {</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[i + 1][i + 1];</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_Q[i + 1][COL_MAX];</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_R[COL_MAX][COL_MAX];</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, A, 0, i, 0, COL_MAX, ROW_MAX,</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  COL_MAX, copy_A);</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// printf("copy_A = ");</span></div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// matrix_flex_part_print(ROW_MAX, COL_MAX, copy_A, 0, i, 0, COL_MAX-1, 1, 4);</span></div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="comment">// puts("");</span></div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(i + 1, COL_MAX, copy_A, COL_MAX, Q, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  printf(<span class="stringliteral">"Decomposition of A_%d_5\n"</span>, i + 1);</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common_get_reduced_QR</a>(i + 1, COL_MAX, Q, copy_A, red_Q,</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  red_R);</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  printf(<span class="stringliteral">"Q = "</span>);</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(i + 1, COL_MAX, red_Q, 1, 4);</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  printf(<span class="stringliteral">"R = "</span>);</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a>(i, COL_MAX, red_R, 0, COL_MAX - 1, 0,</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  COL_MAX - 1, 1, 4);</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(ROW_MAX, COL_MAX, A, copy_A);</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> }</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_qr_householder(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> {</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">for</span> (uint8_t i = 4; i < ROW_MAX; i++) {</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[i + 1][i + 1];</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_Q[i + 1][COL_MAX];</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_R[COL_MAX][COL_MAX];</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, A, 0, i, 0, COL_MAX, ROW_MAX,</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  COL_MAX, copy_A);</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="comment">// printf("copy_A = ");</span></div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="comment">// matrix_flex_part_print(ROW_MAX, COL_MAX, copy_A, 0, i, 0, COL_MAX-1, 1, 4);</span></div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// puts("");</span></div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// Start Timer !!!</span></div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(i + 1, COL_MAX, copy_A, COL_MAX, Q, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="comment">// Stop Timer !!!</span></div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  printf(<span class="stringliteral">"Decomposition of A_%d_5\n"</span>, i + 1);</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common_get_reduced_QR</a>(i + 1, COL_MAX, Q, copy_A, red_Q,</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  red_R);</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  printf(<span class="stringliteral">"Q = "</span>);</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(i + 1, COL_MAX, red_Q, 1, 4);</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  printf(<span class="stringliteral">"R = "</span>);</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a>(i, COL_MAX, red_R, 0, COL_MAX - 1, 0,</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  COL_MAX - 1, 1, 4);</div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(ROW_MAX, COL_MAX, A, copy_A);</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> }</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  </div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_SVD(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> {</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="comment">//uint8_t m = ROW_MAX;</span></div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  uint8_t n = COL_MAX;</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> dim;</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="comment">// svd_get_U_dim(m, n, &dim);</span></div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="comment">// matrix_t U2[dim.row_num][dim.col_num];</span></div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="comment">// matrix_t S2[n][n];</span></div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="comment">// matrix_t V2[n][n];</span></div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="comment">// uint8_t s2_length = svd_get_single_values_num(m, n);</span></div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="comment">// matrix_t s2[s2_length];</span></div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">// svd(m, n, A, dim.row_num, dim.col_num, U2, S2, V2, s2_length, s2);</span></div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">// printf("U2 = ");</span></div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="comment">// matrix_print(dim.row_num, dim.col_num, U2);</span></div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="comment">// puts("");</span></div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// printf("S2 = ");</span></div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">// matrix_print(n, n, S2);</span></div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="comment">// puts("");</span></div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">// printf("V2 = ");</span></div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="comment">// matrix_print(n, n, V2);</span></div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="comment">// puts("");</span></div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">for</span> (uint8_t i = 4; i < ROW_MAX; i++) {</div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(i + 1, COL_MAX, &dim);</div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>][dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>];</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[COL_MAX][COL_MAX];</div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[COL_MAX][COL_MAX];</div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  uint8_t s_length = <a class="code" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(i, COL_MAX);</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[s_length];</div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(ROW_MAX, COL_MAX, A, 0, i, 0, COL_MAX, ROW_MAX,</div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  COL_MAX, copy_A);</div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="comment">// printf("copy_A = ");</span></div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="comment">// matrix_flex_part_print(ROW_MAX, COL_MAX, copy_A, 0, i, 0,</span></div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// COL_MAX - 1, 1, 4);</span></div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// puts("");</span></div> +<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a>(i + 1, COL_MAX, copy_A, dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U, S, V,</div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  s_length,</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  s);</div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  printf(<span class="stringliteral">"U = "</span>);</div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U);</div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  printf(<span class="stringliteral">"S2 = "</span>);</div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(n, n, S);</div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  printf(<span class="stringliteral">"V2 = "</span>);</div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(n, n, V);</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  </div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> }</div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  </div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a></div><div class="ttdoc">Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00033">pseudo_inverse.h:33</a></div></div> +<div class="ttc" id="aqr__householder_8h_html_a926e8bce91b658f64837d5c93b0bc74f"><div class="ttname"><a href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a></div><div class="ttdeci">int8_t qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__householder_8c_source.html#l00033">qr_householder.c:33</a></div></div> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="avector_8h_html_a1fcbe913017a3b6802d5f66c8ef699ac"><div class="ttname"><a href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a></div><div class="ttdeci">vector_t vector_get_residual(uint8_t length, vector_t a_vec[], vector_t b_vec[])</div><div class="ttdoc">Compute the residual of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00227">vector.c:227</a></div></div> +<div class="ttc" id="aqr__householder_8h_html"><div class="ttname"><a href="qr__householder_8h.html">qr_householder.h</a></div><div class="ttdoc">Householder algorithm for the QR-decomposition.</div></div> +<div class="ttc" id="astructmatrix__dim__t_html_a853244a0562d43bfdcdcb704ed707721"><div class="ttname"><a href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t::row_num</a></div><div class="ttdeci">uint8_t row_num</div><div class="ttdoc">the row number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00061">matrix.h:61</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a></div><div class="ttdoc">Moore–Penrose algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00031">pseudo_inverse.h:31</a></div></div> +<div class="ttc" id="aqr__common_8h_html_a3144f99da14a69ec80bf9ded23714612"><div class="ttname"><a href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common_get_reduced_QR</a></div><div class="ttdeci">void qr_common_get_reduced_QR(uint8_t m, uint8_t n, matrix_t Q[m][m], matrix_t R[m][n], matrix_t red_Q[m][n], matrix_t red_R[n][n])</div><div class="ttdoc">Compute the reduced form of the QR-decomposition algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8c_source.html#l00059">qr_common.c:59</a></div></div> +<div class="ttc" id="asvd_8h_html_acdccfce5b7732e6334ca5a521c57e63e"><div class="ttname"><a href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a></div><div class="ttdeci">void svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[])</div><div class="ttdoc">Compute the Singular-Value Decomposition (SVD) of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00119">svd.c:119</a></div></div> +<div class="ttc" id="amatrix_8h_html_a3763252ca00e4c8522ae1bfd5ef40f0a"><div class="ttname"><a href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a></div><div class="ttdeci">void matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size])</div><div class="ttdoc">Compute the partial multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00391">matrix.c:391</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="asolve_8h_html"><div class="ttname"><a href="solve_8h.html">solve.h</a></div><div class="ttdoc">Enables to solve systems of linear equations Ax = b for x.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a></div><div class="ttdoc">Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00032">pseudo_inverse.h:32</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html"><div class="ttname"><a href="structmatrix__dim__t.html">matrix_dim_t</a></div><div class="ttdoc">A structure to define the row and column number of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00060">matrix.h:60</a></div></div> +<div class="ttc" id="amatrix_8h_html_a72297a60e572f85929989e813388a9c5"><div class="ttname"><a href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a></div><div class="ttdeci">void matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the sub-matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00247">matrix.c:247</a></div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a></div><div class="ttdeci">ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00030">pseudo_inverse.h:30</a></div></div> +<div class="ttc" id="asolve_8h_html_a829e66492dc3073c0f7a190cda9b7db1"><div class="ttname"><a href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a></div><div class="ttdeci">int8_t solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo)</div><div class="ttdoc">Solve an (m n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm...</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00035">solve.c:35</a></div></div> +<div class="ttc" id="aqr__common_8h_html"><div class="ttname"><a href="qr__common_8h.html">qr_common.h</a></div><div class="ttdoc">Common definitions and implementations for the QR-decomposition. Provide necessary methods to constru...</div></div> +<div class="ttc" id="asvd_8h_html"><div class="ttname"><a href="svd_8h.html">svd.h</a></div><div class="ttdoc">Algorithm for the Singular Value Decomposition (SVD).</div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a></div><div class="ttdoc">Gaussian elimination with pivoting algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00034">pseudo_inverse.h:34</a></div></div> +<div class="ttc" id="asvd_8h_html_a91b85e542b1fc44d3500ba52aecb8e0e"><div class="ttname"><a href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a></div><div class="ttdeci">uint8_t svd_get_single_values_num(uint8_t m, uint8_t n)</div><div class="ttdoc">Calculate the number of the singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00114">svd.c:114</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="aqr__givens_8h_html_a07adca97c58afc057a5cff738f6473cc"><div class="ttname"><a href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a></div><div class="ttdeci">int8_t qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00033">qr_givens.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a32ab12965ec43c2acf65cf9dd510353a"><div class="ttname"><a href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a></div><div class="ttdeci">void matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00141">matrix.c:141</a></div></div> +<div class="ttc" id="amatrix_8h_html_a56513a88eff05b0683320c532fadf945"><div class="ttname"><a href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a></div><div class="ttdeci">void matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num])</div><div class="ttdoc">Copy a part of a matrix to another matrix or sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00089">matrix.c:89</a></div></div> +<div class="ttc" id="aqr__givens_8h_html"><div class="ttname"><a href="qr__givens_8h.html">qr_givens.h</a></div><div class="ttdoc">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices ...</div></div> +<div class="ttc" id="asvd_8h_html_a8194826f85cc3105c4d8d4f342ca8df8"><div class="ttname"><a href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a></div><div class="ttdeci">void svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim)</div><div class="ttdoc">Calculate the dimension of the matrix U.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00096">svd.c:96</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_aac6b6ff205184047714d5c22019bdbab"><div class="ttname"><a href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t::col_num</a></div><div class="ttdeci">uint8_t col_num</div><div class="ttdoc">the column number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00062">matrix.h:62</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><b>ieee_mobile_computing_lin_alg.c</b></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/ieee__mobile__computing__lin__alg_8h_source.html b/doc/doxygen/html/ieee__mobile__computing__lin__alg_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..1c4bff46797dabc9565eb86ccb9765fa2a6805e4 --- /dev/null +++ b/doc/doxygen/html/ieee__mobile__computing__lin__alg_8h_source.html @@ -0,0 +1,122 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: F:/temp/publish/RcdMathLib_full_fledged_devices_tmp/RcdMathLib_app/src/RcdMathLib/examples/ieee_mobile_computing_lin_alg.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('ieee__mobile__computing__lin__alg_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">ieee_mobile_computing_lin_alg.h</div> </div> +</div><!--header--> +<div class="contents"> +<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * ieee_mobile_computing.h</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: 26.09.2019</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: zakaria</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef IEEE_MOBILE_COMPUTING_LIN_ALG_H_</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define IEEE_MOBILE_COMPUTING_LIN_ALG_H_</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_matrix_mul(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_qr_givens(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_qr_householder(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">void</span> ieee_mobile_comp_test_SVD(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">void</span> ieee_solve_lin_equ_sys(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#endif </span><span class="comment">/* IEEE_MOBILE_COMPUTING_LIN_ALG_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><b>ieee_mobile_computing_lin_alg.h</b></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c.html b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..c59c5bbbf47f9af96750008849a990aafe20f7e3 --- /dev/null +++ b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c.html @@ -0,0 +1,329 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: F:/temp/publish/RcdMathLib_full_fledged_devices_tmp/RcdMathLib_app/src/RcdMathLib/examples/ieee_mobile_computing_non_lin_alg.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('ieee__mobile__computing__non__lin__alg_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">ieee_mobile_computing_non_lin_alg.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of optimization algorithms. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="modified__gauss__newton_8h_source.html">modified_gauss_newton.h</a>"</code><br /> +<code>#include "<a class="el" href="levenberg__marquardt_8h_source.html">levenberg_marquardt.h</a>"</code><br /> +</div> +<p><a href="ieee__mobile__computing__non__lin__alg_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a1903dbf211715600f9830349fb69aaf7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</td></tr> +<tr class="memdesc:a1903dbf211715600f9830349fb69aaf7"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the error vector using exponential data. <a href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">More...</a><br /></td></tr> +<tr class="separator:a1903dbf211715600f9830349fb69aaf7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acd3427ef350de38a6e8a2446d7c9ff48"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][2])</td></tr> +<tr class="memdesc:acd3427ef350de38a6e8a2446d7c9ff48"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the Jacobian matrix using exponential data. <a href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">More...</a><br /></td></tr> +<tr class="separator:acd3427ef350de38a6e8a2446d7c9ff48"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac9fa8d6b7e20b065ebecd1339bc0f66b"><td class="memItemLeft" align="right" valign="top"><a id="ac9fa8d6b7e20b065ebecd1339bc0f66b"></a> +void </td><td class="memItemRight" valign="bottom"><b>ieee_mobile_comp_exponential_data_test</b> (void)</td></tr> +<tr class="separator:ac9fa8d6b7e20b065ebecd1339bc0f66b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a65a525d446eb62da17cd1b6b7242f3bd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</td></tr> +<tr class="memdesc:a65a525d446eb62da17cd1b6b7242f3bd"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the error vector using sinusoidal data. <a href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">More...</a><br /></td></tr> +<tr class="separator:a65a525d446eb62da17cd1b6b7242f3bd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad46e7112151698bf6ec5d1df6c1b3785"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][4])</td></tr> +<tr class="memdesc:ad46e7112151698bf6ec5d1df6c1b3785"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the Jacobian matrix using sinusoidal data. <a href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">More...</a><br /></td></tr> +<tr class="separator:ad46e7112151698bf6ec5d1df6c1b3785"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a441918d542f57adcbf82b36643218e99"><td class="memItemLeft" align="right" valign="top"><a id="a441918d542f57adcbf82b36643218e99"></a> +void </td><td class="memItemRight" valign="bottom"><b>ieee_mobile_comp_sinusoidal_data_test</b> (void)</td></tr> +<tr class="separator:a441918d542f57adcbf82b36643218e99"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of optimization algorithms. </p> +<p>Optimization algorithms examples (see the <a class="el" href="modified__gauss__newton_8h.html">modified GN</a> and LVM optimization methods).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html">ieee_mobile_computing_non_lin_alg.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a1903dbf211715600f9830349fb69aaf7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1903dbf211715600f9830349fb69aaf7">◆ </a></span>ieee_mobile_comp_get_exp_f()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void ieee_mobile_comp_get_exp_f </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the error vector using exponential data. </p> +<p>The error function is: <img class="formulaInl" alt="$ \vec{f}(x_1, x_2) = \begin{bmatrix} x_1 \mathrm{e}^{x_2} - y_1, ~\hdots, x_1\mathrm{e}^{8x_2}-y_8 \end{bmatrix}^{T}, $" src="form_0.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">f_vec[]</td><td>calculated error vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00046">46</a> of file <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html">ieee_mobile_computing_non_lin_alg.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="acd3427ef350de38a6e8a2446d7c9ff48"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acd3427ef350de38a6e8a2446d7c9ff48">◆ </a></span>ieee_mobile_comp_get_exp_Jacobian()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void ieee_mobile_comp_get_exp_Jacobian </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[][2] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the Jacobian matrix using exponential data. </p> +<p>The Jacobian matrix is: <img class="formulaInl" alt="$ {J_f} = \begin{bmatrix} \frac{\partial f_1}{\partial x1} & \frac{\partial f_1}{\partial x_2} \\ \frac{\partial f_2}{\partial x1} & \frac{\partial f_2}{\partial x_2} \\ \vdots & \vdots & \\ \frac{\partial f_n}{\partial x1} & \frac{\partial f_n}{\partial x_2} \\ \end{bmatrix} = \begin{bmatrix} \mathrm{e}^{x_2} & \mathrm{e}^{x_2} x_1\\ \mathrm{e}^{2 x_2} & 2\mathrm{e}^{2x_2} x_1 \\ \vdots & \vdots & \\ \mathrm{e}^{8 x_2} & 8\mathrm{e}^{8x_2} x_1 \\ \end{bmatrix}. $" src="form_1.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">J[]</td><td>Jacobian matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00082">82</a> of file <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html">ieee_mobile_computing_non_lin_alg.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="a65a525d446eb62da17cd1b6b7242f3bd"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a65a525d446eb62da17cd1b6b7242f3bd">◆ </a></span>ieee_mobile_comp_get_sin_f()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void ieee_mobile_comp_get_sin_f </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the error vector using sinusoidal data. </p> +<p>The error function is: <img class="formulaInl" alt="$ \vec{f}(x_1, x_2, x_3, x_4)= \begin{bmatrix} x_1 \sin\left( x_2 +x_3\right) +x_4 - y_1 \\ \vdots \\ x_1 \sin\left( 12 x_2 +x_3\right) +x_4 - y_{12} \end{bmatrix}. $" src="form_2.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">f_vec[]</td><td>calculated error vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00164">164</a> of file <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html">ieee_mobile_computing_non_lin_alg.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="ad46e7112151698bf6ec5d1df6c1b3785"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad46e7112151698bf6ec5d1df6c1b3785">◆ </a></span>ieee_mobile_comp_get_sin_Jacobian()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void ieee_mobile_comp_get_sin_Jacobian </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[][4] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the Jacobian matrix using sinusoidal data. </p> +<p>The Jacobian matrix is <img class="formulaInl" alt="$ J_f = \left[\begin{matrix} \sin\left( x_2 +x_3\right) & x_1 \cos\left( x_2 +x_3\right) & x_1\cos\left( x_2 +x_3\right) \\ \sin\left( 2 x_2 +x_3\right) & 2 x_1 \cos\left( 2 x_2 +x_3\right) & x_1 \cos\left( 2 x_2 +x_3\right)\\ \vdots & \vdots \\ \sin\left( 12 x_2 +x_3\right) & 12 x_1 \cos\left( 12 x_2 +x_3\right) & x_1 \cos\left( 12 x_2 +x_3\right) \end{matrix}\right]. $" src="form_3.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">J[]</td><td>Jacobian matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00199">199</a> of file <a class="el" href="ieee__mobile__computing__non__lin__alg_8c_source.html">ieee_mobile_computing_non_lin_alg.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="ieee__mobile__computing__non__lin__alg_8c.html">ieee_mobile_computing_non_lin_alg.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c.js b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..6ad0d33ff35a32e49dc4464daaf011dfa3b2db98 --- /dev/null +++ b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c.js @@ -0,0 +1,9 @@ +var ieee__mobile__computing__non__lin__alg_8c = +[ + [ "ieee_mobile_comp_exponential_data_test", "ieee__mobile__computing__non__lin__alg_8c.html#ac9fa8d6b7e20b065ebecd1339bc0f66b", null ], + [ "ieee_mobile_comp_get_exp_f", "ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7", null ], + [ "ieee_mobile_comp_get_exp_Jacobian", "ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48", null ], + [ "ieee_mobile_comp_get_sin_f", "ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd", null ], + [ "ieee_mobile_comp_get_sin_Jacobian", "ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785", null ], + [ "ieee_mobile_comp_sinusoidal_data_test", "ieee__mobile__computing__non__lin__alg_8c.html#a441918d542f57adcbf82b36643218e99", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c_source.html b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..48dba44d7ddc012471fd1c40cf847a1bb59786f5 --- /dev/null +++ b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8c_source.html @@ -0,0 +1,289 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: F:/temp/publish/RcdMathLib_full_fledged_devices_tmp/RcdMathLib_app/src/RcdMathLib/examples/ieee_mobile_computing_non_lin_alg.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('ieee__mobile__computing__non__lin__alg_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">ieee_mobile_computing_non_lin_alg.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="ieee__mobile__computing__non__lin__alg_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2019 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7"> 46</a></span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2;</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  uint8_t i;</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">for</span> (i = 1; i < 9; i++) {</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  f_vec[i - 1] = x1 * exp(i * x2) - data_vec[i - 1];</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> }</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48"> 82</a></span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][2])</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> {</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  uint8_t i;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">for</span> (i = 1; i < 9; i++) {</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  J[i - 1][0] = exp(i * x2);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  J[i - 1][1] = i * x1 * exp(i * x2);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * SOLVING NONLINEAR LEAST-SQUARES PROBLEMS</span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> * WITH THE GAUSS-NEWTON AND LEVENBERG-MARQUARDT METHODS</span></div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> * ALFONSO CROEZE, LINDSEY PITTMAN, AND WINNIE REYNOLDS</span></div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">void</span> ieee_mobile_comp_exponential_data_test(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> d_vec[] = { 8.3, 11.0, 14.7, 19.7, 26.7, 35.2, 44.4, 55.9 };</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_x_vec[] = { 6, .3 };</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[8];</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[8][2];</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// Parameters of GNM & LVM</span></div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0 = 0.2;</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1 = 0.8;</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = 1e-3;</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau = 1e-6;</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_min = 1e-11;</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  uint8_t max_it_num = 3;</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  uint8_t iter_num = 0;</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_x_vec[2];</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a>(start_x_vec, d_vec, f_vec);</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a>(start_x_vec, J);</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  puts(<span class="stringliteral">"############### Test Gauss-Newton & LVM algorithms ###############"</span>);</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  puts(<span class="stringliteral">"\nExponential Data:"</span>);</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// Start timer</span></div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  iter_num = <a class="code" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>(8, 2, start_x_vec, d_vec, eps, f_min,</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  max_it_num, est_x_vec, &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a>,</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a>);</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// Stop timer</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  printf(<span class="stringliteral">"start value = {%.6f, %.6f}\n"</span>, start_x_vec[0], start_x_vec[1]);</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  printf(<span class="stringliteral">"Gauss-Newton = {%.6f, %.6f}\n"</span>, est_x_vec[0], est_x_vec[1]);</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  iter_num = 0;</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(2, est_x_vec);</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">// Start timer</span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  iter_num = <a class="code" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a>(8, 2, start_x_vec, d_vec, eps, tau,</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  beta0, beta1, max_it_num, est_x_vec,</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a>,</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a>);</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// Stop timer</span></div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  printf(<span class="stringliteral">"Levenberg-Marquardt = {%.6f, %.6f}\n"</span>, est_x_vec[0], est_x_vec[1]);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> }</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div> +<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd"> 164</a></span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> {</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2, x3, x4;</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  uint8_t i;</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  x3 = x_vec[2];</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  x4 = x_vec[3];</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">for</span> (i = 1; i < 13; i++) {</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  f_vec[i - 1] = x1 * sin(x2 * i + x3) + x4 - data_vec[i - 1];</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div> +<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785"> 199</a></span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][4])</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> {</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2, x3;</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  uint8_t i;</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  </div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  x3 = x_vec[2];</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">for</span> (i = 1; i < 13; i++) {</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  J[i - 1][0] = sin(i * x2 + x3);</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  J[i - 1][1] = i * x1 * cos(i * x2 + x3);</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  J[i - 1][2] = x1 * cos(i * x2 + x3);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  J[i - 1][3] = 1;</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> }</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordtype">void</span> ieee_mobile_comp_sinusoidal_data_test(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> {</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> d_vec[] = { 61, 65, 72, 78, 85, 90, 92, 92, 88, 81, 72, 63 };</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_x_vec[] = { 17, 0.5, 10.5, 77 };</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[12];</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[12][4];</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// Parameters of GNM & LVM</span></div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0 = 0.2;</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1 = 0.8;</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = 1e-3;</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau = 1e-6;</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_min = 1e-11;</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  uint8_t max_it_num = 2;</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  uint8_t iter_num = 0;</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_x_vec[4];</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a>(start_x_vec, d_vec, f_vec);</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a>(start_x_vec, J);</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment">// puts("############### Test Gauss-Newton & LVM algorithms ###############");</span></div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  puts(<span class="stringliteral">"\nSinusoidal Data:"</span>);</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// Start timer</span></div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  iter_num = <a class="code" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>(12, 4, start_x_vec, d_vec, eps, f_min,</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  max_it_num, est_x_vec, &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a>,</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a>);</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">// Stop timer</span></div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  printf(<span class="stringliteral">"start value = {%.6f, %.6f, %.6f, %.6f}\n"</span>, start_x_vec[0],</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  start_x_vec[1], start_x_vec[2], start_x_vec[3]);</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  printf(<span class="stringliteral">"Gauss-Newton = {%.6f, %.6f, %.6f, %.6f}\n"</span>, est_x_vec[0],</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  est_x_vec[1], est_x_vec[2], est_x_vec[3]);</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  iter_num = 0;</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(4, est_x_vec);</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="comment">// Start timer</span></div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> iter_num = <a class="code" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a>(12, 4, start_x_vec, d_vec, eps, tau,</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  beta0, beta1, max_it_num, est_x_vec, &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a>,</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  &<a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a>);</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  </div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// Stop timer</span></div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  printf(<span class="stringliteral">"Levenberg-Marquardt = {%.6f, %.6f, %.6f, %.6f}\n"</span>, est_x_vec[0],</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  est_x_vec[1], est_x_vec[2], est_x_vec[3]);</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amodified__gauss__newton_8h_html_a7376799043ad2c27fac02371624051bc"><div class="ttname"><a href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a></div><div class="ttdeci">uint8_t modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the modified Gauss–Newton algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton.c:32</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_acd3427ef350de38a6e8a2446d7c9ff48"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a></div><div class="ttdeci">void ieee_mobile_comp_get_exp_Jacobian(vector_t x_vec[], matrix_t J[][2])</div><div class="ttdoc">Calculate the Jacobian matrix using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00082">ieee_mobile_computing_non_lin_alg.c:82</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_ad46e7112151698bf6ec5d1df6c1b3785"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a></div><div class="ttdeci">void ieee_mobile_comp_get_sin_Jacobian(vector_t x_vec[], matrix_t J[][4])</div><div class="ttdoc">Calculate the Jacobian matrix using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00199">ieee_mobile_computing_non_lin_alg.c:199</a></div></div> +<div class="ttc" id="alevenberg__marquardt_8h_html"><div class="ttname"><a href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a></div><div class="ttdoc">Implement the Levenberg–Marquardt (LVM) algorithm.</div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="alevenberg__marquardt_8h_html_a2a72b2b6be15a9998b61a9c0097e3d5f"><div class="ttname"><a href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a></div><div class="ttdeci">uint8_t opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="levenberg__marquardt_8c_source.html#l00143">levenberg_marquardt.c:143</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_a1903dbf211715600f9830349fb69aaf7"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a></div><div class="ttdeci">void ieee_mobile_comp_get_exp_f(vector_t x_vec[], vector_t data_vec[], vector_t f_vec[])</div><div class="ttdoc">Calculate the error vector using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00046">ieee_mobile_computing_non_lin_alg.c:46</a></div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_a65a525d446eb62da17cd1b6b7242f3bd"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a></div><div class="ttdeci">void ieee_mobile_comp_get_sin_f(vector_t x_vec[], vector_t data_vec[], vector_t f_vec[])</div><div class="ttdoc">Calculate the error vector using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00164">ieee_mobile_computing_non_lin_alg.c:164</a></div></div> +<div class="ttc" id="amodified__gauss__newton_8h_html"><div class="ttname"><a href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a></div><div class="ttdoc">Implement the Gauss–Newton algorithm.</div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="ieee__mobile__computing__non__lin__alg_8c.html">ieee_mobile_computing_non_lin_alg.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8h_source.html b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c90bdcb283b11c383fb7bbfcf16472827e674305 --- /dev/null +++ b/doc/doxygen/html/ieee__mobile__computing__non__lin__alg_8h_source.html @@ -0,0 +1,134 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: F:/temp/publish/RcdMathLib_full_fledged_devices_tmp/RcdMathLib_app/src/RcdMathLib/examples/ieee_mobile_computing_non_lin_alg.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('ieee__mobile__computing__non__lin__alg_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">ieee_mobile_computing_non_lin_alg.h</div> </div> +</div><!--header--> +<div class="contents"> +<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * ieee_mobile_computing_non_lin_alg.h</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: 15.01.2020</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: zakaria</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef IEEE_MOBILE_COMPUTING_NON_LIN_ALG_H_</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define IEEE_MOBILE_COMPUTING_NON_LIN_ALG_H_</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  </div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]);</div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][2]);</div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">void</span> ieee_mobile_comp_exponential_data_test(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]);</div> +<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">void</span> <a class="code" href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][4]);</div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">void</span> ieee_mobile_comp_sinusoidal_data_test(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif </span><span class="comment">/* IEEE_MOBILE_COMPUTING_NON_LIN_ALG_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_acd3427ef350de38a6e8a2446d7c9ff48"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#acd3427ef350de38a6e8a2446d7c9ff48">ieee_mobile_comp_get_exp_Jacobian</a></div><div class="ttdeci">void ieee_mobile_comp_get_exp_Jacobian(vector_t x_vec[], matrix_t J[][2])</div><div class="ttdoc">Calculate the Jacobian matrix using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00082">ieee_mobile_computing_non_lin_alg.c:82</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_ad46e7112151698bf6ec5d1df6c1b3785"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#ad46e7112151698bf6ec5d1df6c1b3785">ieee_mobile_comp_get_sin_Jacobian</a></div><div class="ttdeci">void ieee_mobile_comp_get_sin_Jacobian(vector_t x_vec[], matrix_t J[][4])</div><div class="ttdoc">Calculate the Jacobian matrix using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00199">ieee_mobile_computing_non_lin_alg.c:199</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_a1903dbf211715600f9830349fb69aaf7"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#a1903dbf211715600f9830349fb69aaf7">ieee_mobile_comp_get_exp_f</a></div><div class="ttdeci">void ieee_mobile_comp_get_exp_f(vector_t x_vec[], vector_t data_vec[], vector_t f_vec[])</div><div class="ttdoc">Calculate the error vector using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00046">ieee_mobile_computing_non_lin_alg.c:46</a></div></div> +<div class="ttc" id="aieee__mobile__computing__non__lin__alg_8c_html_a65a525d446eb62da17cd1b6b7242f3bd"><div class="ttname"><a href="ieee__mobile__computing__non__lin__alg_8c.html#a65a525d446eb62da17cd1b6b7242f3bd">ieee_mobile_comp_get_sin_f</a></div><div class="ttdeci">void ieee_mobile_comp_get_sin_f(vector_t x_vec[], vector_t data_vec[], vector_t f_vec[])</div><div class="ttdoc">Calculate the error vector using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="ieee__mobile__computing__non__lin__alg_8c_source.html#l00164">ieee_mobile_computing_non_lin_alg.c:164</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><b>ieee_mobile_computing_non_lin_alg.h</b></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/index.html b/doc/doxygen/html/index.html new file mode 100644 index 0000000000000000000000000000000000000000..5e9bff818db9c7363bd046d6afa7758a674245b2 --- /dev/null +++ b/doc/doxygen/html/index.html @@ -0,0 +1,193 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: RcdMathLib Documentation</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('index.html','');}); +/* @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="PageDoc"><div class="header"> + <div class="headertitle"> +<div class="title">RcdMathLib Documentation </div> </div> +</div><!--header--> +<div class="contents"> +<div class="toc"><h3>Table of Contents</h3> +<ul><li class="level1"><a href="#RcdMathLib-in-a-nutshell">RcdMathLib in a nutshell</a></li> +<li class="level1"><a href="#download-use-RcdMathLib">Download and use RcdMathLib</a></li> +<li class="level1"><a href="#the-quickest-start">The quickest start</a></li> +<li class="level1"><a href="#structure">Structure</a><ul><li class="level2"><a href="#autotoc_md1">Linear Algebra</a></li> +<li class="level2"><a href="#autotoc_md2">Non-Linear Algebra</a></li> +<li class="level2"><a href="#autotoc_md3">Localization</a></li> +<li class="level2"><a href="#autotoc_md4">examples</a></li> +<li class="level2"><a href="#autotoc_md5">doc</a></li> +</ul> +</li> +<li class="level1"><a href="#further-information">Further information</a></li> +</ul> +</div> +<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi</dd></dl> +<h1><a class="anchor" id="RcdMathLib-in-a-nutshell"></a> +RcdMathLib in a nutshell</h1> +<p>RcdMathLib is an open-source library for numerical linear and non-linear algebra designed to match the requirements of resource-limited or embedded devices. RcdMathLib supports solving linear and non-linear equation systems. Furthermore, it provides general-purpose implemented methods that facilitate solving problems of regression smoothing and curve fitting. It also allows for calculating as well as optimizing a position on a mobile device.</p> +<h1><a class="anchor" id="download-use-RcdMathLib"></a> +Download and use RcdMathLib</h1> +<p>The simplest way to use the RcdMathLib for resource-limited devices is to download the Elipse project (TODO). The following Eclipse project enables also the RcdMathLib for full-fledged platforms (TODO).</p> +<h1><a class="anchor" id="the-quickest-start"></a> +The quickest start</h1> +<p>You can run RcdMathLib on most resource-limited such as the STM32 Discovery board as well as on a PC. Try it right now in your terminal window:</p> +<div class="fragment"><div class="line">git clone git://github.com/RIOT-OS/RIOT.git # assumption: git is pre-installed </div> +<div class="line">cd RcdMathLib/examples/linear_algebra/basic_operation/</div> +<div class="line">make all</div> +</div><!-- fragment --><p>The example above shows how to use the basic operations of the RcdMathLib such as the vector or the matrix operations.</p> +<h1><a class="anchor" id="structure"></a> +Structure</h1> +<p>This section walks you through RcdMathLib's structure to easily find your way around in RcdMathLib's code base.</p> +<div class="image"> +<img src="soft_architecture_01_09_2019.svg" alt=""/> +<div class="caption"> +Software Architecture</div></div> + <p>RcdMathLib's source code is composed into three groups:</p> +<ul> +<li>Linear algebra</li> +<li>Non-linear algebra</li> +<li>Localization</li> +</ul> +<p>In addition RcdMathLib includes various examples to familiarize the user with the software as well as an API to facilitate the use and the further development of the library.</p> +<p>The structural groups are projected onto the directory structure of RcdMathLib, where each of these groups resides in one or two directories in the main RcdMathLib directory.</p> +<p>The following list gives a more detailed description of each of RcdMathLib's top-level directories:</p> +<h2><a class="anchor" id="autotoc_md1"></a> +Linear Algebra</h2> +<p>This directory contains functions that are specific to vector and matrix operations, and other algebraic operations. It provides functions to perform basic matrix operations such as matrix addition, multiplication, or transposition. It also provides algorithms for complex operations like matrix decomposition algorithms, algorithms to calculate the pseudo-inverse of a matrix, or methods to solve systems of linear equations. The linear algebra module is divided in the following sub-modules:</p><ul> +<li>Basic operations sub-module.</li> +<li>Matrix decompositions sub-module.</li> +<li>Pseudo-Inverse sub-module.</li> +<li>Solve linear equations sub-module.</li> +<li>Utilities sub-module.</li> +</ul> +<p>See <a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> module for further information and API documentations.</p> +<h2><a class="anchor" id="autotoc_md2"></a> +Non-Linear Algebra</h2> +<p>The non-linear algebra module contains functions to solve multi-variant nonlinear equations as wells algorithms solving problems of regression smoothing and curve fitting. This module also enables enables the optimization of an approximate solution by using Non-linear Least Squares (NLS) methods such as modified Gauss–Newton (GN) or the Levenberg–Marquardt (LVM) algorithms. The non-linear algebra module is divided in the two following sub-modules:</p> +<ul> +<li>Solve non-linear equations sub-module.</li> +<li>Optimization sub-module.</li> +</ul> +<p>See here <a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a> module for further information.</p> +<h2><a class="anchor" id="autotoc_md3"></a> +Localization</h2> +<p>The localization module contains functions to compute a position of a mobile device using distance measurements or DC-pulsed, magnetic signals. This module also includes optimization algorithms such as the Levenberg–Marquardt approach to optimize the calculated position. The localization module also involves a method to recognize and mitigate the multipath errors on the mobile station.</p> +<p>In the <code>position_algos</code> sub-directory you can find the implementations of the distance-based localization system (see the <a class="el" href="group__distance__based.html">DISTANCE_BASED</a> module) as well as the implementations of the DC-pulsed, magnetic position system (see the <a class="el" href="group__magnetic__based.html">MAGNETIC_BASED</a> module). The <code>pos_algos_common</code> sub-directory contains common localization algorithms like the trilateration method (see the <a class="el" href="group__pos__algos__common.html">POS_ALGOS_COMMON</a> module). The optimization algorithms are localted in the <code>optimization</code> sub-directory providing the following optimization approaches:</p> +<ul> +<li>Gauss–Newton (GN) algorithm.</li> +<li>Levenberg–Marquardt (LVM) algorithm. <br /> +</li> +<li>Multipath Distance Detection and Mitigation (MDDM) algorithm.</li> +</ul> +<p>See the <a class="el" href="group__localization.html">LOCALIZATION</a> module for more detailed information.</p> +<h2><a class="anchor" id="autotoc_md4"></a> +examples</h2> +<p>Here you find a number of example applications that demonstrate certain features of RcdMathLib. The examples found in this directory is a good starting point for anyone who is new to RcdMathLib.</p> +<p>For more information best browse that directory and have a look at the <code>README.md</code> files that ship with each example.</p> +<p>To create your own application - here or anywhere else - see <a class="el" href="creating-an-application.html">Creating an application</a></p> +<h2><a class="anchor" id="autotoc_md5"></a> +doc</h2> +<p>The <code>doc</code> directory contains the doxygen configuration and also contains the compiled doxygen output after running <code>make doc</code>.</p> +<h1><a class="anchor" id="further-information"></a> +Further information</h1> +<ul> +<li><a class="el" href="getting-started.html">Getting started</a></li> +<li><a class="el" href="creating-an-application.html">Creating an application</a></li> +<li><a class="el" href="creating-modules.html">Creating modules</a> </li> +</ul> +</div></div><!-- PageDoc --> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/jquery.js b/doc/doxygen/html/jquery.js new file mode 100644 index 0000000000000000000000000000000000000000..103c32d79b749c24101fba7ff19fd17ee1a59724 --- /dev/null +++ b/doc/doxygen/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); +/*! jQuery UI - v1.12.1 - 2019-01-27 +* http://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p}); +/*! + PowerTip v1.3.1 (2018-04-15) + https://stevenbenner.github.io/jquery-powertip/ + Copyright (c) 2018 Steven Benner (http://stevenbenner.com/). + Released under MIT license. + https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt +*/ +(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*! + * jQuery UI Touch Punch 0.2.3 + * + * Copyright 2011–2014, Dave Furfero + * Dual licensed under the MIT or GPL Version 2 licenses. + * + * Depends: + * jquery.ui.widget.js + * jquery.ui.mouse.js + */ +!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/doc/doxygen/html/levenberg__marquardt_8c.html b/doc/doxygen/html/levenberg__marquardt_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..d2a7f2445a4125cda9a6c5b1e2a7fc9ecec46cde --- /dev/null +++ b/doc/doxygen/html/levenberg__marquardt_8c.html @@ -0,0 +1,398 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: levenberg_marquardt.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('levenberg__marquardt_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">levenberg_marquardt.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Levenberg–Marquardt (LVM) algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include <float.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="levenberg__marquardt_8h_source.html">levenberg_marquardt.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="solve_8h_source.html">solve.h</a>"</code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +</div> +<p><a href="levenberg__marquardt_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a741182c4bc201af44ac010bc4474b826"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">opt_levenberg_marquardt_correction</a> (uint8_t f_length, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_vec[n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[f_length], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[n], void(*get_f_error)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a741182c4bc201af44ac010bc4474b826"><td class="mdescLeft"> </td><td class="mdescRight">Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm. <a href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">More...</a><br /></td></tr> +<tr class="separator:a741182c4bc201af44ac010bc4474b826"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2a72b2b6be15a9998b61a9c0097e3d5f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1, uint8_t max_iter_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n], void(*get_f_error)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a2a72b2b6be15a9998b61a9c0097e3d5f"><td class="mdescLeft"> </td><td class="mdescRight">Implements the Levenberg–Marquardt (LVM) algorithm. <a href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">More...</a><br /></td></tr> +<tr class="separator:a2a72b2b6be15a9998b61a9c0097e3d5f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a46fb5a9d6d185ff7f98c9cf34b56e34f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">opt_levenberg_marquardt_get_mu0</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[][n])</td></tr> +<tr class="memdesc:a46fb5a9d6d185ff7f98c9cf34b56e34f"><td class="mdescLeft"> </td><td class="mdescRight">Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. <a href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">More...</a><br /></td></tr> +<tr class="separator:a46fb5a9d6d185ff7f98c9cf34b56e34f"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Levenberg–Marquardt (LVM) algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="levenberg__marquardt_8c_source.html">levenberg_marquardt.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a2a72b2b6be15a9998b61a9c0097e3d5f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2a72b2b6be15a9998b61a9c0097e3d5f">◆ </a></span>opt_levenberg_marquardt()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t opt_levenberg_marquardt </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[f_length], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta0</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta1</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_f_error</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta0</td><td><img class="formulaInl" alt="$ \beta_0 $" src="form_53.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta1</td><td><img class="formulaInl" alt="$ \beta_1 $" src="form_54.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the LVM algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_vec[]</td><td>estimated (optimized) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_f_error)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="levenberg__marquardt_8c_source.html#l00143">143</a> of file <a class="el" href="levenberg__marquardt_8c_source.html">levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00353">matrix_add_to_diag()</a>, <a class="el" href="matrix_8c_source.html#l00602">matrix_mul_scalar()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00227">opt_levenberg_marquardt_get_mu0()</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>, and <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>.</p> + +</div> +</div> +<a id="a741182c4bc201af44ac010bc4474b826"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a741182c4bc201af44ac010bc4474b826">◆ </a></span>opt_levenberg_marquardt_correction()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_levenberg_marquardt_correction </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>data_vec</em>[f_length], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mu</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>s</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_f_error</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions.</p> +<dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">mu</td><td>regularization parameter <img class="formulaInl" alt="$ \mu $" src="form_55.png"/>. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">s[]</td><td>correction vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_f_error)</td><td>pointer to the error function that calculates the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the parameter <img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/> </dd></dl> + +<p class="definition">Definition at line <a class="el" href="levenberg__marquardt_8c_source.html#l00053">53</a> of file <a class="el" href="levenberg__marquardt_8c_source.html">levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00353">matrix_add_to_diag()</a>, <a class="el" href="matrix_8c_source.html#l00602">matrix_mul_scalar()</a>, <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, <a class="el" href="vector_8c_source.html#l00190">vector_get_scalar_product()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>.</p> + +</div> +</div> +<a id="a46fb5a9d6d185ff7f98c9cf34b56e34f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a46fb5a9d6d185ff7f98c9cf34b56e34f">◆ </a></span>opt_levenberg_marquardt_get_mu0()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_levenberg_marquardt_get_mu0 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide a pointer to the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix <img class="formulaInl" alt="$J_f^T J_f$" src="form_61.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">JTJ[][]</td><td>pointer to the matrix <img class="formulaInl" alt="$J_f^T J_f$" src="form_61.png"/>.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>parameter <img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/> </dd></dl> + +<p class="definition">Definition at line <a class="el" href="levenberg__marquardt_8c_source.html#l00227">227</a> of file <a class="el" href="levenberg__marquardt_8c_source.html">levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="levenberg__marquardt_8c.html">levenberg_marquardt.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/levenberg__marquardt_8c.js b/doc/doxygen/html/levenberg__marquardt_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..3904ba471fc72452b4024b14fdf88ef60861ffe5 --- /dev/null +++ b/doc/doxygen/html/levenberg__marquardt_8c.js @@ -0,0 +1,6 @@ +var levenberg__marquardt_8c = +[ + [ "opt_levenberg_marquardt", "levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f", null ], + [ "opt_levenberg_marquardt_correction", "levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826", null ], + [ "opt_levenberg_marquardt_get_mu0", "levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/levenberg__marquardt_8c_source.html b/doc/doxygen/html/levenberg__marquardt_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..bf72fdaa8cc16c608619585af659f37d4a91eaec --- /dev/null +++ b/doc/doxygen/html/levenberg__marquardt_8c_source.html @@ -0,0 +1,332 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: levenberg_marquardt.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('levenberg__marquardt_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">levenberg_marquardt.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="levenberg__marquardt_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="solve_8h.html">solve.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826"> 53</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">opt_levenberg_marquardt_correction</a>(uint8_t f_length, uint8_t n,</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_vec[n],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[f_length],</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu,</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[n],</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">void</span> (*get_f_error)(</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">void</span> (*get_jacobian)(</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[],</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n])</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  )</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx[f_length];</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[f_length][n];</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[f_length];</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[n][n];</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> JTF[n];</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ro_mu = 0;</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx_square = 0;</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx_plus_s_square = 0;</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx_plus_J_mul_s_square = 0;</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> Fx_plus_J_mul_s[f_length];</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> F_x_plus_s[f_length];</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_plus_s[n];</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> denom;</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">/*</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"> * compute: -(J'J + mu^2*I)</span></div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">//JT_J = J'*J</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  get_jacobian(x_vec, J);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">//store J'J in JTJ_mu2_I</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a>(f_length, n, J, JTJ_mu2_I);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">//compute: J'J + mu^2*I</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a>(n, JTJ_mu2_I, n, pow(mu, 2));</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// -(J'*J+mu^2*eye(n)), is an (nxn) matrix</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a>(n, n, JTJ_mu2_I, -1, JTJ_mu2_I);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">//JT_f = J'*f</span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  get_f_error(x_vec, data_vec, f_vec);</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(f_length, n, J, f_length, f_vec, JTF);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">//solve the equation: s = -(J'*J+mu^2*I)\(J'*Fx);</span></div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a>(n, n, JTJ_mu2_I, JTF, s);</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">//f(x)</span></div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  get_f_error(x_vec, data_vec, Fx);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">//f(x)^2</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  Fx_square = <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(f_length, Fx, Fx);</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">//(x+s)</span></div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(n, x_vec, s, x_plus_s);</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">//f(x+s)</span></div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  get_f_error(x_plus_s, data_vec, F_x_plus_s);</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">//f(x+s)^2</span></div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  Fx_plus_s_square = <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(f_length, F_x_plus_s,</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  F_x_plus_s);</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">//compute: J(x)*s</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(f_length, n, J, s, Fx_plus_J_mul_s);</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">//compute: f(x) + J(x)*s</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(f_length, Fx, Fx_plus_J_mul_s, Fx_plus_J_mul_s);</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">//compute: ||f(x) + J(x)*s||^2</span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  Fx_plus_J_mul_s_square = <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(f_length,</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  Fx_plus_J_mul_s,</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  Fx_plus_J_mul_s);</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  denom = Fx_square - Fx_plus_J_mul_s_square;</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (denom != 0) {</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  ro_mu = (Fx_square - Fx_plus_s_square) / denom;</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  puts(<span class="stringliteral">"ro_mu is infinite !!!"</span>);</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  ro_mu = FLT_MAX;</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> ro_mu;</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> +<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f"> 143</a></span> uint8_t <a class="code" href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a>(uint8_t f_length, uint8_t n,</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n],</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length],</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0,</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1,</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  uint8_t max_iter_num,</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n],</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">void</span> (*get_f_error)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n])</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  )</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> {</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[f_length][n];</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> JT_f[n];</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[n][n];</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> s[n];</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[f_length];</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu;</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ro_mu;</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  uint8_t it;</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">/*</span></div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment"> * compute mu0 and -(J'J + mu0^2*I)</span></div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">//JT_J = J'*J</span></div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  get_jacobian(x0_vec, J);</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">//store J'J in JTJ_mu2_I</span></div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a>(f_length, n, J, JTJ_mu2_I);</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// compute mu_0: mu = mu_0</span></div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  mu = <a class="code" href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">opt_levenberg_marquardt_get_mu0</a>(n, tau, JTJ_mu2_I);</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">//compute: J'J + mu0^2*I</span></div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a>(n, JTJ_mu2_I, n, pow(mu, 2));</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">//-(J'*J+mu0^2*eye(n)) is a (n,n) matrix</span></div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a>(n, n, JTJ_mu2_I, -1, JTJ_mu2_I);</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">//compute JTF: JT_f = J'*f</span></div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  get_f_error(x0_vec, data_vec, f_vec);</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(f_length, n, J, f_length, f_vec, JT_f);</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">//solve the equation: s=-(J'*J+mu^2*eye(n))\(J'*F);</span></div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a>(n, n, JTJ_mu2_I, JT_f, s);</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, x0_vec, est_x_vec);</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  it = 0;</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">while</span> ((<a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(n, s)</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  > eps * (1 + <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(n, est_x_vec)))</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  && (it < max_iter_num)) { <span class="comment">//norm(s,2)>eps*(1+norm(x,2))</span></div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  ro_mu = <a class="code" href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">opt_levenberg_marquardt_correction</a>(f_length, n,</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  est_x_vec, data_vec,</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  mu, s, get_f_error,</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  get_jacobian);</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">while</span> (1) {</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">if</span> (ro_mu <= beta0) {</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  mu = 2.0 * mu;</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  ro_mu = <a class="code" href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">opt_levenberg_marquardt_correction</a>(</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  f_length, n,</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  est_x_vec,</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  data_vec, mu, s, get_f_error,</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  get_jacobian);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ro_mu >= beta1) {</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  mu = mu / 2.0;</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(n, est_x_vec, s, est_x_vec);</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  it = it + 1;</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  } <span class="comment">//while</span></div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">return</span> it;</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> }</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div> +<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f"> 227</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">opt_levenberg_marquardt_get_mu0</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau,</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[][n])</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> {</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> max_diag_JTJ = JTJ[0][0];</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">for</span> (uint8_t i = 1; i < n; i++) {</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (JTJ[i][i] > max_diag_JTJ) {</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  max_diag_JTJ = JTJ[i][i];</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">return</span> tau * max_diag_JTJ;</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="alevenberg__marquardt_8c_html_a2a72b2b6be15a9998b61a9c0097e3d5f"><div class="ttname"><a href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a></div><div class="ttdeci">uint8_t opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="levenberg__marquardt_8c_source.html#l00143">levenberg_marquardt.c:143</a></div></div> +<div class="ttc" id="avector_8h_html_a5f4b706c07b9b0f7a4983d80fba99e4e"><div class="ttname"><a href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a></div><div class="ttdeci">vector_t vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n])</div><div class="ttdoc">Compute the dot product of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00190">vector.c:190</a></div></div> +<div class="ttc" id="asolve_8h_html_ab6336aff7fbff116a6118b39a0d1e2cd"><div class="ttname"><a href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a></div><div class="ttdeci">int8_t solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00077">solve.c:77</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0107887a6c40980fa639750be8262f01"><div class="ttname"><a href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a></div><div class="ttdeci">void matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n])</div><div class="ttdoc">Compute the multiplication of the transpose of a matrix with itself.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00545">matrix.c:545</a></div></div> +<div class="ttc" id="amatrix_8h_html_aa8acafd4181978f536976f8151e51516"><div class="ttname"><a href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a></div><div class="ttdeci">void matrix_add_to_diag(uint8_t n, matrix_t A[][n], uint8_t diag_el_num, matrix_t value)</div><div class="ttdoc">Add a number to diagonal elements of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00353">matrix.c:353</a></div></div> +<div class="ttc" id="amatrix_8h_html_a53b0a1829b2085414fb66a9e9bd6c7b7"><div class="ttname"><a href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a></div><div class="ttdeci">void matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n])</div><div class="ttdoc">Compute the multiplication of transposed matrix with column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00511">matrix.c:511</a></div></div> +<div class="ttc" id="asolve_8h_html"><div class="ttname"><a href="solve_8h.html">solve.h</a></div><div class="ttdoc">Enables to solve systems of linear equations Ax = b for x.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="alevenberg__marquardt_8c_html_a741182c4bc201af44ac010bc4474b826"><div class="ttname"><a href="levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826">opt_levenberg_marquardt_correction</a></div><div class="ttdeci">matrix_t opt_levenberg_marquardt_correction(uint8_t f_length, uint8_t n, matrix_t x_vec[n], matrix_t data_vec[f_length], matrix_t mu, matrix_t s[n], void(*get_f_error)(vector_t x_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="levenberg__marquardt_8c_source.html#l00053">levenberg_marquardt.c:53</a></div></div> +<div class="ttc" id="amatrix_8h_html_a51139e6c87b602e5e0ebfbc406fda35d"><div class="ttname"><a href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a></div><div class="ttdeci">void matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n])</div><div class="ttdoc">Multiply all elements of a matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00602">matrix.c:602</a></div></div> +<div class="ttc" id="alevenberg__marquardt_8h_html"><div class="ttname"><a href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a></div><div class="ttdoc">Implement the Levenberg–Marquardt (LVM) algorithm.</div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="alevenberg__marquardt_8c_html_a46fb5a9d6d185ff7f98c9cf34b56e34f"><div class="ttname"><a href="levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">opt_levenberg_marquardt_get_mu0</a></div><div class="ttdeci">matrix_t opt_levenberg_marquardt_get_mu0(uint8_t n, matrix_t tau, matrix_t JTJ[][n])</div><div class="ttdoc">Compute the initial value of the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="levenberg__marquardt_8c_source.html#l00227">levenberg_marquardt.c:227</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html_a92917951880002814392c2367896d7a0"><div class="ttname"><a href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a></div><div class="ttdeci">void vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size])</div><div class="ttdoc">Compute the addition of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00104">vector.c:104</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="levenberg__marquardt_8c.html">levenberg_marquardt.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/levenberg__marquardt_8h.html b/doc/doxygen/html/levenberg__marquardt_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..acbf131855586e4bd61e7d59cca94d20762dcc51 --- /dev/null +++ b/doc/doxygen/html/levenberg__marquardt_8h.html @@ -0,0 +1,301 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: levenberg_marquardt.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('levenberg__marquardt_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">levenberg_marquardt.h File Reference<div class="ingroups"><a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a> » <a class="el" href="group__optimization.html">OPTIMIZATION</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Levenberg–Marquardt (LVM) algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="levenberg__marquardt_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a2a72b2b6be15a9998b61a9c0097e3d5f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1, uint8_t max_iter_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n], void(*get_f_error)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a2a72b2b6be15a9998b61a9c0097e3d5f"><td class="mdescLeft"> </td><td class="mdescRight">Implements the Levenberg–Marquardt (LVM) algorithm. <a href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">More...</a><br /></td></tr> +<tr class="separator:a2a72b2b6be15a9998b61a9c0097e3d5f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a46fb5a9d6d185ff7f98c9cf34b56e34f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">opt_levenberg_marquardt_get_mu0</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[][n])</td></tr> +<tr class="memdesc:a46fb5a9d6d185ff7f98c9cf34b56e34f"><td class="mdescLeft"> </td><td class="mdescRight">Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. <a href="levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">More...</a><br /></td></tr> +<tr class="separator:a46fb5a9d6d185ff7f98c9cf34b56e34f"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Levenberg–Marquardt (LVM) algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="levenberg__marquardt_8h_source.html">levenberg_marquardt.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a2a72b2b6be15a9998b61a9c0097e3d5f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2a72b2b6be15a9998b61a9c0097e3d5f">◆ </a></span>opt_levenberg_marquardt()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t opt_levenberg_marquardt </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[f_length], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta0</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta1</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_f_error</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta0</td><td><img class="formulaInl" alt="$ \beta_0 $" src="form_53.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta1</td><td><img class="formulaInl" alt="$ \beta_1 $" src="form_54.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the LVM algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_vec[]</td><td>estimated (optimized) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_f_error)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="levenberg__marquardt_8c_source.html#l00143">143</a> of file <a class="el" href="levenberg__marquardt_8c_source.html">levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00353">matrix_add_to_diag()</a>, <a class="el" href="matrix_8c_source.html#l00602">matrix_mul_scalar()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00227">opt_levenberg_marquardt_get_mu0()</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>, and <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>.</p> + +</div> +</div> +<a id="a46fb5a9d6d185ff7f98c9cf34b56e34f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a46fb5a9d6d185ff7f98c9cf34b56e34f">◆ </a></span>opt_levenberg_marquardt_get_mu0()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_levenberg_marquardt_get_mu0 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide a pointer to the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix <img class="formulaInl" alt="$J_f^T J_f$" src="form_61.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">JTJ[][]</td><td>pointer to the matrix <img class="formulaInl" alt="$J_f^T J_f$" src="form_61.png"/>.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>parameter <img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/> </dd></dl> + +<p class="definition">Definition at line <a class="el" href="levenberg__marquardt_8c_source.html#l00227">227</a> of file <a class="el" href="levenberg__marquardt_8c_source.html">levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="dir_c50cc60bf0f01dd8b56a0a31510e7489.html">include</a></li><li class="navelem"><a class="el" href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/levenberg__marquardt_8h.js b/doc/doxygen/html/levenberg__marquardt_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..726e5fac61eca7ce8ba78563bf92f53fc896c030 --- /dev/null +++ b/doc/doxygen/html/levenberg__marquardt_8h.js @@ -0,0 +1,5 @@ +var levenberg__marquardt_8h = +[ + [ "opt_levenberg_marquardt", "levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f", null ], + [ "opt_levenberg_marquardt_get_mu0", "levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/levenberg__marquardt_8h_source.html b/doc/doxygen/html/levenberg__marquardt_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..4995d771b9362610fd1cf9206b866ad5a20531b2 --- /dev/null +++ b/doc/doxygen/html/levenberg__marquardt_8h_source.html @@ -0,0 +1,146 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: levenberg_marquardt.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('levenberg__marquardt_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">levenberg_marquardt.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="levenberg__marquardt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef LEVENBERG_MARQUARDT_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define LEVENBERG_MARQUARDT_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> uint8_t <a class="code" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a>(uint8_t f_length, uint8_t n,</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length],</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0,</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1,</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  uint8_t max_iter_num,</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">void</span> (*get_f_error)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n])</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  );</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">opt_levenberg_marquardt_get_mu0</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau,</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[][n]);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#endif </span><span class="comment">/* LEVENBERG_MARQUARDT_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="alevenberg__marquardt_8h_html_a46fb5a9d6d185ff7f98c9cf34b56e34f"><div class="ttname"><a href="levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f">opt_levenberg_marquardt_get_mu0</a></div><div class="ttdeci">matrix_t opt_levenberg_marquardt_get_mu0(uint8_t n, matrix_t tau, matrix_t JTJ[][n])</div><div class="ttdoc">Compute the initial value of the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="levenberg__marquardt_8c_source.html#l00227">levenberg_marquardt.c:227</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="alevenberg__marquardt_8h_html_a2a72b2b6be15a9998b61a9c0097e3d5f"><div class="ttname"><a href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a></div><div class="ttdeci">uint8_t opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="levenberg__marquardt_8c_source.html#l00143">levenberg_marquardt.c:143</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="dir_c50cc60bf0f01dd8b56a0a31510e7489.html">include</a></li><li class="navelem"><a class="el" href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__gauss__newton_8c.html b/doc/doxygen/html/loc__gauss__newton_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..3d91650efa7ac911e1fe94c7124e38f159df81bb --- /dev/null +++ b/doc/doxygen/html/loc__gauss__newton_8c.html @@ -0,0 +1,240 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_gauss_newton.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__gauss__newton_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">loc_gauss_newton.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Gauss–Newton algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +</div> +<p><a href="loc__gauss__newton_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:aaba1f25cf23d5529e4fc3bca22f8784e"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_pos[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_pos[3], void(*f_i)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]))</td></tr> +<tr class="memdesc:aaba1f25cf23d5529e4fc3bca22f8784e"><td class="mdescLeft"> </td><td class="mdescRight">Implements the modified Gauss–Newton algorithm. <a href="loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e">More...</a><br /></td></tr> +<tr class="separator:aaba1f25cf23d5529e4fc3bca22f8784e"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Gauss–Newton algorithm. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="loc__gauss__newton_8c_source.html">loc_gauss_newton.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="aaba1f25cf23d5529e4fc3bca22f8784e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aaba1f25cf23d5529e4fc3bca22f8784e">◆ </a></span>loc_gauss_newton()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t loc_gauss_newton </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>start_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>fmin</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]) </td> + <td class="paramname"><em>f_i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]) </td> + <td class="paramname"><em>jacobian_get_JTf</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the modified Gauss–Newton algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_pos[]</td><td>start (approximate) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">fmin</td><td>termination tolerance on the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the Gauss-Newton algorithm. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">est_pos[]</td><td>estimated (optimized) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*f_i)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTf)</td><td>pointer to the function that calculates the <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__gauss__newton_8c_source.html#l00030">30</a> of file <a class="el" href="loc__gauss__newton_8c_source.html">loc_gauss_newton.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="utils_8c_source.html#l00055">utils_max()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="loc__gauss__newton_8c.html">loc_gauss_newton.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__gauss__newton_8c.js b/doc/doxygen/html/loc__gauss__newton_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..51c8802dea8097fcfb1e0b6aa6900382b5966b35 --- /dev/null +++ b/doc/doxygen/html/loc__gauss__newton_8c.js @@ -0,0 +1,4 @@ +var loc__gauss__newton_8c = +[ + [ "loc_gauss_newton", "loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/loc__gauss__newton_8c_source.html b/doc/doxygen/html/loc__gauss__newton_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..22658a9b5fe750d1a60fdcd228081fea55994d11 --- /dev/null +++ b/doc/doxygen/html/loc__gauss__newton_8c_source.html @@ -0,0 +1,227 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_gauss_newton.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__gauss__newton_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">loc_gauss_newton.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="loc__gauss__newton_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e"> 30</a></span> uint8_t <a class="code" href="loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_pos[3],</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num],</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num,</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_pos[3],</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">void</span> (*f_i)(uint8_t ref_point_num,</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[],</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]),</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]),</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordtype">void</span> (*jacobian_get_JTf)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3])</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  )</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JT_J[3][3];</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JT_f[3];</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[ref_points_num];</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_error;</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_JTJ_mat[3][3];</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> correction_vec[3];</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pos[3];</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> next_pos[3];</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> max_error, min_error;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> step;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  uint8_t iter_num;</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  f_i(ref_points_num, ref_points_matrix, start_pos, measured_data_vec,</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  f_vec);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  f_error = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(ref_points_num, f_vec);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  max_error = f_error;</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  min_error = max_error;</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  step = eps;</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3, start_pos, pos);</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3, start_pos, est_pos);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  iter_num = 0;</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">while</span> ((step >= eps) && (iter_num < max_iter_num) && (f_error > fmin)) {</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">/*</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * Compute then correction terms & next positions</span></div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">//JTJ</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  jacobian_get_JTJ(ref_points_num, ref_points_matrix, pos,</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  measured_data_vec, JT_J);</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">//JTf</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  jacobian_get_JTf(ref_points_num, ref_points_matrix, pos,</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  measured_data_vec, JT_f);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">//solve: J'J*s = -J'*f</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(3, 3, JT_J, pinv_JTJ_mat);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">//s = (J'J)\J'*f</span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(3, 3, pinv_JTJ_mat, JT_f, correction_vec);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// x = x - s</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(3, pos, correction_vec, next_pos);</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">//next step</span></div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  step = <a class="code" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a>(3, pos, next_pos);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// pos = next_pos</span></div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3, next_pos, pos);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">//error vector</span></div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  f_i(ref_points_num, ref_points_matrix, pos, measured_data_vec,</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  f_vec);</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  f_error = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(ref_points_num, f_vec);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span> (min_error > f_error) { <span class="comment">//store the position with the minimum error</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3, pos, est_pos);</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  min_error = f_error; <span class="comment">// update min_error</span></div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  max_error = <a class="code" href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a>(f_error, max_error); <span class="comment">// update max_error</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  iter_num++;</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span> ((max_error - min_error) > 10) {</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  } <span class="comment">//while</span></div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> iter_num;</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="avector_8h_html_abbb6bf046e47a8634c15c43a508cacb9"><div class="ttname"><a href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a></div><div class="ttdeci">vector_t vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[])</div><div class="ttdoc">Compute the Euclidean distance between two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00163">vector.c:163</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="autils_8h_html_a0ae8ea233ea6c519cd0434f8c5bde5e5"><div class="ttname"><a href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a></div><div class="ttdeci">double utils_max(double a, double b)</div><div class="ttdoc">Returns the greater of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00055">utils.c:55</a></div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="aloc__gauss__newton_8c_html_aaba1f25cf23d5529e4fc3bca22f8784e"><div class="ttname"><a href="loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a></div><div class="ttdeci">uint8_t loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]))</div><div class="ttdoc">Implements the modified Gauss–Newton algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton.c:30</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="loc__gauss__newton_8c.html">loc_gauss_newton.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__gauss__newton_8h.html b/doc/doxygen/html/loc__gauss__newton_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..6bc59f1668f7128d3d2654ec1d192fa2ae96f465 --- /dev/null +++ b/doc/doxygen/html/loc__gauss__newton_8h.html @@ -0,0 +1,239 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_gauss_newton.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__gauss__newton_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">loc_gauss_newton.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__optimization.html">POSITION_OPTIMIZATION</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Gauss–Newton algorithm for position optimization. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="loc__gauss__newton_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:aaba1f25cf23d5529e4fc3bca22f8784e"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_pos[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_pos[3], void(*f_i)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]))</td></tr> +<tr class="memdesc:aaba1f25cf23d5529e4fc3bca22f8784e"><td class="mdescLeft"> </td><td class="mdescRight">Implements the modified Gauss–Newton algorithm. <a href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">More...</a><br /></td></tr> +<tr class="separator:aaba1f25cf23d5529e4fc3bca22f8784e"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Gauss–Newton algorithm for position optimization. </p> +<dl class="section note"><dt>Note</dt><dd>This function is adapted for localization algorithms.</dd></dl> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="loc__gauss__newton_8h_source.html">loc_gauss_newton.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="aaba1f25cf23d5529e4fc3bca22f8784e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aaba1f25cf23d5529e4fc3bca22f8784e">◆ </a></span>loc_gauss_newton()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t loc_gauss_newton </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>start_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>fmin</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]) </td> + <td class="paramname"><em>f_i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]) </td> + <td class="paramname"><em>jacobian_get_JTf</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the modified Gauss–Newton algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_pos[]</td><td>start (approximate) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">fmin</td><td>termination tolerance on the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the Gauss-Newton algorithm. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">est_pos[]</td><td>estimated (optimized) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*f_i)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTf)</td><td>pointer to the function that calculates the <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__gauss__newton_8c_source.html#l00030">30</a> of file <a class="el" href="loc__gauss__newton_8c_source.html">loc_gauss_newton.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="utils_8c_source.html#l00055">utils_max()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_05fcd006305b35cd419f9fa0533f5c7b.html">include</a></li><li class="navelem"><a class="el" href="loc__gauss__newton_8h.html">loc_gauss_newton.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__gauss__newton_8h.js b/doc/doxygen/html/loc__gauss__newton_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..0e3db92b9252c50107e6902747a2d64431a2e21b --- /dev/null +++ b/doc/doxygen/html/loc__gauss__newton_8h.js @@ -0,0 +1,4 @@ +var loc__gauss__newton_8h = +[ + [ "loc_gauss_newton", "loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/loc__gauss__newton_8h_source.html b/doc/doxygen/html/loc__gauss__newton_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..36bff7da81f140e233a37f7d3dc8a60b4c4e5d92 --- /dev/null +++ b/doc/doxygen/html/loc__gauss__newton_8h_source.html @@ -0,0 +1,150 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_gauss_newton.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__gauss__newton_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">loc_gauss_newton.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="loc__gauss__newton_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef LOC_GAUSS_NEWTON_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define LOC_GAUSS_NEWTON_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> uint8_t <a class="code" href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_pos[3],</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num],</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num,</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_pos[3],</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">void</span> (*f_i)(uint8_t ref_point_num,</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[],</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]),</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]),</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordtype">void</span> (*jacobian_get_JTf)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3])</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  );</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#endif </span><span class="comment">/* LOC_GAUSS_NEWTON_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aloc__gauss__newton_8h_html_aaba1f25cf23d5529e4fc3bca22f8784e"><div class="ttname"><a href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a></div><div class="ttdeci">uint8_t loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]))</div><div class="ttdoc">Implements the modified Gauss–Newton algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton.c:30</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_05fcd006305b35cd419f9fa0533f5c7b.html">include</a></li><li class="navelem"><a class="el" href="loc__gauss__newton_8h.html">loc_gauss_newton.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__levenberg__marquardt_8c.html b/doc/doxygen/html/loc__levenberg__marquardt_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..5d369ce7cf60f8da7986d9bb845bfdfee1b0a718 --- /dev/null +++ b/doc/doxygen/html/loc__levenberg__marquardt_8c.html @@ -0,0 +1,497 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_levenberg_marquardt.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__levenberg__marquardt_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">loc_levenberg_marquardt.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Levenberg–Marquardt (LVM) algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include <float.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="solve_8h_source.html">solve.h</a>"</code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="loc__levenberg__marquardt_8h_source.html">loc_levenberg_marquardt.h</a>"</code><br /> +</div> +<p><a href="loc__levenberg__marquardt_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a9b2c27f650c9db97f2923b645a8ca5f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], void(*f_i)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]))</td></tr> +<tr class="memdesc:a9b2c27f650c9db97f2923b645a8ca5f6"><td class="mdescLeft"> </td><td class="mdescRight">Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm. <a href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">More...</a><br /></td></tr> +<tr class="separator:a9b2c27f650c9db97f2923b645a8ca5f6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a09fdd720ff5c5658e160657153ee615f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_pos[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1, uint8_t max_iter_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_pos[3], void(*f_i)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]))</td></tr> +<tr class="memdesc:a09fdd720ff5c5658e160657153ee615f"><td class="mdescLeft"> </td><td class="mdescRight">Implements the Levenberg–Marquardt (LVM) algorithm. <a href="loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f">More...</a><br /></td></tr> +<tr class="separator:a09fdd720ff5c5658e160657153ee615f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a34f52d51278453ca0fc0818a1f73a357"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt_get_mu0</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</td></tr> +<tr class="memdesc:a34f52d51278453ca0fc0818a1f73a357"><td class="mdescLeft"> </td><td class="mdescRight">Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. <a href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357">More...</a><br /></td></tr> +<tr class="separator:a34f52d51278453ca0fc0818a1f73a357"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4bad4d347859b95ac176779b34f26f8e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]))</td></tr> +<tr class="memdesc:a4bad4d347859b95ac176779b34f26f8e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the matrix <img class="formulaInl" alt="$ J_f^{T} J_f + \mu^{(i)})^{2} I $" src="form_59.png"/>. <a href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">More...</a><br /></td></tr> +<tr class="separator:a4bad4d347859b95ac176779b34f26f8e"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Levenberg–Marquardt (LVM) algorithm. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a09fdd720ff5c5658e160657153ee615f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a09fdd720ff5c5658e160657153ee615f">◆ </a></span>loc_levenberg_marquardt()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t loc_levenberg_marquardt </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>start_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta0</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta1</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>est_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]) </td> + <td class="paramname"><em>f_i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]) </td> + <td class="paramname"><em>jacobian_get_JTf</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]) </td> + <td class="paramname"><em>jacobian_get_J_mul_s</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_pos[]</td><td>start (approximate) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta0</td><td><img class="formulaInl" alt="$ \beta_0 $" src="form_53.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta1</td><td><img class="formulaInl" alt="$ \beta_1 $" src="form_54.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the LVM algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_pos[]</td><td>estimated (optimized) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*f_i)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTf)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_J_mul_s)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/>.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">126</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00236">loc_levenberg_marquardt_get_JTJ_mu2_I()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00223">loc_levenberg_marquardt_get_mu0()</a>, <a class="el" href="matrix_8c_source.html#l00602">matrix_mul_scalar()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, and <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a9b2c27f650c9db97f2923b645a8ca5f6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a9b2c27f650c9db97f2923b645a8ca5f6">◆ </a></span>loc_levenberg_marquardt_correction()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> loc_levenberg_marquardt_correction </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mu</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>s</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]) </td> + <td class="paramname"><em>f_i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]) </td> + <td class="paramname"><em>jacobian_get_JTf</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]) </td> + <td class="paramname"><em>jacobian_get_J_mul_s</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>a position to adjust. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">mu</td><td>regularization parameter <img class="formulaInl" alt="$ \mu $" src="form_55.png"/>. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">s[]</td><td>correction vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*f_i)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTf)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_J_mul_s)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/></td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the parameter <img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/> </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">34</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00236">loc_levenberg_marquardt_get_JTJ_mu2_I()</a>, <a class="el" href="matrix_8c_source.html#l00602">matrix_mul_scalar()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, and <a class="el" href="vector_8c_source.html#l00190">vector_get_scalar_product()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>.</p> + +</div> +</div> +<a id="a4bad4d347859b95ac176779b34f26f8e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4bad4d347859b95ac176779b34f26f8e">◆ </a></span>loc_levenberg_marquardt_get_JTJ_mu2_I()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void loc_levenberg_marquardt_get_JTJ_mu2_I </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mu</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ_mu2_I</em>[3][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the matrix <img class="formulaInl" alt="$ J_f^{T} J_f + \mu^{(i)})^{2} I $" src="form_59.png"/>. </p> +<dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>a position to adjust. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">mu</td><td><img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/>-parameter </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">JTJ_mu2_I[][]</td><td>includes the matrix <img class="formulaInl" alt="$ J_f^{T} J_f + \mu^{(i)})^{2} I $" src="form_59.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00236">236</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, and <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="a34f52d51278453ca0fc0818a1f73a357"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a34f52d51278453ca0fc0818a1f73a357">◆ </a></span>loc_levenberg_marquardt_get_mu0()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> loc_levenberg_marquardt_get_mu0 </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[3][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide a pointer to the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">JTJ[][]</td><td>pointer to the matrix <img class="formulaInl" alt="$ J_f^T J_f $" src="form_58.png"/>.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd><img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/>-parameter </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00223">223</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="loc__levenberg__marquardt_8c.html">loc_levenberg_marquardt.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__levenberg__marquardt_8c.js b/doc/doxygen/html/loc__levenberg__marquardt_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..09de6f9a8fe6aaf82a0190f837e440a78bd3e510 --- /dev/null +++ b/doc/doxygen/html/loc__levenberg__marquardt_8c.js @@ -0,0 +1,7 @@ +var loc__levenberg__marquardt_8c = +[ + [ "loc_levenberg_marquardt", "loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f", null ], + [ "loc_levenberg_marquardt_correction", "loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6", null ], + [ "loc_levenberg_marquardt_get_JTJ_mu2_I", "loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e", null ], + [ "loc_levenberg_marquardt_get_mu0", "loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/loc__levenberg__marquardt_8c_source.html b/doc/doxygen/html/loc__levenberg__marquardt_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..ede8b6e975dabf99795fbca556804bed8b35473b --- /dev/null +++ b/doc/doxygen/html/loc__levenberg__marquardt_8c_source.html @@ -0,0 +1,366 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_levenberg_marquardt.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__levenberg__marquardt_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">loc_levenberg_marquardt.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="loc__levenberg__marquardt_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="solve_8h.html">solve.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6"> 34</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu,</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordtype">void</span> (*f_i)(uint8_t ref_point_num,</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[],</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]),</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]),</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordtype">void</span> (*jacobian_get_JTf)(</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]),</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> (*jacobian_get_J_mul_s)(</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  )</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx[ref_points_num];</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[3][3];</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTF[3];</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ro_mu = 0;</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx_square = 0;</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx_plus_s_square = 0;</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx_plus_J_mul_s_square = 0;</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Fx_plus_J_mul_s[ref_points_num];</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> F_x_plus_s[ref_points_num];</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point_plus_s[3];</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> denom;</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">//compute: -(J'J + mu^2*I)</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a>(ref_points_num, ref_points_matrix,</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  point,</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  measured_data_vec, mu, JTJ_mu2_I,</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  jacobian_get_JTJ);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a>(3, 3, JTJ_mu2_I, -1, JTJ_mu2_I); <span class="comment">// -(J'*J+mu^2*eye(n)) is an (n,n) matrix</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  jacobian_get_JTf(ref_points_num, ref_points_matrix, point,</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  measured_data_vec, JTF);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">//solve the equation: s = -(J'*J+mu^2*I)\(J'*Fx);</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a>(3, 3, JTJ_mu2_I, JTF, s);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">//f(x)</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  f_i(ref_points_num, ref_points_matrix, point, measured_data_vec, Fx);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">//f(x)^2</span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  Fx_square = <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(ref_points_num, Fx, Fx);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">//(x+s)</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(3, point, s, point_plus_s);</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">//f(x+s)</span></div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  f_i(ref_points_num, ref_points_matrix, point_plus_s, measured_data_vec,</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  F_x_plus_s);</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">//f(x+s)^2</span></div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  Fx_plus_s_square = <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(ref_points_num, F_x_plus_s,</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  F_x_plus_s);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">//compute: J(x)*s</span></div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  jacobian_get_J_mul_s(ref_points_num, ref_points_matrix, point, s,</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  Fx_plus_J_mul_s);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">//compute: f(x) + J(x)*s</span></div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(ref_points_num, Fx, Fx_plus_J_mul_s, Fx_plus_J_mul_s);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">//compute: ||f(x) + J(x)*s||^2</span></div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  Fx_plus_J_mul_s_square = <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(ref_points_num,</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  Fx_plus_J_mul_s,</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  Fx_plus_J_mul_s);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  denom = Fx_square - Fx_plus_J_mul_s_square;</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span> (denom != 0) {</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  ro_mu = (Fx_square - Fx_plus_s_square) / denom;</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  puts(<span class="stringliteral">"ro_mu is infinite !!!"</span>);</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  ro_mu = FLT_MAX;</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> ro_mu;</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div> +<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f"> 126</a></span> uint8_t <a class="code" href="loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_pos[3],</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num],</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0,</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1,</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  uint8_t max_iter_num,</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_pos[3],</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">void</span> (*f_i)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[],</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]),</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3],</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]),</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">void</span> (*jacobian_get_JTf)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3],</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]),</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordtype">void</span> (*jacobian_get_J_mul_s)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3],</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  )</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> {</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTF[3];</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[3][3];</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3];</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu;</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ro_mu;</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  uint8_t it;</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">/*</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> * compute mu0 and -(J'J + mu0^2*I)</span></div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">//store J'J in JTJ_mu2_I</span></div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  jacobian_get_JTJ(ref_points_num, ref_points_matrix, start_pos,</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  measured_data_vec, JTJ_mu2_I);</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  mu = <a class="code" href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt_get_mu0</a>(tau, JTJ_mu2_I);</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">//compute: J'J + mu0^2*I</span></div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a>(ref_points_num, ref_points_matrix,</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  start_pos, measured_data_vec, mu,</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  JTJ_mu2_I,</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  jacobian_get_JTJ);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">//-(J'*J+mu0^2*eye(n)) is an (n,n) matrix</span></div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a>(3, 3, JTJ_mu2_I, -1, JTJ_mu2_I);</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">//compute JTF</span></div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  jacobian_get_JTf(ref_points_num, ref_points_matrix, start_pos,</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  measured_data_vec, JTF);</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  </div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">//solve the equation: s=-(J'*J+mu^2*eye(n))\(J'*F);</span></div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a>(3, 3, JTJ_mu2_I, JTF, s);</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3, start_pos, est_pos);</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  it = 0;</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">while</span> ((<a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(3, s)</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  > eps * (1 + <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(3, est_pos)))</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  && (it < max_iter_num)) { <span class="comment">//norm(s,2)>eps*(1+norm(x,2))</span></div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  ro_mu = <a class="code" href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a>(ref_points_num,</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  ref_points_matrix, est_pos,</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  measured_data_vec,</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  mu, s, f_i, jacobian_get_JTJ,</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  jacobian_get_JTf,</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  jacobian_get_J_mul_s);</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">while</span> (1) {</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> (ro_mu <= beta0) {</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  mu = 2.0 * mu;</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  ro_mu = <a class="code" href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a>(</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  ref_points_num,</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  ref_points_matrix, est_pos,</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  measured_data_vec, mu, s, f_i,</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  jacobian_get_JTJ,</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  jacobian_get_JTf,</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  jacobian_get_J_mul_s);</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ro_mu >= beta1) {</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  mu = mu / 2.0;</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(3, est_pos, s, est_pos);</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  it = it + 1;</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  } <span class="comment">//while</span></div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">return</span> it;</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> }</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div> +<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357"> 223</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt_get_mu0</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> {</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> max_diag_JTJ = JTJ[0][0];</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span> (uint8_t i = 1; i < 3; i++) {</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (JTJ[i][i] > max_diag_JTJ) {</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  max_diag_JTJ = JTJ[i][i];</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> tau * max_diag_JTJ;</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> }</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment">//compute: J'J + mu^2*I</span></div> +<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e"> 236</a></span> <span class="keywordtype">void</span> <a class="code" href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num],</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu,</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[3][3],</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  )</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> {</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  uint8_t i;</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  jacobian_get_JTJ(ref_points_num, ref_points_matrix, point,</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  measured_data_vec, JTJ_mu2_I); <span class="comment">//JTJ_mu2_I = J'J</span></div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  </div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">for</span> (i = 0; i < 3; i++) {</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  JTJ_mu2_I[i][i] += pow(mu, 2); <span class="comment">// JTJ_mu2_I = J'*J+mu^2*I;</span></div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="avector_8h_html_a5f4b706c07b9b0f7a4983d80fba99e4e"><div class="ttname"><a href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a></div><div class="ttdeci">vector_t vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n])</div><div class="ttdoc">Compute the dot product of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00190">vector.c:190</a></div></div> +<div class="ttc" id="asolve_8h_html_ab6336aff7fbff116a6118b39a0d1e2cd"><div class="ttname"><a href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a></div><div class="ttdeci">int8_t solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00077">solve.c:77</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a></div><div class="ttdoc">Implement the Levenberg–Marquardt (LVM) algorithm for position optimization.</div></div> +<div class="ttc" id="asolve_8h_html"><div class="ttname"><a href="solve_8h.html">solve.h</a></div><div class="ttdoc">Enables to solve systems of linear equations Ax = b for x.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="amatrix_8h_html_a51139e6c87b602e5e0ebfbc406fda35d"><div class="ttname"><a href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a></div><div class="ttdeci">void matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n])</div><div class="ttdoc">Multiply all elements of a matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00602">matrix.c:602</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8c_html_a34f52d51278453ca0fc0818a1f73a357"><div class="ttname"><a href="loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt_get_mu0</a></div><div class="ttdeci">matrix_t loc_levenberg_marquardt_get_mu0(matrix_t tau, matrix_t JTJ[3][3])</div><div class="ttdoc">Compute the initial value of the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00223">loc_levenberg_marquardt.c:223</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8c_html_a09fdd720ff5c5658e160657153ee615f"><div class="ttname"><a href="loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a></div><div class="ttdeci">uint8_t loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt.c:126</a></div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html_a92917951880002814392c2367896d7a0"><div class="ttname"><a href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a></div><div class="ttdeci">void vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size])</div><div class="ttdoc">Compute the addition of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00104">vector.c:104</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8c_html_a9b2c27f650c9db97f2923b645a8ca5f6"><div class="ttname"><a href="loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a></div><div class="ttdeci">matrix_t loc_levenberg_marquardt_correction(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t s[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]))</div><div class="ttdoc">Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt.c:34</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8c_html_a4bad4d347859b95ac176779b34f26f8e"><div class="ttname"><a href="loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a></div><div class="ttdeci">void loc_levenberg_marquardt_get_JTJ_mu2_I(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]))</div><div class="ttdoc">Compute the matrix .</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00236">loc_levenberg_marquardt.c:236</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="loc__levenberg__marquardt_8c.html">loc_levenberg_marquardt.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__levenberg__marquardt_8h.html b/doc/doxygen/html/loc__levenberg__marquardt_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..1c4d4d3668a57c47890cb96a53832fb18263d374 --- /dev/null +++ b/doc/doxygen/html/loc__levenberg__marquardt_8h.html @@ -0,0 +1,491 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_levenberg_marquardt.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__levenberg__marquardt_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">loc_levenberg_marquardt.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__optimization.html">POSITION_OPTIMIZATION</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Levenberg–Marquardt (LVM) algorithm for position optimization. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="loc__levenberg__marquardt_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a09fdd720ff5c5658e160657153ee615f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_pos[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1, uint8_t max_iter_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_pos[3], void(*f_i)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]))</td></tr> +<tr class="memdesc:a09fdd720ff5c5658e160657153ee615f"><td class="mdescLeft"> </td><td class="mdescRight">Implements the Levenberg–Marquardt (LVM) algorithm. <a href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">More...</a><br /></td></tr> +<tr class="separator:a09fdd720ff5c5658e160657153ee615f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9b2c27f650c9db97f2923b645a8ca5f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], void(*f_i)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]))</td></tr> +<tr class="memdesc:a9b2c27f650c9db97f2923b645a8ca5f6"><td class="mdescLeft"> </td><td class="mdescRight">Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm. <a href="loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6">More...</a><br /></td></tr> +<tr class="separator:a9b2c27f650c9db97f2923b645a8ca5f6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a34f52d51278453ca0fc0818a1f73a357"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt_get_mu0</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</td></tr> +<tr class="memdesc:a34f52d51278453ca0fc0818a1f73a357"><td class="mdescLeft"> </td><td class="mdescRight">Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. <a href="loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357">More...</a><br /></td></tr> +<tr class="separator:a34f52d51278453ca0fc0818a1f73a357"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4bad4d347859b95ac176779b34f26f8e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]))</td></tr> +<tr class="memdesc:a4bad4d347859b95ac176779b34f26f8e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the matrix <img class="formulaInl" alt="$ J_f^{T} J_f + \mu^{(i)})^{2} I $" src="form_59.png"/>. <a href="loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e">More...</a><br /></td></tr> +<tr class="separator:a4bad4d347859b95ac176779b34f26f8e"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Levenberg–Marquardt (LVM) algorithm for position optimization. </p> +<dl class="section note"><dt>Note</dt><dd>This function is adapted for localization algorithms.</dd></dl> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="loc__levenberg__marquardt_8h_source.html">loc_levenberg_marquardt.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a09fdd720ff5c5658e160657153ee615f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a09fdd720ff5c5658e160657153ee615f">◆ </a></span>loc_levenberg_marquardt()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t loc_levenberg_marquardt </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>start_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta0</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>beta1</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>est_pos</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]) </td> + <td class="paramname"><em>f_i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]) </td> + <td class="paramname"><em>jacobian_get_JTf</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]) </td> + <td class="paramname"><em>jacobian_get_J_mul_s</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_pos[]</td><td>start (approximate) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta0</td><td><img class="formulaInl" alt="$ \beta_0 $" src="form_53.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">beta1</td><td><img class="formulaInl" alt="$ \beta_1 $" src="form_54.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the LVM algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_pos[]</td><td>estimated (optimized) position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*f_i)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTf)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_J_mul_s)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/>.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">126</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00236">loc_levenberg_marquardt_get_JTJ_mu2_I()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00223">loc_levenberg_marquardt_get_mu0()</a>, <a class="el" href="matrix_8c_source.html#l00602">matrix_mul_scalar()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, and <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>.</p> + +</div> +</div> +<a id="a9b2c27f650c9db97f2923b645a8ca5f6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a9b2c27f650c9db97f2923b645a8ca5f6">◆ </a></span>loc_levenberg_marquardt_correction()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> loc_levenberg_marquardt_correction </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mu</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>s</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]) </td> + <td class="paramname"><em>f_i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]) </td> + <td class="paramname"><em>jacobian_get_JTf</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]) </td> + <td class="paramname"><em>jacobian_get_J_mul_s</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>a position to adjust. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">mu</td><td>regularization parameter <img class="formulaInl" alt="$ \mu $" src="form_55.png"/>. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">s[]</td><td>correction vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*f_i)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTf)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_J_mul_s)</td><td>pointer to the function that calculates the vector <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/></td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the parameter <img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/> </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">34</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00236">loc_levenberg_marquardt_get_JTJ_mu2_I()</a>, <a class="el" href="matrix_8c_source.html#l00602">matrix_mul_scalar()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, <a class="el" href="vector_8c_source.html#l00104">vector_add()</a>, and <a class="el" href="vector_8c_source.html#l00190">vector_get_scalar_product()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>.</p> + +</div> +</div> +<a id="a4bad4d347859b95ac176779b34f26f8e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4bad4d347859b95ac176779b34f26f8e">◆ </a></span>loc_levenberg_marquardt_get_JTJ_mu2_I()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void loc_levenberg_marquardt_get_JTJ_mu2_I </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mu</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ_mu2_I</em>[3][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]) </td> + <td class="paramname"><em>jacobian_get_JTJ</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the matrix <img class="formulaInl" alt="$ J_f^{T} J_f + \mu^{(i)})^{2} I $" src="form_59.png"/>. </p> +<dl class="section note"><dt>Note</dt><dd>This function is optimized for localization algorithms.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>a position to adjust. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>pointer to the measured data. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">mu</td><td><img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/>-parameter </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">JTJ_mu2_I[][]</td><td>includes the matrix <img class="formulaInl" alt="$ J_f^{T} J_f + \mu^{(i)})^{2} I $" src="form_59.png"/>. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*jacobian_get_JTJ)</td><td>pointer to the function that calculates the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00236">236</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, and <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="a34f52d51278453ca0fc0818a1f73a357"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a34f52d51278453ca0fc0818a1f73a357">◆ </a></span>loc_levenberg_marquardt_get_mu0()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> loc_levenberg_marquardt_get_mu0 </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tau</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[3][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the initial value <img class="formulaInl" alt="$ \mu_0 $" src="form_57.png"/> of the Levenberg–Marquardt (LVM) algorithm. </p> +<p>The user should provide a pointer to the matrix <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/>.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">tau</td><td><img class="formulaInl" alt="$ \tau $" src="form_52.png"/> factor. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">JTJ[][]</td><td>pointer to the matrix <img class="formulaInl" alt="$ J_f^T J_f $" src="form_58.png"/>.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd><img class="formulaInl" alt="$ \rho_{\mu} $" src="form_56.png"/>-parameter </dd></dl> + +<p class="definition">Definition at line <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00223">223</a> of file <a class="el" href="loc__levenberg__marquardt_8c_source.html">loc_levenberg_marquardt.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_05fcd006305b35cd419f9fa0533f5c7b.html">include</a></li><li class="navelem"><a class="el" href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/loc__levenberg__marquardt_8h.js b/doc/doxygen/html/loc__levenberg__marquardt_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..6dcbfd634632a3d667fc6cb86067ac42c18e3d7e --- /dev/null +++ b/doc/doxygen/html/loc__levenberg__marquardt_8h.js @@ -0,0 +1,7 @@ +var loc__levenberg__marquardt_8h = +[ + [ "loc_levenberg_marquardt", "loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f", null ], + [ "loc_levenberg_marquardt_correction", "loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6", null ], + [ "loc_levenberg_marquardt_get_JTJ_mu2_I", "loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e", null ], + [ "loc_levenberg_marquardt_get_mu0", "loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/loc__levenberg__marquardt_8h_source.html b/doc/doxygen/html/loc__levenberg__marquardt_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..212fd57fee36d8abb4d03c465801bc0917567976 --- /dev/null +++ b/doc/doxygen/html/loc__levenberg__marquardt_8h_source.html @@ -0,0 +1,199 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: loc_levenberg_marquardt.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('loc__levenberg__marquardt_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">loc_levenberg_marquardt.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="loc__levenberg__marquardt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef LOC_LEVENBERG_MARQUARDT_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define LOC_LEVENBERG_MARQUARDT_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> uint8_t <a class="code" href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_pos[3],</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0,</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1, uint8_t max_iter_num,</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_pos[3],</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordtype">void</span> (*f_i)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]),</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3],</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]),</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">void</span> (*jacobian_get_JTf)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3],</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]),</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordtype">void</span> (*jacobian_get_J_mul_s)(uint8_t ref_points_num,</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[][3],</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  );</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num],</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">void</span> (*f_i)(uint8_t ref_point_num,</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[ref_points_num][3],</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]),</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]),</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">void</span> (*jacobian_get_JTf)(</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]),</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">void</span> (*jacobian_get_J_mul_s)(</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  );</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt_get_mu0</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">//compute: J'J + mu^2*I</span></div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">void</span> <a class="code" href="loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_data_vec[ref_points_num], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mu,</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ_mu2_I[3][3],</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordtype">void</span> (*jacobian_get_JTJ)(</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  uint8_t ref_points_num,</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> data_vec[ref_points_num],</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  );</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#endif </span><span class="comment">/* LOC_LEVENBERG_MARQUARDT_H_*/</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html_a34f52d51278453ca0fc0818a1f73a357"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357">loc_levenberg_marquardt_get_mu0</a></div><div class="ttdeci">matrix_t loc_levenberg_marquardt_get_mu0(matrix_t tau, matrix_t JTJ[3][3])</div><div class="ttdoc">Compute the initial value of the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00223">loc_levenberg_marquardt.c:223</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html_a09fdd720ff5c5658e160657153ee615f"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a></div><div class="ttdeci">uint8_t loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt.c:126</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html_a9b2c27f650c9db97f2923b645a8ca5f6"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6">loc_levenberg_marquardt_correction</a></div><div class="ttdeci">matrix_t loc_levenberg_marquardt_correction(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t s[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]))</div><div class="ttdoc">Implements the correction-function of the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt.c:34</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html_a4bad4d347859b95ac176779b34f26f8e"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e">loc_levenberg_marquardt_get_JTJ_mu2_I</a></div><div class="ttdeci">void loc_levenberg_marquardt_get_JTJ_mu2_I(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]))</div><div class="ttdoc">Compute the matrix .</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00236">loc_levenberg_marquardt.c:236</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_05fcd006305b35cd419f9fa0533f5c7b.html">include</a></li><li class="navelem"><a class="el" href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp_8c.html b/doc/doxygen/html/lu__decomp_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..18beffa93604d2829c207064c1371bce3c5101b6 --- /dev/null +++ b/doc/doxygen/html/lu__decomp_8c.html @@ -0,0 +1,190 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">lu_decomp.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Computes the LU decomposition of the matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <float.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="lu__decomp_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a8649e9f4b85f17bf35a22b18e7f239d7"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> P[][n])</td></tr> +<tr class="memdesc:a8649e9f4b85f17bf35a22b18e7f239d7"><td class="mdescLeft"> </td><td class="mdescRight">Computes the LU decomposition of the matrix. <a href="lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7">More...</a><br /></td></tr> +<tr class="separator:a8649e9f4b85f17bf35a22b18e7f239d7"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Computes the LU decomposition of the matrix. </p> +<p>Computes the permutation matrix P such that: A = P'*L*U, where L is a lower triangular matrix and U is an upper triangular matrix. It implements the Gaussian Elimination (GE) with pivoting algorithm.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="lu__decomp_8c_source.html">lu_decomp.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a8649e9f4b85f17bf35a22b18e7f239d7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8649e9f4b85f17bf35a22b18e7f239d7">◆ </a></span>lu_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t lu_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>L</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>P</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the LU decomposition of the matrix. </p> +<p>Computes the permutation matrix P such that: A = P'*L*U, where L is a lower triangular matrix and U is an upper triangular matrix. It implements the Gaussian Elimination with pivoting algorithm.</p> +<dl class="section note"><dt>Note</dt><dd>Matrix U is stored in the matrix A.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrices A and U. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">L[][]</td><td>pointer to the L matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">P[][]</td><td>pointer to the P matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the number of changes by computing the LU decomposition. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="lu__decomp_8c_source.html#l00031">31</a> of file <a class="el" href="lu__decomp_8c_source.html">lu_decomp.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00703">matrix_get_abs_max_elem_and_index_in_part_column()</a>, <a class="el" href="matrix_8c_source.html#l00594">matrix_get_diag_mat()</a>, <a class="el" href="matrix_8c_source.html#l00736">matrix_part_swap_rows()</a>, <a class="el" href="matrix_8c_source.html#l00725">matrix_swap_rows()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp__test_8c_source.html#l00029">lu_decomp_test()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="lu__decomp_8c.html">lu_decomp.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp_8c.js b/doc/doxygen/html/lu__decomp_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..44924af27325845829704b86143f60ac80924b49 --- /dev/null +++ b/doc/doxygen/html/lu__decomp_8c.js @@ -0,0 +1,4 @@ +var lu__decomp_8c = +[ + [ "lu_decomp", "lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/lu__decomp_8c_source.html b/doc/doxygen/html/lu__decomp_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..48ad41a7737e5cb7c6b4e0f2bd48c3879e706bea --- /dev/null +++ b/doc/doxygen/html/lu__decomp_8c_source.html @@ -0,0 +1,184 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">lu_decomp.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="lu__decomp_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// U will be saved in A</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7"> 31</a></span> uint8_t <a class="code" href="lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> P[][n])</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> abs_max_col_elem;</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t k;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  uint8_t pivot_index;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  uint8_t changes;</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipliers_vec[n - 1];</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a>(n, n, 1, L);</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a>(n, n, 1, P);</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  changes = 0;</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < n - 1; i++) {</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  abs_max_col_elem =</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a>(</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  n, n, A, i, i, &k);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (abs_max_col_elem <= FLT_EPSILON) {</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">continue</span>;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  }</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  pivot_index = k;</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">if</span> (pivot_index != i) {</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">//Swap the rows at the position i and pivot_index of the matrix A(i, i:n)</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a>(n, A, i, k, i, n - 1);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">//Swap the matrix P at the rows i and pivot_index</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a>(n, P, i, k);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">//Swap the rows of L in columns 0 through i-1. //FIXED</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">if</span> (i >= 1) {</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a>(n, L, i, k, 0, i - 1);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  changes++;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  } <span class="comment">//if</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">for</span> (uint8_t j = i + 1; j < n; j++) {</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">//compute multipliers</span></div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  multipliers_vec[j - 1] = A[j][i] / A[i][i];</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">//update the matrix A</span></div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">for</span> (uint8_t l = i + 1; l < n; l++) {</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  A[j][l] = A[j][l]</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  - multipliers_vec[j - 1]</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  * A[i][l];</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">//zero out the elements of column i, from row i+1 to n-1.</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  A[j][i] = 0;</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// Set the matrix L with the multipliers</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  L[j][i] = multipliers_vec[j - 1];</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  } <span class="comment">//for</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> changes;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_a875d6c55a16ee9f8bf523b8c1c82bc6f"><div class="ttname"><a href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a></div><div class="ttdeci">void matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j)</div><div class="ttdoc">Swaps two rows of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00725">matrix.c:725</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a18e47742f1653dcc4491badfe2537a0a"><div class="ttname"><a href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a></div><div class="ttdeci">void matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n])</div><div class="ttdoc">Create a diagonal matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00594">matrix.c:594</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a3570c016691507c003dd7a54cb37e7e2"><div class="ttname"><a href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a></div><div class="ttdeci">void matrix_part_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end)</div><div class="ttdoc">Swaps two rows of a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00736">matrix.c:736</a></div></div> +<div class="ttc" id="amatrix_8h_html_a5f6a1948ec005cff4985559821c4943f"><div class="ttname"><a href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a></div><div class="ttdeci">matrix_t matrix_get_abs_max_elem_and_index_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index)</div><div class="ttdoc">Get the maximum absolute value and its position in a column vector in a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00703">matrix.c:703</a></div></div> +<div class="ttc" id="alu__decomp_8c_html_a8649e9f4b85f17bf35a22b18e7f239d7"><div class="ttname"><a href="lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a></div><div class="ttdeci">uint8_t lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n])</div><div class="ttdoc">Computes the LU decomposition of the matrix.</div><div class="ttdef"><b>Definition:</b> <a href="lu__decomp_8c_source.html#l00031">lu_decomp.c:31</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="lu__decomp_8c.html">lu_decomp.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp_8h.html b/doc/doxygen/html/lu__decomp_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..8f0299f1bce45d30c7b093fcc72ad890a6833cc8 --- /dev/null +++ b/doc/doxygen/html/lu__decomp_8h.html @@ -0,0 +1,187 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">lu_decomp.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__matrix__decompositions.html">MATRIX_DECOMPOSITIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Computes the LU decomposition of the matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="lu__decomp_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a8649e9f4b85f17bf35a22b18e7f239d7"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> P[][n])</td></tr> +<tr class="memdesc:a8649e9f4b85f17bf35a22b18e7f239d7"><td class="mdescLeft"> </td><td class="mdescRight">Computes the LU decomposition of the matrix. <a href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">More...</a><br /></td></tr> +<tr class="separator:a8649e9f4b85f17bf35a22b18e7f239d7"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Computes the LU decomposition of the matrix. </p> +<p>Computes the permutation matrix P such that: A = P'*L*U, where L is a lower triangular matrix and U is an upper triangular matrix. It implements the Gaussian Elimination (GE) with pivoting algorithm.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="lu__decomp_8h_source.html">lu_decomp.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a8649e9f4b85f17bf35a22b18e7f239d7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8649e9f4b85f17bf35a22b18e7f239d7">◆ </a></span>lu_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t lu_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>L</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>P</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the LU decomposition of the matrix. </p> +<p>Computes the permutation matrix P such that: A = P'*L*U, where L is a lower triangular matrix and U is an upper triangular matrix. It implements the Gaussian Elimination with pivoting algorithm.</p> +<dl class="section note"><dt>Note</dt><dd>Matrix U is stored in the matrix A.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrices A and U. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">L[][]</td><td>pointer to the L matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">P[][]</td><td>pointer to the P matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the number of changes by computing the LU decomposition. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="lu__decomp_8c_source.html#l00031">31</a> of file <a class="el" href="lu__decomp_8c_source.html">lu_decomp.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00703">matrix_get_abs_max_elem_and_index_in_part_column()</a>, <a class="el" href="matrix_8c_source.html#l00594">matrix_get_diag_mat()</a>, <a class="el" href="matrix_8c_source.html#l00736">matrix_part_swap_rows()</a>, <a class="el" href="matrix_8c_source.html#l00725">matrix_swap_rows()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp__test_8c_source.html#l00029">lu_decomp_test()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="lu__decomp_8h.html">lu_decomp.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp_8h.js b/doc/doxygen/html/lu__decomp_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..809f70c155272ba7bd543c6be72fca9d02351d60 --- /dev/null +++ b/doc/doxygen/html/lu__decomp_8h.js @@ -0,0 +1,4 @@ +var lu__decomp_8h = +[ + [ "lu_decomp", "lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/lu__decomp_8h_source.html b/doc/doxygen/html/lu__decomp_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..b09732e1ccea3e2b840adc478f9449118f4bf87e --- /dev/null +++ b/doc/doxygen/html/lu__decomp_8h_source.html @@ -0,0 +1,125 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">lu_decomp.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="lu__decomp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef LU_DECOMP_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define LU_DECOMP_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> uint8_t <a class="code" href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> P[][n]);</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#endif </span><span class="comment">/*LU_DECOMP_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="alu__decomp_8h_html_a8649e9f4b85f17bf35a22b18e7f239d7"><div class="ttname"><a href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a></div><div class="ttdeci">uint8_t lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n])</div><div class="ttdoc">Computes the LU decomposition of the matrix.</div><div class="ttdef"><b>Definition:</b> <a href="lu__decomp_8c_source.html#l00031">lu_decomp.c:31</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="lu__decomp_8h.html">lu_decomp.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp__test_8c.html b/doc/doxygen/html/lu__decomp__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..9b6460a62a81747e26a9afd45f115d225ed5ddee --- /dev/null +++ b/doc/doxygen/html/lu__decomp__test_8c.html @@ -0,0 +1,129 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">lu_decomp_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the LU algorithm with pivoting. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="lu__decomp_8h_source.html">lu_decomp.h</a>"</code><br /> +</div> +<p><a href="lu__decomp__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a5798fee8a59a44f3a6a712ffd700dfd1"><td class="memItemLeft" align="right" valign="top"><a id="a5798fee8a59a44f3a6a712ffd700dfd1"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test</a> (void)</td></tr> +<tr class="memdesc:a5798fee8a59a44f3a6a712ffd700dfd1"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the LU algorithm with pivoting. <br /></td></tr> +<tr class="separator:a5798fee8a59a44f3a6a712ffd700dfd1"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the LU algorithm with pivoting. </p> +<p>LU algorithm with pivoting examples (see the <a class="el" href="lu__decomp_8h.html">Gaussian Elimination with pivoting</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="lu__decomp__test_8c_source.html">lu_decomp_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="lu__decomp__test_8c.html">lu_decomp_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp__test_8c.js b/doc/doxygen/html/lu__decomp__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..fcd70c3973f10a0dfc1c7c5784d20fc042ca8395 --- /dev/null +++ b/doc/doxygen/html/lu__decomp__test_8c.js @@ -0,0 +1,4 @@ +var lu__decomp__test_8c = +[ + [ "lu_decomp_test", "lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/lu__decomp__test_8c_source.html b/doc/doxygen/html/lu__decomp__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..9a4edcd8864062f1d5ac92dba038c124bf8c9f07 --- /dev/null +++ b/doc/doxygen/html/lu__decomp__test_8c_source.html @@ -0,0 +1,181 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">lu_decomp_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="lu__decomp__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="lu__decomp_8h.html">lu_decomp.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1"> 29</a></span> <span class="keywordtype">void</span> <a class="code" href="lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[5][5] = { { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 }, };</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  uint8_t n;</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  n = 5;</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[n][n];</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> P[n][n];</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a>(n, A, L, P);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  printf(<span class="stringliteral">"L = "</span>);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, L, 7, 4);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  printf(<span class="stringliteral">"U = "</span>);</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, A, 7, 4);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  printf(<span class="stringliteral">"P = "</span>);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, P, 7, 4);</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[11][11] = {</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  { 0.4387, 0.6797, 0.5060, 0.2435, 0.9172, 0.1299, 0.2630, 0.9961, 0.2599, 0.1450,</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  0.4173 },</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  { 0.3816, 0.6551, 0.6991, 0.9293, 0.2858, 0.5688, 0.6541, 0.0782, 0.8001, 0.8530,</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  0.0497 },</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  { 0.7655, 0.1626, 0.8909, 0.3500, 0.7572, 0.4694, 0.6892, 0.4427, 0.4314, 0.6221,</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  0.9027 },</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  { 0.7952, 0.1190, 0.9593, 0.1966, 0.7537, 0.0119, 0.7482, 0.1067, 0.9106, 0.3510,</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  0.9448 },</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  { 0.1869, 0.4984, 0.5472, 0.2511, 0.3804, 0.3371, 0.4505, 0.9619, 0.1818, 0.5132,</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  0.4909 },</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  { 0.4898, 0.9597, 0.1386, 0.6160, 0.5678, 0.1622, 0.0838, 0.0046, 0.2638, 0.4018,</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  0.4893 },</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  { 0.4456, 0.3404, 0.1493, 0.4733, 0.0759, 0.7943, 0.2290, 0.7749, 0.1455, 0.0760,</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  0.3377 },</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  { 0.6463, 0.5853, 0.2575, 0.3517, 0.0540, 0.3112, 0.9133, 0.8173, 0.1361, 0.2399,</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  0.9001 },</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  { 0.7094, 0.2238, 0.8407, 0.8308, 0.5308, 0.5285, 0.1524, 0.8687, 0.8693, 0.1233,</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  0.3692 },</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  { 0.7547, 0.7513, 0.2543, 0.5853, 0.7792, 0.1656, 0.8258, 0.0844, 0.5797, 0.1839,</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  0.1112 },</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  { 0.2760, 0.2551, 0.8143, 0.5497, 0.9340, 0.6020, 0.5383, 0.3998, 0.5499, 0.2400,</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  0.7803 }</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  };</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  n = 11;</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L1[n][n];</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> P1[n][n];</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a>(n, B, L1, P1);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  printf(<span class="stringliteral">"L1 = "</span>);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, L1, 7, 4);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  printf(<span class="stringliteral">"U1 = "</span>);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, B, 7, 4);</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  printf(<span class="stringliteral">"P1 = "</span>);</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, n, P1, 7, 4);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="alu__decomp_8h_html"><div class="ttname"><a href="lu__decomp_8h.html">lu_decomp.h</a></div><div class="ttdoc">Computes the LU decomposition of the matrix.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="alu__decomp__test_8c_html_a5798fee8a59a44f3a6a712ffd700dfd1"><div class="ttname"><a href="lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test</a></div><div class="ttdeci">void lu_decomp_test(void)</div><div class="ttdoc">Examples of the LU algorithm with pivoting.</div><div class="ttdef"><b>Definition:</b> <a href="lu__decomp__test_8c_source.html#l00029">lu_decomp_test.c:29</a></div></div> +<div class="ttc" id="alu__decomp_8h_html_a8649e9f4b85f17bf35a22b18e7f239d7"><div class="ttname"><a href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a></div><div class="ttdeci">uint8_t lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n])</div><div class="ttdoc">Computes the LU decomposition of the matrix.</div><div class="ttdef"><b>Definition:</b> <a href="lu__decomp_8c_source.html#l00031">lu_decomp.c:31</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="lu__decomp__test_8c.html">lu_decomp_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp__test_8h.html b/doc/doxygen/html/lu__decomp__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..34969f5e0ab96f1fc616ca82868837ed0029cd2d --- /dev/null +++ b/doc/doxygen/html/lu__decomp__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">lu_decomp_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the LU algorithm with pivoting. +<a href="#details">More...</a></p> + +<p><a href="lu__decomp__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a5798fee8a59a44f3a6a712ffd700dfd1"><td class="memItemLeft" align="right" valign="top"><a id="a5798fee8a59a44f3a6a712ffd700dfd1"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test</a> (void)</td></tr> +<tr class="memdesc:a5798fee8a59a44f3a6a712ffd700dfd1"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the LU algorithm with pivoting. <br /></td></tr> +<tr class="separator:a5798fee8a59a44f3a6a712ffd700dfd1"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the LU algorithm with pivoting. </p> +<p>LU algorithm with pivoting examples (see the <a class="el" href="lu__decomp_8h.html">Gaussian Elimination with pivoting</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="lu__decomp__test_8h_source.html">lu_decomp_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="lu__decomp__test_8h.html">lu_decomp_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/lu__decomp__test_8h.js b/doc/doxygen/html/lu__decomp__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..e75a895648f6123541717c9ffbba72b4814d3bee --- /dev/null +++ b/doc/doxygen/html/lu__decomp__test_8h.js @@ -0,0 +1,4 @@ +var lu__decomp__test_8h = +[ + [ "lu_decomp_test", "lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/lu__decomp__test_8h_source.html b/doc/doxygen/html/lu__decomp__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..605ebf95d0b5ea2d560f61bf056a4a90d57d2195 --- /dev/null +++ b/doc/doxygen/html/lu__decomp__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: lu_decomp_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('lu__decomp__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">lu_decomp_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="lu__decomp__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef LU_DECOMP_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define LU_DECOMP_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif </span><span class="comment">/* LU_DECOMP_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="alu__decomp__test_8h_html_a5798fee8a59a44f3a6a712ffd700dfd1"><div class="ttname"><a href="lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1">lu_decomp_test</a></div><div class="ttdeci">void lu_decomp_test(void)</div><div class="ttdoc">Examples of the LU algorithm with pivoting.</div><div class="ttdef"><b>Definition:</b> <a href="lu__decomp__test_8c_source.html#l00029">lu_decomp_test.c:29</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="lu__decomp__test_8h.html">lu_decomp_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__fi_8c.html b/doc/doxygen/html/magnetic__based__fi_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..0238cd137985c8265a964698e07717ca80452b02 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__fi_8c.html @@ -0,0 +1,196 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_fi.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__fi_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_fi.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Error function of DC-pulsed, magnetic localization system. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include <<a class="el" href="magnetic__based__position_8h_source.html">magnetic_based_position.h</a>></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="magnetic__based__fi_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a897f5c675ad714feb9f2ae7571de620a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[])</td></tr> +<tr class="memdesc:a897f5c675ad714feb9f2ae7571de620a"><td class="mdescLeft"> </td><td class="mdescRight">Defines the error function of a magnetic-based localization system. <a href="magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a">More...</a><br /></td></tr> +<tr class="separator:a897f5c675ad714feb9f2ae7571de620a"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Error function of DC-pulsed, magnetic localization system. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__fi_8c_source.html">magnetic_based_fi.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a897f5c675ad714feb9f2ae7571de620a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a897f5c675ad714feb9f2ae7571de620a">◆ </a></span>magnetic_based_f_i()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_f_i </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Bi_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines the error function of a magnetic-based localization system. </p> +<p>This error function is related to multiple reference stations.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">Bi_vec[]</td><td>the measured magnetic field strength. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">f_vec[]</td><td>errors related to reference stations and destined position. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__fi_8c_source.html#l00029">29</a> of file <a class="el" href="magnetic__based__fi_8c_source.html">magnetic_based_fi.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__position_8h_source.html#l00075">K_T</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian_get_JTf()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__fi_8c.html">magnetic_based_fi.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__fi_8c.js b/doc/doxygen/html/magnetic__based__fi_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..7ca26f2fa1bd76f95cc9702470ab44407851526a --- /dev/null +++ b/doc/doxygen/html/magnetic__based__fi_8c.js @@ -0,0 +1,4 @@ +var magnetic__based__fi_8c = +[ + [ "magnetic_based_f_i", "magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__fi_8c_source.html b/doc/doxygen/html/magnetic__based__fi_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..4a0eb9fa8e07e62119775efd04d3de741b219df0 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__fi_8c_source.html @@ -0,0 +1,141 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_fi.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__fi_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_fi.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__fi_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="magnetic__based__position_8h.html">magnetic_based_position.h</a>></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a"> 29</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[][3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[],</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[])</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < ref_points_num; i++) {</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> X_Xi_sq = pow(point[0] - ref_points_matrix[i][0], 2);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Y_Yi_sq = pow(point[1] - ref_points_matrix[i][1], 2);</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Z_Zi_sq = pow(point[2] - ref_points_matrix[i][2], 2);</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  f_vec[i] = (<a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a> * (sqrt(X_Xi_sq + Y_Yi_sq + 4.0 * Z_Zi_sq)) /</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  pow((X_Xi_sq + Y_Yi_sq + Z_Zi_sq), 2))</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  - Bi_vec[i];</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amagnetic__based__position_8h_html"><div class="ttname"><a href="magnetic__based__position_8h.html">magnetic_based_position.h</a></div><div class="ttdoc">Functions of of DC-pulsed, magnetic localization system.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amagnetic__based__fi_8c_html_a897f5c675ad714feb9f2ae7571de620a"><div class="ttname"><a href="magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a></div><div class="ttdeci">void magnetic_based_f_i(uint8_t ref_points_num, matrix_t ref_points_matrix[][3], matrix_t point[], matrix_t Bi_vec[], matrix_t f_vec[])</div><div class="ttdoc">Defines the error function of a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__fi_8c_source.html#l00029">magnetic_based_fi.c:29</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_a3ee4ec231172a5fd866f72acead15bc4"><div class="ttname"><a href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a></div><div class="ttdeci">#define K_T</div><div class="ttdoc">The number of turns of the wire.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8h_source.html#l00075">magnetic_based_position.h:75</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__fi_8c.html">magnetic_based_fi.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__fi_8h.html b/doc/doxygen/html/magnetic__based__fi_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..b4d8c5728a3d31b08a727eaa45458084aadef5b4 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__fi_8h.html @@ -0,0 +1,195 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_fi.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__fi_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_fi.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__magnetic__based.html">MAGNETIC_BASED</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Error function of DC-pulsed, magnetic localization system. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="magnetic__based__fi_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a897f5c675ad714feb9f2ae7571de620a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[])</td></tr> +<tr class="memdesc:a897f5c675ad714feb9f2ae7571de620a"><td class="mdescLeft"> </td><td class="mdescRight">Defines the error function of a magnetic-based localization system. <a href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">More...</a><br /></td></tr> +<tr class="separator:a897f5c675ad714feb9f2ae7571de620a"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Error function of DC-pulsed, magnetic localization system. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__fi_8h_source.html">magnetic_based_fi.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a897f5c675ad714feb9f2ae7571de620a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a897f5c675ad714feb9f2ae7571de620a">◆ </a></span>magnetic_based_f_i()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_f_i </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Bi_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines the error function of a magnetic-based localization system. </p> +<p>This error function is related to multiple reference stations.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">Bi_vec[]</td><td>the measured magnetic field strength. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">f_vec[]</td><td>errors related to reference stations and destined position. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__fi_8c_source.html#l00029">29</a> of file <a class="el" href="magnetic__based__fi_8c_source.html">magnetic_based_fi.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__position_8h_source.html#l00075">K_T</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian_get_JTf()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__fi_8h.html">magnetic_based_fi.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__fi_8h.js b/doc/doxygen/html/magnetic__based__fi_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..1a34b5a989c0a6c5b9a66a4b0031b5c295d1643b --- /dev/null +++ b/doc/doxygen/html/magnetic__based__fi_8h.js @@ -0,0 +1,4 @@ +var magnetic__based__fi_8h = +[ + [ "magnetic_based_f_i", "magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__fi_8h_source.html b/doc/doxygen/html/magnetic__based__fi_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..20b443c59ff8be8cdfce93de69abb80099197f99 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__fi_8h_source.html @@ -0,0 +1,128 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_fi.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__fi_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_fi.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__fi_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef MAGNETIC_BASED_F_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define MAGNETIC_BASED_F_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a>(uint8_t ref_points_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[][3],</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[]);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif </span><span class="comment">/* MAGNETIC_BASED_F_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amagnetic__based__fi_8h_html_a897f5c675ad714feb9f2ae7571de620a"><div class="ttname"><a href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a></div><div class="ttdeci">void magnetic_based_f_i(uint8_t ref_points_num, matrix_t ref_points_matrix[][3], matrix_t point[], matrix_t Bi_vec[], matrix_t f_vec[])</div><div class="ttdoc">Defines the error function of a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__fi_8c_source.html#l00029">magnetic_based_fi.c:29</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__fi_8h.html">magnetic_based_fi.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__jacobian_8c.html b/doc/doxygen/html/magnetic__based__jacobian_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..edf38798693ca07cfd64c0297d86260a9aac862c --- /dev/null +++ b/doc/doxygen/html/magnetic__based__jacobian_8c.html @@ -0,0 +1,389 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_jacobian.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__jacobian_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_jacobian.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Jacobian function of DC-pulsed, magnetic localization system. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include <stdlib.h></code><br /> +<code>#include "<a class="el" href="magnetic__based__fi_8h_source.html">magnetic_based_fi.h</a>"</code><br /> +<code>#include "<a class="el" href="magnetic__based__position_8h_source.html">magnetic_based_position.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="magnetic__based__jacobian_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ac3aca0a9af6ad84f6c010a215239f224"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a> (uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_point_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_point_num][3])</td></tr> +<tr class="memdesc:ac3aca0a9af6ad84f6c010a215239f224"><td class="mdescLeft"> </td><td class="mdescRight">Computes the Jacobian matrix of magnetic-based localization system. <a href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">More...</a><br /></td></tr> +<tr class="separator:ac3aca0a9af6ad84f6c010a215239f224"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa66e6f52fd806c36f4b735b7c4c3307e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian_get_JTJ</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> *unused, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</td></tr> +<tr class="memdesc:aa66e6f52fd806c36f4b735b7c4c3307e"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of magnetic-based localization system. <a href="magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e">More...</a><br /></td></tr> +<tr class="separator:aa66e6f52fd806c36f4b735b7c4c3307e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a87f1c7a7d6b151883c2308de275269b8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian_get_JTf</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3])</td></tr> +<tr class="memdesc:a87f1c7a7d6b151883c2308de275269b8"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of magnetic-based localization system. <a href="magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8">More...</a><br /></td></tr> +<tr class="separator:a87f1c7a7d6b151883c2308de275269b8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae1e7849d86970a33ef5b784705ebc2fc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian_get_J_mul_s</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</td></tr> +<tr class="memdesc:ae1e7849d86970a33ef5b784705ebc2fc"><td class="mdescLeft"> </td><td class="mdescRight">Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of magnetic-based localization system. <a href="magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc">More...</a><br /></td></tr> +<tr class="separator:ae1e7849d86970a33ef5b784705ebc2fc"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Jacobian function of DC-pulsed, magnetic localization system. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ac3aca0a9af6ad84f6c010a215239f224"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac3aca0a9af6ad84f6c010a215239f224">◆ </a></span>magnetic_based_jacobian_get_J()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_J </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_point_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_point_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[ref_point_num][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the Jacobian matrix of magnetic-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">J[][]</td><td>includes the Jacobian Matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00032">32</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__position_8h_source.html#l00075">K_T</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian_get_JTf()</a>, and <a class="el" href="magnetic__based__jacobian_8c_source.html#l00099">magnetic_based_jacobian_get_JTJ()</a>.</p> + +</div> +</div> +<a id="ae1e7849d86970a33ef5b784705ebc2fc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae1e7849d86970a33ef5b784705ebc2fc">◆ </a></span>magnetic_based_jacobian_get_J_mul_s()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_J_mul_s </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>s</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J_s</em>[ref_points_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of magnetic-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">s[]</td><td>correction vector. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">J_s[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00130">130</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__position_8h_source.html#l00075">K_T</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a87f1c7a7d6b151883c2308de275269b8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a87f1c7a7d6b151883c2308de275269b8">◆ </a></span>magnetic_based_jacobian_get_JTf()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_JTf </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Bi_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTf</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of magnetic-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">Bi_vec[]</td><td>magnetic field strengths of the coils (reference stations). </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">JTf[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">112</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__fi_8c_source.html#l00029">magnetic_based_f_i()</a>, <a class="el" href="magnetic__based__jacobian_8c_source.html#l00032">magnetic_based_jacobian_get_J()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>.</p> + +</div> +</div> +<a id="aa66e6f52fd806c36f4b735b7c4c3307e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa66e6f52fd806c36f4b735b7c4c3307e">◆ </a></span>magnetic_based_jacobian_get_JTJ()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_JTJ </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> * </td> + <td class="paramname"><em>unused</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[3][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of magnetic-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">unused</td><td>this variable can be set to NULL. It is introduced to guarantee the compatibility with the <a class="el" href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a>, <a class="el" href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>, and the <a class="el" href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a> functions. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">JTJ[][]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00099">99</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__jacobian_8c_source.html#l00032">magnetic_based_jacobian_get_J()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__jacobian_8c.html">magnetic_based_jacobian.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__jacobian_8c.js b/doc/doxygen/html/magnetic__based__jacobian_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..9b7ab45a4926f5df0a7e0a36e6ce1cf883c5a3e0 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__jacobian_8c.js @@ -0,0 +1,7 @@ +var magnetic__based__jacobian_8c = +[ + [ "magnetic_based_jacobian_get_J", "magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224", null ], + [ "magnetic_based_jacobian_get_J_mul_s", "magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc", null ], + [ "magnetic_based_jacobian_get_JTf", "magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8", null ], + [ "magnetic_based_jacobian_get_JTJ", "magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__jacobian_8c_source.html b/doc/doxygen/html/magnetic__based__jacobian_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..d3d8458f57862388f6c11aadc226665a6afdefef --- /dev/null +++ b/doc/doxygen/html/magnetic__based__jacobian_8c_source.html @@ -0,0 +1,303 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_jacobian.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__jacobian_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_jacobian.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__jacobian_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdlib.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="magnetic__based__fi_8h.html">magnetic_based_fi.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="magnetic__based__position_8h.html">magnetic_based_position.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224"> 32</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a>(uint8_t ref_point_num,</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_point_num][3],</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[],</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_point_num][3])</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < ref_point_num; i++) {</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> X_Xi = point[0] - ref_point_matrix[i][0];</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Y_Yi = point[1] - ref_point_matrix[i][1];</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Z_Zi = point[2] - ref_point_matrix[i][2];</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> X_Xi_sq = pow(X_Xi, 2);</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Y_Yi_sq = pow(Y_Yi, 2);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Z_Zi_sq = pow(Z_Zi, 2);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  J[i][0] =</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a> * (X_Xi)</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  * ((-3.0 * X_Xi_sq</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  - 3.0 * Y_Yi_sq</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  - 15.0 * Z_Zi_sq)</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  /</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  (sqrt(</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  X_Xi_sq</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  + 4.0</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  * Z_Zi_sq)</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  * pow(</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  (X_Xi_sq</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  + Z_Zi_sq),</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  3)));</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  J[i][1] =</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a> * (Y_Yi)</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  * ((-3.0 * X_Xi_sq</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  - 3.0 * Y_Yi_sq</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  - 15.0 * Z_Zi_sq)</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  /</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  (sqrt(</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  X_Xi_sq</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  + 4.0</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  * Z_Zi_sq)</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  * pow(</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  (X_Xi_sq</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  + Z_Zi_sq),</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  3)));</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  J[i][2] =</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  4.0 * <a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a> * (Z_Zi)</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  * ((-3.0 * Z_Zi_sq)</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  /</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  (sqrt(</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  X_Xi_sq</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  + 4.0</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  * Z_Zi_sq)</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  * pow(</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  (X_Xi_sq</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  + Z_Zi_sq),</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  3)));</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e"> 99</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian_get_JTJ</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> *unused, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> {</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_points_num][3];</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a>(ref_points_num, ref_point_matrix, point,</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  J);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a>(ref_points_num, 3, J, JTJ);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  (void)unused;</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> +<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8"> 112</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian_get_JTf</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[ref_points_num],</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3])</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_points_num][3];</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_vec[ref_points_num];</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a>(ref_points_num, ref_points_matrix, point, Bi_vec,</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  f_vec);</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a>(ref_points_num, ref_points_matrix, point,</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  J);</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(ref_points_num, 3, J, ref_points_num, f_vec, JTf);</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> }</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">//compute: J(x)*s</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc"> 130</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian_get_J_mul_s</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3],</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> {</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  uint8_t i;</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> X_Xi, Y_Yi, Z_Zi;</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> X_Xi_sq, Y_Yi_sq, Z_Zi_sq;</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> j_i_0, j_i_1, j_i_2;</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">for</span> (i = 0; i < ref_points_num; i++) {</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  X_Xi = point[0] - ref_point_matrix[i][0];</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  Y_Yi = point[1] - ref_point_matrix[i][1];</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  Z_Zi = point[2] - ref_point_matrix[i][2];</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  X_Xi_sq = pow(X_Xi, 2);</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  Y_Yi_sq = pow(Y_Yi, 2);</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  Z_Zi_sq = pow(Z_Zi, 2);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  j_i_0 =</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a> * (X_Xi)</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  * ((-3.0 * X_Xi_sq</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  - 3.0 * Y_Yi_sq</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  - 15.0 * Z_Zi_sq)</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  /</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  (sqrt(</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  X_Xi_sq</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  + 4.0</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  * Z_Zi_sq)</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  * pow(</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  (X_Xi_sq</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  + Z_Zi_sq),</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  3)));</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  j_i_1 =</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a> * (Y_Yi)</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  * ((-3.0 * X_Xi_sq</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  - 3.0 * Y_Yi_sq</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  - 15.0 * Z_Zi_sq)</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  /</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  (sqrt(</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  X_Xi_sq</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  + 4.0</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  * Z_Zi_sq)</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  * pow(</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  (X_Xi_sq</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  + Z_Zi_sq),</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  3)));</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  j_i_2 =</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  4.0 * <a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a> * (Z_Zi)</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  * ((-3.0 * Z_Zi_sq)</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  /</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  (sqrt(</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  X_Xi_sq</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  + 4.0</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  * Z_Zi_sq)</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  * pow(</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  (X_Xi_sq</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  + Y_Yi_sq</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  + Z_Zi_sq),</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  3)));</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  J_s[i] = j_i_0 * s[0] + j_i_1 * s[1] + j_i_2 * s[2];</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_a0107887a6c40980fa639750be8262f01"><div class="ttname"><a href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a></div><div class="ttdeci">void matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n])</div><div class="ttdoc">Compute the multiplication of the transpose of a matrix with itself.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00545">matrix.c:545</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html"><div class="ttname"><a href="magnetic__based__position_8h.html">magnetic_based_position.h</a></div><div class="ttdoc">Functions of of DC-pulsed, magnetic localization system.</div></div> +<div class="ttc" id="amatrix_8h_html_a53b0a1829b2085414fb66a9e9bd6c7b7"><div class="ttname"><a href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a></div><div class="ttdeci">void matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n])</div><div class="ttdoc">Compute the multiplication of transposed matrix with column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00511">matrix.c:511</a></div></div> +<div class="ttc" id="amagnetic__based__fi_8h_html"><div class="ttname"><a href="magnetic__based__fi_8h.html">magnetic_based_fi.h</a></div><div class="ttdoc">Error function of DC-pulsed, magnetic localization system.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amagnetic__based__jacobian_8c_html_aa66e6f52fd806c36f4b735b7c4c3307e"><div class="ttname"><a href="magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian_get_JTJ</a></div><div class="ttdeci">void magnetic_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t *unused, matrix_t JTJ[3][3])</div><div class="ttdoc">Defines of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00099">magnetic_based_jacobian.c:99</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_a3ee4ec231172a5fd866f72acead15bc4"><div class="ttname"><a href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a></div><div class="ttdeci">#define K_T</div><div class="ttdoc">The number of turns of the wire.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8h_source.html#l00075">magnetic_based_position.h:75</a></div></div> +<div class="ttc" id="amagnetic__based__jacobian_8c_html_ac3aca0a9af6ad84f6c010a215239f224"><div class="ttname"><a href="magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a></div><div class="ttdeci">void magnetic_based_jacobian_get_J(uint8_t ref_point_num, matrix_t ref_point_matrix[ref_point_num][3], matrix_t point[], matrix_t J[ref_point_num][3])</div><div class="ttdoc">Computes the Jacobian matrix of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00032">magnetic_based_jacobian.c:32</a></div></div> +<div class="ttc" id="amagnetic__based__jacobian_8c_html_ae1e7849d86970a33ef5b784705ebc2fc"><div class="ttname"><a href="magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian_get_J_mul_s</a></div><div class="ttdeci">void magnetic_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])</div><div class="ttdoc">Computes of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00130">magnetic_based_jacobian.c:130</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amagnetic__based__fi_8h_html_a897f5c675ad714feb9f2ae7571de620a"><div class="ttname"><a href="magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a">magnetic_based_f_i</a></div><div class="ttdeci">void magnetic_based_f_i(uint8_t ref_points_num, matrix_t ref_points_matrix[][3], matrix_t point[], matrix_t Bi_vec[], matrix_t f_vec[])</div><div class="ttdoc">Defines the error function of a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__fi_8c_source.html#l00029">magnetic_based_fi.c:29</a></div></div> +<div class="ttc" id="amagnetic__based__jacobian_8c_html_a87f1c7a7d6b151883c2308de275269b8"><div class="ttname"><a href="magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian_get_JTf</a></div><div class="ttdeci">void magnetic_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t Bi_vec[ref_points_num], matrix_t JTf[3])</div><div class="ttdoc">Defines of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian.c:112</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__jacobian_8c.html">magnetic_based_jacobian.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__jacobian_8h.html b/doc/doxygen/html/magnetic__based__jacobian_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..6abb51824f6c522e246f1516cd8319cbc8bd7573 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__jacobian_8h.html @@ -0,0 +1,383 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_jacobian.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__jacobian_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_jacobian.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__magnetic__based.html">MAGNETIC_BASED</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Jacobian function of DC-pulsed, magnetic localization system. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="magnetic__based__jacobian_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ac3aca0a9af6ad84f6c010a215239f224"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a> (uint8_t ref_point_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_point_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_point_num][3])</td></tr> +<tr class="memdesc:ac3aca0a9af6ad84f6c010a215239f224"><td class="mdescLeft"> </td><td class="mdescRight">Computes the Jacobian matrix of magnetic-based localization system. <a href="magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224">More...</a><br /></td></tr> +<tr class="separator:ac3aca0a9af6ad84f6c010a215239f224"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa66e6f52fd806c36f4b735b7c4c3307e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian_get_JTJ</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> *unused, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3])</td></tr> +<tr class="memdesc:aa66e6f52fd806c36f4b735b7c4c3307e"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of magnetic-based localization system. <a href="magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e">More...</a><br /></td></tr> +<tr class="separator:aa66e6f52fd806c36f4b735b7c4c3307e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a87f1c7a7d6b151883c2308de275269b8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian_get_JTf</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[ref_points_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3])</td></tr> +<tr class="memdesc:a87f1c7a7d6b151883c2308de275269b8"><td class="mdescLeft"> </td><td class="mdescRight">Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of magnetic-based localization system. <a href="magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8">More...</a><br /></td></tr> +<tr class="separator:a87f1c7a7d6b151883c2308de275269b8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae1e7849d86970a33ef5b784705ebc2fc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian_get_J_mul_s</a> (uint8_t ref_points_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num])</td></tr> +<tr class="memdesc:ae1e7849d86970a33ef5b784705ebc2fc"><td class="mdescLeft"> </td><td class="mdescRight">Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of magnetic-based localization system. <a href="magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc">More...</a><br /></td></tr> +<tr class="separator:ae1e7849d86970a33ef5b784705ebc2fc"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Jacobian function of DC-pulsed, magnetic localization system. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__jacobian_8h_source.html">magnetic_based_jacobian.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ac3aca0a9af6ad84f6c010a215239f224"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac3aca0a9af6ad84f6c010a215239f224">◆ </a></span>magnetic_based_jacobian_get_J()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_J </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_point_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_point_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[ref_point_num][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the Jacobian matrix of magnetic-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">J[][]</td><td>includes the Jacobian Matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00032">32</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__position_8h_source.html#l00075">K_T</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian_get_JTf()</a>, and <a class="el" href="magnetic__based__jacobian_8c_source.html#l00099">magnetic_based_jacobian_get_JTJ()</a>.</p> + +</div> +</div> +<a id="ae1e7849d86970a33ef5b784705ebc2fc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae1e7849d86970a33ef5b784705ebc2fc">◆ </a></span>magnetic_based_jacobian_get_J_mul_s()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_J_mul_s </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>s</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J_s</em>[ref_points_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> of magnetic-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">s[]</td><td>correction vector. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">J_s[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{s} $" src="form_41.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00130">130</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__position_8h_source.html#l00075">K_T</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a87f1c7a7d6b151883c2308de275269b8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a87f1c7a7d6b151883c2308de275269b8">◆ </a></span>magnetic_based_jacobian_get_JTf()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_JTf </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_points_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Bi_vec</em>[ref_points_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTf</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> of magnetic-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">Bi_vec[]</td><td>magnetic field strengths of the coils (reference stations). </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">JTf[]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} \vec{f} $" src="form_38.png"/> vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">112</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__fi_8c_source.html#l00029">magnetic_based_f_i()</a>, <a class="el" href="magnetic__based__jacobian_8c_source.html#l00032">magnetic_based_jacobian_get_J()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>.</p> + +</div> +</div> +<a id="aa66e6f52fd806c36f4b735b7c4c3307e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa66e6f52fd806c36f4b735b7c4c3307e">◆ </a></span>magnetic_based_jacobian_get_JTJ()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_jacobian_get_JTJ </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>ref_points_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[ref_points_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> * </td> + <td class="paramname"><em>unused</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>JTJ</em>[3][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Defines <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> of magnetic-based localization system. </p> +<p>Where <img class="formulaInl" alt="$ J_f $" src="form_39.png"/> is the Jacobian matrix. This function is a part of derivatives to minimize the sum of square errors.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_points_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">unused</td><td>this variable can be set to NULL. It is introduced to guarantee the compatibility with the <a class="el" href="dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a>, <a class="el" href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>, and the <a class="el" href="levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a> functions. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">JTJ[][]</td><td>includes the <img class="formulaInl" alt="$ J_f^{T} J_{f} $" src="form_40.png"/> matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__jacobian_8c_source.html#l00099">99</a> of file <a class="el" href="magnetic__based__jacobian_8c_source.html">magnetic_based_jacobian.c</a>.</p> + +<p class="reference">References <a class="el" href="magnetic__based__jacobian_8c_source.html#l00032">magnetic_based_jacobian_get_J()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__jacobian_8h.html">magnetic_based_jacobian.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__jacobian_8h.js b/doc/doxygen/html/magnetic__based__jacobian_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..85172e5b41474af961893a8d5d30b0cb283c50f0 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__jacobian_8h.js @@ -0,0 +1,7 @@ +var magnetic__based__jacobian_8h = +[ + [ "magnetic_based_jacobian_get_J", "magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224", null ], + [ "magnetic_based_jacobian_get_J_mul_s", "magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc", null ], + [ "magnetic_based_jacobian_get_JTf", "magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8", null ], + [ "magnetic_based_jacobian_get_JTJ", "magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__jacobian_8h_source.html b/doc/doxygen/html/magnetic__based__jacobian_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..d0c92a283d1308d7c0d9d9978ab277273dbe6c91 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__jacobian_8h_source.html @@ -0,0 +1,144 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_jacobian.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__jacobian_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_jacobian.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__jacobian_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef MAGNETIC_BASED_JACOBIAN_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define MAGNETIC_BASED_JACOBIAN_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a>(uint8_t ref_point_num,</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_point_num][3],</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[],</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[ref_point_num][3]);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian_get_JTJ</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> *unused, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTJ[3][3]);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian_get_JTf</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_points_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Bi_vec[ref_points_num],</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JTf[3]);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian_get_J_mul_s</a>(uint8_t ref_points_num,</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[ref_points_num][3],</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3],</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J_s[ref_points_num]);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#endif </span><span class="comment">/* MAGNETIC_BASED_JACOBIAN_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amagnetic__based__jacobian_8h_html_ac3aca0a9af6ad84f6c010a215239f224"><div class="ttname"><a href="magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224">magnetic_based_jacobian_get_J</a></div><div class="ttdeci">void magnetic_based_jacobian_get_J(uint8_t ref_point_num, matrix_t ref_point_matrix[ref_point_num][3], matrix_t point[], matrix_t J[ref_point_num][3])</div><div class="ttdoc">Computes the Jacobian matrix of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00032">magnetic_based_jacobian.c:32</a></div></div> +<div class="ttc" id="amagnetic__based__jacobian_8h_html_aa66e6f52fd806c36f4b735b7c4c3307e"><div class="ttname"><a href="magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e">magnetic_based_jacobian_get_JTJ</a></div><div class="ttdeci">void magnetic_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t *unused, matrix_t JTJ[3][3])</div><div class="ttdoc">Defines of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00099">magnetic_based_jacobian.c:99</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amagnetic__based__jacobian_8h_html_ae1e7849d86970a33ef5b784705ebc2fc"><div class="ttname"><a href="magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc">magnetic_based_jacobian_get_J_mul_s</a></div><div class="ttdeci">void magnetic_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])</div><div class="ttdoc">Computes of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00130">magnetic_based_jacobian.c:130</a></div></div> +<div class="ttc" id="amagnetic__based__jacobian_8h_html_a87f1c7a7d6b151883c2308de275269b8"><div class="ttname"><a href="magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8">magnetic_based_jacobian_get_JTf</a></div><div class="ttdeci">void magnetic_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t Bi_vec[ref_points_num], matrix_t JTf[3])</div><div class="ttdoc">Defines of magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian.c:112</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__jacobian_8h.html">magnetic_based_jacobian.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__position_8c.html b/doc/doxygen/html/magnetic__based__position_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..52b3de92516a3527094ce1e612fc650abd719250 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__position_8c.html @@ -0,0 +1,543 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_position.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__position_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_position.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Functions of of DC-pulsed, magnetic localization system. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <complex.h></code><br /> +<code>#include <<a class="el" href="magnetic__based__position_8h_source.html">magnetic_based_position.h</a>></code><br /> +<code>#include <stdint.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="trilateration_8h_source.html">trilateration.h</a>"</code><br /> +</div> +<p><a href="magnetic__based__position_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ad5a7513337486e277ea028480403569d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[], uint8_t length)</td></tr> +<tr class="memdesc:ad5a7513337486e277ea028480403569d"><td class="mdescLeft"> </td><td class="mdescRight">Computes the absolute error of a position of magnet-based localization system. <a href="magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d">More...</a><br /></td></tr> +<tr class="separator:ad5a7513337486e277ea028480403569d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac852e4c0dcb8e9901aa3fab5efd91599"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3])</td></tr> +<tr class="memdesc:ac852e4c0dcb8e9901aa3fab5efd91599"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distance between a mobile station and a reference station of magnetic-based localization system. <a href="magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599">More...</a><br /></td></tr> +<tr class="separator:ac852e4c0dcb8e9901aa3fab5efd91599"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a361f3f3c4f9516a1aa6107367ebfda8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</td></tr> +<tr class="memdesc:a361f3f3c4f9516a1aa6107367ebfda8d"><td class="mdescLeft"> </td><td class="mdescRight">Computes the magnetic field strength from a mobile station to a reference station. <a href="magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d">More...</a><br /></td></tr> +<tr class="separator:a361f3f3c4f9516a1aa6107367ebfda8d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aac026f28838a5b30c8f6f189e3ab354c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magn_field_vec[])</td></tr> +<tr class="memdesc:aac026f28838a5b30c8f6f189e3ab354c"><td class="mdescLeft"> </td><td class="mdescRight">Computes the magnetic field strengths from a mobile station to various reference stations. <a href="magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c">More...</a><br /></td></tr> +<tr class="separator:aac026f28838a5b30c8f6f189e3ab354c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae584dff239a0111c47b7c5d1e197af59"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_field_strength_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> angular_theta_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> distance_arr[], uint8_t length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</td></tr> +<tr class="memdesc:ae584dff239a0111c47b7c5d1e197af59"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distances between a mobile station and the reference stations of a magnet-based localization system. <a href="magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59">More...</a><br /></td></tr> +<tr class="separator:ae584dff239a0111c47b7c5d1e197af59"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a01bb024303e8eb202a19dbd70b291c06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> theta, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</td></tr> +<tr class="memdesc:a01bb024303e8eb202a19dbd70b291c06"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distance between a mobile station and a reference stations of a magnet-based localization system. <a href="magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06">More...</a><br /></td></tr> +<tr class="separator:a01bb024303e8eb202a19dbd70b291c06"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af316f67cb87759b57bc815326b8d1cef"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:af316f67cb87759b57bc815326b8d1cef"><td class="mdescLeft"> </td><td class="mdescRight">Computes the position of a mobile station by a magnetic-based localization system. <a href="magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef">More...</a><br /></td></tr> +<tr class="separator:af316f67cb87759b57bc815326b8d1cef"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Functions of of DC-pulsed, magnetic localization system. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ad5a7513337486e277ea028480403569d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad5a7513337486e277ea028480403569d">◆ </a></span>magnetic_based_get_absolute_error()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_get_absolute_error </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>approx_value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>absolute_error_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the absolute error of a position of magnet-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">value_arr</td><td>true position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">approx_value_arr</td><td>approximate position of the mobile device. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">absolute_error_arr</td><td>includes the absolute error. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>arrays length. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00034">34</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +</div> +</div> +<a id="ae584dff239a0111c47b7c5d1e197af59"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae584dff239a0111c47b7c5d1e197af59">◆ </a></span>magnetic_based_get_distances()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_get_distances </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>magnetic_field_strength_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>angular_theta_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>distance_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distances between a mobile station and the reference stations of a magnet-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">magnetic_field_strength_arr[]</td><td>includes the magnetic field strengths. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">angular_theta_arr[]</td><td>elevation angles. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">distance_arr[]</td><td>distance array. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>length of the arrays. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00125">125</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="magnetic__based__position_8h_source.html#l00080">MILPS_MAX_DIST</a>.</p> + +</div> +</div> +<a id="ac852e4c0dcb8e9901aa3fab5efd91599"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac852e4c0dcb8e9901aa3fab5efd91599">◆ </a></span>magnetic_based_get_distances_to_anchors()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_based_get_distances_to_anchors </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distance between a mobile station and a reference station of magnetic-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point[]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00050">50</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +</div> +</div> +<a id="a361f3f3c4f9516a1aa6107367ebfda8d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a361f3f3c4f9516a1aa6107367ebfda8d">◆ </a></span>magnetic_based_get_magnetic_field()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_based_get_magnetic_field </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>target_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the magnetic field strength from a mobile station to a reference station. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point[]</td><td>three-dimensional coordinates of a reference station. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">target_point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the magnetic field strength. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00062">62</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="vector_8c_source.html#l00284">vector_flex_print()</a>.</p> + +</div> +</div> +<a id="aac026f28838a5b30c8f6f189e3ab354c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aac026f28838a5b30c8f6f189e3ab354c">◆ </a></span>magnetic_based_get_magnetic_field_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_get_magnetic_field_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>target_point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>magn_field_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the magnetic field strengths from a mobile station to various reference stations. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">target_point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">magn_field_vec[]</td><td>includes the magnetic field strengths. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00091">91</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a01bb024303e8eb202a19dbd70b291c06"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a01bb024303e8eb202a19dbd70b291c06">◆ </a></span>magnetic_based_get_r()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_based_get_r </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>B</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>theta</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distance between a mobile station and a reference stations of a magnet-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">B</td><td>magnetic field strength. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">theta</td><td>elevation angle. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00166">166</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="magnetic__based__position_8h_source.html#l00080">MILPS_MAX_DIST</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>.</p> + +</div> +</div> +<a id="af316f67cb87759b57bc815326b8d1cef"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af316f67cb87759b57bc815326b8d1cef">◆ </a></span>magnetic_based_preprocessing_get_position()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_preprocessing_get_position </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[4][anchor_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>homog_sol_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the position of a mobile station by a magnetic-based localization system. </p> +<p>The position is computed based on a pre-processed pseudo-inverse matrix and the homogeneous solution in the case of three reference stations.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][[]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">homog_sol_arr[]</td><td>pointer to the homogeneous solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>includes the first solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>includes the second solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00188">188</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__position_8c.html">magnetic_based_position.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__position_8c.js b/doc/doxygen/html/magnetic__based__position_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..87a89eb6d51dce02bc370401047dfaa9d6963ede --- /dev/null +++ b/doc/doxygen/html/magnetic__based__position_8c.js @@ -0,0 +1,10 @@ +var magnetic__based__position_8c = +[ + [ "magnetic_based_get_absolute_error", "magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d", null ], + [ "magnetic_based_get_distances", "magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59", null ], + [ "magnetic_based_get_distances_to_anchors", "magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599", null ], + [ "magnetic_based_get_magnetic_field", "magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d", null ], + [ "magnetic_based_get_magnetic_field_vec", "magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c", null ], + [ "magnetic_based_get_r", "magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06", null ], + [ "magnetic_based_preprocessing_get_position", "magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__position_8c_source.html b/doc/doxygen/html/magnetic__based__position_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..e62296242ab9bab2e87cc2b339fdc56c9723e223 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__position_8c_source.html @@ -0,0 +1,310 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_position.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__position_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_position.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__position_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <complex.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="magnetic__based__position_8h.html">magnetic_based_position.h</a>></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="trilateration_8h.html">trilateration.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d"> 34</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[],</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[],</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[],</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  uint8_t length)</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  uint8_t i;</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">if</span> ((value_arr != NULL) && (approx_value_arr != NULL)</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  && (absolute_error_arr != NULL)) {</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  absolute_error_arr[i] = fabs(</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  value_arr[i] - approx_value_arr[i]);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> }</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599"> 50</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3])</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist = 0.0;</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diff_vec[3];</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(3, ref_point, point, diff_vec);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  dist = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(3, diff_vec);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> dist;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d"> 62</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[3], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magn_field = 0.0;</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_square = 0.0;</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  uint8_t i;</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  printf(<span class="stringliteral">"ref_arr = "</span>);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, ref_point, 5, 4);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">for</span> (i = 0; i < 3; i++) {</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  r_square += pow(target_point[i] - ref_point[i], 2);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  printf(<span class="stringliteral">"r_sq = %f\n"</span>, r_square);</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  magn_field =</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  k</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  * sqrt(</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  3</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  * pow(</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  target_point[2]</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  - ref_point[2],</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  2)</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  + r_square)</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  / pow(r_square, 2);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> magn_field;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c"> 91</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a>(uint8_t m,</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[m][3],</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[],</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k,</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magn_field_vec[])</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_square = 0.0;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  uint8_t i, j;</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span> (j = 0; i < 3; j++) {</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  r_square +=</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  pow(</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  target_point[i]</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  - ref_point_matrix[i][j],</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  2);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  magn_field_vec[i] =</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  k</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  * sqrt(</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  3</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  * pow(</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  target_point[2]</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  - ref_point_matrix[i][2],</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  2)</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  + r_square)</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  / pow(r_square, 2);</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  r_square = 0.0;</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div> +<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59"> 125</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_field_strength_arr[],</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> angular_theta_arr[],</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> distance_arr[], uint8_t length,</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">int</span> i;</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> (magnetic_field_strength_arr[i] == 0) {</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  distance_arr[i] = <a class="code" href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc">MILPS_MAX_DIST</a>;</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (angular_theta_arr[i] == 0) {</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  distance_arr[i] =</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  pow(</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  k</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  / magnetic_field_strength_arr[i],</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  (<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>)1</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  / 3);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  distance_arr[i] =</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  pow(</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  k</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  * sqrt(</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  1</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  + 3</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  * pow(</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  sin(</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  angular_theta_arr[i]),</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  2))</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  / magnetic_field_strength_arr[i],</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  (<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>)1</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  / 3);</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> }</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div> +<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06"> 166</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> theta, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r = 0;</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (B == 0) {</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <a class="code" href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc">MILPS_MAX_DIST</a>;</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">if</span> (theta == 0) {</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  r = pow(k / B, (<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>)1 / 3);</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  r = pow(k * sqrt(1 + 3 * pow(sin(theta), 2)) / B,</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  (<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>)1 / 3);</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> r;</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// PC proprocessing</span></div> +<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef"> 188</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num],</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[],</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> {</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[anchor_num];</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a>(anchor_num, anchor_pos_matrix, pseudo_inv_matrix,</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  homog_sol_arr, dist_arr, solution_x1, solution_x2);</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_a2ab193fcd7e0bc8f46ce92c3299b99bc"><div class="ttname"><a href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc">MILPS_MAX_DIST</a></div><div class="ttdeci">#define MILPS_MAX_DIST</div><div class="ttdoc">The number of turns of the wire.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8h_source.html#l00080">magnetic_based_position.h:80</a></div></div> +<div class="ttc" id="atrilateration_8h_html"><div class="ttname"><a href="trilateration_8h.html">trilateration.h</a></div><div class="ttdoc">Implement the trilateration algorithm.</div></div> +<div class="ttc" id="amagnetic__based__position_8c_html_a01bb024303e8eb202a19dbd70b291c06"><div class="ttname"><a href="magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a></div><div class="ttdeci">matrix_t magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k)</div><div class="ttdoc">Computes the distance between a mobile station and a reference stations of a magnet-based localizatio...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00166">magnetic_based_position.c:166</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html"><div class="ttname"><a href="magnetic__based__position_8h.html">magnetic_based_position.h</a></div><div class="ttdoc">Functions of of DC-pulsed, magnetic localization system.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amagnetic__based__position_8c_html_ae584dff239a0111c47b7c5d1e197af59"><div class="ttname"><a href="magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a></div><div class="ttdeci">void magnetic_based_get_distances(matrix_t magnetic_field_strength_arr[], matrix_t angular_theta_arr[], matrix_t distance_arr[], uint8_t length, matrix_t k)</div><div class="ttdoc">Computes the distances between a mobile station and the reference stations of a magnet-based localiza...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00125">magnetic_based_position.c:125</a></div></div> +<div class="ttc" id="amagnetic__based__position_8c_html_aac026f28838a5b30c8f6f189e3ab354c"><div class="ttname"><a href="magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a></div><div class="ttdeci">void magnetic_based_get_magnetic_field_vec(uint8_t m, matrix_t ref_point_matrix[m][3], matrix_t target_point[], matrix_t k, matrix_t magn_field_vec[])</div><div class="ttdoc">Computes the magnetic field strengths from a mobile station to various reference stations.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00091">magnetic_based_position.c:91</a></div></div> +<div class="ttc" id="amagnetic__based__position_8c_html_af316f67cb87759b57bc815326b8d1cef"><div class="ttname"><a href="magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a></div><div class="ttdeci">void magnetic_based_preprocessing_get_position(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Computes the position of a mobile station by a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00188">magnetic_based_position.c:188</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="atrilateration_8h_html_a95fc45efcb10019be21704539eeedefb"><div class="ttname"><a href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a></div><div class="ttdeci">void trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00032">trilateration.c:32</a></div></div> +<div class="ttc" id="amagnetic__based__position_8c_html_ac852e4c0dcb8e9901aa3fab5efd91599"><div class="ttname"><a href="magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a></div><div class="ttdeci">matrix_t magnetic_based_get_distances_to_anchors(matrix_t ref_point[3], matrix_t point[3])</div><div class="ttdoc">Computes the distance between a mobile station and a reference station of magnetic-based localization...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00050">magnetic_based_position.c:50</a></div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<div class="ttc" id="amagnetic__based__position_8c_html_ad5a7513337486e277ea028480403569d"><div class="ttname"><a href="magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a></div><div class="ttdeci">void magnetic_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length)</div><div class="ttdoc">Computes the absolute error of a position of magnet-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00034">magnetic_based_position.c:34</a></div></div> +<div class="ttc" id="amagnetic__based__position_8c_html_a361f3f3c4f9516a1aa6107367ebfda8d"><div class="ttname"><a href="magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a></div><div class="ttdeci">matrix_t magnetic_based_get_magnetic_field(matrix_t ref_point[3], matrix_t target_point[3], matrix_t k)</div><div class="ttdoc">Computes the magnetic field strength from a mobile station to a reference station.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00062">magnetic_based_position.c:62</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__position_8c.html">magnetic_based_position.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__position_8h.html b/doc/doxygen/html/magnetic__based__position_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..5ff386e1aab7376e722dfaa2e4e937a8bd197fd9 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__position_8h.html @@ -0,0 +1,581 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_position.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__position_8h.html','');}); +/* @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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_position.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__magnetic__based.html">MAGNETIC_BASED</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Functions of of DC-pulsed, magnetic localization system. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="magnetic__based__position_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a73d113d91ab7ec355ca707cc930eb718"><td class="memItemLeft" align="right" valign="top"><a id="a73d113d91ab7ec355ca707cc930eb718"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718">I0</a>   15</td></tr> +<tr class="memdesc:a73d113d91ab7ec355ca707cc930eb718"><td class="mdescLeft"> </td><td class="mdescRight">The current running through the coil. <br /></td></tr> +<tr class="separator:a73d113d91ab7ec355ca707cc930eb718"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af9cccf331f045b89a9f12366df5f7687"><td class="memItemLeft" align="right" valign="top"><a id="af9cccf331f045b89a9f12366df5f7687"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687">NW</a>   140</td></tr> +<tr class="memdesc:af9cccf331f045b89a9f12366df5f7687"><td class="mdescLeft"> </td><td class="mdescRight">The number of turns of the wire. <br /></td></tr> +<tr class="separator:af9cccf331f045b89a9f12366df5f7687"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a30ab9da60435727bc80839d416461b8f"><td class="memItemLeft" align="right" valign="top"><a id="a30ab9da60435727bc80839d416461b8f"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f">R0</a>   0.25</td></tr> +<tr class="memdesc:a30ab9da60435727bc80839d416461b8f"><td class="mdescLeft"> </td><td class="mdescRight">The radius of the coil. <br /></td></tr> +<tr class="separator:a30ab9da60435727bc80839d416461b8f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a598a3330b3c21701223ee0ca14316eca"><td class="memItemLeft" align="right" valign="top"><a id="a598a3330b3c21701223ee0ca14316eca"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca">PI</a>   3.14159265358979323846</td></tr> +<tr class="memdesc:a598a3330b3c21701223ee0ca14316eca"><td class="mdescLeft"> </td><td class="mdescRight">The pi constant. <br /></td></tr> +<tr class="separator:a598a3330b3c21701223ee0ca14316eca"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6f98ae7b0908254a0dfd1627e652bebe"><td class="memItemLeft" align="right" valign="top"><a id="a6f98ae7b0908254a0dfd1627e652bebe"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe">AR</a>   <a class="el" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca">PI</a> * <a class="el" href="magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f">R0</a> * <a class="el" href="magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f">R0</a></td></tr> +<tr class="memdesc:a6f98ae7b0908254a0dfd1627e652bebe"><td class="mdescLeft"> </td><td class="mdescRight">The base area of the coil. <br /></td></tr> +<tr class="separator:a6f98ae7b0908254a0dfd1627e652bebe"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0fa11f33bdb89b468b60f19395381cc4"><td class="memItemLeft" align="right" valign="top"><a id="a0fa11f33bdb89b468b60f19395381cc4"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4">MU0</a>   4 * <a class="el" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca">PI</a> * 1E-7</td></tr> +<tr class="memdesc:a0fa11f33bdb89b468b60f19395381cc4"><td class="mdescLeft"> </td><td class="mdescRight">The permeability of free space,. <br /></td></tr> +<tr class="separator:a0fa11f33bdb89b468b60f19395381cc4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a97d832ae23af4f215e801e37e4f94254"><td class="memItemLeft" align="right" valign="top"><a id="a97d832ae23af4f215e801e37e4f94254"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254">K</a>   <a class="el" href="magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4">MU0</a> * <a class="el" href="magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687">NW</a> * <a class="el" href="magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718">I0</a> * <a class="el" href="magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe">AR</a> / (4 * <a class="el" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca">PI</a>)</td></tr> +<tr class="memdesc:a97d832ae23af4f215e801e37e4f94254"><td class="mdescLeft"> </td><td class="mdescRight">The K constant. <br /></td></tr> +<tr class="separator:a97d832ae23af4f215e801e37e4f94254"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a544d6868e9b6cf4f9b9db9e1ad413691"><td class="memItemLeft" align="right" valign="top"><a id="a544d6868e9b6cf4f9b9db9e1ad413691"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691">MG_TO_T</a>   1E7</td></tr> +<tr class="memdesc:a544d6868e9b6cf4f9b9db9e1ad413691"><td class="mdescLeft"> </td><td class="mdescRight">From Mega Gauss to Tesla. <br /></td></tr> +<tr class="separator:a544d6868e9b6cf4f9b9db9e1ad413691"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3ee4ec231172a5fd866f72acead15bc4"><td class="memItemLeft" align="right" valign="top"><a id="a3ee4ec231172a5fd866f72acead15bc4"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a>   <a class="el" href="magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254">K</a> * <a class="el" href="magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691">MG_TO_T</a></td></tr> +<tr class="memdesc:a3ee4ec231172a5fd866f72acead15bc4"><td class="mdescLeft"> </td><td class="mdescRight">The number of turns of the wire. <br /></td></tr> +<tr class="separator:a3ee4ec231172a5fd866f72acead15bc4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2ab193fcd7e0bc8f46ce92c3299b99bc"><td class="memItemLeft" align="right" valign="top"><a id="a2ab193fcd7e0bc8f46ce92c3299b99bc"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc">MILPS_MAX_DIST</a>   25</td></tr> +<tr class="memdesc:a2ab193fcd7e0bc8f46ce92c3299b99bc"><td class="mdescLeft"> </td><td class="mdescRight">The number of turns of the wire. <br /></td></tr> +<tr class="separator:a2ab193fcd7e0bc8f46ce92c3299b99bc"><td class="memSeparator" colspan="2"> </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:ad5a7513337486e277ea028480403569d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[], uint8_t length)</td></tr> +<tr class="memdesc:ad5a7513337486e277ea028480403569d"><td class="mdescLeft"> </td><td class="mdescRight">Computes the absolute error of a position of magnet-based localization system. <a href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">More...</a><br /></td></tr> +<tr class="separator:ad5a7513337486e277ea028480403569d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae584dff239a0111c47b7c5d1e197af59"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_field_strength_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> angular_theta_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> distance_arr[], uint8_t length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</td></tr> +<tr class="memdesc:ae584dff239a0111c47b7c5d1e197af59"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distances between a mobile station and the reference stations of a magnet-based localization system. <a href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">More...</a><br /></td></tr> +<tr class="separator:ae584dff239a0111c47b7c5d1e197af59"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a01bb024303e8eb202a19dbd70b291c06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> theta, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</td></tr> +<tr class="memdesc:a01bb024303e8eb202a19dbd70b291c06"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distance between a mobile station and a reference stations of a magnet-based localization system. <a href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">More...</a><br /></td></tr> +<tr class="separator:a01bb024303e8eb202a19dbd70b291c06"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac852e4c0dcb8e9901aa3fab5efd91599"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3])</td></tr> +<tr class="memdesc:ac852e4c0dcb8e9901aa3fab5efd91599"><td class="mdescLeft"> </td><td class="mdescRight">Computes the distance between a mobile station and a reference station of magnetic-based localization system. <a href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">More...</a><br /></td></tr> +<tr class="separator:ac852e4c0dcb8e9901aa3fab5efd91599"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a361f3f3c4f9516a1aa6107367ebfda8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k)</td></tr> +<tr class="memdesc:a361f3f3c4f9516a1aa6107367ebfda8d"><td class="mdescLeft"> </td><td class="mdescRight">Computes the magnetic field strength from a mobile station to a reference station. <a href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">More...</a><br /></td></tr> +<tr class="separator:a361f3f3c4f9516a1aa6107367ebfda8d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aac026f28838a5b30c8f6f189e3ab354c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magn_field_vec[])</td></tr> +<tr class="memdesc:aac026f28838a5b30c8f6f189e3ab354c"><td class="mdescLeft"> </td><td class="mdescRight">Computes the magnetic field strengths from a mobile station to various reference stations. <a href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">More...</a><br /></td></tr> +<tr class="separator:aac026f28838a5b30c8f6f189e3ab354c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af316f67cb87759b57bc815326b8d1cef"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:af316f67cb87759b57bc815326b8d1cef"><td class="mdescLeft"> </td><td class="mdescRight">Computes the position of a mobile station by a magnetic-based localization system. <a href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">More...</a><br /></td></tr> +<tr class="separator:af316f67cb87759b57bc815326b8d1cef"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Functions of of DC-pulsed, magnetic localization system. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__position_8h_source.html">magnetic_based_position.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ad5a7513337486e277ea028480403569d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad5a7513337486e277ea028480403569d">◆ </a></span>magnetic_based_get_absolute_error()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_get_absolute_error </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>approx_value_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>absolute_error_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the absolute error of a position of magnet-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">value_arr</td><td>true position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">approx_value_arr</td><td>approximate position of the mobile device. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">absolute_error_arr</td><td>includes the absolute error. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>arrays length. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00034">34</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +</div> +</div> +<a id="ae584dff239a0111c47b7c5d1e197af59"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae584dff239a0111c47b7c5d1e197af59">◆ </a></span>magnetic_based_get_distances()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_get_distances </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>magnetic_field_strength_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>angular_theta_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>distance_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distances between a mobile station and the reference stations of a magnet-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">magnetic_field_strength_arr[]</td><td>includes the magnetic field strengths. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">angular_theta_arr[]</td><td>elevation angles. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">distance_arr[]</td><td>distance array. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>length of the arrays. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00125">125</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="magnetic__based__position_8h_source.html#l00080">MILPS_MAX_DIST</a>.</p> + +</div> +</div> +<a id="ac852e4c0dcb8e9901aa3fab5efd91599"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac852e4c0dcb8e9901aa3fab5efd91599">◆ </a></span>magnetic_based_get_distances_to_anchors()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_based_get_distances_to_anchors </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>point</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distance between a mobile station and a reference station of magnetic-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point[]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00050">50</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +</div> +</div> +<a id="a361f3f3c4f9516a1aa6107367ebfda8d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a361f3f3c4f9516a1aa6107367ebfda8d">◆ </a></span>magnetic_based_get_magnetic_field()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_based_get_magnetic_field </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>target_point</em>[3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the magnetic field strength from a mobile station to a reference station. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point[]</td><td>three-dimensional coordinates of a reference station. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">target_point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the magnetic field strength. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00062">62</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="vector_8c_source.html#l00284">vector_flex_print()</a>.</p> + +</div> +</div> +<a id="aac026f28838a5b30c8f6f189e3ab354c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aac026f28838a5b30c8f6f189e3ab354c">◆ </a></span>magnetic_based_get_magnetic_field_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_get_magnetic_field_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point_matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>target_point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>magn_field_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the magnetic field strengths from a mobile station to various reference stations. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">target_point[]</td><td>three-dimensional coordinates of the mobile device. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">magn_field_vec[]</td><td>includes the magnetic field strengths. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00091">91</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a01bb024303e8eb202a19dbd70b291c06"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a01bb024303e8eb202a19dbd70b291c06">◆ </a></span>magnetic_based_get_r()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_based_get_r </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>B</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>theta</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>k</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the distance between a mobile station and a reference stations of a magnet-based localization system. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">B</td><td>magnetic field strength. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">theta</td><td>elevation angle. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>magnetic constant.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00166">166</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="magnetic__based__position_8h_source.html#l00080">MILPS_MAX_DIST</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>.</p> + +</div> +</div> +<a id="af316f67cb87759b57bc815326b8d1cef"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af316f67cb87759b57bc815326b8d1cef">◆ </a></span>magnetic_based_preprocessing_get_position()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void magnetic_based_preprocessing_get_position </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[4][anchor_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>homog_sol_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the position of a mobile station by a magnetic-based localization system. </p> +<p>The position is computed based on a pre-processed pseudo-inverse matrix and the homogeneous solution in the case of three reference stations.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][[]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">homog_sol_arr[]</td><td>pointer to the homogeneous solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>includes the first solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>includes the second solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="magnetic__based__position_8c_source.html#l00188">188</a> of file <a class="el" href="magnetic__based__position_8c_source.html">magnetic_based_position.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__position_8h.html">magnetic_based_position.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__position_8h.js b/doc/doxygen/html/magnetic__based__position_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..c5cf923160c12454a5cf9a896eb1223a60017298 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__position_8h.js @@ -0,0 +1,20 @@ +var magnetic__based__position_8h = +[ + [ "AR", "magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe", null ], + [ "I0", "magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718", null ], + [ "K", "magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254", null ], + [ "K_T", "magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4", null ], + [ "MG_TO_T", "magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691", null ], + [ "MILPS_MAX_DIST", "magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc", null ], + [ "MU0", "magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4", null ], + [ "NW", "magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687", null ], + [ "PI", "magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca", null ], + [ "R0", "magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f", null ], + [ "magnetic_based_get_absolute_error", "magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d", null ], + [ "magnetic_based_get_distances", "magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59", null ], + [ "magnetic_based_get_distances_to_anchors", "magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599", null ], + [ "magnetic_based_get_magnetic_field", "magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d", null ], + [ "magnetic_based_get_magnetic_field_vec", "magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c", null ], + [ "magnetic_based_get_r", "magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06", null ], + [ "magnetic_based_preprocessing_get_position", "magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__position_8h_source.html b/doc/doxygen/html/magnetic__based__position_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..2b51297473ffd99578beee468043779250def7ee --- /dev/null +++ b/doc/doxygen/html/magnetic__based__position_8h_source.html @@ -0,0 +1,182 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_position.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__position_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_position.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__position_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef MAGNETIC_BASED_POSITION_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define MAGNETIC_BASED_POSITION_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718"> 35</a></span> <span class="preprocessor">#define I0 15</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687"> 40</a></span> <span class="preprocessor">#define NW 140</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f"> 45</a></span> <span class="preprocessor">#define R0 0.25</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div> +<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca"> 50</a></span> <span class="preprocessor">#define PI 3.14159265358979323846</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe"> 55</a></span> <span class="preprocessor">#define AR PI * R0 * R0 //Loop area</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4"> 60</a></span> <span class="preprocessor">#define MU0 4 * PI * 1E-7 //TGm/A</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254"> 65</a></span> <span class="preprocessor">#define K MU0 * NW * I0 * AR / (4 * PI)</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691"> 70</a></span> <span class="preprocessor">#define MG_TO_T 1E7</span></div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4"> 75</a></span> <span class="preprocessor">#define K_T K * MG_TO_T</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc"> 80</a></span> <span class="preprocessor">#define MILPS_MAX_DIST 25</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value_arr[],</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> approx_value_arr[],</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> absolute_error_arr[],</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  uint8_t length);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magnetic_field_strength_arr[],</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> angular_theta_arr[],</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> distance_arr[], uint8_t length,</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> theta, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k);</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> point[3]);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[3],</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[3],</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k);</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a>(uint8_t m,</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_matrix[m][3],</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> target_point[],</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k,</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> magn_field_vec[]);</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num],</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[],</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[]);</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  </div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#endif </span><span class="comment">/* MAGNETIC_BASED_POSITION_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amagnetic__based__position_8h_html_ac852e4c0dcb8e9901aa3fab5efd91599"><div class="ttname"><a href="magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599">magnetic_based_get_distances_to_anchors</a></div><div class="ttdeci">matrix_t magnetic_based_get_distances_to_anchors(matrix_t ref_point[3], matrix_t point[3])</div><div class="ttdoc">Computes the distance between a mobile station and a reference station of magnetic-based localization...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00050">magnetic_based_position.c:50</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_ae584dff239a0111c47b7c5d1e197af59"><div class="ttname"><a href="magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59">magnetic_based_get_distances</a></div><div class="ttdeci">void magnetic_based_get_distances(matrix_t magnetic_field_strength_arr[], matrix_t angular_theta_arr[], matrix_t distance_arr[], uint8_t length, matrix_t k)</div><div class="ttdoc">Computes the distances between a mobile station and the reference stations of a magnet-based localiza...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00125">magnetic_based_position.c:125</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_aac026f28838a5b30c8f6f189e3ab354c"><div class="ttname"><a href="magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c">magnetic_based_get_magnetic_field_vec</a></div><div class="ttdeci">void magnetic_based_get_magnetic_field_vec(uint8_t m, matrix_t ref_point_matrix[m][3], matrix_t target_point[], matrix_t k, matrix_t magn_field_vec[])</div><div class="ttdoc">Computes the magnetic field strengths from a mobile station to various reference stations.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00091">magnetic_based_position.c:91</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_af316f67cb87759b57bc815326b8d1cef"><div class="ttname"><a href="magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef">magnetic_based_preprocessing_get_position</a></div><div class="ttdeci">void magnetic_based_preprocessing_get_position(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Computes the position of a mobile station by a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00188">magnetic_based_position.c:188</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_a01bb024303e8eb202a19dbd70b291c06"><div class="ttname"><a href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a></div><div class="ttdeci">matrix_t magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k)</div><div class="ttdoc">Computes the distance between a mobile station and a reference stations of a magnet-based localizatio...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00166">magnetic_based_position.c:166</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_ad5a7513337486e277ea028480403569d"><div class="ttname"><a href="magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d">magnetic_based_get_absolute_error</a></div><div class="ttdeci">void magnetic_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length)</div><div class="ttdoc">Computes the absolute error of a position of magnet-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00034">magnetic_based_position.c:34</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_a361f3f3c4f9516a1aa6107367ebfda8d"><div class="ttname"><a href="magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d">magnetic_based_get_magnetic_field</a></div><div class="ttdeci">matrix_t magnetic_based_get_magnetic_field(matrix_t ref_point[3], matrix_t target_point[3], matrix_t k)</div><div class="ttdoc">Computes the magnetic field strength from a mobile station to a reference station.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00062">magnetic_based_position.c:62</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_9f6bed594baf424ccac6ba79953e888e.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_b8d2d01ff28d5da2ee9069d013a4a508.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__position_8h.html">magnetic_based_position.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__test_8c.html b/doc/doxygen/html/magnetic__based__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..b4f6f6c1c6b83012fb141c867dffabb96e398a1f --- /dev/null +++ b/doc/doxygen/html/magnetic__based__test_8c.html @@ -0,0 +1,134 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of localization algorithms of magnetic-based positioning systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="trilateration_8h_source.html">trilateration.h</a>"</code><br /> +<code>#include "<a class="el" href="magnetic__based__position_8h_source.html">magnetic_based_position.h</a>"</code><br /> +</div> +<p><a href="magnetic__based__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a94f4b9ae7750825fc3d332e8f1903f75"><td class="memItemLeft" align="right" valign="top"><a id="a94f4b9ae7750825fc3d332e8f1903f75"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test</a> (void)</td></tr> +<tr class="memdesc:a94f4b9ae7750825fc3d332e8f1903f75"><td class="mdescLeft"> </td><td class="mdescRight">Example of a magnetic-based localization system. <br /></td></tr> +<tr class="separator:a94f4b9ae7750825fc3d332e8f1903f75"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of localization algorithms of magnetic-based positioning systems. </p> +<p>Localization algorithms examples using artificially generated DC-pulsed, magnetic signals (see the <a class="el" href="magnetic__based__position_8h.html">methods of magnetic-based</a> localization systems).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__test_8c_source.html">magnetic_based_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_20def5fb23a030baaea06d7c00c73368.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__test_8c.html">magnetic_based_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__test_8c.js b/doc/doxygen/html/magnetic__based__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..7a06e65588d9530f6de61b9de5a636c221991930 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__test_8c.js @@ -0,0 +1,4 @@ +var magnetic__based__test_8c = +[ + [ "magnetic_based_test", "magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__test_8c_source.html b/doc/doxygen/html/magnetic__based__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..43b18794962ae8c11c4bcccd87d47835481150cd --- /dev/null +++ b/doc/doxygen/html/magnetic__based__test_8c_source.html @@ -0,0 +1,174 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="trilateration_8h.html">trilateration.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="magnetic__based__position_8h.html">magnetic_based_position.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75"> 34</a></span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  puts(<span class="stringliteral">"***************** Magnetic-based system example *****************"</span>);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_pos_matrix[4][3] = {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  { 100.395, 16.781, 1.084 }, <span class="comment">//P1</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { 100.937, 22.941, 1.072 }, <span class="comment">//P2</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { 106.229, 22.716, 1.064 }, <span class="comment">//P3</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  { 106.3, 16.8, 2.35 } <span class="comment">//P4</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  };</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> true_pos[3] = { 102, 18, 2.308 }; <span class="comment">// is usually unknown // Sensor8a3</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">/* magnetic field strengths to the reference stations */</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B_vec[4] = { 43.2630, 3.0620, 1.4890, 4.5361 };</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">/* Elevation angles to the reference stations */</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> theta_vec[4] = { 31.3710, 12.4870, 11.7280, 0.5352 };</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  uint8_t ref_point_num = 4;</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r0_vec[ref_point_num];</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < ref_point_num; i++) {</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  r0_vec[i] = <a class="code" href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a>(B_vec[i],</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a>(theta_vec[i]), <a class="code" href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a>);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">/* estimated position */</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_pos[4];</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a>(ref_point_num, ref_pos_matrix, r0_vec,</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  est_pos, NULL);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  printf(<span class="stringliteral">"true position = "</span>);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, true_pos, 5, 4);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  printf(<span class="stringliteral">"estimated position = "</span>);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, &est_pos[1], 5, 7);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="atrilateration_8h_html"><div class="ttname"><a href="trilateration_8h.html">trilateration.h</a></div><div class="ttdoc">Implement the trilateration algorithm.</div></div> +<div class="ttc" id="autils_8h_html_a689d2d3db40d341609423404abc5a23a"><div class="ttname"><a href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a></div><div class="ttdeci">double utils_to_radian(double deg_angle)</div><div class="ttdoc">Convert the angle from degrees to radians.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00031">utils.c:31</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html"><div class="ttname"><a href="magnetic__based__position_8h.html">magnetic_based_position.h</a></div><div class="ttdoc">Functions of of DC-pulsed, magnetic localization system.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="amagnetic__based__test_8c_html_a94f4b9ae7750825fc3d332e8f1903f75"><div class="ttname"><a href="magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test</a></div><div class="ttdeci">void magnetic_based_test(void)</div><div class="ttdoc">Example of a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test.c:34</a></div></div> +<div class="ttc" id="atrilateration_8h_html_adf749802a4d86c2a97a6bac50d17bfea"><div class="ttname"><a href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a></div><div class="ttdeci">void trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00069">trilateration.c:69</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_a3ee4ec231172a5fd866f72acead15bc4"><div class="ttname"><a href="magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4">K_T</a></div><div class="ttdeci">#define K_T</div><div class="ttdoc">The number of turns of the wire.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8h_source.html#l00075">magnetic_based_position.h:75</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amagnetic__based__position_8h_html_a01bb024303e8eb202a19dbd70b291c06"><div class="ttname"><a href="magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06">magnetic_based_get_r</a></div><div class="ttdeci">matrix_t magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k)</div><div class="ttdoc">Computes the distance between a mobile station and a reference stations of a magnet-based localizatio...</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__position_8c_source.html#l00166">magnetic_based_position.c:166</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_20def5fb23a030baaea06d7c00c73368.html">magnetic_based</a></li><li class="navelem"><a class="el" href="magnetic__based__test_8c.html">magnetic_based_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__test_8h.html b/doc/doxygen/html/magnetic__based__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..922f32f42c13fbafa83d13237cb6231ff53cc0de --- /dev/null +++ b/doc/doxygen/html/magnetic__based__test_8h.html @@ -0,0 +1,128 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">magnetic_based_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of localization algorithms of magnetic-based positioning systems. +<a href="#details">More...</a></p> + +<p><a href="magnetic__based__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a94f4b9ae7750825fc3d332e8f1903f75"><td class="memItemLeft" align="right" valign="top"><a id="a94f4b9ae7750825fc3d332e8f1903f75"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test</a> (void)</td></tr> +<tr class="memdesc:a94f4b9ae7750825fc3d332e8f1903f75"><td class="mdescLeft"> </td><td class="mdescRight">Example of a magnetic-based localization system. <br /></td></tr> +<tr class="separator:a94f4b9ae7750825fc3d332e8f1903f75"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of localization algorithms of magnetic-based positioning systems. </p> +<p>Localization algorithms examples using artificially generated DC-pulsed, magnetic signals (see the <a class="el" href="magnetic__based__position_8h.html">methods of magnetic-based</a> localization systems).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="magnetic__based__test_8h_source.html">magnetic_based_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_20def5fb23a030baaea06d7c00c73368.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_03da925459af38da0de945660244ea8b.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__test_8h.html">magnetic_based_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/magnetic__based__test_8h.js b/doc/doxygen/html/magnetic__based__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..6d6c5106927ecf775d3a81d69883c5445ecdfc10 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__test_8h.js @@ -0,0 +1,4 @@ +var magnetic__based__test_8h = +[ + [ "magnetic_based_test", "magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/magnetic__based__test_8h_source.html b/doc/doxygen/html/magnetic__based__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..ad90409d2afe591a92e1453fd0b34e229e8bf572 --- /dev/null +++ b/doc/doxygen/html/magnetic__based__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: magnetic_based_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('magnetic__based__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">magnetic_based_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="magnetic__based__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifndef MAGNETIC_BASED_TEST_H_</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#define MAGNETIC_BASED_TEST_H_</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keywordtype">void</span> <a class="code" href="magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif </span><span class="comment">/* MAGNETIC_BASED_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amagnetic__based__test_8h_html_a94f4b9ae7750825fc3d332e8f1903f75"><div class="ttname"><a href="magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75">magnetic_based_test</a></div><div class="ttdeci">void magnetic_based_test(void)</div><div class="ttdoc">Example of a magnetic-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test.c:34</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_20def5fb23a030baaea06d7c00c73368.html">magnetic_based</a></li><li class="navelem"><a class="el" href="dir_03da925459af38da0de945660244ea8b.html">include</a></li><li class="navelem"><a class="el" href="magnetic__based__test_8h.html">magnetic_based_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix_8c.html b/doc/doxygen/html/matrix_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..b2e6408200e87b81afd24d5244a618fe8e55f898 --- /dev/null +++ b/doc/doxygen/html/matrix_8c.html @@ -0,0 +1,3078 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">matrix.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Matrix computations. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdint.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include <stdbool.h></code><br /> +<code>#include <float.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="svd_8h_source.html">svd.h</a>"</code><br /> +</div> +<p><a href="matrix_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a0e06b2cfb86340e88be7b1219bef0ce3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n])</td></tr> +<tr class="memdesc:a0e06b2cfb86340e88be7b1219bef0ce3"><td class="mdescLeft"> </td><td class="mdescRight">Clear all the elements of the vector. <a href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">More...</a><br /></td></tr> +<tr class="separator:a0e06b2cfb86340e88be7b1219bef0ce3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acfd2bbc4a90915e57a4555694e842312"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#acfd2bbc4a90915e57a4555694e842312">matrix_init</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value)</td></tr> +<tr class="memdesc:acfd2bbc4a90915e57a4555694e842312"><td class="mdescLeft"> </td><td class="mdescRight">Initialize all the elements of the matrix with a specified value. <a href="matrix_8c.html#acfd2bbc4a90915e57a4555694e842312">More...</a><br /></td></tr> +<tr class="separator:acfd2bbc4a90915e57a4555694e842312"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad7c9a682a3cc4ca33c030afa8798241a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[n][m])</td></tr> +<tr class="memdesc:ad7c9a682a3cc4ca33c030afa8798241a"><td class="mdescLeft"> </td><td class="mdescRight">Computes the transpose of a matrix. <a href="matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a">More...</a><br /></td></tr> +<tr class="separator:ad7c9a682a3cc4ca33c030afa8798241a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a48b36217faeda15438f4e07c54d0ef9e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][m])</td></tr> +<tr class="memdesc:a48b36217faeda15438f4e07c54d0ef9e"><td class="mdescLeft"> </td><td class="mdescRight">Computes the in-place transpose of a matrix. <a href="matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e">More...</a><br /></td></tr> +<tr class="separator:a48b36217faeda15438f4e07c54d0ef9e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae8d8daa117e9f96a5e29fe6c76c4998c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[m][n])</td></tr> +<tr class="memdesc:ae8d8daa117e9f96a5e29fe6c76c4998c"><td class="mdescLeft"> </td><td class="mdescRight">Copy the elements of a matrix to another matrix. <a href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c">More...</a><br /></td></tr> +<tr class="separator:ae8d8daa117e9f96a5e29fe6c76c4998c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a56513a88eff05b0683320c532fadf945"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_num])</td></tr> +<tr class="memdesc:a56513a88eff05b0683320c532fadf945"><td class="mdescLeft"> </td><td class="mdescRight">Copy a part of a matrix to another matrix or sub-matrix. <a href="matrix_8c.html#a56513a88eff05b0683320c532fadf945">More...</a><br /></td></tr> +<tr class="separator:a56513a88eff05b0683320c532fadf945"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a32ab12965ec43c2acf65cf9dd510353a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n])</td></tr> +<tr class="memdesc:a32ab12965ec43c2acf65cf9dd510353a"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the matrix elements. <a href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">More...</a><br /></td></tr> +<tr class="separator:a32ab12965ec43c2acf65cf9dd510353a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a72073ccd483f9cc438425d3d8ffd3029"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind)</td></tr> +<tr class="memdesc:a72073ccd483f9cc438425d3d8ffd3029"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the sub-matrix elements. <a href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">More...</a><br /></td></tr> +<tr class="separator:a72073ccd483f9cc438425d3d8ffd3029"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad386233d68c73656a03641ddf3ecaaf2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2">matrix_flex_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t before_dot, uint8_t after_dot)</td></tr> +<tr class="memdesc:ad386233d68c73656a03641ddf3ecaaf2"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the matrix elements. <a href="matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2">More...</a><br /></td></tr> +<tr class="separator:ad386233d68c73656a03641ddf3ecaaf2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a72297a60e572f85929989e813388a9c5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot)</td></tr> +<tr class="memdesc:a72297a60e572f85929989e813388a9c5"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the sub-matrix elements. <a href="matrix_8c.html#a72297a60e572f85929989e813388a9c5">More...</a><br /></td></tr> +<tr class="separator:a72297a60e572f85929989e813388a9c5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a53879e7c4cfbc96725aef9f8234be7dd"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[], uint8_t length)</td></tr> +<tr class="memdesc:a53879e7c4cfbc96725aef9f8234be7dd"><td class="mdescLeft"> </td><td class="mdescRight">Compute the rank of a matrix. <a href="matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd">More...</a><br /></td></tr> +<tr class="separator:a53879e7c4cfbc96725aef9f8234be7dd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aed6fab1ffa40243eeb08117215082be3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_minus_B[m][n])</td></tr> +<tr class="memdesc:aed6fab1ffa40243eeb08117215082be3"><td class="mdescLeft"> </td><td class="mdescRight">Compute the subtraction of two matrices. <a href="matrix_8c.html#aed6fab1ffa40243eeb08117215082be3">More...</a><br /></td></tr> +<tr class="separator:aed6fab1ffa40243eeb08117215082be3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac7101bbaa3a2698658276a7e21501093"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_plus_B[m][n])</td></tr> +<tr class="memdesc:ac7101bbaa3a2698658276a7e21501093"><td class="mdescLeft"> </td><td class="mdescRight">Compute the addition of two matrices. <a href="matrix_8c.html#ac7101bbaa3a2698658276a7e21501093">More...</a><br /></td></tr> +<tr class="separator:ac7101bbaa3a2698658276a7e21501093"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa8acafd4181978f536976f8151e51516"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t diag_el_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value)</td></tr> +<tr class="memdesc:aa8acafd4181978f536976f8151e51516"><td class="mdescLeft"> </td><td class="mdescRight">Add a number to diagonal elements of a matrix. <a href="matrix_8c.html#aa8acafd4181978f536976f8151e51516">More...</a><br /></td></tr> +<tr class="separator:aa8acafd4181978f536976f8151e51516"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a550aa0d5a3212e35ad0af134895fd20a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a> (uint8_t a_line_num, uint8_t a_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[b_line_num][b_col_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[a_line_num][b_col_num])</td></tr> +<tr class="memdesc:a550aa0d5a3212e35ad0af134895fd20a"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of two matrices. <a href="matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a">More...</a><br /></td></tr> +<tr class="separator:a550aa0d5a3212e35ad0af134895fd20a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3763252ca00e4c8522ae1bfd5ef40f0a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a> (uint8_t a_col_num_max, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[][a_col_num_max], uint8_t b_col_num_max, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_size])</td></tr> +<tr class="memdesc:a3763252ca00e4c8522ae1bfd5ef40f0a"><td class="mdescLeft"> </td><td class="mdescRight">Compute the partial multiplication of two matrices. <a href="matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a">More...</a><br /></td></tr> +<tr class="separator:a3763252ca00e4c8522ae1bfd5ef40f0a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad610bcce232c69ca302550f57b1ad9fb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[m])</td></tr> +<tr class="memdesc:ad610bcce232c69ca302550f57b1ad9fb"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a matrix with a column vector. <a href="matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb">More...</a><br /></td></tr> +<tr class="separator:ad610bcce232c69ca302550f57b1ad9fb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3cf18a2c5c6ad62a4e0a0c00d27e2887"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix_vec_mul_matr</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n])</td></tr> +<tr class="memdesc:a3cf18a2c5c6ad62a4e0a0c00d27e2887"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of row vector and a matrix. <a href="matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">More...</a><br /></td></tr> +<tr class="separator:a3cf18a2c5c6ad62a4e0a0c00d27e2887"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac735d13efe5b76ecf60ac13ec79da8e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix_mul_scalar_vec_matr</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n])</td></tr> +<tr class="memdesc:ac735d13efe5b76ecf60ac13ec79da8e3"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a scalar with row vector and a matrix. <a href="matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3">More...</a><br /></td></tr> +<tr class="separator:ac735d13efe5b76ecf60ac13ec79da8e3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a06f75ae4924e3f0dfd0b6a25313dc731"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix_part_mul_scalar_vec_matr</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[max_m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[max_n - begin_row])</td></tr> +<tr class="memdesc:a06f75ae4924e3f0dfd0b6a25313dc731"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a scalar with row vector and a sub-matrix. <a href="matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731">More...</a><br /></td></tr> +<tr class="separator:a06f75ae4924e3f0dfd0b6a25313dc731"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a53b0a1829b2085414fb66a9e9bd6c7b7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], uint8_t b_size, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_vec[n])</td></tr> +<tr class="memdesc:a53b0a1829b2085414fb66a9e9bd6c7b7"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of transposed matrix with column vector. <a href="matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7">More...</a><br /></td></tr> +<tr class="separator:a53b0a1829b2085414fb66a9e9bd6c7b7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acfd7c6f021f4fbcd393fe849c82f34de"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix_mul_col_vec_row_vec</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m], uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> row_vec[n], uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> res_mat[][max_n])</td></tr> +<tr class="memdesc:acfd7c6f021f4fbcd393fe849c82f34de"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a column and row vector. <a href="matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de">More...</a><br /></td></tr> +<tr class="separator:acfd7c6f021f4fbcd393fe849c82f34de"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0107887a6c40980fa639750be8262f01"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> AT_mul_A[n][n])</td></tr> +<tr class="memdesc:a0107887a6c40980fa639750be8262f01"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of the transpose of a matrix with itself. <a href="matrix_8c.html#a0107887a6c40980fa639750be8262f01">More...</a><br /></td></tr> +<tr class="separator:a0107887a6c40980fa639750be8262f01"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a49aa70a7d6ad76388ea08acfe43b7374"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix_set_diag_elements</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n])</td></tr> +<tr class="memdesc:a49aa70a7d6ad76388ea08acfe43b7374"><td class="mdescLeft"> </td><td class="mdescRight">Set all the diagonal elements of a matrix with a specified value. <a href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374">More...</a><br /></td></tr> +<tr class="separator:a49aa70a7d6ad76388ea08acfe43b7374"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae808f007791f060590d39c7668501988"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n], uint8_t length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[])</td></tr> +<tr class="memdesc:ae808f007791f060590d39c7668501988"><td class="mdescLeft"> </td><td class="mdescRight">Set all the diagonal elements of a matrix with values that are saved in a vector. <a href="matrix_8c.html#ae808f007791f060590d39c7668501988">More...</a><br /></td></tr> +<tr class="separator:ae808f007791f060590d39c7668501988"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a18e47742f1653dcc4491badfe2537a0a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n])</td></tr> +<tr class="memdesc:a18e47742f1653dcc4491badfe2537a0a"><td class="mdescLeft"> </td><td class="mdescRight">Create a diagonal matrix with a specified value. <a href="matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a">More...</a><br /></td></tr> +<tr class="separator:a18e47742f1653dcc4491badfe2537a0a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a51139e6c87b602e5e0ebfbc406fda35d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_src[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_dest[m][n])</td></tr> +<tr class="memdesc:a51139e6c87b602e5e0ebfbc406fda35d"><td class="mdescLeft"> </td><td class="mdescRight">Multiply all elements of a matrix with a specified value. <a href="matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d">More...</a><br /></td></tr> +<tr class="separator:a51139e6c87b602e5e0ebfbc406fda35d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3ae0b9f73f82716f3427a523a3412864"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m])</td></tr> +<tr class="memdesc:a3ae0b9f73f82716f3427a523a3412864"><td class="mdescLeft"> </td><td class="mdescRight">Get a column of a matrix. <a href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">More...</a><br /></td></tr> +<tr class="separator:a3ae0b9f73f82716f3427a523a3412864"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac20399f6a8de13b1f392a1e3f7c0fbf4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix_get_part_column_vec</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t col_num, uint8_t offset, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[max_m - offset])</td></tr> +<tr class="memdesc:ac20399f6a8de13b1f392a1e3f7c0fbf4"><td class="mdescLeft"> </td><td class="mdescRight">Get a part of a column of a matrix. <a href="matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">More...</a><br /></td></tr> +<tr class="separator:ac20399f6a8de13b1f392a1e3f7c0fbf4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aef8d1508ad101227ab255a714ab22b94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#aef8d1508ad101227ab255a714ab22b94">matrix_get_max_elem_in_column</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num)</td></tr> +<tr class="memdesc:aef8d1508ad101227ab255a714ab22b94"><td class="mdescLeft"> </td><td class="mdescRight">Get the largest element of a column vector in a matrix. <a href="matrix_8c.html#aef8d1508ad101227ab255a714ab22b94">More...</a><br /></td></tr> +<tr class="separator:aef8d1508ad101227ab255a714ab22b94"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0a3d3cfa20ad3e75ad783af457343672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672">matrix_get_abs_max_elem_in_column</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num)</td></tr> +<tr class="memdesc:a0a3d3cfa20ad3e75ad783af457343672"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum absolute value of a column vector in a matrix. <a href="matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672">More...</a><br /></td></tr> +<tr class="separator:a0a3d3cfa20ad3e75ad783af457343672"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad2cecc467ac6480ef0f3423f962b39bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix_get_max_elem_in_part_column</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</td></tr> +<tr class="memdesc:ad2cecc467ac6480ef0f3423f962b39bc"><td class="mdescLeft"> </td><td class="mdescRight">Get the largest element of a column vector in a sub-matrix. <a href="matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc">More...</a><br /></td></tr> +<tr class="separator:ad2cecc467ac6480ef0f3423f962b39bc"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8d77cfae4f1da83acac929c1ce13d252"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252">matrix_get_abs_max_elem_in_part_column</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</td></tr> +<tr class="memdesc:a8d77cfae4f1da83acac929c1ce13d252"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum absolute value of a column vector in a sub-matrix. <a href="matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252">More...</a><br /></td></tr> +<tr class="separator:a8d77cfae4f1da83acac929c1ce13d252"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f6a1948ec005cff4985559821c4943f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index)</td></tr> +<tr class="memdesc:a5f6a1948ec005cff4985559821c4943f"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum absolute value and its position in a column vector in a sub-matrix. <a href="matrix_8c.html#a5f6a1948ec005cff4985559821c4943f">More...</a><br /></td></tr> +<tr class="separator:a5f6a1948ec005cff4985559821c4943f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a875d6c55a16ee9f8bf523b8c1c82bc6f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i, uint8_t j)</td></tr> +<tr class="memdesc:a875d6c55a16ee9f8bf523b8c1c82bc6f"><td class="mdescLeft"> </td><td class="mdescRight">Swaps two rows of a matrix. <a href="matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">More...</a><br /></td></tr> +<tr class="separator:a875d6c55a16ee9f8bf523b8c1c82bc6f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3570c016691507c003dd7a54cb37e7e2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end)</td></tr> +<tr class="memdesc:a3570c016691507c003dd7a54cb37e7e2"><td class="mdescLeft"> </td><td class="mdescRight">Swaps two rows of a sub-matrix. <a href="matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2">More...</a><br /></td></tr> +<tr class="separator:a3570c016691507c003dd7a54cb37e7e2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aec03481d950677386122e3c8ba6a5cd0"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n])</td></tr> +<tr class="memdesc:aec03481d950677386122e3c8ba6a5cd0"><td class="mdescLeft"> </td><td class="mdescRight">Get the 2-norm of a matrix that is equal to the largest singular value. <a href="matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0">More...</a><br /></td></tr> +<tr class="separator:aec03481d950677386122e3c8ba6a5cd0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aaf85a32b8562c91d2d1889819580375e"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n])</td></tr> +<tr class="memdesc:aaf85a32b8562c91d2d1889819580375e"><td class="mdescLeft"> </td><td class="mdescRight">Get the Frobenius norm of a matrix. <a href="matrix_8c.html#aaf85a32b8562c91d2d1889819580375e">More...</a><br /></td></tr> +<tr class="separator:aaf85a32b8562c91d2d1889819580375e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab166871472924745f70e2bb6e17498c8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_U[][m])</td></tr> +<tr class="memdesc:ab166871472924745f70e2bb6e17498c8"><td class="mdescLeft"> </td><td class="mdescRight">Computes the inverse an upper triangular matrix. <a href="matrix_8c.html#ab166871472924745f70e2bb6e17498c8">More...</a><br /></td></tr> +<tr class="separator:ab166871472924745f70e2bb6e17498c8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae8e87640fa1a2d259ee4dc98c955cb48"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_L[][m])</td></tr> +<tr class="memdesc:ae8e87640fa1a2d259ee4dc98c955cb48"><td class="mdescLeft"> </td><td class="mdescRight">Computes the inverse a lower triangular matrix. <a href="matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48">More...</a><br /></td></tr> +<tr class="separator:ae8e87640fa1a2d259ee4dc98c955cb48"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abbaf8f39b2b7bb4bd2987f99674c1213"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_up_A[][n])</td></tr> +<tr class="memdesc:abbaf8f39b2b7bb4bd2987f99674c1213"><td class="mdescLeft"> </td><td class="mdescRight">Gets the upper triangular part of a matrix. <a href="matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213">More...</a><br /></td></tr> +<tr class="separator:abbaf8f39b2b7bb4bd2987f99674c1213"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adfd93dda9be9b2e8df5805af7fee7845"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_low_A[][n])</td></tr> +<tr class="memdesc:adfd93dda9be9b2e8df5805af7fee7845"><td class="mdescLeft"> </td><td class="mdescRight">Gets the lower triangular part of a matrix. <a href="matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845">More...</a><br /></td></tr> +<tr class="separator:adfd93dda9be9b2e8df5805af7fee7845"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a722a0230185fd66f0cecbeae7d50ce1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix_read</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i, uint8_t j)</td></tr> +<tr class="memdesc:a722a0230185fd66f0cecbeae7d50ce1a"><td class="mdescLeft"> </td><td class="mdescRight">Get the value of a matrix at the position (i,j). <a href="matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a">More...</a><br /></td></tr> +<tr class="separator:a722a0230185fd66f0cecbeae7d50ce1a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a90b6eafa665d34d7330581c32564d632"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8c.html#a90b6eafa665d34d7330581c32564d632">matrix_write</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i, uint8_t j, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> val)</td></tr> +<tr class="memdesc:a90b6eafa665d34d7330581c32564d632"><td class="mdescLeft"> </td><td class="mdescRight">Write a value in a matrix at the position (i,j). <a href="matrix_8c.html#a90b6eafa665d34d7330581c32564d632">More...</a><br /></td></tr> +<tr class="separator:a90b6eafa665d34d7330581c32564d632"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Matrix computations. </p> +<p>Matrix computations include operations such as addition, subtraction, and transposition.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ac7101bbaa3a2698658276a7e21501093"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac7101bbaa3a2698658276a7e21501093">◆ </a></span>matrix_add()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_add </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>B</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A_plus_B</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the addition of two matrices. </p> +<p>Add matrix B to matrix A and return the result in A_plus_B matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">B[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">A_plus_B[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00341">341</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="aa8acafd4181978f536976f8151e51516"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa8acafd4181978f536976f8151e51516">◆ </a></span>matrix_add_to_diag()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_add_to_diag </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>diag_el_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Add a number to diagonal elements of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">diag_el_num</td><td>number of diagonal elements to overwrite. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>the value to add to the diagonal elements. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00353">353</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, and <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="a0e06b2cfb86340e88be7b1219bef0ce3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0e06b2cfb86340e88be7b1219bef0ce3">◆ </a></span>matrix_clear()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_clear </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Clear all the elements of the vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00046">46</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian_get_JTJ()</a>, <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, <a class="el" href="matrix_8c_source.html#l00594">matrix_get_diag_mat()</a>, <a class="el" href="matrix_8c_source.html#l00581">matrix_get_diag_mat_new()</a>, <a class="el" href="matrix_8c_source.html#l00817">matrix_get_inv_low_triang()</a>, <a class="el" href="matrix_8c_source.html#l00795">matrix_get_inv_upp_triang()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +</div> +</div> +<a id="ae8d8daa117e9f96a5e29fe6c76c4998c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae8d8daa117e9f96a5e29fe6c76c4998c">◆ </a></span>matrix_copy()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_copy </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>src_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Copy the elements of a matrix to another matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to copy. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to copy. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_matrix[][]</td><td>pointer to the source matrix </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00083">83</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a72297a60e572f85929989e813388a9c5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a72297a60e572f85929989e813388a9c5">◆ </a></span>matrix_flex_part_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_flex_part_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>before_dot</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>after_dot</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the sub-matrix elements. </p> +<p>This function allows the user to determine the precision as well as the with of the numbers to display.</p> +<dl class="section note"><dt>Note</dt><dd>This function is more memory-consuming than <a class="el" href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_row_ind</td><td>start row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_row_ind</td><td>end row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_col_ind</td><td>start column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_col_ind</td><td>end column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">before_dot</td><td>the number of digits to be printed before the decimal point. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">after_dot</td><td>the number of digits to be printed after the decimal point. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00247">247</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="utils_8c_source.html#l00096">utils_printf()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="ad386233d68c73656a03641ddf3ecaaf2"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad386233d68c73656a03641ddf3ecaaf2">◆ </a></span>matrix_flex_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_flex_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>before_dec</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>after_dec</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the matrix elements. </p> +<p>This function allows the user to determine the precision as well as the with of the numbers to display.</p> +<dl class="section note"><dt>Note</dt><dd>This function is more memory-consuming than <a class="el" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">before_dec</td><td>the number of digits to be printed before the decimal point. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">after_dec</td><td>the number of digits to be printed after the decimal point. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00220">220</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="utils_8c_source.html#l00096">utils_printf()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, <a class="el" href="matrix__test_8c_source.html#l00164">inv_triangular_matrices_test()</a>, <a class="el" href="lu__decomp__test_8c_source.html#l00029">lu_decomp_test()</a>, <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00167">moore_penrose_pinv_compute_print()</a>, <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>, <a class="el" href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test()</a>, <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a5f6a1948ec005cff4985559821c4943f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f6a1948ec005cff4985559821c4943f">◆ </a></span>matrix_get_abs_max_elem_and_index_in_part_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_abs_max_elem_and_index_in_part_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>index</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the maximum absolute value and its position in a column vector in a sub-matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_num</td><td>row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">index</td><td>pointer to the variable holding the position of the maximum absolute value in the column vector of the sub-matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximum absolute value of a partial column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00703">703</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>.</p> + +</div> +</div> +<a id="a0a3d3cfa20ad3e75ad783af457343672"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0a3d3cfa20ad3e75ad783af457343672">◆ </a></span>matrix_get_abs_max_elem_in_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_abs_max_elem_in_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the maximum absolute value of a column vector in a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximum absolute value of a column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00651">651</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a8d77cfae4f1da83acac929c1ce13d252"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8d77cfae4f1da83acac929c1ce13d252">◆ </a></span>matrix_get_abs_max_elem_in_part_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_abs_max_elem_in_part_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the maximum absolute value of a column vector in a sub-matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_num</td><td>row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the sub-matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximum absolute value of a partial column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00685">685</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a3ae0b9f73f82716f3427a523a3412864"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3ae0b9f73f82716f3427a523a3412864">◆ </a></span>matrix_get_column_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_column_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>col_vec</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get a column of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>number of the requested column. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">col_vec[]</td><td>pointer to the column vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00612">612</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>.</p> + +</div> +</div> +<a id="a18e47742f1653dcc4491badfe2537a0a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a18e47742f1653dcc4491badfe2537a0a">◆ </a></span>matrix_get_diag_mat()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_diag_mat </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>diag_matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Create a diagonal matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>value of the diagonal elements. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">diag_matrix[][]</td><td>pointer to the diagonal matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00594">594</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8c_source.html#l00565">matrix_set_diag_elements()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>, and <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="ae808f007791f060590d39c7668501988"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae808f007791f060590d39c7668501988">◆ </a></span>matrix_get_diag_mat_new()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_diag_mat_new </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>diag_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Set all the diagonal elements of a matrix with values that are saved in a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">diag_matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec</td><td>pointer to the vector containing diagonal elements. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00581">581</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="aaf85a32b8562c91d2d1889819580375e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aaf85a32b8562c91d2d1889819580375e">◆ </a></span>matrix_get_frob_norm()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double matrix_get_frob_norm </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the Frobenius norm of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the Frobenius norm a matrix. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00782">782</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="ae8e87640fa1a2d259ee4dc98c955cb48"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae8e87640fa1a2d259ee4dc98c955cb48">◆ </a></span>matrix_get_inv_low_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_inv_low_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>L</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>inv_L</em>[][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the inverse a lower triangular matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">L[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">inv_L[][]</td><td>pointer to the inverse matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00817">817</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00164">inv_triangular_matrices_test()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +<a id="ab166871472924745f70e2bb6e17498c8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab166871472924745f70e2bb6e17498c8">◆ </a></span>matrix_get_inv_upp_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_inv_upp_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>U</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>inv_U</em>[][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the inverse an upper triangular matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">U[][]</td><td>pointer to the upper triangular matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">inv_U[][]</td><td>pointer to the inverse matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00795">795</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00164">inv_triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="adfd93dda9be9b2e8df5805af7fee7845"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adfd93dda9be9b2e8df5805af7fee7845">◆ </a></span>matrix_get_low_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_low_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tr_low_A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Gets the lower triangular part of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">tr_low_A[][]</td><td>pointer to the lower triangular part of the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00868">868</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="aef8d1508ad101227ab255a714ab22b94"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aef8d1508ad101227ab255a714ab22b94">◆ </a></span>matrix_get_max_elem_in_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_max_elem_in_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the largest element of a column vector in a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the largest element of a column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00635">635</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="ad2cecc467ac6480ef0f3423f962b39bc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad2cecc467ac6480ef0f3423f962b39bc">◆ </a></span>matrix_get_max_elem_in_part_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_max_elem_in_part_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the largest element of a column vector in a sub-matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_num</td><td>row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the sub-matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the largest element of a partial column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00668">668</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="ac20399f6a8de13b1f392a1e3f7c0fbf4"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac20399f6a8de13b1f392a1e3f7c0fbf4">◆ </a></span>matrix_get_part_column_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_part_column_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>offset</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>col_vec</em>[max_m - offset] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get a part of a column of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>number of the requested column. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>points to the start position of the column vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">col_vec[]</td><td>pointer to the column vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00623">623</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a53879e7c4cfbc96725aef9f8234be7dd"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a53879e7c4cfbc96725aef9f8234be7dd">◆ </a></span>matrix_get_rank()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t matrix_get_rank </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>singl_values_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the rank of a matrix. </p> +<p>The SVD must be previously invoked to get the singular values of the matrix.</p> +<dl class="section note"><dt>Note</dt><dd>This function should be invoked after the call of the <a class="el" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a> method.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">singl_values_arr[]</td><td>array containing the singular values of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>length of the singular values array.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the rank of the matrix. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00312">312</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="aec03481d950677386122e3c8ba6a5cd0"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aec03481d950677386122e3c8ba6a5cd0">◆ </a></span>matrix_get_two_norm()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double matrix_get_two_norm </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the 2-norm of a matrix that is equal to the largest singular value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the 2-norm of a matrix. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00752">752</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8c_source.html#l00083">matrix_copy()</a>, <a class="el" href="matrix_8c_source.html#l00141">matrix_print()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00119">svd()</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, and <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="abbaf8f39b2b7bb4bd2987f99674c1213"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abbaf8f39b2b7bb4bd2987f99674c1213">◆ </a></span>matrix_get_upp_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_upp_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tr_up_A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Gets the upper triangular part of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">tr_up_A[][]</td><td>pointer to the upper triangular part of the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00841">841</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a48b36217faeda15438f4e07c54d0ef9e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a48b36217faeda15438f4e07c54d0ef9e">◆ </a></span>matrix_in_place_transpose()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_in_place_transpose </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the in-place transpose of a matrix. </p> +<p>Transpose the matrix without auxiliary memory.</p> +<dl class="section note"><dt>Note</dt><dd>This function is limited to square matrices.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row and column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix to transpose. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00069">69</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="acfd2bbc4a90915e57a4555694e842312"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acfd2bbc4a90915e57a4555694e842312">◆ </a></span>matrix_init()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_init </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize all the elements of the matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>value to be set. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00051">51</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a550aa0d5a3212e35ad0af134895fd20a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a550aa0d5a3212e35ad0af134895fd20a">◆ </a></span>matrix_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_line_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>a_matrix</em>[a_line_num][a_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_line_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_matrix</em>[b_line_num][b_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[a_line_num][b_col_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of two matrices. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a_line_num</td><td>row number of the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_col_num</td><td>column number of the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_matrix[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_line_num</td><td>row number of the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_col_num</td><td>column number of the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_matrix[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00363">363</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="DOP_8c_source.html#l00030">get_PDOP()</a>, <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +<a id="acfd7c6f021f4fbcd393fe849c82f34de"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acfd7c6f021f4fbcd393fe849c82f34de">◆ </a></span>matrix_mul_col_vec_row_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_col_vec_row_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>col_vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>row_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>res_mat</em>[][max_n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a column and row vector. </p> +<p>Return Cm,1 * R1,n = Mm,n, where C is a m-dimensional column vector, R is a n-dimensional row vector, and the result is a (mxn)-matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the column vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_vec[]</td><td>pointer to the column vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>column number of the result matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">res_mat[][]</td><td>pointer to the (mxn) result matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00531">531</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a51139e6c87b602e5e0ebfbc406fda35d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a51139e6c87b602e5e0ebfbc406fda35d">◆ </a></span>matrix_mul_scalar()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_scalar </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mat_src</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mat_dest</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Multiply all elements of a matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">mat_src</td><td>pointer to the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>multiplication factor. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">mat_dest[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00602">602</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, and <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="ac735d13efe5b76ecf60ac13ec79da8e3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac735d13efe5b76ecf60ac13ec79da8e3">◆ </a></span>matrix_mul_scalar_vec_matr()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_scalar_vec_matr </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>scalar</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a scalar with row vector and a matrix. </p> +<p>Return scal*R1,m * Am,n = R1,n, where scal is a scalar, R is a m-dimensional row vector, A is a (mxn)-matrix, and the result is a row vector of n-dimension.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>size of the row vector and row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scalar</td><td>scalar value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination row vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00470">470</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="ad610bcce232c69ca302550f57b1ad9fb"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad610bcce232c69ca302550f57b1ad9fb">◆ </a></span>matrix_mul_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a matrix with a column vector. </p> +<p>Return Am,n * Vn,1 = Bm,1, where the A is a (mxn)-matrix, V is a n-dimensional column vector, and the result is a m-dimensional column vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec</td><td>pointer to the n-dimensional column vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination m-dimensional column vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00434">434</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, <a class="el" href="solve_8c_source.html#l00035">solve()</a>, <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, and <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>.</p> + +</div> +</div> +<a id="a56513a88eff05b0683320c532fadf945"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a56513a88eff05b0683320c532fadf945">◆ </a></span>matrix_part_copy()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_copy </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>src_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>dest_row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>dest_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[][dest_col_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Copy a part of a matrix to another matrix or sub-matrix. </p> +<p>A part of the source matrix can be copied in a sub-part of the destination matrix (sub-matrix). The source and destination sub-matrices are limited by the row and column indices.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_matrix[][]</td><td>pointer to the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_row_ind</td><td>the start index of the rows of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_row_ind</td><td>the end index of the rows of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_col_ind</td><td>the start index of the columns of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_col_ind</td><td>the end index of the columns of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_row_num</td><td>the row number of the destination sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_col_num</td><td>the column number of the destination sub-matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination (sub)-matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00089">89</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__common_8c_source.html#l00059">qr_common_get_reduced_QR()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +</div> +</div> +<a id="a3763252ca00e4c8522ae1bfd5ef40f0a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3763252ca00e4c8522ae1bfd5ef40f0a">◆ </a></span>matrix_part_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_col_num_max</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>a_matrix</em>[][a_col_num_max], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_col_num_max</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_matrix</em>[][b_col_num_max], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>dest_col_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[][dest_col_size] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the partial multiplication of two matrices. </p> +<p>Enables the calculation of matrix product of parts of two matrices.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a_col_num_max</td><td>column number of the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_matrix[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_col_num_max</td><td>column number of the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_matrix[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_start_row_ind</td><td>row begin of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_end_row_ind</td><td>row end of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_start_col_ind</td><td>column begin of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_end_col_ind</td><td>column end of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_start_row_ind</td><td>row begin of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_end_row_ind</td><td>row end of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_start_col_ind</td><td>column begin of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_end_col_ind</td><td>column end of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_col_size</td><td>column size of the destination matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00391">391</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="a06f75ae4924e3f0dfd0b6a25313dc731"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a06f75ae4924e3f0dfd0b6a25313dc731">◆ </a></span>matrix_part_mul_scalar_vec_matr()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_mul_scalar_vec_matr </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>scalar</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[max_m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>begin_row</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>begin_column</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[max_n - begin_row] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a scalar with row vector and a sub-matrix. </p> +<p>Return scal*R1,m * Am,n = R1,n, where scal is a scalar, R is a m-dimensional row vector, A is a (mxn)-matrix, and the result is a row vector of n-dimension.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>size of the row vector and row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scalar</td><td>scalar value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">begin_row</td><td>start row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">begin_column</td><td>start column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination row vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00489">489</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a72073ccd483f9cc438425d3d8ffd3029"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a72073ccd483f9cc438425d3d8ffd3029">◆ </a></span>matrix_part_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_col_ind</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the sub-matrix elements. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_row_ind</td><td>start row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_row_ind</td><td>end row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_col_ind</td><td>start column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_col_ind</td><td>end column number of the sub-matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00164">164</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a3570c016691507c003dd7a54cb37e7e2"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3570c016691507c003dd7a54cb37e7e2">◆ </a></span>matrix_part_swap_rows()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_swap_rows </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_begin</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_end</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Swaps two rows of a sub-matrix. </p> +<p>Swaps the rows i and j of a part of a matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the entire matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>the i-the row of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>the j-the row of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_begin</td><td>the column begin of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_end</td><td>the column end of the sub-matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00736">736</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>.</p> + +</div> +</div> +<a id="a32ab12965ec43c2acf65cf9dd510353a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a32ab12965ec43c2acf65cf9dd510353a">◆ </a></span>matrix_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the matrix elements. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00141">141</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, and <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>.</p> + +</div> +</div> +<a id="a722a0230185fd66f0cecbeae7d50ce1a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a722a0230185fd66f0cecbeae7d50ce1a">◆ </a></span>matrix_read()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_read </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the value of a matrix at the position (i,j). </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>row number. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>column number.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the value of the matrix at the row i and column j. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00895">895</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a49aa70a7d6ad76388ea08acfe43b7374"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a49aa70a7d6ad76388ea08acfe43b7374">◆ </a></span>matrix_set_diag_elements()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_set_diag_elements </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>diag_matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Set all the diagonal elements of a matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>value to be set. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">diag_matrix[][]</td><td>pointer to the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00565">565</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00594">matrix_get_diag_mat()</a>.</p> + +</div> +</div> +<a id="aed6fab1ffa40243eeb08117215082be3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aed6fab1ffa40243eeb08117215082be3">◆ </a></span>matrix_sub()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_sub </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>B</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A_minus_B</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the subtraction of two matrices. </p> +<p>Subtract matrix B from matrix A and return the result in A_minus_B matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">B[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">A_minus_B[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00329">329</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="a875d6c55a16ee9f8bf523b8c1c82bc6f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a875d6c55a16ee9f8bf523b8c1c82bc6f">◆ </a></span>matrix_swap_rows()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_swap_rows </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Swaps two rows of a matrix. </p> +<p>Swaps the rows i and j of a matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>the i-the row of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>the j-the row of the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00725">725</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>, and <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="a0107887a6c40980fa639750be8262f01"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0107887a6c40980fa639750be8262f01">◆ </a></span>matrix_trans_mul_itself()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_trans_mul_itself </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>AT_mul_A</em>[n][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of the transpose of a matrix with itself. </p> +<p>Transpose the matrix A and multiply it with the matrix A: A'*A.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">AT_mul_A[][]</td><td>pointer to the destination matrix (A'*A). </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00545">545</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00612">matrix_get_column_vec()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00099">magnetic_based_jacobian_get_JTJ()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, and <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="a53b0a1829b2085414fb66a9e9bd6c7b7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a53b0a1829b2085414fb66a9e9bd6c7b7">◆ </a></span>matrix_trans_mul_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_trans_mul_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>c_vec</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of transposed matrix with column vector. </p> +<p>Transpose A and return A'n,m * Vm,1 = Bn,1, where A is a (mxn)-matrix, V is a m-dimensional column vector, and the result is a n-dimensional column vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to transpose and multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to transpose and multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_size</td><td>size of the column vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the column vector of m-dimension. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">c_vec[]</td><td>pointer to the destination, column vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00511">511</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian_get_JTf()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>, and <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>.</p> + +</div> +</div> +<a id="ad7c9a682a3cc4ca33c030afa8798241a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad7c9a682a3cc4ca33c030afa8798241a">◆ </a></span>matrix_transpose()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_transpose </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>src_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[n][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the transpose of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_matrix[][]</td><td>pointer to the matrix to transpose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00056">56</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="DOP_8c_source.html#l00030">get_PDOP()</a>, <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a3cf18a2c5c6ad62a4e0a0c00d27e2887"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3cf18a2c5c6ad62a4e0a0c00d27e2887">◆ </a></span>matrix_vec_mul_matr()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_vec_mul_matr </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of row vector and a matrix. </p> +<p>Return R1,m * Am,n = R1,n, where R is a m-dimensional row vector, A is a (mxn)-matrix, and the result is a row vector of n-dimension.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>size of the row vector and row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination row vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00452">452</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a90b6eafa665d34d7330581c32564d632"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a90b6eafa665d34d7330581c32564d632">◆ </a></span>matrix_write()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_write </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>val</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Write a value in a matrix at the position (i,j). </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>row number. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>column number. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>value to write in the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00901">901</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="matrix_8c.html">matrix.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix_8c.js b/doc/doxygen/html/matrix_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..c00b46578c31f82f2a16d31ebaebd6c2ebc270f7 --- /dev/null +++ b/doc/doxygen/html/matrix_8c.js @@ -0,0 +1,47 @@ +var matrix_8c = +[ + [ "matrix_add", "matrix_8c.html#ac7101bbaa3a2698658276a7e21501093", null ], + [ "matrix_add_to_diag", "matrix_8c.html#aa8acafd4181978f536976f8151e51516", null ], + [ "matrix_clear", "matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3", null ], + [ "matrix_copy", "matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c", null ], + [ "matrix_flex_part_print", "matrix_8c.html#a72297a60e572f85929989e813388a9c5", null ], + [ "matrix_flex_print", "matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2", null ], + [ "matrix_get_abs_max_elem_and_index_in_part_column", "matrix_8c.html#a5f6a1948ec005cff4985559821c4943f", null ], + [ "matrix_get_abs_max_elem_in_column", "matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672", null ], + [ "matrix_get_abs_max_elem_in_part_column", "matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252", null ], + [ "matrix_get_column_vec", "matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864", null ], + [ "matrix_get_diag_mat", "matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a", null ], + [ "matrix_get_diag_mat_new", "matrix_8c.html#ae808f007791f060590d39c7668501988", null ], + [ "matrix_get_frob_norm", "matrix_8c.html#aaf85a32b8562c91d2d1889819580375e", null ], + [ "matrix_get_inv_low_triang", "matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48", null ], + [ "matrix_get_inv_upp_triang", "matrix_8c.html#ab166871472924745f70e2bb6e17498c8", null ], + [ "matrix_get_low_triang", "matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845", null ], + [ "matrix_get_max_elem_in_column", "matrix_8c.html#aef8d1508ad101227ab255a714ab22b94", null ], + [ "matrix_get_max_elem_in_part_column", "matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc", null ], + [ "matrix_get_part_column_vec", "matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4", null ], + [ "matrix_get_rank", "matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd", null ], + [ "matrix_get_two_norm", "matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0", null ], + [ "matrix_get_upp_triang", "matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213", null ], + [ "matrix_in_place_transpose", "matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e", null ], + [ "matrix_init", "matrix_8c.html#acfd2bbc4a90915e57a4555694e842312", null ], + [ "matrix_mul", "matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a", null ], + [ "matrix_mul_col_vec_row_vec", "matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de", null ], + [ "matrix_mul_scalar", "matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d", null ], + [ "matrix_mul_scalar_vec_matr", "matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3", null ], + [ "matrix_mul_vec", "matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb", null ], + [ "matrix_part_copy", "matrix_8c.html#a56513a88eff05b0683320c532fadf945", null ], + [ "matrix_part_mul", "matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a", null ], + [ "matrix_part_mul_scalar_vec_matr", "matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731", null ], + [ "matrix_part_print", "matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029", null ], + [ "matrix_part_swap_rows", "matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2", null ], + [ "matrix_print", "matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a", null ], + [ "matrix_read", "matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a", null ], + [ "matrix_set_diag_elements", "matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374", null ], + [ "matrix_sub", "matrix_8c.html#aed6fab1ffa40243eeb08117215082be3", null ], + [ "matrix_swap_rows", "matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f", null ], + [ "matrix_trans_mul_itself", "matrix_8c.html#a0107887a6c40980fa639750be8262f01", null ], + [ "matrix_trans_mul_vec", "matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7", null ], + [ "matrix_transpose", "matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a", null ], + [ "matrix_vec_mul_matr", "matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887", null ], + [ "matrix_write", "matrix_8c.html#a90b6eafa665d34d7330581c32564d632", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/matrix_8c_source.html b/doc/doxygen/html/matrix_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..2a5bd767508c90ae2b028684ef97684d6ddc337a --- /dev/null +++ b/doc/doxygen/html/matrix_8c_source.html @@ -0,0 +1,1051 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">matrix.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="matrix_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="svd_8h.html">svd.h</a>"</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">static</span> int32_t max(int32_t a, int32_t b)</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (a > b) {</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  }</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3"> 46</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n])</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  memset(matrix, 0, <span class="keyword">sizeof</span>(matrix[0][0]) * m * n);</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> }</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="matrix_8c.html#acfd2bbc4a90915e57a4555694e842312"> 51</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#acfd2bbc4a90915e57a4555694e842312">matrix_init</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value)</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  memset(matrix, value, <span class="keyword">sizeof</span>(matrix[0][0]) * m * n);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a"> 56</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n],</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[n][m])</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">int</span> i, j;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  dest_matrix[j][i] = src_matrix[i][j];</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div> +<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e"> 69</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][m])</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  uint8_t i, j;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp;</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">for</span> (j = i + 1; j < m; j++) {</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  tmp = matrix[i][j];</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  matrix[i][j] = matrix[j][i];</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  matrix[j][i] = tmp;</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div> +<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c"> 83</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n],</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[m][n])</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> {</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  memcpy(dest_matrix, src_matrix, <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>) * m * n);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="matrix_8c.html#a56513a88eff05b0683320c532fadf945"> 89</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n],</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  uint8_t start_row_ind, uint8_t end_row_ind,</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  uint8_t start_col_ind, uint8_t end_col_ind,</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  uint8_t dest_row_num, uint8_t dest_col_num,</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_num])</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  int16_t i, j;</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> ((end_row_ind > start_row_ind) && (end_col_ind > start_col_ind)) {</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">for</span> (i = start_row_ind;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  (i <= end_row_ind)</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  && ((i - start_row_ind)</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  < dest_row_num);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  i++) {</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">for</span> (j = start_col_ind;</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  (j <= end_col_ind)</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  && ((j - start_col_ind)</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  < dest_col_num);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  j++) {</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  dest_matrix[i - start_row_ind][j - start_col_ind] =</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  src_matrix[i][j];</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">//copy one element</span></div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span> ((start_row_ind == end_row_ind)</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  && (start_col_ind == end_col_ind)) {</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  dest_matrix[start_row_ind][start_row_ind] =</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  src_matrix[start_row_ind][start_row_ind];</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">//copy a row vector of the matrix</span></div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (start_row_ind == end_row_ind) {</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  i = 0;</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">for</span> (j = start_col_ind; j <= end_col_ind; j++) {</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  dest_matrix[start_row_ind][i++] =</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  src_matrix[start_row_ind][j];</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">//copy a column vector of the matrix</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (start_col_ind == end_col_ind) {</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  j = 0;</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span> (i = start_row_ind; i <= end_row_ind; i++) {</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  dest_matrix[j++][start_col_ind] =</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  src_matrix[i][start_col_ind];</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> }</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a"> 141</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n])</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> {</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">int</span> i, j;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  puts(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  printf(<span class="stringliteral">"%7.4f"</span>, matrix[i][j]);</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span> (j < n - 1) {</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span> (i < m - 1) {</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> }</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div> +<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029"> 164</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  uint8_t start_row_ind, uint8_t end_row_ind,</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  uint8_t start_col_ind, uint8_t end_col_ind)</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  int16_t i, j;</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> ((end_row_ind > start_row_ind) && (end_col_ind > start_col_ind)) {</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  puts(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">for</span> (i = start_row_ind; i <= end_row_ind; i++) {</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">for</span> (j = start_col_ind; j <= end_col_ind; j++) {</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  printf(<span class="stringliteral">"%7.4f"</span>, matrix[i][j]);</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span> (j < end_col_ind) {</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (i < end_row_ind) {</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  }</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">//print only one element of the matrix</span></div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span> ((start_row_ind == end_row_ind)</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  & (start_col_ind == end_col_ind)) {</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  printf(<span class="stringliteral">"{%3.4f}"</span>, matrix[start_row_ind][start_col_ind]);</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// print row vector of the matrix</span></div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (start_row_ind == end_row_ind) {</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">for</span> (j = start_col_ind; j <= end_col_ind; j++) {</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  printf(<span class="stringliteral">"%3.4f"</span>, matrix[start_row_ind][j]);</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (j < end_col_ind) {</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// print column vector of the matrix</span></div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (start_col_ind == end_col_ind) {</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  puts(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">for</span> (i = start_row_ind; i <= end_row_ind; i++) {</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  printf(<span class="stringliteral">"%3.4f"</span>, matrix[i][start_col_ind]);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> (i < end_row_ind) {</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  printf(<span class="stringliteral">",\n"</span>);</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div> +<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2"> 220</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2">matrix_flex_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  uint8_t before_dot, uint8_t after_dot)</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> {</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  uint16_t i, j;</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordtype">char</span> format_str_buff[13];</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  </div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  sprintf(format_str_buff, <span class="stringliteral">"%%%u.%uf"</span>, before_dot, after_dot);</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  puts(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  printf(<span class="stringliteral">"%11s"</span>, <span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(format_str_buff, matrix[i][j]);</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (j < n - 1) {</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (i < m - 1) {</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  printf(<span class="stringliteral">"%7s\n"</span>, <span class="stringliteral">"};"</span>);</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> }</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div> +<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="matrix_8c.html#a72297a60e572f85929989e813388a9c5"> 247</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  uint8_t start_row_ind, uint8_t end_row_ind,</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  uint8_t start_col_ind, uint8_t end_col_ind,</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  uint8_t before_dot, uint8_t after_dot)</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> {</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  int16_t i, j;</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordtype">char</span> format_str_buff[13];</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  </div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  sprintf(format_str_buff, <span class="stringliteral">"%%%u.%uf"</span>, before_dot, after_dot);</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">if</span> ((end_row_ind > start_row_ind) && (end_col_ind > start_col_ind)) {</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  puts(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">for</span> (i = start_row_ind; i <= end_row_ind; i++) {</div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  printf(<span class="stringliteral">"%11s"</span>, <span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">for</span> (j = start_col_ind; j <= end_col_ind; j++) {</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(format_str_buff, matrix[i][j]);</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (j < end_col_ind) {</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (i < end_row_ind) {</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  printf(<span class="stringliteral">"%11s\n"</span>, <span class="stringliteral">"};"</span>);</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">//print only one element of the matrix</span></div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> ((start_row_ind == end_row_ind)</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  & (start_col_ind == end_col_ind)) {</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(format_str_buff,</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  matrix[start_row_ind][start_col_ind]);</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="comment">// print row vector of the matrix</span></div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (start_row_ind == end_row_ind) {</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">for</span> (j = start_col_ind; j <= end_col_ind; j++) {</div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(format_str_buff,</div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  matrix[start_row_ind][j]);</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">if</span> (j < end_col_ind) {</div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="comment">// print column vector of the matrix</span></div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (start_col_ind == end_col_ind) {</div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  puts(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">for</span> (i = start_row_ind; i <= end_row_ind; i++) {</div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(format_str_buff,</div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  matrix[i][start_col_ind]);</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">if</span> (i < end_row_ind) {</div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  printf(<span class="stringliteral">",\n"</span>);</div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> }</div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  </div> +<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd"> 312</a></span> uint8_t <a class="code" href="matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[],</div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  uint8_t length)</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> {</div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  uint8_t rank = 0;</div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordtype">int</span> i;</div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordtype">double</span> eps = pow(2.0, -52.0);</div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordtype">double</span> tol = max(m, n) * singl_values_arr[0] * eps;</div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">if</span> (singl_values_arr[i] > tol) {</div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  rank++;</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> rank;</div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> }</div> +<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div> +<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="matrix_8c.html#aed6fab1ffa40243eeb08117215082be3"> 329</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n],</div> +<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_minus_B[m][n])</div> +<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> {</div> +<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  uint8_t i, j;</div> +<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  </div> +<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  A_minus_B[i][j] = A[i][j] - B[i][j];</div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> }</div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div> +<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="matrix_8c.html#ac7101bbaa3a2698658276a7e21501093"> 341</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n],</div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_plus_B[m][n])</div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> {</div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  uint8_t i, j;</div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  </div> +<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  A_plus_B[i][j] = A[i][j] + B[i][j];</div> +<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div> +<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  }</div> +<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> }</div> +<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  </div> +<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="matrix_8c.html#aa8acafd4181978f536976f8151e51516"> 353</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t diag_el_num,</div> +<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value)</div> +<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> {</div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  uint8_t i;</div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">for</span> (i = 0; i < diag_el_num; i++) {</div> +<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  A[i][i] += value;</div> +<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> }</div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div> +<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a"> 363</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(uint8_t a_line_num, uint8_t a_col_num,</div> +<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[a_line_num][a_col_num],</div> +<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  uint8_t b_line_num, uint8_t b_col_num,</div> +<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[b_line_num][b_col_num],</div> +<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[a_line_num][b_col_num])</div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> {</div> +<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div> +<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordtype">int</span> i, j, k;</div> +<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  </div> +<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> (a_col_num != b_line_num) {</div> +<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  puts(</div> +<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="stringliteral">"the first matrix column number must be equal with the line number"</span></div> +<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="stringliteral">" of the second matrix !!!"</span>);</div> +<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div> +<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div> +<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">for</span> (i = 0; i < a_line_num; i++) {</div> +<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">for</span> (j = 0; j < b_col_num; j++) {</div> +<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  dest_matrix[i][j] = 0;</div> +<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">for</span> (k = 0; k < b_line_num; k++) {</div> +<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  dest_matrix[i][j] += a_matrix[i][k]</div> +<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  * b_matrix[k][j];</div> +<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  }</div> +<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div> +<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div> +<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  }</div> +<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> }</div> +<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div> +<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a"> 391</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a>(uint8_t a_col_num_max, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[][a_col_num_max],</div> +<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  uint8_t b_col_num_max, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[][b_col_num_max],</div> +<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  uint8_t a_start_row_ind, uint8_t a_end_row_ind,</div> +<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  uint8_t a_start_col_ind, uint8_t a_end_col_ind,</div> +<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  uint8_t b_start_row_ind, uint8_t b_end_row_ind,</div> +<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  uint8_t b_start_col_ind, uint8_t b_end_col_ind,</div> +<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  uint8_t dest_col_size,</div> +<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_size])</div> +<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> {</div> +<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  uint8_t a_line_num;</div> +<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  uint8_t b_col_num;</div> +<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  uint8_t b_line_num;</div> +<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  </div> +<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">if</span> ((a_end_col_ind - a_start_col_ind)</div> +<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  != (b_end_row_ind - b_start_row_ind)) {</div> +<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  puts(</div> +<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="stringliteral">"the first matrix column number must be equal with the line number"</span></div> +<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="stringliteral">" of the second matrix !!!"</span>);</div> +<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div> +<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  </div> +<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  a_line_num = a_end_row_ind - a_start_row_ind + 1;</div> +<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  b_line_num = b_end_row_ind - b_start_row_ind + 1;</div> +<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  b_col_num = b_end_col_ind - b_start_col_ind + 1;</div> +<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div> +<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < a_line_num; i++) {</div> +<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j < b_col_num; j++) {</div> +<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  dest_matrix[i][j] = 0;</div> +<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">for</span> (uint8_t k = 0; k < b_line_num; k++) {</div> +<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  dest_matrix[i][j] +=</div> +<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  a_matrix[i</div> +<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  + a_start_row_ind][k</div> +<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  + a_start_col_ind]</div> +<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  * b_matrix[k</div> +<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  + b_start_row_ind][j</div> +<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  + b_start_col_ind];</div> +<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div> +<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div> +<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div> +<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div> +<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> }</div> +<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  </div> +<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div> +<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb"> 434</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[m])</div> +<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> {</div> +<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  </div> +<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  uint8_t i, j;</div> +<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  </div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">if</span> (vec != dst_arr) {</div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  memset(dst_arr, 0, m * <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>));</div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  </div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  dst_arr[i] += matrix[i][j] * vec[j];</div> +<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div> +<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div> +<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> }</div> +<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  </div> +<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div> +<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887"> 452</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix_vec_mul_matr</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m],</div> +<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n])</div> +<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> {</div> +<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  uint8_t i, j;</div> +<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  </div> +<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="comment">//Make sense ?</span></div> +<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">if</span> (vec != dst_arr) {</div> +<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  memset(dst_arr, 0, n * <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>));</div> +<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div> +<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  </div> +<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">for</span> (i = 0; i < n; i++) { <span class="comment">//column</span></div> +<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">for</span> (j = 0; j < m; j++) { <span class="comment">//rows</span></div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  dst_arr[i] += vec[j] * matrix[j][i];</div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  }</div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> }</div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  </div> +<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  </div> +<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3"> 470</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix_mul_scalar_vec_matr</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar,</div> +<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n])</div> +<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> {</div> +<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  uint8_t i, j;</div> +<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  </div> +<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="comment">//Make sense ?</span></div> +<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">if</span> (vec != dst_arr) {</div> +<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  memset(dst_arr, 0, n * <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>));</div> +<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div> +<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  </div> +<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">for</span> (i = 0; i < n; i++) { <span class="comment">//column</span></div> +<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">for</span> (j = 0; j < m; j++) { <span class="comment">//rows</span></div> +<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  dst_arr[i] += scalar * vec[j] * matrix[j][i];</div> +<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  }</div> +<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div> +<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> }</div> +<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  </div> +<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  </div> +<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731"> 489</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix_part_mul_scalar_vec_matr</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[max_m],</div> +<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  uint8_t begin_row, uint8_t begin_column,</div> +<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[max_n - begin_row])</div> +<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> {</div> +<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  int16_t i, j;</div> +<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  </div> +<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">if</span> (vec != dst_arr) {</div> +<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  memset(dst_arr, 0, (max_n - begin_row) * <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>));</div> +<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div> +<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  </div> +<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">for</span> (i = begin_column; i < max_n; i++) { <span class="comment">//column</span></div> +<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">for</span> (j = begin_row; j < max_m; j++) { <span class="comment">//rows</span></div> +<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  dst_arr[i - begin_column] += scalar * vec[j - begin_row]</div> +<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  * matrix[j][i];</div> +<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div> +<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div> +<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div> +<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> }</div> +<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  </div> +<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  </div> +<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7"> 511</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  uint8_t b_size, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[m], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_vec[n])</div> +<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> {</div> +<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  uint8_t i, j;</div> +<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div> +<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> (m != b_size) {</div> +<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  puts(</div> +<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="stringliteral">"The vector size should be equal the raw number of the matrix !!!"</span>);</div> +<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div> +<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  c_vec[j] = 0;</div> +<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  c_vec[j] += A[i][j] * b_vec[i];</div> +<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div> +<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div> +<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  }</div> +<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> }</div> +<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  </div> +<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  </div> +<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de"> 531</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix_mul_col_vec_row_vec</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m], uint8_t n,</div> +<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> row_vec[n], uint8_t max_n,</div> +<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> res_mat[][max_n])</div> +<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> {</div> +<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  uint8_t i, j;</div> +<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  </div> +<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  res_mat[i][j] = col_vec[i] * row_vec[j];</div> +<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  }</div> +<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div> +<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> }</div> +<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  </div> +<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  </div> +<div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="matrix_8c.html#a0107887a6c40980fa639750be8262f01"> 545</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> AT_mul_A[n][n])</div> +<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> {</div> +<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  uint8_t i, j, k;</div> +<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> column_vec[m];</div> +<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp_col_vec[m];</div> +<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  </div> +<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordflow">for</span> (i = 0; i < n; i++) {</div> +<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a>(m, n, A, i, column_vec);</div> +<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">for</span> (j = 0; j < n; j++) {</div> +<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a>(m, n, A, j, tmp_col_vec);</div> +<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  AT_mul_A[i][j] = 0;</div> +<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">for</span> (k = 0; k < m; k++) {</div> +<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  AT_mul_A[i][j] += column_vec[k]</div> +<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  * tmp_col_vec[k];</div> +<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div> +<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  }</div> +<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div> +<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> }</div> +<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  </div> +<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374"> 565</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix_set_diag_elements</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value,</div> +<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n])</div> +<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> {</div> +<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  uint8_t max = 0;</div> +<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  </div> +<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span> (m < n) {</div> +<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  max = m;</div> +<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  }</div> +<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  max = n;</div> +<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div> +<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < max; i++) {</div> +<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  diag_matrix[i][i] = value;</div> +<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div> +<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> }</div> +<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  </div> +<div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="matrix_8c.html#ae808f007791f060590d39c7668501988"> 581</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n],</div> +<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  uint8_t length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[])</div> +<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> {</div> +<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  uint8_t i;</div> +<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  </div> +<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(m, n, diag_matrix);</div> +<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  </div> +<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  diag_matrix[i][i] = vec[i];</div> +<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  }</div> +<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> }</div> +<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  </div> +<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  </div> +<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a"> 594</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value,</div> +<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n])</div> +<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> {</div> +<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(m, n, diag_matrix);</div> +<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix_set_diag_elements</a>(m, n, value, diag_matrix);</div> +<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> }</div> +<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  </div> +<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  </div> +<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d"> 602</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_src[m][n],</div> +<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_dest[m][n])</div> +<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> {</div> +<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j < n; j++) {</div> +<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  mat_dest[i][j] = value * mat_src[i][j];</div> +<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  }</div> +<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div> +<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> }</div> +<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  </div> +<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864"> 612</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  uint8_t col_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m])</div> +<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> {</div> +<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  uint8_t i;</div> +<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  </div> +<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  col_vec[i] = matrix[i][col_num];</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  }</div> +<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> }</div> +<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  </div> +<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  </div> +<div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4"> 623</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix_get_part_column_vec</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t col_num,</div> +<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  uint8_t offset,</div> +<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[max_m - offset])</div> +<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> {</div> +<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  uint8_t i;</div> +<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  </div> +<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordflow">for</span> (i = offset; i < max_m; i++) {</div> +<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  col_vec[i - offset] = matrix[i][col_num];</div> +<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  }</div> +<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> }</div> +<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  </div> +<div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="matrix_8c.html#aef8d1508ad101227ab255a714ab22b94"> 635</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8c.html#aef8d1508ad101227ab255a714ab22b94">matrix_get_max_elem_in_column</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num)</div> +<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> {</div> +<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> elem_max;</div> +<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  uint8_t i;</div> +<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  </div> +<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  elem_max = matrix[0][col_num];</div> +<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">for</span> (i = 1; i < m; i++) {</div> +<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">if</span> (matrix[i][col_num] > elem_max) {</div> +<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  elem_max = matrix[i][col_num];</div> +<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div> +<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div> +<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  </div> +<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">return</span> elem_max;</div> +<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> }</div> +<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  </div> +<div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672"> 651</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672">matrix_get_abs_max_elem_in_column</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  uint8_t col_num)</div> +<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> {</div> +<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> abs_max_elem;</div> +<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  uint8_t i;</div> +<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  </div> +<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  abs_max_elem = fabs(matrix[0][col_num]);</div> +<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">for</span> (i = 1; i < m; i++) {</div> +<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">if</span> (fabs(matrix[i][col_num]) > abs_max_elem) {</div> +<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  abs_max_elem = fabs(matrix[i][col_num]);</div> +<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  }</div> +<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div> +<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  </div> +<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">return</span> abs_max_elem;</div> +<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> }</div> +<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  </div> +<div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc"> 668</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix_get_max_elem_in_part_column</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  uint8_t row_num, uint8_t col_num)</div> +<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> {</div> +<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> max_elem;</div> +<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  uint8_t i;</div> +<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  </div> +<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  max_elem = matrix[row_num][col_num];</div> +<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">for</span> (i = row_num + 1; i < max_m; i++) {</div> +<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">if</span> (matrix[i][col_num] > max_elem) {</div> +<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  max_elem = matrix[i][col_num];</div> +<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  }</div> +<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div> +<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  </div> +<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">return</span> max_elem;</div> +<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> }</div> +<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  </div> +<div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252"> 685</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252">matrix_get_abs_max_elem_in_part_column</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  uint8_t row_num,</div> +<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  uint8_t col_num)</div> +<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> {</div> +<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> abs_max_elem;</div> +<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  uint8_t i;</div> +<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  </div> +<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  abs_max_elem = fabs(matrix[row_num][col_num]);</div> +<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keywordflow">for</span> (i = row_num + 1; i < max_m; i++) {</div> +<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">if</span> (fabs(matrix[i][col_num]) > abs_max_elem) {</div> +<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  abs_max_elem = fabs(matrix[i][col_num]);</div> +<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  }</div> +<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  }</div> +<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  </div> +<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keywordflow">return</span> abs_max_elem;</div> +<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> }</div> +<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  </div> +<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="matrix_8c.html#a5f6a1948ec005cff4985559821c4943f"> 703</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8c.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a>(uint8_t max_m,</div> +<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  uint8_t max_n,</div> +<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  uint8_t row_num, uint8_t col_num,</div> +<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  uint8_t *index)</div> +<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> {</div> +<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> abs_max_elem;</div> +<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  uint8_t i;</div> +<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  </div> +<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  abs_max_elem = fabs(matrix[row_num][col_num]);</div> +<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  *index = row_num;</div> +<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">for</span> (i = row_num + 1; i < max_m; i++) {</div> +<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">if</span> (fabs(matrix[i][col_num]) > abs_max_elem) {</div> +<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  abs_max_elem = fabs(matrix[i][col_num]);</div> +<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  *index = i;</div> +<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  }</div> +<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  </div> +<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  }</div> +<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  </div> +<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordflow">return</span> abs_max_elem;</div> +<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> }</div> +<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  </div> +<div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f"> 725</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i, uint8_t j)</div> +<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> {</div> +<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp;</div> +<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  </div> +<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">for</span> (uint8_t k = 0; k < n; k++) {</div> +<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  tmp = matrix[i][k];</div> +<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  matrix[i][k] = matrix[j][k];</div> +<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  matrix[j][k] = tmp;</div> +<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  }</div> +<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> }</div> +<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  </div> +<div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2"> 736</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i,</div> +<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  uint8_t j, uint8_t col_begin,</div> +<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  uint8_t col_end)</div> +<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> {</div> +<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp;</div> +<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  </div> +<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">if</span> (col_begin <= col_end) {</div> +<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">for</span> (uint8_t k = col_begin; k < (col_end + 1); k++) {</div> +<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  tmp = matrix[i][k];</div> +<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  matrix[i][k] = matrix[j][k];</div> +<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  matrix[j][k] = tmp;</div> +<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  }</div> +<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  }</div> +<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  </div> +<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> }</div> +<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  </div> +<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0"> 752</a></span> <span class="keywordtype">double</span> <a class="code" href="matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n])</div> +<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> {</div> +<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordtype">double</span> two_norm = 0.0;</div> +<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> dim;</div> +<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A[m][n];</div> +<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  </div> +<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <a class="code" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(m, n, &dim);</div> +<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>][dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>];</div> +<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[n][n];</div> +<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n];</div> +<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  uint8_t s_length = <a class="code" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(m, n);</div> +<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[s_length];</div> +<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  </div> +<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <a class="code" href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <a class="code" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a>(m, n, copy_A, dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U, S, V, s_length, s);</div> +<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  printf(<span class="stringliteral">"U1 = "</span>);</div> +<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <a class="code" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U);</div> +<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  printf(<span class="stringliteral">"S1 = "</span>);</div> +<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(n, n, S);</div> +<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  printf(<span class="stringliteral">"V1 = "</span>);</div> +<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <a class="code" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(n, n, V);</div> +<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  </div> +<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  two_norm = S[0][0];</div> +<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  </div> +<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">return</span> two_norm;</div> +<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> }</div> +<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  </div> +<div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="matrix_8c.html#aaf85a32b8562c91d2d1889819580375e"> 782</a></span> <span class="keywordtype">double</span> <a class="code" href="matrix_8c.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n])</div> +<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> {</div> +<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keywordtype">double</span> frob_norm = 0.0;</div> +<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  </div> +<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < m; i++) {</div> +<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j < n; j++) {</div> +<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  frob_norm += pow(A[i][j], 2);</div> +<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div> +<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  }</div> +<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  </div> +<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">return</span> sqrt(frob_norm);</div> +<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> }</div> +<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  </div> +<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="matrix_8c.html#ab166871472924745f70e2bb6e17498c8"> 795</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n],</div> +<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_U[][m])</div> +<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> {</div> +<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="comment">//Zero out the inv_U matrix</span></div> +<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <a class="code" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(n, m, inv_U);</div> +<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < n; i++) {</div> +<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">if</span> (U[i][i] != 0) {</div> +<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  inv_U[i][i] = 1 / U[i][i];</div> +<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  }</div> +<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  inv_U[i][i] = FLT_MAX;</div> +<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  }</div> +<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j <= (i - 1); j++) {</div> +<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> u = 0.0;</div> +<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">for</span> (uint8_t k = j; k <= (i - 1); k++) {</div> +<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  u = u + U[k][i] * inv_U[j][k];</div> +<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  }</div> +<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  inv_U[j][i] = -u * inv_U[i][i];</div> +<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div> +<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  }</div> +<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> }</div> +<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  </div> +<div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48"> 817</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n],</div> +<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_L[][m])</div> +<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> {</div> +<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="comment">//Zero out the inv_L matrix</span></div> +<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <a class="code" href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(n, m, inv_L);</div> +<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < n; i++) {</div> +<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="keywordflow">if</span> ((i <= m) & (i <= n)) {</div> +<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">if</span> (L[i][i] != 0) {</div> +<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  inv_L[i][i] = 1 / L[i][i];</div> +<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  }</div> +<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  inv_L[i][i] = FLT_MAX;</div> +<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  }</div> +<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j <= (i - 1); j++) {</div> +<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> l = 0.0;</div> +<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">for</span> (uint8_t k = j; k <= (i - 1); k++) {</div> +<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  l = l + L[i][k] * inv_L[k][j];</div> +<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  }</div> +<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  inv_L[i][j] = -l * inv_L[i][i];</div> +<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div> +<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  } <span class="comment">//if</span></div> +<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  } <span class="comment">//for</span></div> +<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> }</div> +<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  </div> +<div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213"> 841</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_up_A[][n])</div> +<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> {</div> +<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="comment">// Same matrix</span></div> +<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">if</span> ((&A[0][0]) == (&tr_up_A[0][0])) {</div> +<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">for</span> (uint8_t i = 1; i < m; i++) {</div> +<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">for</span> (uint8_t j = 0; (j < i) && (j < n); j++) {</div> +<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  A[i][j] = 0;</div> +<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  }</div> +<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  }</div> +<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  </div> +<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div> +<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < m; i++) {</div> +<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j < n; j++) {</div> +<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keywordflow">if</span> (i <= j) {</div> +<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  tr_up_A[i][j] = A[i][j];</div> +<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div> +<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  tr_up_A[i][j] = 0;</div> +<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  }</div> +<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  }</div> +<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  }</div> +<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div> +<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  </div> +<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> }</div> +<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  </div> +<div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845"> 868</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_low_A[][n])</div> +<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> {</div> +<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  </div> +<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordflow">if</span> ((&A[0][0]) == (&tr_low_A[0][0])) {</div> +<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="comment">// Same matrix</span></div> +<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < m; i++) {</div> +<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">for</span> (uint8_t j = i + 1; (j > i) && (j < n); j++) {</div> +<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  A[i][j] = 0;</div> +<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  }</div> +<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  }</div> +<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  </div> +<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</div> +<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < m; i++) {</div> +<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j < n; j++) {</div> +<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordflow">if</span> (i >= j) {</div> +<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  tr_low_A[i][j] = A[i][j];</div> +<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  }</div> +<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  tr_low_A[i][j] = 0;</div> +<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  }</div> +<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  }</div> +<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  }</div> +<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  }</div> +<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> }</div> +<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  </div> +<div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a"> 895</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix_read</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i,</div> +<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  uint8_t j)</div> +<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> {</div> +<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <span class="keywordflow">return</span> matrix[i][j];</div> +<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> }</div> +<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  </div> +<div class="line"><a name="l00901"></a><span class="lineno"><a class="line" href="matrix_8c.html#a90b6eafa665d34d7330581c32564d632"> 901</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix_8c.html#a90b6eafa665d34d7330581c32564d632">matrix_write</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i,</div> +<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  uint8_t j, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> val)</div> +<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> {</div> +<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  matrix[i][j] = val;</div> +<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8c_html_ad7c9a682a3cc4ca33c030afa8798241a"><div class="ttname"><a href="matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a></div><div class="ttdeci">void matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m])</div><div class="ttdoc">Computes the transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00056">matrix.c:56</a></div></div> +<div class="ttc" id="amatrix_8c_html_acfd7c6f021f4fbcd393fe849c82f34de"><div class="ttname"><a href="matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix_mul_col_vec_row_vec</a></div><div class="ttdeci">void matrix_mul_col_vec_row_vec(uint8_t m, matrix_t col_vec[m], uint8_t n, matrix_t row_vec[n], uint8_t max_n, matrix_t res_mat[][max_n])</div><div class="ttdoc">Compute the multiplication of a column and row vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00531">matrix.c:531</a></div></div> +<div class="ttc" id="amatrix_8c_html_a8d77cfae4f1da83acac929c1ce13d252"><div class="ttname"><a href="matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252">matrix_get_abs_max_elem_in_part_column</a></div><div class="ttdeci">matrix_t matrix_get_abs_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</div><div class="ttdoc">Get the maximum absolute value of a column vector in a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00685">matrix.c:685</a></div></div> +<div class="ttc" id="amatrix_8c_html_a51139e6c87b602e5e0ebfbc406fda35d"><div class="ttname"><a href="matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a></div><div class="ttdeci">void matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n])</div><div class="ttdoc">Multiply all elements of a matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00602">matrix.c:602</a></div></div> +<div class="ttc" id="amatrix_8c_html_ab166871472924745f70e2bb6e17498c8"><div class="ttname"><a href="matrix_8c.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a></div><div class="ttdeci">void matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m])</div><div class="ttdoc">Computes the inverse an upper triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00795">matrix.c:795</a></div></div> +<div class="ttc" id="amatrix_8c_html_a72073ccd483f9cc438425d3d8ffd3029"><div class="ttname"><a href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a></div><div class="ttdeci">void matrix_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind)</div><div class="ttdoc">Display the values of the sub-matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00164">matrix.c:164</a></div></div> +<div class="ttc" id="amatrix_8c_html_a32ab12965ec43c2acf65cf9dd510353a"><div class="ttname"><a href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a></div><div class="ttdeci">void matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00141">matrix.c:141</a></div></div> +<div class="ttc" id="amatrix_8c_html_a48b36217faeda15438f4e07c54d0ef9e"><div class="ttname"><a href="matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a></div><div class="ttdeci">void matrix_in_place_transpose(uint8_t m, matrix_t matrix[][m])</div><div class="ttdoc">Computes the in-place transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00069">matrix.c:69</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_a853244a0562d43bfdcdcb704ed707721"><div class="ttname"><a href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t::row_num</a></div><div class="ttdeci">uint8_t row_num</div><div class="ttdoc">the row number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00061">matrix.h:61</a></div></div> +<div class="ttc" id="amatrix_8c_html_aec03481d950677386122e3c8ba6a5cd0"><div class="ttname"><a href="matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a></div><div class="ttdeci">double matrix_get_two_norm(uint8_t m, uint8_t n, matrix_t A[][n])</div><div class="ttdoc">Get the 2-norm of a matrix that is equal to the largest singular value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00752">matrix.c:752</a></div></div> +<div class="ttc" id="amatrix_8c_html_ac735d13efe5b76ecf60ac13ec79da8e3"><div class="ttname"><a href="matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix_mul_scalar_vec_matr</a></div><div class="ttdeci">void matrix_mul_scalar_vec_matr(uint8_t m, uint8_t n, matrix_t scalar, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n])</div><div class="ttdoc">Compute the multiplication of a scalar with row vector and a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00470">matrix.c:470</a></div></div> +<div class="ttc" id="asvd_8h_html_acdccfce5b7732e6334ca5a521c57e63e"><div class="ttname"><a href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a></div><div class="ttdeci">void svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[])</div><div class="ttdoc">Compute the Singular-Value Decomposition (SVD) of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00119">svd.c:119</a></div></div> +<div class="ttc" id="amatrix_8c_html_a56513a88eff05b0683320c532fadf945"><div class="ttname"><a href="matrix_8c.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a></div><div class="ttdeci">void matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num])</div><div class="ttdoc">Copy a part of a matrix to another matrix or sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00089">matrix.c:89</a></div></div> +<div class="ttc" id="amatrix_8c_html_a722a0230185fd66f0cecbeae7d50ce1a"><div class="ttname"><a href="matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix_read</a></div><div class="ttdeci">matrix_t matrix_read(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j)</div><div class="ttdoc">Get the value of a matrix at the position (i,j).</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00895">matrix.c:895</a></div></div> +<div class="ttc" id="amatrix_8c_html_acfd2bbc4a90915e57a4555694e842312"><div class="ttname"><a href="matrix_8c.html#acfd2bbc4a90915e57a4555694e842312">matrix_init</a></div><div class="ttdeci">void matrix_init(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t value)</div><div class="ttdoc">Initialize all the elements of the matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00051">matrix.c:51</a></div></div> +<div class="ttc" id="amatrix_8c_html_a49aa70a7d6ad76388ea08acfe43b7374"><div class="ttname"><a href="matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix_set_diag_elements</a></div><div class="ttdeci">void matrix_set_diag_elements(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n])</div><div class="ttdoc">Set all the diagonal elements of a matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00565">matrix.c:565</a></div></div> +<div class="ttc" id="amatrix_8c_html_a72297a60e572f85929989e813388a9c5"><div class="ttname"><a href="matrix_8c.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a></div><div class="ttdeci">void matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the sub-matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00247">matrix.c:247</a></div></div> +<div class="ttc" id="amatrix_8c_html_a875d6c55a16ee9f8bf523b8c1c82bc6f"><div class="ttname"><a href="matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a></div><div class="ttdeci">void matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j)</div><div class="ttdoc">Swaps two rows of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00725">matrix.c:725</a></div></div> +<div class="ttc" id="amatrix_8c_html_a550aa0d5a3212e35ad0af134895fd20a"><div class="ttname"><a href="matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a></div><div class="ttdeci">void matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num])</div><div class="ttdoc">Compute the multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00363">matrix.c:363</a></div></div> +<div class="ttc" id="amatrix_8c_html_a0a3d3cfa20ad3e75ad783af457343672"><div class="ttname"><a href="matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672">matrix_get_abs_max_elem_in_column</a></div><div class="ttdeci">matrix_t matrix_get_abs_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num)</div><div class="ttdoc">Get the maximum absolute value of a column vector in a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00651">matrix.c:651</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8c_html_a3ae0b9f73f82716f3427a523a3412864"><div class="ttname"><a href="matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a></div><div class="ttdeci">void matrix_get_column_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num, matrix_t col_vec[m])</div><div class="ttdoc">Get a column of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00612">matrix.c:612</a></div></div> +<div class="ttc" id="amatrix_8c_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="amatrix_8c_html_ac20399f6a8de13b1f392a1e3f7c0fbf4"><div class="ttname"><a href="matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix_get_part_column_vec</a></div><div class="ttdeci">void matrix_get_part_column_vec(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t col_num, uint8_t offset, matrix_t col_vec[max_m - offset])</div><div class="ttdoc">Get a part of a column of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00623">matrix.c:623</a></div></div> +<div class="ttc" id="amatrix_8c_html_a06f75ae4924e3f0dfd0b6a25313dc731"><div class="ttname"><a href="matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix_part_mul_scalar_vec_matr</a></div><div class="ttdeci">void matrix_part_mul_scalar_vec_matr(uint8_t max_m, uint8_t max_n, matrix_t scalar, matrix_t vec[max_m], matrix_t matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, matrix_t dst_arr[max_n - begin_row])</div><div class="ttdoc">Compute the multiplication of a scalar with row vector and a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00489">matrix.c:489</a></div></div> +<div class="ttc" id="amatrix_8c_html_aaf85a32b8562c91d2d1889819580375e"><div class="ttname"><a href="matrix_8c.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a></div><div class="ttdeci">double matrix_get_frob_norm(uint8_t m, uint8_t n, matrix_t A[][n])</div><div class="ttdoc">Get the Frobenius norm of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00782">matrix.c:782</a></div></div> +<div class="ttc" id="amatrix_8c_html_a5f6a1948ec005cff4985559821c4943f"><div class="ttname"><a href="matrix_8c.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a></div><div class="ttdeci">matrix_t matrix_get_abs_max_elem_and_index_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index)</div><div class="ttdoc">Get the maximum absolute value and its position in a column vector in a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00703">matrix.c:703</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html"><div class="ttname"><a href="structmatrix__dim__t.html">matrix_dim_t</a></div><div class="ttdoc">A structure to define the row and column number of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00060">matrix.h:60</a></div></div> +<div class="ttc" id="amatrix_8c_html_ac7101bbaa3a2698658276a7e21501093"><div class="ttname"><a href="matrix_8c.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a></div><div class="ttdeci">void matrix_add(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_plus_B[m][n])</div><div class="ttdoc">Compute the addition of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00341">matrix.c:341</a></div></div> +<div class="ttc" id="amatrix_8c_html_a0107887a6c40980fa639750be8262f01"><div class="ttname"><a href="matrix_8c.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a></div><div class="ttdeci">void matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n])</div><div class="ttdoc">Compute the multiplication of the transpose of a matrix with itself.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00545">matrix.c:545</a></div></div> +<div class="ttc" id="autils_8h_html_a335d8d6c4b945638261228cd116cccd6"><div class="ttname"><a href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a></div><div class="ttdeci">void utils_printf(char *format_str,...)</div><div class="ttdoc">Print by using variable format string as well as argument lists.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00096">utils.c:96</a></div></div> +<div class="ttc" id="amatrix_8c_html_aa8acafd4181978f536976f8151e51516"><div class="ttname"><a href="matrix_8c.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a></div><div class="ttdeci">void matrix_add_to_diag(uint8_t n, matrix_t A[][n], uint8_t diag_el_num, matrix_t value)</div><div class="ttdoc">Add a number to diagonal elements of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00353">matrix.c:353</a></div></div> +<div class="ttc" id="amatrix_8c_html_ad386233d68c73656a03641ddf3ecaaf2"><div class="ttname"><a href="matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="amatrix_8c_html_a53b0a1829b2085414fb66a9e9bd6c7b7"><div class="ttname"><a href="matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a></div><div class="ttdeci">void matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n])</div><div class="ttdoc">Compute the multiplication of transposed matrix with column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00511">matrix.c:511</a></div></div> +<div class="ttc" id="amatrix_8c_html_a3cf18a2c5c6ad62a4e0a0c00d27e2887"><div class="ttname"><a href="matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix_vec_mul_matr</a></div><div class="ttdeci">void matrix_vec_mul_matr(uint8_t m, uint8_t n, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n])</div><div class="ttdoc">Compute the multiplication of row vector and a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00452">matrix.c:452</a></div></div> +<div class="ttc" id="amatrix_8c_html_a3570c016691507c003dd7a54cb37e7e2"><div class="ttname"><a href="matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a></div><div class="ttdeci">void matrix_part_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end)</div><div class="ttdoc">Swaps two rows of a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00736">matrix.c:736</a></div></div> +<div class="ttc" id="amatrix_8c_html_a90b6eafa665d34d7330581c32564d632"><div class="ttname"><a href="matrix_8c.html#a90b6eafa665d34d7330581c32564d632">matrix_write</a></div><div class="ttdeci">void matrix_write(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j, matrix_t val)</div><div class="ttdoc">Write a value in a matrix at the position (i,j).</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00901">matrix.c:901</a></div></div> +<div class="ttc" id="asvd_8h_html"><div class="ttname"><a href="svd_8h.html">svd.h</a></div><div class="ttdoc">Algorithm for the Singular Value Decomposition (SVD).</div></div> +<div class="ttc" id="amatrix_8c_html_ae808f007791f060590d39c7668501988"><div class="ttname"><a href="matrix_8c.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a></div><div class="ttdeci">void matrix_get_diag_mat_new(uint8_t m, uint8_t n, matrix_t diag_matrix[m][n], uint8_t length, matrix_t vec[])</div><div class="ttdoc">Set all the diagonal elements of a matrix with values that are saved in a vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00581">matrix.c:581</a></div></div> +<div class="ttc" id="asvd_8h_html_a91b85e542b1fc44d3500ba52aecb8e0e"><div class="ttname"><a href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a></div><div class="ttdeci">uint8_t svd_get_single_values_num(uint8_t m, uint8_t n)</div><div class="ttdoc">Calculate the number of the singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00114">svd.c:114</a></div></div> +<div class="ttc" id="amatrix_8c_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="amatrix_8c_html_adfd93dda9be9b2e8df5805af7fee7845"><div class="ttname"><a href="matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a></div><div class="ttdeci">void matrix_get_low_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_low_A[][n])</div><div class="ttdoc">Gets the lower triangular part of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00868">matrix.c:868</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amatrix_8c_html_aef8d1508ad101227ab255a714ab22b94"><div class="ttname"><a href="matrix_8c.html#aef8d1508ad101227ab255a714ab22b94">matrix_get_max_elem_in_column</a></div><div class="ttdeci">matrix_t matrix_get_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num)</div><div class="ttdoc">Get the largest element of a column vector in a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00635">matrix.c:635</a></div></div> +<div class="ttc" id="amatrix_8c_html_a53879e7c4cfbc96725aef9f8234be7dd"><div class="ttname"><a href="matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a></div><div class="ttdeci">uint8_t matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length)</div><div class="ttdoc">Compute the rank of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00312">matrix.c:312</a></div></div> +<div class="ttc" id="amatrix_8c_html_a18e47742f1653dcc4491badfe2537a0a"><div class="ttname"><a href="matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a></div><div class="ttdeci">void matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n])</div><div class="ttdoc">Create a diagonal matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00594">matrix.c:594</a></div></div> +<div class="ttc" id="amatrix_8c_html_a3763252ca00e4c8522ae1bfd5ef40f0a"><div class="ttname"><a href="matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a></div><div class="ttdeci">void matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size])</div><div class="ttdoc">Compute the partial multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00391">matrix.c:391</a></div></div> +<div class="ttc" id="amatrix_8c_html_a0e06b2cfb86340e88be7b1219bef0ce3"><div class="ttname"><a href="matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a></div><div class="ttdeci">void matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00046">matrix.c:46</a></div></div> +<div class="ttc" id="amatrix_8c_html_ae8e87640fa1a2d259ee4dc98c955cb48"><div class="ttname"><a href="matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a></div><div class="ttdeci">void matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m])</div><div class="ttdoc">Computes the inverse a lower triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00817">matrix.c:817</a></div></div> +<div class="ttc" id="amatrix_8c_html_aed6fab1ffa40243eeb08117215082be3"><div class="ttname"><a href="matrix_8c.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a></div><div class="ttdeci">void matrix_sub(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_minus_B[m][n])</div><div class="ttdoc">Compute the subtraction of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00329">matrix.c:329</a></div></div> +<div class="ttc" id="amatrix_8c_html_abbaf8f39b2b7bb4bd2987f99674c1213"><div class="ttname"><a href="matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a></div><div class="ttdeci">void matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n])</div><div class="ttdoc">Gets the upper triangular part of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00841">matrix.c:841</a></div></div> +<div class="ttc" id="asvd_8h_html_a8194826f85cc3105c4d8d4f342ca8df8"><div class="ttname"><a href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a></div><div class="ttdeci">void svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim)</div><div class="ttdoc">Calculate the dimension of the matrix U.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00096">svd.c:96</a></div></div> +<div class="ttc" id="amatrix_8c_html_ad2cecc467ac6480ef0f3423f962b39bc"><div class="ttname"><a href="matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix_get_max_elem_in_part_column</a></div><div class="ttdeci">matrix_t matrix_get_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</div><div class="ttdoc">Get the largest element of a column vector in a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00668">matrix.c:668</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_aac6b6ff205184047714d5c22019bdbab"><div class="ttname"><a href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t::col_num</a></div><div class="ttdeci">uint8_t col_num</div><div class="ttdoc">the column number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00062">matrix.h:62</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="matrix_8c.html">matrix.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix_8h.html b/doc/doxygen/html/matrix_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..a76983b3941de4be40dea8263d21a82787f9bf97 --- /dev/null +++ b/doc/doxygen/html/matrix_8h.html @@ -0,0 +1,3143 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#nested-classes">Data Structures</a> | +<a href="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">matrix.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__basic__operations.html">BASIC_OPERATIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Matrix computations. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include <stdbool.h></code><br /> +</div> +<p><a href="matrix_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> +Data Structures</h2></td></tr> +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a></td></tr> +<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A structure to define the row and column number of a matrix. <a href="structmatrix__dim__t.html#details">More...</a><br /></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </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:af38ac6b76d645fea9abd6caeb4d9dd31"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>   double</td></tr> +<tr class="memdesc:af38ac6b76d645fea9abd6caeb4d9dd31"><td class="mdescLeft"> </td><td class="mdescRight">Define the data type of the matrix elements. <a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">More...</a><br /></td></tr> +<tr class="separator:af38ac6b76d645fea9abd6caeb4d9dd31"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af57ae8796956bfd0ee173b9040ba5192"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192">MACHEPS</a>   2E-16</td></tr> +<tr class="separator:af57ae8796956bfd0ee173b9040ba5192"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae71449b1cc6e6250b91f539153a7a0d3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a>   3.14159265358979323846</td></tr> +<tr class="separator:ae71449b1cc6e6250b91f539153a7a0d3"><td class="memSeparator" colspan="2"> </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:acfd2bbc4a90915e57a4555694e842312"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#acfd2bbc4a90915e57a4555694e842312">matrix_init</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value)</td></tr> +<tr class="memdesc:acfd2bbc4a90915e57a4555694e842312"><td class="mdescLeft"> </td><td class="mdescRight">Initialize all the elements of the matrix with a specified value. <a href="matrix_8h.html#acfd2bbc4a90915e57a4555694e842312">More...</a><br /></td></tr> +<tr class="separator:acfd2bbc4a90915e57a4555694e842312"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0e06b2cfb86340e88be7b1219bef0ce3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n])</td></tr> +<tr class="memdesc:a0e06b2cfb86340e88be7b1219bef0ce3"><td class="mdescLeft"> </td><td class="mdescRight">Clear all the elements of the vector. <a href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">More...</a><br /></td></tr> +<tr class="separator:a0e06b2cfb86340e88be7b1219bef0ce3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad7c9a682a3cc4ca33c030afa8798241a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[n][m])</td></tr> +<tr class="memdesc:ad7c9a682a3cc4ca33c030afa8798241a"><td class="mdescLeft"> </td><td class="mdescRight">Computes the transpose of a matrix. <a href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">More...</a><br /></td></tr> +<tr class="separator:ad7c9a682a3cc4ca33c030afa8798241a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a48b36217faeda15438f4e07c54d0ef9e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][m])</td></tr> +<tr class="memdesc:a48b36217faeda15438f4e07c54d0ef9e"><td class="mdescLeft"> </td><td class="mdescRight">Computes the in-place transpose of a matrix. <a href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">More...</a><br /></td></tr> +<tr class="separator:a48b36217faeda15438f4e07c54d0ef9e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae8d8daa117e9f96a5e29fe6c76c4998c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[m][n])</td></tr> +<tr class="memdesc:ae8d8daa117e9f96a5e29fe6c76c4998c"><td class="mdescLeft"> </td><td class="mdescRight">Copy the elements of a matrix to another matrix. <a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">More...</a><br /></td></tr> +<tr class="separator:ae8d8daa117e9f96a5e29fe6c76c4998c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a56513a88eff05b0683320c532fadf945"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_num])</td></tr> +<tr class="memdesc:a56513a88eff05b0683320c532fadf945"><td class="mdescLeft"> </td><td class="mdescRight">Copy a part of a matrix to another matrix or sub-matrix. <a href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">More...</a><br /></td></tr> +<tr class="separator:a56513a88eff05b0683320c532fadf945"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a53879e7c4cfbc96725aef9f8234be7dd"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[], uint8_t length)</td></tr> +<tr class="memdesc:a53879e7c4cfbc96725aef9f8234be7dd"><td class="mdescLeft"> </td><td class="mdescRight">Compute the rank of a matrix. <a href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">More...</a><br /></td></tr> +<tr class="separator:a53879e7c4cfbc96725aef9f8234be7dd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac7101bbaa3a2698658276a7e21501093"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_plus_B[m][n])</td></tr> +<tr class="memdesc:ac7101bbaa3a2698658276a7e21501093"><td class="mdescLeft"> </td><td class="mdescRight">Compute the addition of two matrices. <a href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">More...</a><br /></td></tr> +<tr class="separator:ac7101bbaa3a2698658276a7e21501093"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa8acafd4181978f536976f8151e51516"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t diag_el_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value)</td></tr> +<tr class="memdesc:aa8acafd4181978f536976f8151e51516"><td class="mdescLeft"> </td><td class="mdescRight">Add a number to diagonal elements of a matrix. <a href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">More...</a><br /></td></tr> +<tr class="separator:aa8acafd4181978f536976f8151e51516"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aed6fab1ffa40243eeb08117215082be3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_minus_B[m][n])</td></tr> +<tr class="memdesc:aed6fab1ffa40243eeb08117215082be3"><td class="mdescLeft"> </td><td class="mdescRight">Compute the subtraction of two matrices. <a href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">More...</a><br /></td></tr> +<tr class="separator:aed6fab1ffa40243eeb08117215082be3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a550aa0d5a3212e35ad0af134895fd20a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a> (uint8_t a_line_num, uint8_t a_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[b_line_num][b_col_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[a_line_num][b_col_num])</td></tr> +<tr class="memdesc:a550aa0d5a3212e35ad0af134895fd20a"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of two matrices. <a href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">More...</a><br /></td></tr> +<tr class="separator:a550aa0d5a3212e35ad0af134895fd20a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3763252ca00e4c8522ae1bfd5ef40f0a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a> (uint8_t a_col_num_max, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[][a_col_num_max], uint8_t b_col_num_max, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_size])</td></tr> +<tr class="memdesc:a3763252ca00e4c8522ae1bfd5ef40f0a"><td class="mdescLeft"> </td><td class="mdescRight">Compute the partial multiplication of two matrices. <a href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">More...</a><br /></td></tr> +<tr class="separator:a3763252ca00e4c8522ae1bfd5ef40f0a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad610bcce232c69ca302550f57b1ad9fb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[m])</td></tr> +<tr class="memdesc:ad610bcce232c69ca302550f57b1ad9fb"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a matrix with a column vector. <a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">More...</a><br /></td></tr> +<tr class="separator:ad610bcce232c69ca302550f57b1ad9fb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a53b0a1829b2085414fb66a9e9bd6c7b7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], uint8_t b_size, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_vec[n])</td></tr> +<tr class="memdesc:a53b0a1829b2085414fb66a9e9bd6c7b7"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of transposed matrix with column vector. <a href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">More...</a><br /></td></tr> +<tr class="separator:a53b0a1829b2085414fb66a9e9bd6c7b7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acfd7c6f021f4fbcd393fe849c82f34de"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix_mul_col_vec_row_vec</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m], uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> row_vec[n], uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> res_mat[][max_n])</td></tr> +<tr class="memdesc:acfd7c6f021f4fbcd393fe849c82f34de"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a column and row vector. <a href="matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de">More...</a><br /></td></tr> +<tr class="separator:acfd7c6f021f4fbcd393fe849c82f34de"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3cf18a2c5c6ad62a4e0a0c00d27e2887"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix_vec_mul_matr</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n])</td></tr> +<tr class="memdesc:a3cf18a2c5c6ad62a4e0a0c00d27e2887"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of row vector and a matrix. <a href="matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">More...</a><br /></td></tr> +<tr class="separator:a3cf18a2c5c6ad62a4e0a0c00d27e2887"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac735d13efe5b76ecf60ac13ec79da8e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix_mul_scalar_vec_matr</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n])</td></tr> +<tr class="memdesc:ac735d13efe5b76ecf60ac13ec79da8e3"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a scalar with row vector and a matrix. <a href="matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3">More...</a><br /></td></tr> +<tr class="separator:ac735d13efe5b76ecf60ac13ec79da8e3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0107887a6c40980fa639750be8262f01"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> AT_mul_A[n][n])</td></tr> +<tr class="memdesc:a0107887a6c40980fa639750be8262f01"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of the transpose of a matrix with itself. <a href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">More...</a><br /></td></tr> +<tr class="separator:a0107887a6c40980fa639750be8262f01"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a49aa70a7d6ad76388ea08acfe43b7374"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix_set_diag_elements</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n])</td></tr> +<tr class="memdesc:a49aa70a7d6ad76388ea08acfe43b7374"><td class="mdescLeft"> </td><td class="mdescRight">Set all the diagonal elements of a matrix with a specified value. <a href="matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374">More...</a><br /></td></tr> +<tr class="separator:a49aa70a7d6ad76388ea08acfe43b7374"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae808f007791f060590d39c7668501988"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n], uint8_t length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[])</td></tr> +<tr class="memdesc:ae808f007791f060590d39c7668501988"><td class="mdescLeft"> </td><td class="mdescRight">Set all the diagonal elements of a matrix with values that are saved in a vector. <a href="matrix_8h.html#ae808f007791f060590d39c7668501988">More...</a><br /></td></tr> +<tr class="separator:ae808f007791f060590d39c7668501988"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a18e47742f1653dcc4491badfe2537a0a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n])</td></tr> +<tr class="memdesc:a18e47742f1653dcc4491badfe2537a0a"><td class="mdescLeft"> </td><td class="mdescRight">Create a diagonal matrix with a specified value. <a href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">More...</a><br /></td></tr> +<tr class="separator:a18e47742f1653dcc4491badfe2537a0a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a51139e6c87b602e5e0ebfbc406fda35d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_src[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_dest[m][n])</td></tr> +<tr class="memdesc:a51139e6c87b602e5e0ebfbc406fda35d"><td class="mdescLeft"> </td><td class="mdescRight">Multiply all elements of a matrix with a specified value. <a href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">More...</a><br /></td></tr> +<tr class="separator:a51139e6c87b602e5e0ebfbc406fda35d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3ae0b9f73f82716f3427a523a3412864"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m])</td></tr> +<tr class="memdesc:a3ae0b9f73f82716f3427a523a3412864"><td class="mdescLeft"> </td><td class="mdescRight">Get a column of a matrix. <a href="matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864">More...</a><br /></td></tr> +<tr class="separator:a3ae0b9f73f82716f3427a523a3412864"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac20399f6a8de13b1f392a1e3f7c0fbf4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix_get_part_column_vec</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t col_num, uint8_t offset, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[max_m - offset])</td></tr> +<tr class="memdesc:ac20399f6a8de13b1f392a1e3f7c0fbf4"><td class="mdescLeft"> </td><td class="mdescRight">Get a part of a column of a matrix. <a href="matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">More...</a><br /></td></tr> +<tr class="separator:ac20399f6a8de13b1f392a1e3f7c0fbf4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aef8d1508ad101227ab255a714ab22b94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#aef8d1508ad101227ab255a714ab22b94">matrix_get_max_elem_in_column</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num)</td></tr> +<tr class="memdesc:aef8d1508ad101227ab255a714ab22b94"><td class="mdescLeft"> </td><td class="mdescRight">Get the largest element of a column vector in a matrix. <a href="matrix_8h.html#aef8d1508ad101227ab255a714ab22b94">More...</a><br /></td></tr> +<tr class="separator:aef8d1508ad101227ab255a714ab22b94"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0a3d3cfa20ad3e75ad783af457343672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672">matrix_get_abs_max_elem_in_column</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num)</td></tr> +<tr class="memdesc:a0a3d3cfa20ad3e75ad783af457343672"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum absolute value of a column vector in a matrix. <a href="matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672">More...</a><br /></td></tr> +<tr class="separator:a0a3d3cfa20ad3e75ad783af457343672"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad2cecc467ac6480ef0f3423f962b39bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix_get_max_elem_in_part_column</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</td></tr> +<tr class="memdesc:ad2cecc467ac6480ef0f3423f962b39bc"><td class="mdescLeft"> </td><td class="mdescRight">Get the largest element of a column vector in a sub-matrix. <a href="matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc">More...</a><br /></td></tr> +<tr class="separator:ad2cecc467ac6480ef0f3423f962b39bc"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8d77cfae4f1da83acac929c1ce13d252"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252">matrix_get_abs_max_elem_in_part_column</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</td></tr> +<tr class="memdesc:a8d77cfae4f1da83acac929c1ce13d252"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum absolute value of a column vector in a sub-matrix. <a href="matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252">More...</a><br /></td></tr> +<tr class="separator:a8d77cfae4f1da83acac929c1ce13d252"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f6a1948ec005cff4985559821c4943f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index)</td></tr> +<tr class="memdesc:a5f6a1948ec005cff4985559821c4943f"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum absolute value and its position in a column vector in a sub-matrix. <a href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">More...</a><br /></td></tr> +<tr class="separator:a5f6a1948ec005cff4985559821c4943f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a875d6c55a16ee9f8bf523b8c1c82bc6f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i, uint8_t j)</td></tr> +<tr class="memdesc:a875d6c55a16ee9f8bf523b8c1c82bc6f"><td class="mdescLeft"> </td><td class="mdescRight">Swaps two rows of a matrix. <a href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">More...</a><br /></td></tr> +<tr class="separator:a875d6c55a16ee9f8bf523b8c1c82bc6f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3570c016691507c003dd7a54cb37e7e2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a> (uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end)</td></tr> +<tr class="memdesc:a3570c016691507c003dd7a54cb37e7e2"><td class="mdescLeft"> </td><td class="mdescRight">Swaps two rows of a sub-matrix. <a href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">More...</a><br /></td></tr> +<tr class="separator:a3570c016691507c003dd7a54cb37e7e2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aec03481d950677386122e3c8ba6a5cd0"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n])</td></tr> +<tr class="memdesc:aec03481d950677386122e3c8ba6a5cd0"><td class="mdescLeft"> </td><td class="mdescRight">Get the 2-norm of a matrix that is equal to the largest singular value. <a href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">More...</a><br /></td></tr> +<tr class="separator:aec03481d950677386122e3c8ba6a5cd0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aaf85a32b8562c91d2d1889819580375e"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n])</td></tr> +<tr class="memdesc:aaf85a32b8562c91d2d1889819580375e"><td class="mdescLeft"> </td><td class="mdescRight">Get the Frobenius norm of a matrix. <a href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">More...</a><br /></td></tr> +<tr class="separator:aaf85a32b8562c91d2d1889819580375e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab166871472924745f70e2bb6e17498c8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_U[][m])</td></tr> +<tr class="memdesc:ab166871472924745f70e2bb6e17498c8"><td class="mdescLeft"> </td><td class="mdescRight">Computes the inverse an upper triangular matrix. <a href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">More...</a><br /></td></tr> +<tr class="separator:ab166871472924745f70e2bb6e17498c8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae8e87640fa1a2d259ee4dc98c955cb48"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_L[][m])</td></tr> +<tr class="memdesc:ae8e87640fa1a2d259ee4dc98c955cb48"><td class="mdescLeft"> </td><td class="mdescRight">Computes the inverse a lower triangular matrix. <a href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">More...</a><br /></td></tr> +<tr class="separator:ae8e87640fa1a2d259ee4dc98c955cb48"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abbaf8f39b2b7bb4bd2987f99674c1213"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_up_A[][n])</td></tr> +<tr class="memdesc:abbaf8f39b2b7bb4bd2987f99674c1213"><td class="mdescLeft"> </td><td class="mdescRight">Gets the upper triangular part of a matrix. <a href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">More...</a><br /></td></tr> +<tr class="separator:abbaf8f39b2b7bb4bd2987f99674c1213"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adfd93dda9be9b2e8df5805af7fee7845"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_low_A[][n])</td></tr> +<tr class="memdesc:adfd93dda9be9b2e8df5805af7fee7845"><td class="mdescLeft"> </td><td class="mdescRight">Gets the lower triangular part of a matrix. <a href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">More...</a><br /></td></tr> +<tr class="separator:adfd93dda9be9b2e8df5805af7fee7845"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a32ab12965ec43c2acf65cf9dd510353a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n])</td></tr> +<tr class="memdesc:a32ab12965ec43c2acf65cf9dd510353a"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the matrix elements. <a href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">More...</a><br /></td></tr> +<tr class="separator:a32ab12965ec43c2acf65cf9dd510353a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a72073ccd483f9cc438425d3d8ffd3029"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind)</td></tr> +<tr class="memdesc:a72073ccd483f9cc438425d3d8ffd3029"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the sub-matrix elements. <a href="matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029">More...</a><br /></td></tr> +<tr class="separator:a72073ccd483f9cc438425d3d8ffd3029"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a82f374a9b8b215f0ef53d35401eae524"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t before_dec, uint8_t after_dec)</td></tr> +<tr class="memdesc:a82f374a9b8b215f0ef53d35401eae524"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the matrix elements. <a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">More...</a><br /></td></tr> +<tr class="separator:a82f374a9b8b215f0ef53d35401eae524"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a72297a60e572f85929989e813388a9c5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot)</td></tr> +<tr class="memdesc:a72297a60e572f85929989e813388a9c5"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the sub-matrix elements. <a href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">More...</a><br /></td></tr> +<tr class="separator:a72297a60e572f85929989e813388a9c5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a06f75ae4924e3f0dfd0b6a25313dc731"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix_part_mul_scalar_vec_matr</a> (uint8_t max_m, uint8_t max_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[max_m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[max_n - begin_row])</td></tr> +<tr class="memdesc:a06f75ae4924e3f0dfd0b6a25313dc731"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of a scalar with row vector and a sub-matrix. <a href="matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731">More...</a><br /></td></tr> +<tr class="separator:a06f75ae4924e3f0dfd0b6a25313dc731"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a722a0230185fd66f0cecbeae7d50ce1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix_read</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i, uint8_t j)</td></tr> +<tr class="memdesc:a722a0230185fd66f0cecbeae7d50ce1a"><td class="mdescLeft"> </td><td class="mdescRight">Get the value of a matrix at the position (i,j). <a href="matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a">More...</a><br /></td></tr> +<tr class="separator:a722a0230185fd66f0cecbeae7d50ce1a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a90b6eafa665d34d7330581c32564d632"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix_8h.html#a90b6eafa665d34d7330581c32564d632">matrix_write</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i, uint8_t j, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> val)</td></tr> +<tr class="memdesc:a90b6eafa665d34d7330581c32564d632"><td class="mdescLeft"> </td><td class="mdescRight">Write a value in a matrix at the position (i,j). <a href="matrix_8h.html#a90b6eafa665d34d7330581c32564d632">More...</a><br /></td></tr> +<tr class="separator:a90b6eafa665d34d7330581c32564d632"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Matrix computations. </p> +<p>Matrix computations include operations such as addition, subtraction, and transposition.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="matrix_8h_source.html">matrix.h</a>.</p> +</div><h2 class="groupheader">Macro Definition Documentation</h2> +<a id="ae71449b1cc6e6250b91f539153a7a0d3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae71449b1cc6e6250b91f539153a7a0d3">◆ </a></span>M_PI</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define M_PI   3.14159265358979323846</td> + </tr> + </table> +</div><div class="memdoc"> +<p>Pi, the ratio of a circle's circumference to its diameter. </p> + +<p class="definition">Definition at line <a class="el" href="matrix_8h_source.html#l00054">54</a> of file <a class="el" href="matrix_8h_source.html">matrix.h</a>.</p> + +</div> +</div> +<a id="af57ae8796956bfd0ee173b9040ba5192"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af57ae8796956bfd0ee173b9040ba5192">◆ </a></span>MACHEPS</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define MACHEPS   2E-16</td> + </tr> + </table> +</div><div class="memdoc"> +<p>The upper bound on the relative error due to rounding in floating point arithmetic. </p> + +<p class="definition">Definition at line <a class="el" href="matrix_8h_source.html#l00046">46</a> of file <a class="el" href="matrix_8h_source.html">matrix.h</a>.</p> + +</div> +</div> +<a id="af38ac6b76d645fea9abd6caeb4d9dd31"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af38ac6b76d645fea9abd6caeb4d9dd31">◆ </a></span>matrix_t</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define matrix_t   double</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Define the data type of the matrix elements. </p> +<p>The user can choose between a double or floating point arithmetic. </p> + +<p class="definition">Definition at line <a class="el" href="matrix_8h_source.html#l00038">38</a> of file <a class="el" href="matrix_8h_source.html">matrix.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a id="ac7101bbaa3a2698658276a7e21501093"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac7101bbaa3a2698658276a7e21501093">◆ </a></span>matrix_add()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_add </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>B</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A_plus_B</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the addition of two matrices. </p> +<p>Add matrix B to matrix A and return the result in A_plus_B matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">B[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">A_plus_B[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00341">341</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="aa8acafd4181978f536976f8151e51516"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa8acafd4181978f536976f8151e51516">◆ </a></span>matrix_add_to_diag()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_add_to_diag </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>diag_el_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Add a number to diagonal elements of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">diag_el_num</td><td>number of diagonal elements to overwrite. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>the value to add to the diagonal elements. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00353">353</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, and <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="a0e06b2cfb86340e88be7b1219bef0ce3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0e06b2cfb86340e88be7b1219bef0ce3">◆ </a></span>matrix_clear()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_clear </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Clear all the elements of the vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00046">46</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian_get_JTJ()</a>, <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, <a class="el" href="matrix_8c_source.html#l00594">matrix_get_diag_mat()</a>, <a class="el" href="matrix_8c_source.html#l00581">matrix_get_diag_mat_new()</a>, <a class="el" href="matrix_8c_source.html#l00817">matrix_get_inv_low_triang()</a>, <a class="el" href="matrix_8c_source.html#l00795">matrix_get_inv_upp_triang()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +</div> +</div> +<a id="ae8d8daa117e9f96a5e29fe6c76c4998c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae8d8daa117e9f96a5e29fe6c76c4998c">◆ </a></span>matrix_copy()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_copy </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>src_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Copy the elements of a matrix to another matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to copy. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to copy. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_matrix[][]</td><td>pointer to the source matrix </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00083">83</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a72297a60e572f85929989e813388a9c5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a72297a60e572f85929989e813388a9c5">◆ </a></span>matrix_flex_part_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_flex_part_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>before_dot</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>after_dot</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the sub-matrix elements. </p> +<p>This function allows the user to determine the precision as well as the with of the numbers to display.</p> +<dl class="section note"><dt>Note</dt><dd>This function is more memory-consuming than <a class="el" href="matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_row_ind</td><td>start row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_row_ind</td><td>end row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_col_ind</td><td>start column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_col_ind</td><td>end column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">before_dot</td><td>the number of digits to be printed before the decimal point. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">after_dot</td><td>the number of digits to be printed after the decimal point. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00247">247</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="utils_8c_source.html#l00096">utils_printf()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="a82f374a9b8b215f0ef53d35401eae524"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a82f374a9b8b215f0ef53d35401eae524">◆ </a></span>matrix_flex_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_flex_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>before_dec</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>after_dec</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the matrix elements. </p> +<p>This function allows the user to determine the precision as well as the with of the numbers to display.</p> +<dl class="section note"><dt>Note</dt><dd>This function is more memory-consuming than <a class="el" href="matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">before_dec</td><td>the number of digits to be printed before the decimal point. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">after_dec</td><td>the number of digits to be printed after the decimal point. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00220">220</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="utils_8c_source.html#l00096">utils_printf()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, <a class="el" href="matrix__test_8c_source.html#l00164">inv_triangular_matrices_test()</a>, <a class="el" href="lu__decomp__test_8c_source.html#l00029">lu_decomp_test()</a>, <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00167">moore_penrose_pinv_compute_print()</a>, <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>, <a class="el" href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test()</a>, <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a5f6a1948ec005cff4985559821c4943f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f6a1948ec005cff4985559821c4943f">◆ </a></span>matrix_get_abs_max_elem_and_index_in_part_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_abs_max_elem_and_index_in_part_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>index</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the maximum absolute value and its position in a column vector in a sub-matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_num</td><td>row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">index</td><td>pointer to the variable holding the position of the maximum absolute value in the column vector of the sub-matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximum absolute value of a partial column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00703">703</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>.</p> + +</div> +</div> +<a id="a0a3d3cfa20ad3e75ad783af457343672"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0a3d3cfa20ad3e75ad783af457343672">◆ </a></span>matrix_get_abs_max_elem_in_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_abs_max_elem_in_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the maximum absolute value of a column vector in a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximum absolute value of a column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00651">651</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a8d77cfae4f1da83acac929c1ce13d252"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8d77cfae4f1da83acac929c1ce13d252">◆ </a></span>matrix_get_abs_max_elem_in_part_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_abs_max_elem_in_part_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the maximum absolute value of a column vector in a sub-matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_num</td><td>row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the sub-matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximum absolute value of a partial column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00685">685</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a3ae0b9f73f82716f3427a523a3412864"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3ae0b9f73f82716f3427a523a3412864">◆ </a></span>matrix_get_column_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_column_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>col_vec</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get a column of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>number of the requested column. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">col_vec[]</td><td>pointer to the column vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00612">612</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>.</p> + +</div> +</div> +<a id="a18e47742f1653dcc4491badfe2537a0a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a18e47742f1653dcc4491badfe2537a0a">◆ </a></span>matrix_get_diag_mat()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_diag_mat </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>diag_matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Create a diagonal matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>value of the diagonal elements. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">diag_matrix[][]</td><td>pointer to the diagonal matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00594">594</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8c_source.html#l00565">matrix_set_diag_elements()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>, and <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="ae808f007791f060590d39c7668501988"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae808f007791f060590d39c7668501988">◆ </a></span>matrix_get_diag_mat_new()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_diag_mat_new </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>diag_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Set all the diagonal elements of a matrix with values that are saved in a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">diag_matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec</td><td>pointer to the vector containing diagonal elements. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00581">581</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="aaf85a32b8562c91d2d1889819580375e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aaf85a32b8562c91d2d1889819580375e">◆ </a></span>matrix_get_frob_norm()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double matrix_get_frob_norm </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the Frobenius norm of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the Frobenius norm a matrix. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00782">782</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="ae8e87640fa1a2d259ee4dc98c955cb48"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae8e87640fa1a2d259ee4dc98c955cb48">◆ </a></span>matrix_get_inv_low_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_inv_low_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>L</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>inv_L</em>[][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the inverse a lower triangular matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">L[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">inv_L[][]</td><td>pointer to the inverse matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00817">817</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00164">inv_triangular_matrices_test()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +<a id="ab166871472924745f70e2bb6e17498c8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab166871472924745f70e2bb6e17498c8">◆ </a></span>matrix_get_inv_upp_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_inv_upp_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>U</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>inv_U</em>[][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the inverse an upper triangular matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">U[][]</td><td>pointer to the upper triangular matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">inv_U[][]</td><td>pointer to the inverse matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00795">795</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00164">inv_triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="adfd93dda9be9b2e8df5805af7fee7845"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adfd93dda9be9b2e8df5805af7fee7845">◆ </a></span>matrix_get_low_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_low_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tr_low_A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Gets the lower triangular part of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">tr_low_A[][]</td><td>pointer to the lower triangular part of the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00868">868</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="aef8d1508ad101227ab255a714ab22b94"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aef8d1508ad101227ab255a714ab22b94">◆ </a></span>matrix_get_max_elem_in_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_max_elem_in_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the largest element of a column vector in a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the largest element of a column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00635">635</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="ad2cecc467ac6480ef0f3423f962b39bc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad2cecc467ac6480ef0f3423f962b39bc">◆ </a></span>matrix_get_max_elem_in_part_column()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_get_max_elem_in_part_column </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the largest element of a column vector in a sub-matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_num</td><td>row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the sub-matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the largest element of a partial column. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00668">668</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="ac20399f6a8de13b1f392a1e3f7c0fbf4"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac20399f6a8de13b1f392a1e3f7c0fbf4">◆ </a></span>matrix_get_part_column_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_part_column_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>offset</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>col_vec</em>[max_m - offset] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get a part of a column of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>number of the requested column. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>points to the start position of the column vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">col_vec[]</td><td>pointer to the column vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00623">623</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a53879e7c4cfbc96725aef9f8234be7dd"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a53879e7c4cfbc96725aef9f8234be7dd">◆ </a></span>matrix_get_rank()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t matrix_get_rank </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>singl_values_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the rank of a matrix. </p> +<p>The SVD must be previously invoked to get the singular values of the matrix.</p> +<dl class="section note"><dt>Note</dt><dd>This function should be invoked after the call of the <a class="el" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a> method.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">singl_values_arr[]</td><td>array containing the singular values of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>length of the singular values array.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the rank of the matrix. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00312">312</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="aec03481d950677386122e3c8ba6a5cd0"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aec03481d950677386122e3c8ba6a5cd0">◆ </a></span>matrix_get_two_norm()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double matrix_get_two_norm </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the 2-norm of a matrix that is equal to the largest singular value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the 2-norm of a matrix. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00752">752</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8c_source.html#l00083">matrix_copy()</a>, <a class="el" href="matrix_8c_source.html#l00141">matrix_print()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00119">svd()</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, and <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="abbaf8f39b2b7bb4bd2987f99674c1213"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abbaf8f39b2b7bb4bd2987f99674c1213">◆ </a></span>matrix_get_upp_triang()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_get_upp_triang </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>tr_up_A</em>[][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Gets the upper triangular part of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">tr_up_A[][]</td><td>pointer to the upper triangular part of the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00841">841</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a48b36217faeda15438f4e07c54d0ef9e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a48b36217faeda15438f4e07c54d0ef9e">◆ </a></span>matrix_in_place_transpose()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_in_place_transpose </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the in-place transpose of a matrix. </p> +<p>Transpose the matrix without auxiliary memory.</p> +<dl class="section note"><dt>Note</dt><dd>This function is limited to square matrices.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row and column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix to transpose. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00069">69</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="acfd2bbc4a90915e57a4555694e842312"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acfd2bbc4a90915e57a4555694e842312">◆ </a></span>matrix_init()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_init </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize all the elements of the matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>value to be set. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00051">51</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a550aa0d5a3212e35ad0af134895fd20a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a550aa0d5a3212e35ad0af134895fd20a">◆ </a></span>matrix_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_line_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>a_matrix</em>[a_line_num][a_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_line_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_matrix</em>[b_line_num][b_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[a_line_num][b_col_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of two matrices. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a_line_num</td><td>row number of the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_col_num</td><td>column number of the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_matrix[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_line_num</td><td>row number of the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_col_num</td><td>column number of the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_matrix[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00363">363</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="DOP_8c_source.html#l00030">get_PDOP()</a>, <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +<a id="acfd7c6f021f4fbcd393fe849c82f34de"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acfd7c6f021f4fbcd393fe849c82f34de">◆ </a></span>matrix_mul_col_vec_row_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_col_vec_row_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>col_vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>row_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>res_mat</em>[][max_n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a column and row vector. </p> +<p>Return Cm,1 * R1,n = Mm,n, where C is a m-dimensional column vector, R is a n-dimensional row vector, and the result is a (mxn)-matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the column vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_vec[]</td><td>pointer to the column vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">row_vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>column number of the result matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">res_mat[][]</td><td>pointer to the (mxn) result matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00531">531</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a51139e6c87b602e5e0ebfbc406fda35d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a51139e6c87b602e5e0ebfbc406fda35d">◆ </a></span>matrix_mul_scalar()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_scalar </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mat_src</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>mat_dest</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Multiply all elements of a matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">mat_src</td><td>pointer to the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>multiplication factor. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">mat_dest[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00602">602</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, and <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="ac735d13efe5b76ecf60ac13ec79da8e3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac735d13efe5b76ecf60ac13ec79da8e3">◆ </a></span>matrix_mul_scalar_vec_matr()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_scalar_vec_matr </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>scalar</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a scalar with row vector and a matrix. </p> +<p>Return scal*R1,m * Am,n = R1,n, where scal is a scalar, R is a m-dimensional row vector, A is a (mxn)-matrix, and the result is a row vector of n-dimension.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>size of the row vector and row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scalar</td><td>scalar value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination row vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00470">470</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="ad610bcce232c69ca302550f57b1ad9fb"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad610bcce232c69ca302550f57b1ad9fb">◆ </a></span>matrix_mul_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_mul_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a matrix with a column vector. </p> +<p>Return Am,n * Vn,1 = Bm,1, where the A is a (mxn)-matrix, V is a n-dimensional column vector, and the result is a m-dimensional column vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec</td><td>pointer to the n-dimensional column vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination m-dimensional column vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00434">434</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, <a class="el" href="solve_8c_source.html#l00035">solve()</a>, <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, and <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>.</p> + +</div> +</div> +<a id="a56513a88eff05b0683320c532fadf945"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a56513a88eff05b0683320c532fadf945">◆ </a></span>matrix_part_copy()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_copy </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>src_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>dest_row_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>dest_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[][dest_col_num] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Copy a part of a matrix to another matrix or sub-matrix. </p> +<p>A part of the source matrix can be copied in a sub-part of the destination matrix (sub-matrix). The source and destination sub-matrices are limited by the row and column indices.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_matrix[][]</td><td>pointer to the source matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_row_ind</td><td>the start index of the rows of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_row_ind</td><td>the end index of the rows of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_col_ind</td><td>the start index of the columns of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_col_ind</td><td>the end index of the columns of the source sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_row_num</td><td>the row number of the destination sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_col_num</td><td>the column number of the destination sub-matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination (sub)-matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00089">89</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__common_8c_source.html#l00059">qr_common_get_reduced_QR()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +</div> +</div> +<a id="a3763252ca00e4c8522ae1bfd5ef40f0a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3763252ca00e4c8522ae1bfd5ef40f0a">◆ </a></span>matrix_part_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_col_num_max</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>a_matrix</em>[][a_col_num_max], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_col_num_max</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_matrix</em>[][b_col_num_max], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a_end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_end_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>dest_col_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[][dest_col_size] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the partial multiplication of two matrices. </p> +<p>Enables the calculation of matrix product of parts of two matrices.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a_col_num_max</td><td>column number of the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_matrix[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_col_num_max</td><td>column number of the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_matrix[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_start_row_ind</td><td>row begin of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_end_row_ind</td><td>row end of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_start_col_ind</td><td>column begin of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_end_col_ind</td><td>column end of the first, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_start_row_ind</td><td>row begin of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_end_row_ind</td><td>row end of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_start_col_ind</td><td>column begin of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_end_col_ind</td><td>column end of the second, partial matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_col_size</td><td>column size of the destination matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00391">391</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="a06f75ae4924e3f0dfd0b6a25313dc731"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a06f75ae4924e3f0dfd0b6a25313dc731">◆ </a></span>matrix_part_mul_scalar_vec_matr()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_mul_scalar_vec_matr </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>scalar</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[max_m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[max_m][max_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>begin_row</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>begin_column</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[max_n - begin_row] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of a scalar with row vector and a sub-matrix. </p> +<p>Return scal*R1,m * Am,n = R1,n, where scal is a scalar, R is a m-dimensional row vector, A is a (mxn)-matrix, and the result is a row vector of n-dimension.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">max_m</td><td>size of the row vector and row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scalar</td><td>scalar value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">begin_row</td><td>start row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">begin_column</td><td>start column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination row vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00489">489</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a72073ccd483f9cc438425d3d8ffd3029"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a72073ccd483f9cc438425d3d8ffd3029">◆ </a></span>matrix_part_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_row_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>start_col_ind</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>end_col_ind</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the sub-matrix elements. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>total row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>total column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_row_ind</td><td>start row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_row_ind</td><td>end row number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">start_col_ind</td><td>start column number of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">end_col_ind</td><td>end column number of the sub-matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00164">164</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a3570c016691507c003dd7a54cb37e7e2"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3570c016691507c003dd7a54cb37e7e2">◆ </a></span>matrix_part_swap_rows()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_part_swap_rows </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_begin</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_end</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Swaps two rows of a sub-matrix. </p> +<p>Swaps the rows i and j of a part of a matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the entire matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>the i-the row of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>the j-the row of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_begin</td><td>the column begin of the sub-matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_end</td><td>the column end of the sub-matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00736">736</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>.</p> + +</div> +</div> +<a id="a32ab12965ec43c2acf65cf9dd510353a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a32ab12965ec43c2acf65cf9dd510353a">◆ </a></span>matrix_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the matrix elements. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the entire matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00141">141</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, and <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>.</p> + +</div> +</div> +<a id="a722a0230185fd66f0cecbeae7d50ce1a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a722a0230185fd66f0cecbeae7d50ce1a">◆ </a></span>matrix_read()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_read </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the value of a matrix at the position (i,j). </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>row number. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>column number.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the value of the matrix at the row i and column j. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00895">895</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +<a id="a49aa70a7d6ad76388ea08acfe43b7374"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a49aa70a7d6ad76388ea08acfe43b7374">◆ </a></span>matrix_set_diag_elements()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_set_diag_elements </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>diag_matrix</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Set all the diagonal elements of a matrix with a specified value. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>value to be set. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">diag_matrix[][]</td><td>pointer to the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00565">565</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00594">matrix_get_diag_mat()</a>.</p> + +</div> +</div> +<a id="aed6fab1ffa40243eeb08117215082be3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aed6fab1ffa40243eeb08117215082be3">◆ </a></span>matrix_sub()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_sub </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>B</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A_minus_B</em>[m][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the subtraction of two matrices. </p> +<p>Subtract matrix B from matrix A and return the result in A_minus_B matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to add. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the first matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">B[][]</td><td>pointer to the second matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">A_minus_B[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00329">329</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="a875d6c55a16ee9f8bf523b8c1c82bc6f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a875d6c55a16ee9f8bf523b8c1c82bc6f">◆ </a></span>matrix_swap_rows()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_swap_rows </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Swaps two rows of a matrix. </p> +<p>Swaps the rows i and j of a matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>the i-the row of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>the j-the row of the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00725">725</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>, and <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>.</p> + +</div> +</div> +<a id="a0107887a6c40980fa639750be8262f01"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0107887a6c40980fa639750be8262f01">◆ </a></span>matrix_trans_mul_itself()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_trans_mul_itself </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>AT_mul_A</em>[n][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of the transpose of a matrix with itself. </p> +<p>Transpose the matrix A and multiply it with the matrix A: A'*A.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">AT_mul_A[][]</td><td>pointer to the destination matrix (A'*A). </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00545">545</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00612">matrix_get_column_vec()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00099">magnetic_based_jacobian_get_JTJ()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, and <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>.</p> + +</div> +</div> +<a id="a53b0a1829b2085414fb66a9e9bd6c7b7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a53b0a1829b2085414fb66a9e9bd6c7b7">◆ </a></span>matrix_trans_mul_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_trans_mul_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>c_vec</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of transposed matrix with column vector. </p> +<p>Transpose A and return A'n,m * Vm,1 = Bn,1, where A is a (mxn)-matrix, V is a m-dimensional column vector, and the result is a n-dimensional column vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to transpose and multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to transpose and multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_size</td><td>size of the column vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the column vector of m-dimension. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">c_vec[]</td><td>pointer to the destination, column vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00511">511</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__jacobian_8c_source.html#l00112">magnetic_based_jacobian_get_JTf()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>, and <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>.</p> + +</div> +</div> +<a id="ad7c9a682a3cc4ca33c030afa8798241a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad7c9a682a3cc4ca33c030afa8798241a">◆ </a></span>matrix_transpose()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_transpose </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>src_matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dest_matrix</em>[n][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the transpose of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_matrix[][]</td><td>pointer to the matrix to transpose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_matrix[][]</td><td>pointer to the destination matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00056">56</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="DOP_8c_source.html#l00030">get_PDOP()</a>, <a class="el" href="matrix__test_8c_source.html#l00031">matrix_test()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, and <a class="el" href="matrix__test_8c_source.html#l00242">triangular_matrices_test()</a>.</p> + +</div> +</div> +<a id="a3cf18a2c5c6ad62a4e0a0c00d27e2887"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3cf18a2c5c6ad62a4e0a0c00d27e2887">◆ </a></span>matrix_vec_mul_matr()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_vec_mul_matr </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dst_arr</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of row vector and a matrix. </p> +<p>Return R1,m * Am,n = R1,n, where R is a m-dimensional row vector, A is a (mxn)-matrix, and the result is a row vector of n-dimension.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>size of the row vector and row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the row vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_arr</td><td>pointer to the destination row vector of n-dimension. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00452">452</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="a90b6eafa665d34d7330581c32564d632"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a90b6eafa665d34d7330581c32564d632">◆ </a></span>matrix_write()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void matrix_write </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>j</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>val</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Write a value in a matrix at the position (i,j). </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>row number. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">j</td><td>column number. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>value to write in the matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="matrix_8c_source.html#l00901">901</a> of file <a class="el" href="matrix_8c_source.html">matrix.c</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_e663cf436b7a4f65fdac82a5d77479a9.html">include</a></li><li class="navelem"><a class="el" href="matrix_8h.html">matrix.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix_8h.js b/doc/doxygen/html/matrix_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..6a1ed2bf5bd748d04548f76dd47bfb9feace7649 --- /dev/null +++ b/doc/doxygen/html/matrix_8h.js @@ -0,0 +1,51 @@ +var matrix_8h = +[ + [ "matrix_dim_t", "structmatrix__dim__t.html", "structmatrix__dim__t" ], + [ "M_PI", "matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3", null ], + [ "MACHEPS", "matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192", null ], + [ "matrix_t", "matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31", null ], + [ "matrix_add", "matrix_8h.html#ac7101bbaa3a2698658276a7e21501093", null ], + [ "matrix_add_to_diag", "matrix_8h.html#aa8acafd4181978f536976f8151e51516", null ], + [ "matrix_clear", "matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3", null ], + [ "matrix_copy", "matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c", null ], + [ "matrix_flex_part_print", "matrix_8h.html#a72297a60e572f85929989e813388a9c5", null ], + [ "matrix_flex_print", "matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524", null ], + [ "matrix_get_abs_max_elem_and_index_in_part_column", "matrix_8h.html#a5f6a1948ec005cff4985559821c4943f", null ], + [ "matrix_get_abs_max_elem_in_column", "matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672", null ], + [ "matrix_get_abs_max_elem_in_part_column", "matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252", null ], + [ "matrix_get_column_vec", "matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864", null ], + [ "matrix_get_diag_mat", "matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a", null ], + [ "matrix_get_diag_mat_new", "matrix_8h.html#ae808f007791f060590d39c7668501988", null ], + [ "matrix_get_frob_norm", "matrix_8h.html#aaf85a32b8562c91d2d1889819580375e", null ], + [ "matrix_get_inv_low_triang", "matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48", null ], + [ "matrix_get_inv_upp_triang", "matrix_8h.html#ab166871472924745f70e2bb6e17498c8", null ], + [ "matrix_get_low_triang", "matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845", null ], + [ "matrix_get_max_elem_in_column", "matrix_8h.html#aef8d1508ad101227ab255a714ab22b94", null ], + [ "matrix_get_max_elem_in_part_column", "matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc", null ], + [ "matrix_get_part_column_vec", "matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4", null ], + [ "matrix_get_rank", "matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd", null ], + [ "matrix_get_two_norm", "matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0", null ], + [ "matrix_get_upp_triang", "matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213", null ], + [ "matrix_in_place_transpose", "matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e", null ], + [ "matrix_init", "matrix_8h.html#acfd2bbc4a90915e57a4555694e842312", null ], + [ "matrix_mul", "matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a", null ], + [ "matrix_mul_col_vec_row_vec", "matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de", null ], + [ "matrix_mul_scalar", "matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d", null ], + [ "matrix_mul_scalar_vec_matr", "matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3", null ], + [ "matrix_mul_vec", "matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb", null ], + [ "matrix_part_copy", "matrix_8h.html#a56513a88eff05b0683320c532fadf945", null ], + [ "matrix_part_mul", "matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a", null ], + [ "matrix_part_mul_scalar_vec_matr", "matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731", null ], + [ "matrix_part_print", "matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029", null ], + [ "matrix_part_swap_rows", "matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2", null ], + [ "matrix_print", "matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a", null ], + [ "matrix_read", "matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a", null ], + [ "matrix_set_diag_elements", "matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374", null ], + [ "matrix_sub", "matrix_8h.html#aed6fab1ffa40243eeb08117215082be3", null ], + [ "matrix_swap_rows", "matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f", null ], + [ "matrix_trans_mul_itself", "matrix_8h.html#a0107887a6c40980fa639750be8262f01", null ], + [ "matrix_trans_mul_vec", "matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7", null ], + [ "matrix_transpose", "matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a", null ], + [ "matrix_vec_mul_matr", "matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887", null ], + [ "matrix_write", "matrix_8h.html#a90b6eafa665d34d7330581c32564d632", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/matrix_8h_source.html b/doc/doxygen/html/matrix_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..58c88580b0d08af824d66b7d535d36a59672d6e3 --- /dev/null +++ b/doc/doxygen/html/matrix_8h_source.html @@ -0,0 +1,342 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">matrix.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="matrix_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef MATRIX_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define MATRIX_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">//#define matrix_t float</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#ifndef matrix_t</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31"> 38</a></span> <span class="preprocessor">#define matrix_t double</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifndef MACHEPS</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192"> 46</a></span> <span class="preprocessor">#define MACHEPS 2E-16</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#ifndef M_PI</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3"> 54</a></span> <span class="preprocessor">#define M_PI 3.14159265358979323846</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structmatrix__dim__t.html"> 60</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div> +<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721"> 61</a></span>  uint8_t <a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>; </div> +<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab"> 62</a></span>  uint8_t <a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>; </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> } <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a>;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#acfd2bbc4a90915e57a4555694e842312">matrix_init</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n]);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n],</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[n][m]);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][m]);</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n],</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[m][n]);</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> src_matrix[m][n],</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  uint8_t start_row_ind, uint8_t end_row_ind,</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  uint8_t start_col_ind, uint8_t end_col_ind,</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  uint8_t dest_row_num, uint8_t dest_col_num,</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_num]);</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> uint8_t <a class="code" href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[],</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  uint8_t length);</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n],</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_plus_B[m][n]);</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t diag_el_num,</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value);</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n],</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_minus_B[m][n]);</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(uint8_t a_line_num, uint8_t a_col_num,</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[a_line_num][a_col_num],</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  uint8_t b_line_num, uint8_t b_col_num,</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[b_line_num][b_col_num],</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[a_line_num][b_col_num]);</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a>(uint8_t a_col_num_max, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a_matrix[][a_col_num_max],</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  uint8_t b_col_num_max, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_matrix[][b_col_num_max],</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  uint8_t a_start_row_ind, uint8_t a_end_row_ind,</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  uint8_t a_start_col_ind, uint8_t a_end_col_ind,</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  uint8_t b_start_row_ind, uint8_t b_end_row_ind,</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  uint8_t b_start_col_ind, uint8_t b_end_col_ind,</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  uint8_t dest_col_size,</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dest_matrix[][dest_col_size]);</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  </div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[m]);</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment">//A'(n,m)*b(m,1) = c(n,1)</span></div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  uint8_t b_size, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[m], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_vec[n]);</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix_mul_col_vec_row_vec</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m], uint8_t n,</div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> row_vec[n], uint8_t max_n,</div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> res_mat[][max_n]);</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  </div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix_vec_mul_matr</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m],</div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n]);</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  </div> +<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix_mul_scalar_vec_matr</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar,</div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[m], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[n]);</div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  </div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> AT_mul_A[n][n]);</div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  </div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix_set_diag_elements</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value,</div> +<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n]);</div> +<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  </div> +<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n],</div> +<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  uint8_t length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[]);</div> +<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  </div> +<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value,</div> +<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_matrix[m][n]);</div> +<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  </div> +<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_src[m][n],</div> +<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> value, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mat_dest[m][n]);</div> +<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div> +<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  uint8_t col_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[m]);</div> +<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  </div> +<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix_get_part_column_vec</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n], uint8_t col_num,</div> +<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  uint8_t offset,</div> +<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> col_vec[max_m - offset]);</div> +<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  </div> +<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8h.html#aef8d1508ad101227ab255a714ab22b94">matrix_get_max_elem_in_column</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t col_num);</div> +<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  </div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672">matrix_get_abs_max_elem_in_column</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  uint8_t col_num);</div> +<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  </div> +<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix_get_max_elem_in_part_column</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  uint8_t row_num, uint8_t col_num);</div> +<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  </div> +<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252">matrix_get_abs_max_elem_in_part_column</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  uint8_t row_num,</div> +<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  uint8_t col_num);</div> +<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  </div> +<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a>(uint8_t max_m,</div> +<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  uint8_t max_n,</div> +<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  uint8_t row_num, uint8_t col_num,</div> +<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  uint8_t *index);</div> +<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i, uint8_t j);</div> +<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  </div> +<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a>(uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[][n], uint8_t i,</div> +<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  uint8_t j, uint8_t col_begin,</div> +<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  uint8_t col_end);</div> +<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="keywordtype">double</span> <a class="code" href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n]);</div> +<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  </div> +<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="keywordtype">double</span> <a class="code" href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n]);</div> +<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  </div> +<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n],</div> +<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_U[][m]);</div> +<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[][n],</div> +<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_L[][m]);</div> +<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_up_A[][n]);</div> +<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tr_low_A[][n]);</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  </div> +<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n]);</div> +<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  </div> +<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  uint8_t start_row_ind, uint8_t end_row_ind,</div> +<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  uint8_t start_col_ind, uint8_t end_col_ind);</div> +<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  </div> +<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  uint8_t before_dec, uint8_t after_dec);</div> +<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  </div> +<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  </div> +<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n],</div> +<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  uint8_t start_row_ind, uint8_t end_row_ind,</div> +<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  uint8_t start_col_ind, uint8_t end_col_ind,</div> +<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  uint8_t before_dot, uint8_t after_dot);</div> +<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  </div> +<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  </div> +<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix_part_mul_scalar_vec_matr</a>(uint8_t max_m, uint8_t max_n,</div> +<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scalar, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vec[max_m],</div> +<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[max_m][max_n],</div> +<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  uint8_t begin_row, uint8_t begin_column,</div> +<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dst_arr[max_n - begin_row]);</div> +<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  </div> +<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix_read</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i,</div> +<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  uint8_t j);</div> +<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="keywordtype">void</span> <a class="code" href="matrix_8h.html#a90b6eafa665d34d7330581c32564d632">matrix_write</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i,</div> +<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  uint8_t j, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> val);</div> +<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  </div> +<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor">#endif </span><span class="comment">/* MATRIX_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_ac20399f6a8de13b1f392a1e3f7c0fbf4"><div class="ttname"><a href="matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4">matrix_get_part_column_vec</a></div><div class="ttdeci">void matrix_get_part_column_vec(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t col_num, uint8_t offset, matrix_t col_vec[max_m - offset])</div><div class="ttdoc">Get a part of a column of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00623">matrix.c:623</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0e06b2cfb86340e88be7b1219bef0ce3"><div class="ttname"><a href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a></div><div class="ttdeci">void matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00046">matrix.c:46</a></div></div> +<div class="ttc" id="amatrix_8h_html_a875d6c55a16ee9f8bf523b8c1c82bc6f"><div class="ttname"><a href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a></div><div class="ttdeci">void matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j)</div><div class="ttdoc">Swaps two rows of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00725">matrix.c:725</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_a853244a0562d43bfdcdcb704ed707721"><div class="ttname"><a href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t::row_num</a></div><div class="ttdeci">uint8_t row_num</div><div class="ttdoc">the row number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00061">matrix.h:61</a></div></div> +<div class="ttc" id="amatrix_8h_html_aed6fab1ffa40243eeb08117215082be3"><div class="ttname"><a href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a></div><div class="ttdeci">void matrix_sub(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_minus_B[m][n])</div><div class="ttdoc">Compute the subtraction of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00329">matrix.c:329</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0a3d3cfa20ad3e75ad783af457343672"><div class="ttname"><a href="matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672">matrix_get_abs_max_elem_in_column</a></div><div class="ttdeci">matrix_t matrix_get_abs_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num)</div><div class="ttdoc">Get the maximum absolute value of a column vector in a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00651">matrix.c:651</a></div></div> +<div class="ttc" id="amatrix_8h_html_a90b6eafa665d34d7330581c32564d632"><div class="ttname"><a href="matrix_8h.html#a90b6eafa665d34d7330581c32564d632">matrix_write</a></div><div class="ttdeci">void matrix_write(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j, matrix_t val)</div><div class="ttdoc">Write a value in a matrix at the position (i,j).</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00901">matrix.c:901</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad2cecc467ac6480ef0f3423f962b39bc"><div class="ttname"><a href="matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc">matrix_get_max_elem_in_part_column</a></div><div class="ttdeci">matrix_t matrix_get_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</div><div class="ttdoc">Get the largest element of a column vector in a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00668">matrix.c:668</a></div></div> +<div class="ttc" id="amatrix_8h_html_a06f75ae4924e3f0dfd0b6a25313dc731"><div class="ttname"><a href="matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731">matrix_part_mul_scalar_vec_matr</a></div><div class="ttdeci">void matrix_part_mul_scalar_vec_matr(uint8_t max_m, uint8_t max_n, matrix_t scalar, matrix_t vec[max_m], matrix_t matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, matrix_t dst_arr[max_n - begin_row])</div><div class="ttdoc">Compute the multiplication of a scalar with row vector and a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00489">matrix.c:489</a></div></div> +<div class="ttc" id="amatrix_8h_html_a3763252ca00e4c8522ae1bfd5ef40f0a"><div class="ttname"><a href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a></div><div class="ttdeci">void matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size])</div><div class="ttdoc">Compute the partial multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00391">matrix.c:391</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad7c9a682a3cc4ca33c030afa8798241a"><div class="ttname"><a href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a></div><div class="ttdeci">void matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m])</div><div class="ttdoc">Computes the transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00056">matrix.c:56</a></div></div> +<div class="ttc" id="amatrix_8h_html_ac7101bbaa3a2698658276a7e21501093"><div class="ttname"><a href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a></div><div class="ttdeci">void matrix_add(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_plus_B[m][n])</div><div class="ttdoc">Compute the addition of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00341">matrix.c:341</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0107887a6c40980fa639750be8262f01"><div class="ttname"><a href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a></div><div class="ttdeci">void matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n])</div><div class="ttdoc">Compute the multiplication of the transpose of a matrix with itself.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00545">matrix.c:545</a></div></div> +<div class="ttc" id="amatrix_8h_html_a72073ccd483f9cc438425d3d8ffd3029"><div class="ttname"><a href="matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029">matrix_part_print</a></div><div class="ttdeci">void matrix_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind)</div><div class="ttdoc">Display the values of the sub-matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00164">matrix.c:164</a></div></div> +<div class="ttc" id="amatrix_8h_html_aa8acafd4181978f536976f8151e51516"><div class="ttname"><a href="matrix_8h.html#aa8acafd4181978f536976f8151e51516">matrix_add_to_diag</a></div><div class="ttdeci">void matrix_add_to_diag(uint8_t n, matrix_t A[][n], uint8_t diag_el_num, matrix_t value)</div><div class="ttdoc">Add a number to diagonal elements of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00353">matrix.c:353</a></div></div> +<div class="ttc" id="amatrix_8h_html_a53879e7c4cfbc96725aef9f8234be7dd"><div class="ttname"><a href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a></div><div class="ttdeci">uint8_t matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length)</div><div class="ttdoc">Compute the rank of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00312">matrix.c:312</a></div></div> +<div class="ttc" id="amatrix_8h_html_abbaf8f39b2b7bb4bd2987f99674c1213"><div class="ttname"><a href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a></div><div class="ttdeci">void matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n])</div><div class="ttdoc">Gets the upper triangular part of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00841">matrix.c:841</a></div></div> +<div class="ttc" id="amatrix_8h_html_a53b0a1829b2085414fb66a9e9bd6c7b7"><div class="ttname"><a href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a></div><div class="ttdeci">void matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n])</div><div class="ttdoc">Compute the multiplication of transposed matrix with column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00511">matrix.c:511</a></div></div> +<div class="ttc" id="amatrix_8h_html_a3cf18a2c5c6ad62a4e0a0c00d27e2887"><div class="ttname"><a href="matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887">matrix_vec_mul_matr</a></div><div class="ttdeci">void matrix_vec_mul_matr(uint8_t m, uint8_t n, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n])</div><div class="ttdoc">Compute the multiplication of row vector and a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00452">matrix.c:452</a></div></div> +<div class="ttc" id="amatrix_8h_html_a18e47742f1653dcc4491badfe2537a0a"><div class="ttname"><a href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a></div><div class="ttdeci">void matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n])</div><div class="ttdoc">Create a diagonal matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00594">matrix.c:594</a></div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="amatrix_8h_html_acfd7c6f021f4fbcd393fe849c82f34de"><div class="ttname"><a href="matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de">matrix_mul_col_vec_row_vec</a></div><div class="ttdeci">void matrix_mul_col_vec_row_vec(uint8_t m, matrix_t col_vec[m], uint8_t n, matrix_t row_vec[n], uint8_t max_n, matrix_t res_mat[][max_n])</div><div class="ttdoc">Compute the multiplication of a column and row vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00531">matrix.c:531</a></div></div> +<div class="ttc" id="amatrix_8h_html_adfd93dda9be9b2e8df5805af7fee7845"><div class="ttname"><a href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a></div><div class="ttdeci">void matrix_get_low_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_low_A[][n])</div><div class="ttdoc">Gets the lower triangular part of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00868">matrix.c:868</a></div></div> +<div class="ttc" id="amatrix_8h_html_a51139e6c87b602e5e0ebfbc406fda35d"><div class="ttname"><a href="matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d">matrix_mul_scalar</a></div><div class="ttdeci">void matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n])</div><div class="ttdoc">Multiply all elements of a matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00602">matrix.c:602</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html"><div class="ttname"><a href="structmatrix__dim__t.html">matrix_dim_t</a></div><div class="ttdoc">A structure to define the row and column number of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00060">matrix.h:60</a></div></div> +<div class="ttc" id="amatrix_8h_html_a72297a60e572f85929989e813388a9c5"><div class="ttname"><a href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a></div><div class="ttdeci">void matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the sub-matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00247">matrix.c:247</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8e87640fa1a2d259ee4dc98c955cb48"><div class="ttname"><a href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a></div><div class="ttdeci">void matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m])</div><div class="ttdoc">Computes the inverse a lower triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00817">matrix.c:817</a></div></div> +<div class="ttc" id="amatrix_8h_html_aec03481d950677386122e3c8ba6a5cd0"><div class="ttname"><a href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a></div><div class="ttdeci">double matrix_get_two_norm(uint8_t m, uint8_t n, matrix_t A[][n])</div><div class="ttdoc">Get the 2-norm of a matrix that is equal to the largest singular value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00752">matrix.c:752</a></div></div> +<div class="ttc" id="amatrix_8h_html_ac735d13efe5b76ecf60ac13ec79da8e3"><div class="ttname"><a href="matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3">matrix_mul_scalar_vec_matr</a></div><div class="ttdeci">void matrix_mul_scalar_vec_matr(uint8_t m, uint8_t n, matrix_t scalar, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n])</div><div class="ttdoc">Compute the multiplication of a scalar with row vector and a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00470">matrix.c:470</a></div></div> +<div class="ttc" id="amatrix_8h_html_a722a0230185fd66f0cecbeae7d50ce1a"><div class="ttname"><a href="matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a">matrix_read</a></div><div class="ttdeci">matrix_t matrix_read(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j)</div><div class="ttdoc">Get the value of a matrix at the position (i,j).</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00895">matrix.c:895</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="amatrix_8h_html_a49aa70a7d6ad76388ea08acfe43b7374"><div class="ttname"><a href="matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374">matrix_set_diag_elements</a></div><div class="ttdeci">void matrix_set_diag_elements(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n])</div><div class="ttdoc">Set all the diagonal elements of a matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00565">matrix.c:565</a></div></div> +<div class="ttc" id="amatrix_8h_html_ab166871472924745f70e2bb6e17498c8"><div class="ttname"><a href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a></div><div class="ttdeci">void matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m])</div><div class="ttdoc">Computes the inverse an upper triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00795">matrix.c:795</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_a3570c016691507c003dd7a54cb37e7e2"><div class="ttname"><a href="matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2">matrix_part_swap_rows</a></div><div class="ttdeci">void matrix_part_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end)</div><div class="ttdoc">Swaps two rows of a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00736">matrix.c:736</a></div></div> +<div class="ttc" id="amatrix_8h_html_a3ae0b9f73f82716f3427a523a3412864"><div class="ttname"><a href="matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864">matrix_get_column_vec</a></div><div class="ttdeci">void matrix_get_column_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num, matrix_t col_vec[m])</div><div class="ttdoc">Get a column of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00612">matrix.c:612</a></div></div> +<div class="ttc" id="amatrix_8h_html_a8d77cfae4f1da83acac929c1ce13d252"><div class="ttname"><a href="matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252">matrix_get_abs_max_elem_in_part_column</a></div><div class="ttdeci">matrix_t matrix_get_abs_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num)</div><div class="ttdoc">Get the maximum absolute value of a column vector in a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00685">matrix.c:685</a></div></div> +<div class="ttc" id="amatrix_8h_html_a32ab12965ec43c2acf65cf9dd510353a"><div class="ttname"><a href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a></div><div class="ttdeci">void matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00141">matrix.c:141</a></div></div> +<div class="ttc" id="amatrix_8h_html_aaf85a32b8562c91d2d1889819580375e"><div class="ttname"><a href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a></div><div class="ttdeci">double matrix_get_frob_norm(uint8_t m, uint8_t n, matrix_t A[][n])</div><div class="ttdoc">Get the Frobenius norm of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00782">matrix.c:782</a></div></div> +<div class="ttc" id="amatrix_8h_html_a48b36217faeda15438f4e07c54d0ef9e"><div class="ttname"><a href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a></div><div class="ttdeci">void matrix_in_place_transpose(uint8_t m, matrix_t matrix[][m])</div><div class="ttdoc">Computes the in-place transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00069">matrix.c:69</a></div></div> +<div class="ttc" id="amatrix_8h_html_a5f6a1948ec005cff4985559821c4943f"><div class="ttname"><a href="matrix_8h.html#a5f6a1948ec005cff4985559821c4943f">matrix_get_abs_max_elem_and_index_in_part_column</a></div><div class="ttdeci">matrix_t matrix_get_abs_max_elem_and_index_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index)</div><div class="ttdoc">Get the maximum absolute value and its position in a column vector in a sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00703">matrix.c:703</a></div></div> +<div class="ttc" id="amatrix_8h_html_aef8d1508ad101227ab255a714ab22b94"><div class="ttname"><a href="matrix_8h.html#aef8d1508ad101227ab255a714ab22b94">matrix_get_max_elem_in_column</a></div><div class="ttdeci">matrix_t matrix_get_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num)</div><div class="ttdoc">Get the largest element of a column vector in a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00635">matrix.c:635</a></div></div> +<div class="ttc" id="amatrix_8h_html_a56513a88eff05b0683320c532fadf945"><div class="ttname"><a href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a></div><div class="ttdeci">void matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num])</div><div class="ttdoc">Copy a part of a matrix to another matrix or sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00089">matrix.c:89</a></div></div> +<div class="ttc" id="amatrix_8h_html_a550aa0d5a3212e35ad0af134895fd20a"><div class="ttname"><a href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a></div><div class="ttdeci">void matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num])</div><div class="ttdoc">Compute the multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00363">matrix.c:363</a></div></div> +<div class="ttc" id="amatrix_8h_html_acfd2bbc4a90915e57a4555694e842312"><div class="ttname"><a href="matrix_8h.html#acfd2bbc4a90915e57a4555694e842312">matrix_init</a></div><div class="ttdeci">void matrix_init(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t value)</div><div class="ttdoc">Initialize all the elements of the matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00051">matrix.c:51</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_aac6b6ff205184047714d5c22019bdbab"><div class="ttname"><a href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t::col_num</a></div><div class="ttdeci">uint8_t col_num</div><div class="ttdoc">the column number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00062">matrix.h:62</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae808f007791f060590d39c7668501988"><div class="ttname"><a href="matrix_8h.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a></div><div class="ttdeci">void matrix_get_diag_mat_new(uint8_t m, uint8_t n, matrix_t diag_matrix[m][n], uint8_t length, matrix_t vec[])</div><div class="ttdoc">Set all the diagonal elements of a matrix with values that are saved in a vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00581">matrix.c:581</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_e663cf436b7a4f65fdac82a5d77479a9.html">include</a></li><li class="navelem"><a class="el" href="matrix_8h.html">matrix.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix__test_8c.html b/doc/doxygen/html/matrix__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..4a6928143e18b1b50763a0aa6ecad5fd4c30f1c2 --- /dev/null +++ b/doc/doxygen/html/matrix__test_8c.html @@ -0,0 +1,140 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">matrix_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of matrix computations. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <stdint.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="matrix__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:aad3d0f4acb79e8a9b61eda59dc3a12b2"><td class="memItemLeft" align="right" valign="top"><a id="aad3d0f4acb79e8a9b61eda59dc3a12b2"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a> (void)</td></tr> +<tr class="memdesc:aad3d0f4acb79e8a9b61eda59dc3a12b2"><td class="mdescLeft"> </td><td class="mdescRight">Test some matrix operations. <br /></td></tr> +<tr class="separator:aad3d0f4acb79e8a9b61eda59dc3a12b2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5713bd664a96ccd028896420050f22df"><td class="memItemLeft" align="right" valign="top"><a id="a5713bd664a96ccd028896420050f22df"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8c.html#a5713bd664a96ccd028896420050f22df">inv_triangular_matrices_test</a> (void)</td></tr> +<tr class="memdesc:a5713bd664a96ccd028896420050f22df"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the inverse of triangular matrices. <br /></td></tr> +<tr class="separator:a5713bd664a96ccd028896420050f22df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af3bd1663337eb8dbe0fbcb49b517621f"><td class="memItemLeft" align="right" valign="top"><a id="af3bd1663337eb8dbe0fbcb49b517621f"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f">triangular_matrices_test</a> (void)</td></tr> +<tr class="memdesc:af3bd1663337eb8dbe0fbcb49b517621f"><td class="mdescLeft"> </td><td class="mdescRight">Examples of triangular matrices. <br /></td></tr> +<tr class="separator:af3bd1663337eb8dbe0fbcb49b517621f"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of matrix computations. </p> +<p>Matrix computation examples of the (see <a class="el" href="matrix_8h.html">matrix</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="matrix__test_8c_source.html">matrix_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="matrix__test_8c.html">matrix_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix__test_8c.js b/doc/doxygen/html/matrix__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..1c21456b98f360c4b3178493a471dc9fa6b03e7d --- /dev/null +++ b/doc/doxygen/html/matrix__test_8c.js @@ -0,0 +1,6 @@ +var matrix__test_8c = +[ + [ "inv_triangular_matrices_test", "matrix__test_8c.html#a5713bd664a96ccd028896420050f22df", null ], + [ "matrix_test", "matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2", null ], + [ "triangular_matrices_test", "matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/matrix__test_8c_source.html b/doc/doxygen/html/matrix__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..3444ca43435f405923e8ba8232f0e0d79d6ccf53 --- /dev/null +++ b/doc/doxygen/html/matrix__test_8c_source.html @@ -0,0 +1,414 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">matrix_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="matrix__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2"> 31</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  puts(<span class="stringliteral">"############ Basic Matrix Algebra ###############"</span>);</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t m = 3;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  uint8_t n = 4;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_elem = <a class="code" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a>;</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix1[3][4] = { { 0.2785, 0.9649, 0.9572, 0.1419 },</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { 0.5469, 0.1576, 0.4854, 0.4218 },</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { 0.9575, 0.9706, 0.8003, 0.9157 },</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  };</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix2[3][4] = { { 0.7922, 0.0357, 0.6787, 0.3922 },</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  { 0.9595, 0.8491, 0.7577, 0.6555 },</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  { 0.6557, 0.9340, 0.7431, 0.1712 },</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  };</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> res_matrix[m][n];</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> trans_matrix[n][m];</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> res_mul_matrix[m][m];</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_vec[3] = { 1.1, 2.3, 3.5 };</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a>(m, n, matrix1, matrix2, res_matrix);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  printf(<span class="stringliteral">"matrix1 + matrix2 = "</span>);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, res_matrix, 7, 4);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a>(m, n, matrix1, matrix2, res_matrix);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  printf(<span class="stringliteral">"matrix1 - matrix2 = "</span>);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, res_matrix, 7, 4);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(m, n, matrix2, trans_matrix);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  printf(<span class="stringliteral">"trans(matrix2) = "</span>);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, trans_matrix, 7, 4);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(m, n, matrix1, n, m, trans_matrix, res_mul_matrix);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  printf(<span class="stringliteral">"matrix1 x matrix2 = "</span>);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, m, res_mul_matrix, 7, 4);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a>(m, n, diag_elem, res_matrix);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  printf(<span class="stringliteral">"dig_matrix = "</span>);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, res_matrix, 7, 4);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a>(m, n, res_matrix, m, diag_vec);</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  printf(<span class="stringliteral">"dig_matrix = "</span>);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, res_matrix, 7, 4);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix3[5][5] = {</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  { 0.8147, 0.0975, 0.1576, 0.1419, 0.6557 },</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  { 0.9058, 0.2785, 0.9706, 0.4218, 0.0357 },</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  { 0.1270, 0.5469, 0.9572, 0.9157, 0.8491 },</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  { 0.9595, 0.8491, 0.7577, 0.6555, 0.6787 },</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  { 0.6557, 0.9340, 0.7431, 0.1712, 0.9595 },</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  };</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a>(5, matrix3, 3, 1);</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  printf(<span class="stringliteral">"swapped matrix3 = "</span>);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(5, 5, matrix3, 7, 4);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  puts(<span class="stringliteral">" *** Test Partial Matrix Multiplication *** "</span>);</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[11][7] =</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  { 0.8147, 0.9706, 0.8491, 0.0462, 0.1869, 0.4984, 0.5472 },</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  { 0.9058, 0.9572, 0.9340, 0.0971, 0.4898, 0.9597, 0.1386 },</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  { 0.1270, 0.4854, 0.6787, 0.8235, 0.4456, 0.3404, 0.1493 },</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  { 0.9134, 0.8003, 0.7577, 0.6948, 0.6463, 0.5853, 0.2575 },</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  { 0.6324, 0.1419, 0.7431, 0.3171, 0.7094, 0.2238, 0.8407 },</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  { 0.0975, 0.4218, 0.3922, 0.9502, 0.7547, 0.7513, 0.2543 },</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  { 0.2785, 0.9157, 0.6555, 0.0344, 0.2760, 0.2551, 0.8143 },</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  { 0.5469, 0.7922, 0.1712, 0.4387, 0.6797, 0.5060, 0.2435 },</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  { 0.9575, 0.9595, 0.7060, 0.3816, 0.6551, 0.6991, 0.9293 },</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  { 0.9649, 0.6557, 0.0318, 0.7655, 0.1626, 0.8909, 0.3500 },</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  { 0.1576, 0.0357, 0.2769, 0.7952, 0.1190, 0.9593, 0.1966 }</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  };</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[7][5] = {</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  { 0.2511, 0.9172, 0.0540, 0.0119, 0.6020 },</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  { 0.6160, 0.2858, 0.5308, 0.3371, 0.2630 },</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  { 0.4733, 0.7572, 0.7792, 0.1622, 0.6541 },</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  { 0.3517, 0.7537, 0.9340, 0.7943, 0.6892 },</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  { 0.8308, 0.3804, 0.1299, 0.3112, 0.7482 },</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  { 0.5853, 0.5678, 0.5688, 0.5285, 0.4505 },</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  { 0.5497, 0.0759, 0.4694, 0.1656, 0.0838 }</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  };</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  uint8_t l;</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  uint8_t a_row_begin, a_row_end, a_col_begin, a_col_end;</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  uint8_t b_row_begin, b_row_end, b_col_begin, b_col_end;</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  m = 11;</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  n = 7;</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  l = 5;</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> C[5][3];</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  a_row_begin = 3, a_row_end = 7;</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  a_col_begin = 2, a_col_end = 4;</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  b_row_begin = 3, b_row_end = 5;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  b_col_begin = 1, b_col_end = 3;</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a>(n, A, l, B,</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  a_row_begin, a_row_end, a_col_begin, a_col_end,</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  b_row_begin, b_row_end, b_col_begin, b_col_end,</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  3, C);</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  printf(<span class="stringliteral">"part_A = "</span>);</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a>(m, n, A, a_row_begin, a_row_end, a_col_begin,</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  a_col_end, 7, 4);</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  printf(<span class="stringliteral">"part_B = "</span>);</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a>(n, l, B, b_row_begin, b_row_end, b_col_begin,</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  b_col_end, 7, 4);</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  printf(<span class="stringliteral">"C = "</span>);</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(5, 3, C, 7, 4);</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  puts(<span class="stringliteral">" *** Test The 2-norm of a Matrix, *** "</span>);</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">double</span> two_norm = <a class="code" href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a>(m, n, A);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  printf(<span class="stringliteral">"A_two_norm = %7.4f\n"</span>, two_norm);</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> D[7][5] = {</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  { -0.2743, -4.9913, 0.3375, -6.5684, -6.9048 },</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  { -4.9657, -2.0716, -4.7133, -2.7536, -4.3030 },</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  { -0.4857, -3.2137, -0.9424, -0.7667, -5.7025 },</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  { -5.0518, -4.1867, -0.9702, 0.4721, -0.6457 },</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  { 0.4341, -0.3534, -3.9564, -5.9608, -4.5103 },</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  { -4.2001, -2.3179, -2.4574, -2.4494, -2.7717 },</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  { -5.4272, -2.6022, -6.3932, -3.2449, -5.6748 }</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  };</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  m = 7;</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  n = 5;</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  two_norm = <a class="code" href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a>(m, n, D);</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  printf(<span class="stringliteral">"D_two_norm = %7.4f\n"</span>, two_norm);</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">double</span> frob_norm = <a class="code" href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a>(m, n, D);</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  printf(<span class="stringliteral">"D_frob_norm = %7.4f\n"</span>, frob_norm);</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div> +<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="matrix__test_8c.html#a5713bd664a96ccd028896420050f22df"> 164</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix__test_8c.html#a5713bd664a96ccd028896420050f22df">inv_triangular_matrices_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> {</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  puts(</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="stringliteral">"*********** Test the Inverse of Upper Triangular Matrices ***********"</span>);</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[11][7] =</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  { 0.8147, 0.9706, 0.8491, 0.0462, 0.1869, 0.4984, 0.5472 },</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  { 0.0000, 0.9572, 0.9340, 0.0971, 0.4898, 0.9597, 0.1386 },</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  { 0.0000, 0.0000, 0.6787, 0.8235, 0.4456, 0.3404, 0.1493 },</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  { 0.0000, 0.0000, 0.0000, 0.6948, 0.6463, 0.5853, 0.2575 },</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  { 0.0000, 0.0000, 0.0000, 0.0000, 0.7094, 0.2238, 0.8407 },</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.7513, 0.2543 },</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.8143 },</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  { 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 }</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  };</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  uint8_t m, n;</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  puts(<span class="stringliteral">"Square Matrix:"</span>);</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  m = 7;</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  n = 7;</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  printf(<span class="stringliteral">"U1 = "</span>);</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, U, 7, 4);</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_U1[n][m];</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a>(m, n, U, inv_U1);</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  printf(<span class="stringliteral">"inv_U1 = "</span>);</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, inv_U1, 7, 4);</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  puts(<span class="stringliteral">"Rectangular Matrix:"</span>);</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  m = 11;</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  n = 7;</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  printf(<span class="stringliteral">"U2 = "</span>);</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, U, 7, 4);</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_U2[n][m];</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a>(m, n, U, inv_U2);</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  printf(<span class="stringliteral">"inv_U2 = "</span>);</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, inv_U2, 7, 4);</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  puts(</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="stringliteral">"*********** Test the Inverse of Lower Triangular Matrices ***********"</span>);</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[11][7] =</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  { 0.8147, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  { 0.9058, 0.9572, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  { 0.1270, 0.4854, 0.6787, 0.0000, 0.0000, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  { 0.9134, 0.8003, 0.7577, 0.6948, 0.0000, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  { 0.6324, 0.1419, 0.7431, 0.3171, 0.7094, 0.0000, 0.0000 },</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  { 0.0975, 0.4218, 0.3922, 0.9502, 0.7547, 0.7513, 0.0000 },</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  { 0.2785, 0.9157, 0.6555, 0.0344, 0.2760, 0.2551, 0.8143 },</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  { 0.5469, 0.7922, 0.1712, 0.4387, 0.6797, 0.5060, 0.2435 },</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  { 0.9575, 0.9595, 0.7060, 0.3816, 0.6551, 0.6991, 0.9293 },</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  { 0.9649, 0.6557, 0.0318, 0.7655, 0.1626, 0.8909, 0.3500 },</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  { 0.1576, 0.0357, 0.2769, 0.7952, 0.1190, 0.9593, 0.1966 }</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  };</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  m = 7;</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  n = 7;</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  puts(<span class="stringliteral">"Square Matrix:"</span>);</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  printf(<span class="stringliteral">"L1 = "</span>);</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, L, 7, 4);</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_L1[n][m];</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a>(m, n, L, inv_L1);</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  printf(<span class="stringliteral">"inv_L1 = "</span>);</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, inv_L1, 7, 4);</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  puts(<span class="stringliteral">"Rectangular Matrix:"</span>);</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  m = 11;</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  n = 7;</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  printf(<span class="stringliteral">"L2 = "</span>);</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, L, 7, 4);</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_L2[n][m];</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a>(m, n, L, inv_L2);</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  printf(<span class="stringliteral">"inv_L2 = "</span>);</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, inv_L2, 7, 4);</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> }</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div> +<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f"> 242</a></span> <span class="keywordtype">void</span> <a class="code" href="matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f">triangular_matrices_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> {</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[10][5] = {</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 },</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  { 0.0975, 0.1419, 0.7577, 0.8235, 0.4898 },</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  { 0.2785, 0.4218, 0.7431, 0.6948, 0.4456 },</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  { 0.5469, 0.9157, 0.3922, 0.3171, 0.6463 },</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  { 0.9575, 0.7922, 0.6555, 0.9502, 0.7094 },</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  { 0.9649, 0.9595, 0.1712, 0.0344, 0.7547 }</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  };</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  uint8_t m = 10, n = 5;</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A[m][n];</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[m][n];</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> C[n][m];</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> D[n][m];</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  puts(<span class="stringliteral">"++++++++++ upper triangular ++++++++++"</span>);</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(m, n, A, C);</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a>(m, n, A, B);</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a>(m, n, A, A);</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a>(n, m, C, D);</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  printf(<span class="stringliteral">"A = "</span>);</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, A, 7, 4);</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  printf(<span class="stringliteral">"B = "</span>);</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, B, 7, 4);</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  printf(<span class="stringliteral">"C = "</span>);</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, C, 7, 4);</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  printf(<span class="stringliteral">"D = "</span>);</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, D, 7, 4);</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  puts(<span class="stringliteral">"++++++++++ lower triangular ++++++++++"</span>);</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, copy_A, A);</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  printf(<span class="stringliteral">"A = "</span>);</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, A, 7, 4);</div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(m, n, A, C);</div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a>(m, n, A, B);</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a>(m, n, A, A);</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a>(n, m, C, D);</div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  printf(<span class="stringliteral">"A = "</span>);</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, A, 7, 4);</div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  printf(<span class="stringliteral">"B = "</span>);</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, B, 7, 4);</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  printf(<span class="stringliteral">"C = "</span>);</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, C, 7, 4);</div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  printf(<span class="stringliteral">"D = "</span>);</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, D, 7, 4);</div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_a875d6c55a16ee9f8bf523b8c1c82bc6f"><div class="ttname"><a href="matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f">matrix_swap_rows</a></div><div class="ttdeci">void matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j)</div><div class="ttdoc">Swaps two rows of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00725">matrix.c:725</a></div></div> +<div class="ttc" id="amatrix_8h_html_aed6fab1ffa40243eeb08117215082be3"><div class="ttname"><a href="matrix_8h.html#aed6fab1ffa40243eeb08117215082be3">matrix_sub</a></div><div class="ttdeci">void matrix_sub(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_minus_B[m][n])</div><div class="ttdoc">Compute the subtraction of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00329">matrix.c:329</a></div></div> +<div class="ttc" id="amatrix_8h_html_a3763252ca00e4c8522ae1bfd5ef40f0a"><div class="ttname"><a href="matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a">matrix_part_mul</a></div><div class="ttdeci">void matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size])</div><div class="ttdoc">Compute the partial multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00391">matrix.c:391</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad7c9a682a3cc4ca33c030afa8798241a"><div class="ttname"><a href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a></div><div class="ttdeci">void matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m])</div><div class="ttdoc">Computes the transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00056">matrix.c:56</a></div></div> +<div class="ttc" id="amatrix_8h_html_ac7101bbaa3a2698658276a7e21501093"><div class="ttname"><a href="matrix_8h.html#ac7101bbaa3a2698658276a7e21501093">matrix_add</a></div><div class="ttdeci">void matrix_add(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_plus_B[m][n])</div><div class="ttdoc">Compute the addition of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00341">matrix.c:341</a></div></div> +<div class="ttc" id="amatrix__test_8c_html_af3bd1663337eb8dbe0fbcb49b517621f"><div class="ttname"><a href="matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f">triangular_matrices_test</a></div><div class="ttdeci">void triangular_matrices_test(void)</div><div class="ttdoc">Examples of triangular matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix__test_8c_source.html#l00242">matrix_test.c:242</a></div></div> +<div class="ttc" id="amatrix__test_8c_html_aad3d0f4acb79e8a9b61eda59dc3a12b2"><div class="ttname"><a href="matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a></div><div class="ttdeci">void matrix_test(void)</div><div class="ttdoc">Test some matrix operations.</div><div class="ttdef"><b>Definition:</b> <a href="matrix__test_8c_source.html#l00031">matrix_test.c:31</a></div></div> +<div class="ttc" id="amatrix_8h_html_abbaf8f39b2b7bb4bd2987f99674c1213"><div class="ttname"><a href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a></div><div class="ttdeci">void matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n])</div><div class="ttdoc">Gets the upper triangular part of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00841">matrix.c:841</a></div></div> +<div class="ttc" id="amatrix__test_8c_html_a5713bd664a96ccd028896420050f22df"><div class="ttname"><a href="matrix__test_8c.html#a5713bd664a96ccd028896420050f22df">inv_triangular_matrices_test</a></div><div class="ttdeci">void inv_triangular_matrices_test(void)</div><div class="ttdoc">Examples of the inverse of triangular matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix__test_8c_source.html#l00164">matrix_test.c:164</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a18e47742f1653dcc4491badfe2537a0a"><div class="ttname"><a href="matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a">matrix_get_diag_mat</a></div><div class="ttdeci">void matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n])</div><div class="ttdoc">Create a diagonal matrix with a specified value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00594">matrix.c:594</a></div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="amatrix_8h_html_adfd93dda9be9b2e8df5805af7fee7845"><div class="ttname"><a href="matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845">matrix_get_low_triang</a></div><div class="ttdeci">void matrix_get_low_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_low_A[][n])</div><div class="ttdoc">Gets the lower triangular part of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00868">matrix.c:868</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae71449b1cc6e6250b91f539153a7a0d3"><div class="ttname"><a href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a></div><div class="ttdeci">#define M_PI</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00054">matrix.h:54</a></div></div> +<div class="ttc" id="amatrix_8h_html_a72297a60e572f85929989e813388a9c5"><div class="ttname"><a href="matrix_8h.html#a72297a60e572f85929989e813388a9c5">matrix_flex_part_print</a></div><div class="ttdeci">void matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the sub-matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00247">matrix.c:247</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8e87640fa1a2d259ee4dc98c955cb48"><div class="ttname"><a href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a></div><div class="ttdeci">void matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m])</div><div class="ttdoc">Computes the inverse a lower triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00817">matrix.c:817</a></div></div> +<div class="ttc" id="amatrix_8h_html_aec03481d950677386122e3c8ba6a5cd0"><div class="ttname"><a href="matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0">matrix_get_two_norm</a></div><div class="ttdeci">double matrix_get_two_norm(uint8_t m, uint8_t n, matrix_t A[][n])</div><div class="ttdoc">Get the 2-norm of a matrix that is equal to the largest singular value.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00752">matrix.c:752</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="amatrix_8h_html_ab166871472924745f70e2bb6e17498c8"><div class="ttname"><a href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a></div><div class="ttdeci">void matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m])</div><div class="ttdoc">Computes the inverse an upper triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00795">matrix.c:795</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_aaf85a32b8562c91d2d1889819580375e"><div class="ttname"><a href="matrix_8h.html#aaf85a32b8562c91d2d1889819580375e">matrix_get_frob_norm</a></div><div class="ttdeci">double matrix_get_frob_norm(uint8_t m, uint8_t n, matrix_t A[][n])</div><div class="ttdoc">Get the Frobenius norm of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00782">matrix.c:782</a></div></div> +<div class="ttc" id="amatrix_8h_html_a550aa0d5a3212e35ad0af134895fd20a"><div class="ttname"><a href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a></div><div class="ttdeci">void matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num])</div><div class="ttdoc">Compute the multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00363">matrix.c:363</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae808f007791f060590d39c7668501988"><div class="ttname"><a href="matrix_8h.html#ae808f007791f060590d39c7668501988">matrix_get_diag_mat_new</a></div><div class="ttdeci">void matrix_get_diag_mat_new(uint8_t m, uint8_t n, matrix_t diag_matrix[m][n], uint8_t length, matrix_t vec[])</div><div class="ttdoc">Set all the diagonal elements of a matrix with values that are saved in a vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00581">matrix.c:581</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="matrix__test_8c.html">matrix_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix__test_8h.html b/doc/doxygen/html/matrix__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..2e7f61b4b69dd176d2d8bc46b6f5c7de201fed35 --- /dev/null +++ b/doc/doxygen/html/matrix__test_8h.html @@ -0,0 +1,134 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">matrix_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of matrix computations. +<a href="#details">More...</a></p> + +<p><a href="matrix__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:aad3d0f4acb79e8a9b61eda59dc3a12b2"><td class="memItemLeft" align="right" valign="top"><a id="aad3d0f4acb79e8a9b61eda59dc3a12b2"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a> (void)</td></tr> +<tr class="memdesc:aad3d0f4acb79e8a9b61eda59dc3a12b2"><td class="mdescLeft"> </td><td class="mdescRight">Test some matrix operations. <br /></td></tr> +<tr class="separator:aad3d0f4acb79e8a9b61eda59dc3a12b2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5713bd664a96ccd028896420050f22df"><td class="memItemLeft" align="right" valign="top"><a id="a5713bd664a96ccd028896420050f22df"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8h.html#a5713bd664a96ccd028896420050f22df">inv_triangular_matrices_test</a> (void)</td></tr> +<tr class="memdesc:a5713bd664a96ccd028896420050f22df"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the inverse of triangular matrices. <br /></td></tr> +<tr class="separator:a5713bd664a96ccd028896420050f22df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af3bd1663337eb8dbe0fbcb49b517621f"><td class="memItemLeft" align="right" valign="top"><a id="af3bd1663337eb8dbe0fbcb49b517621f"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f">triangular_matrices_test</a> (void)</td></tr> +<tr class="memdesc:af3bd1663337eb8dbe0fbcb49b517621f"><td class="mdescLeft"> </td><td class="mdescRight">Examples of triangular matrices. <br /></td></tr> +<tr class="separator:af3bd1663337eb8dbe0fbcb49b517621f"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of matrix computations. </p> +<p>Matrix computation examples (see <a class="el" href="matrix_8h.html">matrix</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="matrix__test_8h_source.html">matrix_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_29979c7df1e854056800300ae76a816f.html">include</a></li><li class="navelem"><a class="el" href="matrix__test_8h.html">matrix_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/matrix__test_8h.js b/doc/doxygen/html/matrix__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..4abb80553411746be99aead4f2e85e3c66e26910 --- /dev/null +++ b/doc/doxygen/html/matrix__test_8h.js @@ -0,0 +1,6 @@ +var matrix__test_8h = +[ + [ "inv_triangular_matrices_test", "matrix__test_8h.html#a5713bd664a96ccd028896420050f22df", null ], + [ "matrix_test", "matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2", null ], + [ "triangular_matrices_test", "matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/matrix__test_8h_source.html b/doc/doxygen/html/matrix__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..700d63b6b91bb74f14c48d921f7f174ce36948cd --- /dev/null +++ b/doc/doxygen/html/matrix__test_8h_source.html @@ -0,0 +1,127 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('matrix__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">matrix_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="matrix__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef MATRIX_TEST_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define MATRIX_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code" href="matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">void</span> <a class="code" href="matrix__test_8h.html#a5713bd664a96ccd028896420050f22df">inv_triangular_matrices_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">void</span> <a class="code" href="matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f">triangular_matrices_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif </span><span class="comment">/* MATRIX_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix__test_8h_html_af3bd1663337eb8dbe0fbcb49b517621f"><div class="ttname"><a href="matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f">triangular_matrices_test</a></div><div class="ttdeci">void triangular_matrices_test(void)</div><div class="ttdoc">Examples of triangular matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix__test_8c_source.html#l00242">matrix_test.c:242</a></div></div> +<div class="ttc" id="amatrix__test_8h_html_a5713bd664a96ccd028896420050f22df"><div class="ttname"><a href="matrix__test_8h.html#a5713bd664a96ccd028896420050f22df">inv_triangular_matrices_test</a></div><div class="ttdeci">void inv_triangular_matrices_test(void)</div><div class="ttdoc">Examples of the inverse of triangular matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix__test_8c_source.html#l00164">matrix_test.c:164</a></div></div> +<div class="ttc" id="amatrix__test_8h_html_aad3d0f4acb79e8a9b61eda59dc3a12b2"><div class="ttname"><a href="matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2">matrix_test</a></div><div class="ttdeci">void matrix_test(void)</div><div class="ttdoc">Test some matrix operations.</div><div class="ttdef"><b>Definition:</b> <a href="matrix__test_8c_source.html#l00031">matrix_test.c:31</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_29979c7df1e854056800300ae76a816f.html">include</a></li><li class="navelem"><a class="el" href="matrix__test_8h.html">matrix_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/menu.js b/doc/doxygen/html/menu.js new file mode 100644 index 0000000000000000000000000000000000000000..433c15b8f01814eb5f5ee0e9bba623e07fc04cb2 --- /dev/null +++ b/doc/doxygen/html/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='<ul>'; + for (var i in data.children) { + result+='<li><a href="'+relPath+data.children[i].url+'">'+ + data.children[i].text+'</a>'+ + makeTree(data.children[i],relPath)+'</li>'; + } + result+='</ul>'; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>'); + } else { + $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>'); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/doc/doxygen/html/menudata.js b/doc/doxygen/html/menudata.js new file mode 100644 index 0000000000000000000000000000000000000000..6c368d1febfce73f39a8c06f1aa8766900cc7f39 --- /dev/null +++ b/doc/doxygen/html/menudata.js @@ -0,0 +1,76 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2019 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of version 2 of the GNU General Public License as published by +the Free Software Foundation + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Modules",url:"modules.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html"}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"a",url:"globals.html#index_a"}, +{text:"c",url:"globals_c.html#index_c"}, +{text:"d",url:"globals_d.html#index_d"}, +{text:"f",url:"globals_f.html#index_f"}, +{text:"g",url:"globals_g.html#index_g"}, +{text:"h",url:"globals_h.html#index_h"}, +{text:"i",url:"globals_i.html#index_i"}, +{text:"k",url:"globals_k.html#index_k"}, +{text:"l",url:"globals_l.html#index_l"}, +{text:"m",url:"globals_m.html#index_m"}, +{text:"n",url:"globals_n.html#index_n"}, +{text:"o",url:"globals_o.html#index_o"}, +{text:"p",url:"globals_p.html#index_p"}, +{text:"q",url:"globals_q.html#index_q"}, +{text:"r",url:"globals_r.html#index_r"}, +{text:"s",url:"globals_s.html#index_s"}, +{text:"t",url:"globals_t.html#index_t"}, +{text:"u",url:"globals_u.html#index_u"}, +{text:"v",url:"globals_v.html#index_v"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"c",url:"globals_func.html#index_c"}, +{text:"d",url:"globals_func_d.html#index_d"}, +{text:"f",url:"globals_func_f.html#index_f"}, +{text:"g",url:"globals_func_g.html#index_g"}, +{text:"h",url:"globals_func_h.html#index_h"}, +{text:"i",url:"globals_func_i.html#index_i"}, +{text:"l",url:"globals_func_l.html#index_l"}, +{text:"m",url:"globals_func_m.html#index_m"}, +{text:"n",url:"globals_func_n.html#index_n"}, +{text:"o",url:"globals_func_o.html#index_o"}, +{text:"p",url:"globals_func_p.html#index_p"}, +{text:"q",url:"globals_func_q.html#index_q"}, +{text:"r",url:"globals_func_r.html#index_r"}, +{text:"s",url:"globals_func_s.html#index_s"}, +{text:"t",url:"globals_func_t.html#index_t"}, +{text:"u",url:"globals_func_u.html#index_u"}, +{text:"v",url:"globals_func_v.html#index_v"}]}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/doc/doxygen/html/modified__gauss__newton_8c.html b/doc/doxygen/html/modified__gauss__newton_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..47e44f5eb730c5ee94d75bba7a9ad7b7bf93246b --- /dev/null +++ b/doc/doxygen/html/modified__gauss__newton_8c.html @@ -0,0 +1,235 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: modified_gauss_newton.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('modified__gauss__newton_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">modified_gauss_newton.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Gauss–Newton algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +</div> +<p><a href="modified__gauss__newton_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a7376799043ad2c27fac02371624051bc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n], void(*get_f_error)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a7376799043ad2c27fac02371624051bc"><td class="mdescLeft"> </td><td class="mdescRight">Implements the modified Gauss–Newton algorithm. <a href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">More...</a><br /></td></tr> +<tr class="separator:a7376799043ad2c27fac02371624051bc"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Gauss–Newton algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="modified__gauss__newton_8c_source.html">modified_gauss_newton.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a7376799043ad2c27fac02371624051bc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a7376799043ad2c27fac02371624051bc">◆ </a></span>modified_gauss_newton()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t modified_gauss_newton </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[f_length], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>fmin</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_f_error</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the modified Gauss–Newton algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">fmin</td><td>termination tolerance on the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the Gauss–Newton algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_vec[]</td><td>estimated (optimized) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_f_error)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="modified__gauss__newton_8c_source.html#l00032">32</a> of file <a class="el" href="modified__gauss__newton_8c_source.html">modified_gauss_newton.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="utils_8c_source.html#l00055">utils_max()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>, and <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="modified__gauss__newton_8c.html">modified_gauss_newton.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/modified__gauss__newton_8c.js b/doc/doxygen/html/modified__gauss__newton_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..6385ec8a06fbf341c0510f80110cb56ee3b68e83 --- /dev/null +++ b/doc/doxygen/html/modified__gauss__newton_8c.js @@ -0,0 +1,4 @@ +var modified__gauss__newton_8c = +[ + [ "modified_gauss_newton", "modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/modified__gauss__newton_8c_source.html b/doc/doxygen/html/modified__gauss__newton_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..89c67121bcd5545f57b7c6235571fbc33a4c8a72 --- /dev/null +++ b/doc/doxygen/html/modified__gauss__newton_8c_source.html @@ -0,0 +1,221 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: modified_gauss_newton.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('modified__gauss__newton_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">modified_gauss_newton.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="modified__gauss__newton_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">//n is the size of x0 that is equal to the column number of J</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc"> 32</a></span> uint8_t <a class="code" href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>(uint8_t f_length, uint8_t n,</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n],</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length],</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num,</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n],</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">void</span> (*get_f_error)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n])</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  )</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[f_length][n];</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JT_J[n][n];</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> JT_f[n];</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[f_length];</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_error;</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_JTJ_mat[n][n];</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> correction_vec[n];</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[n];</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> next_x_vec[n];</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> max_error, min_error;</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> step;</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  uint8_t iter_num;</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  get_f_error(x0_vec, data_vec, f_vec);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  f_error = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(f_length, f_vec);</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  max_error = f_error;</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  min_error = max_error;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  step = eps;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, x0_vec, x_vec);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, x0_vec, est_x_vec);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  iter_num = 0;</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">while</span> ((step >= eps) && (iter_num < max_iter_num) && (f_error > fmin)) {</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">/*</span></div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> * Compute then correction terms & next x_vec values</span></div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">//JT_J = J'*J</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  get_jacobian(x_vec, J);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a>(f_length, n, J, JT_J);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">//JT_f = J'*f</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  get_f_error(x_vec, data_vec, f_vec);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(f_length, n, J, f_length, f_vec, JT_f);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">//solve: J'J*s = -J'*f</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(n, n, JT_J, pinv_JTJ_mat);</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">//s = (J'J)\J'*f</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(n, n, pinv_JTJ_mat, JT_f, correction_vec);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// x = x - s</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(n, x_vec, correction_vec, next_x_vec);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">//next step</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  step = <a class="code" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a>(n, x_vec, next_x_vec);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// x_vec = next_x_vec</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, next_x_vec, x_vec);</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">//error vector</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  get_f_error(x_vec, data_vec, f_vec);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  f_error = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(f_length, f_vec);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (min_error > f_error) { <span class="comment">//store the x_vec value with the minimum error in est_x_vec</span></div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, x_vec, est_x_vec);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  min_error = f_error; <span class="comment">// update min_error</span></div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  max_error = <a class="code" href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a>(f_error, max_error); <span class="comment">// update max_error</span></div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  iter_num++;</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> ((max_error - min_error) > 10) {</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  } <span class="comment">//while</span></div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> iter_num;</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="avector_8h_html_abbb6bf046e47a8634c15c43a508cacb9"><div class="ttname"><a href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a></div><div class="ttdeci">vector_t vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[])</div><div class="ttdoc">Compute the Euclidean distance between two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00163">vector.c:163</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0107887a6c40980fa639750be8262f01"><div class="ttname"><a href="matrix_8h.html#a0107887a6c40980fa639750be8262f01">matrix_trans_mul_itself</a></div><div class="ttdeci">void matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n])</div><div class="ttdoc">Compute the multiplication of the transpose of a matrix with itself.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00545">matrix.c:545</a></div></div> +<div class="ttc" id="amatrix_8h_html_a53b0a1829b2085414fb66a9e9bd6c7b7"><div class="ttname"><a href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a></div><div class="ttdeci">void matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n])</div><div class="ttdoc">Compute the multiplication of transposed matrix with column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00511">matrix.c:511</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="autils_8h_html_a0ae8ea233ea6c519cd0434f8c5bde5e5"><div class="ttname"><a href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a></div><div class="ttdeci">double utils_max(double a, double b)</div><div class="ttdoc">Returns the greater of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00055">utils.c:55</a></div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="amodified__gauss__newton_8c_html_a7376799043ad2c27fac02371624051bc"><div class="ttname"><a href="modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a></div><div class="ttdeci">uint8_t modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the modified Gauss–Newton algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton.c:32</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="modified__gauss__newton_8c.html">modified_gauss_newton.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/modified__gauss__newton_8h.html b/doc/doxygen/html/modified__gauss__newton_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..062a7d1ab7785d92f3ecbf5d5d63dc93de906bb4 --- /dev/null +++ b/doc/doxygen/html/modified__gauss__newton_8h.html @@ -0,0 +1,232 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: modified_gauss_newton.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('modified__gauss__newton_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">modified_gauss_newton.h File Reference<div class="ingroups"><a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a> » <a class="el" href="group__optimization.html">OPTIMIZATION</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Gauss–Newton algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="modified__gauss__newton_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a7376799043ad2c27fac02371624051bc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n], void(*get_f_error)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:a7376799043ad2c27fac02371624051bc"><td class="mdescLeft"> </td><td class="mdescRight">Implements the modified Gauss–Newton algorithm. <a href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">More...</a><br /></td></tr> +<tr class="separator:a7376799043ad2c27fac02371624051bc"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Gauss–Newton algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="modified__gauss__newton_8h_source.html">modified_gauss_newton.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a7376799043ad2c27fac02371624051bc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a7376799043ad2c27fac02371624051bc">◆ </a></span>modified_gauss_newton()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t modified_gauss_newton </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[f_length], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>fmin</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_iter_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_f_error</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the modified Gauss–Newton algorithm. </p> +<p>The user should provide pointers to the error and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">fmin</td><td>termination tolerance on the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_iter_num</td><td>maximal iteration number of the Gauss–Newton algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_vec[]</td><td>estimated (optimized) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_f_error)</td><td>pointer to the error function. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="modified__gauss__newton_8c_source.html#l00032">32</a> of file <a class="el" href="modified__gauss__newton_8c_source.html">modified_gauss_newton.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00545">matrix_trans_mul_itself()</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="utils_8c_source.html#l00055">utils_max()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>, and <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="dir_c50cc60bf0f01dd8b56a0a31510e7489.html">include</a></li><li class="navelem"><a class="el" href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/modified__gauss__newton_8h.js b/doc/doxygen/html/modified__gauss__newton_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..ade76b3051661a01c892ad5a69b916e902a911f9 --- /dev/null +++ b/doc/doxygen/html/modified__gauss__newton_8h.js @@ -0,0 +1,4 @@ +var modified__gauss__newton_8h = +[ + [ "modified_gauss_newton", "modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/modified__gauss__newton_8h_source.html b/doc/doxygen/html/modified__gauss__newton_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..496c3533250d27d6cb294776bd3fd783670382a3 --- /dev/null +++ b/doc/doxygen/html/modified__gauss__newton_8h_source.html @@ -0,0 +1,140 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: modified_gauss_newton.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('modified__gauss__newton_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">modified_gauss_newton.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="modified__gauss__newton_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef MODIFIED_GAUSS_NEWTON_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define MODIFIED_GAUSS_NEWTON_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> uint8_t <a class="code" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>(uint8_t f_length, uint8_t n,</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[n],</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[f_length],</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin, uint8_t max_iter_num,</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_vec[n],</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">void</span> (*get_f_error)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n])</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  );</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif </span><span class="comment">/* MODIFIED_GAUSS_NEWTON_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amodified__gauss__newton_8h_html_a7376799043ad2c27fac02371624051bc"><div class="ttname"><a href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a></div><div class="ttdeci">uint8_t modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the modified Gauss–Newton algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton.c:32</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_a849c678c2f9059c847e621780a4cff4.html">optimization</a></li><li class="navelem"><a class="el" href="dir_c50cc60bf0f01dd8b56a0a31510e7489.html">include</a></li><li class="navelem"><a class="el" href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/modules.html b/doc/doxygen/html/modules.html new file mode 100644 index 0000000000000000000000000000000000000000..07e9da3c5c3814a8f61d162d9c1cd9cad642d12a --- /dev/null +++ b/doc/doxygen/html/modules.html @@ -0,0 +1,124 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Modules</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('modules.html','');}); +/* @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="headertitle"> +<div class="title">Modules</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here is a list of all modules:</div><div class="directory"> +<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory"> +<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__examples.html" target="_self">EXAMPLES</a></td><td class="desc">Examples of the RcdMathLib </td></tr> +<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><a class="el" href="group__linear__algebra.html" target="_self">LINEAR_ALGEBRA</a></td><td class="desc">Linear algebra operations </td></tr> +<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__basic__operations.html" target="_self">BASIC_OPERATIONS</a></td><td class="desc">Matrix basic operations </td></tr> +<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__matrix__decompositions.html" target="_self">MATRIX_DECOMPOSITIONS</a></td><td class="desc">Matrix decomposition algorithms </td></tr> +<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__pseudo__inverse.html" target="_self">PSEUDO_INVERSE</a></td><td class="desc">Algorithms to calculate the pseudo-inverse of a matrix </td></tr> +<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__solve__linear__equations.html" target="_self">SOLVE_LINEAR_EQUATIONS</a></td><td class="desc">Enables to solve systems of linear equations Ax = b for x </td></tr> +<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__utilities.html" target="_self">UTILITIES</a></td><td class="desc">Utilities for linear algebra </td></tr> +<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">▼</span><a class="el" href="group__localization.html" target="_self">LOCALIZATION</a></td><td class="desc">Localization and optimization algorithms of distance- and magnetic-based localization systems </td></tr> +<tr id="row_2_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_2_0_" class="arrow" onclick="toggleFolder('2_0_')">▼</span><a class="el" href="group__position__algos.html" target="_self">POSITION_ALGOS</a></td><td class="desc">Localization algorithms of distance- and magnetic-based localization systems </td></tr> +<tr id="row_2_0_0_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a class="el" href="group__distance__based.html" target="_self">DISTANCE_BASED</a></td><td class="desc">Localization algorithms of distance-based localization systems </td></tr> +<tr id="row_2_0_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a class="el" href="group__magnetic__based.html" target="_self">MAGNETIC_BASED</a></td><td class="desc">Localization algorithms of magnetic-based localization systems </td></tr> +<tr id="row_2_0_2_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a class="el" href="group__pos__algos__common.html" target="_self">POS_ALGOS_COMMON</a></td><td class="desc">Common algorithms of localization systems </td></tr> +<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__position__optimization.html" target="_self">POSITION_OPTIMIZATION</a></td><td class="desc">Position optimization of distance- and magnetic-based localization systems </td></tr> +<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">▼</span><a class="el" href="group__non__linear__algebra.html" target="_self">NON_LINEAR_ALGEBRA</a></td><td class="desc">Non-linear algebra operations </td></tr> +<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__optimization.html" target="_self">OPTIMIZATION</a></td><td class="desc">Solving problems of regression smoothing and curve fitting </td></tr> +<tr id="row_3_1_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="group__solve__non__linear__equations.html" target="_self">SOLVE_NON_LINEAR_EQUATIONS</a></td><td class="desc">Enables to solve multi-variant nonlinear equation systems </td></tr> +</table> +</div><!-- directory --> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/modules.js b/doc/doxygen/html/modules.js new file mode 100644 index 0000000000000000000000000000000000000000..785a8dd62d49ced2acb32cd5802cdb78bc06520a --- /dev/null +++ b/doc/doxygen/html/modules.js @@ -0,0 +1,7 @@ +var modules = +[ + [ "EXAMPLES", "group__examples.html", "group__examples" ], + [ "LINEAR_ALGEBRA", "group__linear__algebra.html", "group__linear__algebra" ], + [ "LOCALIZATION", "group__localization.html", "group__localization" ], + [ "NON_LINEAR_ALGEBRA", "group__non__linear__algebra.html", "group__non__linear__algebra" ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/moore__penrose__pinv__test_8c.html b/doc/doxygen/html/moore__penrose__pinv__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..aa3e9b2f30356f3edfbde7d7c3c51e04ddfebd5a --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pinv__test_8c.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pinv_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pinv__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">moore_penrose_pinv_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the Moore–Penrose algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="moore__penrose__pinv__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a71ea6881aeb228d371528527d1974014"><td class="memItemLeft" align="right" valign="top"><a id="a71ea6881aeb228d371528527d1974014"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test</a> (void)</td></tr> +<tr class="memdesc:a71ea6881aeb228d371528527d1974014"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Moore–Penrose algorithm. <br /></td></tr> +<tr class="separator:a71ea6881aeb228d371528527d1974014"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the Moore–Penrose algorithm. </p> +<p>Moore–Penrose algorithm examples (see the <a class="el" href="moore__penrose__pseudo__inverse_8h.html">Moore--Penrose</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="moore__penrose__pinv__test_8c_source.html">moore_penrose_pinv_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="moore__penrose__pinv__test_8c.html">moore_penrose_pinv_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/moore__penrose__pinv__test_8c.js b/doc/doxygen/html/moore__penrose__pinv__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..3a3de99cd95b80e4b9bff3547e334f24ba1b9664 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pinv__test_8c.js @@ -0,0 +1,4 @@ +var moore__penrose__pinv__test_8c = +[ + [ "moore_penrose_pinv_test", "moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/moore__penrose__pinv__test_8c_source.html b/doc/doxygen/html/moore__penrose__pinv__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..f338163c6a3e1b7cec0b456bbb82d95766171da7 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pinv__test_8c_source.html @@ -0,0 +1,255 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pinv_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pinv__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">moore_penrose_pinv_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="moore__penrose__pinv__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014"> 30</a></span> <span class="keywordtype">void</span> <a class="code" href="moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  puts(<span class="stringliteral">"\n\n++++++++++++++++++++++++++++++ Moore-Penrose Pseudo-Inverse ++++++++++++++++++++++++++++++\n"</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  uint8_t m, n;</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t i = 0;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="comment">//m<n</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix1_arr[3][4] = { { 1.0000, -3.6000, -1.2000, -2.8400 },</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  { 1.0000, -7.2400, -7.1800, -2.2400 },</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { 1.0000, -12.0600, -1.3400, -3.6600 } };</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  m = 3;</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  n = 4;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix1_arr, ++i);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix2_arr[3][4] = {</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  { 1, -22, 30, -20 },</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  { 1, -26, -42, -10 },</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  { 1, 18, -30, -14 }</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  };</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix2_arr, ++i);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  printf(</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="stringliteral">"########### Test %d: m < n : (2,3) ###########\n"</span>,</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  ++i);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix3_arr[2][3] = {</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  { 3, 1, 1 },</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  { -1, 3, 1 }</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  };</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  m = 2;</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  n = 3;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix3_arr, i);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  printf(</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="stringliteral">"########### Test %d: m > n : (3,2) ###########\n"</span>,</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  ++i);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix4_arr[3][2] = {</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  { 1, 2 },</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  { 2, 2 },</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  { 2, 1 }</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  };</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  m = 3;</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  n = 2;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix4_arr, i);</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  printf(</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="stringliteral">"########### Test %d: m = n : (4,4) ###########\n"</span>,</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  ++i);</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix5_arr[4][4] = {</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  { 6, 0, 0, 6 },</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  { 2, 5, 0, 4 },</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  { 0, 6, 2, 3 },</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  { 0, 1, 5, 5 }</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  };</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  m = 4;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  n = 4;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix5_arr, i);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  printf(</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="stringliteral">"########### Test %d: m < n : (4,7) ###########\n"</span>,</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  ++i);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix6_arr[4][7] = {</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  { 2, 5, 4, 6, 3, 2, 1 },</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  { 1, 2, 4, 6, 0, 0, 6 },</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  { 2, 1, 1, 5, 4, 6, 3 },</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  { 3, 3, 1, 0, 4, 5, 0 }</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  };</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  m = 4;</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  n = 7;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix6_arr, i);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  printf(</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="stringliteral">"########### Test %d: m = n (3, 3) ###########\n"</span>,</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  ++i);</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix7_arr[3][3] = {</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  { 1., 2., 3 },</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  { 4., 5., 6. },</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  { 7., 8., 10. }</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  };</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  m = 3;</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  n = 3;</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix7_arr, i);</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  printf(</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="stringliteral">"########### Test %d: m < n (5, 7) ###########\n"</span>,</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  ++i);</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix8_arr[5][7] = {</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  { 6, 2, 7, 3, 6, 0, 1 },</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  { 7, 1, 6, 3, 6, 4, 0 },</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  { 3, 5, 1, 1, 0, 2, 3 },</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  { 5, 5, 7, 3, 1, 3, 0 },</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  { 6, 5, 4, 1, 2, 7, 1 }</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  };</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  m = 5;</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  n = 7;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix8_arr, i);</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">//m>n</span></div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  printf(</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="stringliteral">"########### Test %d: m > n (7, 5) ###########\n"</span>,</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  ++i);</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix9_arr[7][5] = {</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  { 6.395, 2.897, 7.333, 3.777, 6.543 },</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  { 7.635, 1.235, 6.301, 3.356, 6.777 },</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  { 3.595, 5.901, 1.408, 1.697, 0.539 },</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  { 5.501, 5.562, 7.271, 3.907, 1.651 },</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  { 6.198, 5.069, 4.238, 1.388, 2.855 },</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  { 0.000, 1.999, 4.103, 0.561, 2.908 },</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  { 3.834, 3.172, 0.009, 7.069, 1.075 }</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  };</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  m = 7;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  n = 5;</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix9_arr, i);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  printf(</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="stringliteral">"########### Test %d: m > n (5, 7) ###########\n"</span>,</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  ++i);</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix10_arr[5][7] = {</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  { 6.395, 2.897, 7.333, 3.777, 6.543, 0.000, 1.999 },</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  { 7.635, 1.235, 6.301, 3.356, 6.777, 4.103, 0.561 },</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  { 3.595, 5.901, 1.408, 1.697, 0.539, 2.908, 3.834 },</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  { 5.501, 5.562, 7.271, 3.907, 1.651, 3.172, 0.009 },</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  { 6.198, 5.069, 4.238, 1.388, 2.855, 7.069, 1.075 }</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  };</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  m = 5;</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  n = 7;</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(m, n, matrix10_arr, i);</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_ada5b18da23c06c1a6f2449bbfe97a7c9"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a></div><div class="ttdeci">void moore_penrose_pinv_compute_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i)</div><div class="ttdoc">Compute and print the Moore–Penrose inverse of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00167">moore_penrose_pseudo_inverse.c:167</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amoore__penrose__pinv__test_8c_html_a71ea6881aeb228d371528527d1974014"><div class="ttname"><a href="moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test</a></div><div class="ttdeci">void moore_penrose_pinv_test(void)</div><div class="ttdoc">Examples of the Moore–Penrose algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pinv__test_8c_source.html#l00030">moore_penrose_pinv_test.c:30</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="moore__penrose__pinv__test_8c.html">moore_penrose_pinv_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/moore__penrose__pinv__test_8h.html b/doc/doxygen/html/moore__penrose__pinv__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..3977757bf7e68b3db84226971ada22578ac299b2 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pinv__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pinv_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pinv__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">moore_penrose_pinv_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the Moore–Penrose algorithm. +<a href="#details">More...</a></p> + +<p><a href="moore__penrose__pinv__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a71ea6881aeb228d371528527d1974014"><td class="memItemLeft" align="right" valign="top"><a id="a71ea6881aeb228d371528527d1974014"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test</a> (void)</td></tr> +<tr class="memdesc:a71ea6881aeb228d371528527d1974014"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Moore–Penrose algorithm. <br /></td></tr> +<tr class="separator:a71ea6881aeb228d371528527d1974014"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the Moore–Penrose algorithm. </p> +<p>Moore–Penrose algorithm examples (see the <a class="el" href="moore__penrose__pseudo__inverse_8h.html">Moore--Penrose</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="moore__penrose__pinv__test_8h_source.html">moore_penrose_pinv_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_d1e348b883576f9e259f3b5246ea82c0.html">include</a></li><li class="navelem"><a class="el" href="moore__penrose__pinv__test_8h.html">moore_penrose_pinv_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/moore__penrose__pinv__test_8h.js b/doc/doxygen/html/moore__penrose__pinv__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..fea2ba5d68fc382d6a073e65da5111783f026ffa --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pinv__test_8h.js @@ -0,0 +1,4 @@ +var moore__penrose__pinv__test_8h = +[ + [ "moore_penrose_pinv_test", "moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/moore__penrose__pinv__test_8h_source.html b/doc/doxygen/html/moore__penrose__pinv__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..cf547fbda194a7f1c62192483610ff24fe0d1c83 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pinv__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pinv_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pinv__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">moore_penrose_pinv_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="moore__penrose__pinv__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef MOORE_PENROSE_PINV_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define MOORE_PENROSE_PINV_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif </span><span class="comment">/* MOORE_PENROSE_PINV_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pinv__test_8h_html_a71ea6881aeb228d371528527d1974014"><div class="ttname"><a href="moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014">moore_penrose_pinv_test</a></div><div class="ttdeci">void moore_penrose_pinv_test(void)</div><div class="ttdoc">Examples of the Moore–Penrose algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pinv__test_8c_source.html#l00030">moore_penrose_pinv_test.c:30</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_d1e348b883576f9e259f3b5246ea82c0.html">include</a></li><li class="navelem"><a class="el" href="moore__penrose__pinv__test_8h.html">moore_penrose_pinv_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/moore__penrose__pseudo__inverse_8c.html b/doc/doxygen/html/moore__penrose__pseudo__inverse_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..dc82ae0f54c550906483462a6d97d5675c7ecd10 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pseudo__inverse_8c.html @@ -0,0 +1,256 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pseudo_inverse.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pseudo__inverse_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">moore_penrose_pseudo_inverse.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Moore–Penrose algorithm to compute the pseudo-inverse of a rectangular matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdbool.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="svd_8h_source.html">svd.h</a>"</code><br /> +</div> +<p><a href="moore__penrose__pseudo__inverse_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a0ddd46446f074a0d38c04157686f5fce"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m])</td></tr> +<tr class="memdesc:a0ddd46446f074a0d38c04157686f5fce"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the Moore–Penrose inverse of a rectangular matrix. <a href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce">More...</a><br /></td></tr> +<tr class="separator:a0ddd46446f074a0d38c04157686f5fce"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ada5b18da23c06c1a6f2449bbfe97a7c9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i)</td></tr> +<tr class="memdesc:ada5b18da23c06c1a6f2449bbfe97a7c9"><td class="mdescLeft"> </td><td class="mdescRight">Compute and print the Moore–Penrose inverse of a matrix. <a href="moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9">More...</a><br /></td></tr> +<tr class="separator:ada5b18da23c06c1a6f2449bbfe97a7c9"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Moore–Penrose algorithm to compute the pseudo-inverse of a rectangular matrix. </p> +<p>The computation of the pseudo-inverse is based on the Singular Value Decomposition (SVD).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html">moore_penrose_pseudo_inverse.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a0ddd46446f074a0d38c04157686f5fce"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0ddd46446f074a0d38c04157686f5fce">◆ </a></span>moore_penrose_get_pinv()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t moore_penrose_get_pinv </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pinv_A</em>[n][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the Moore–Penrose inverse of a rectangular matrix. </p> +<p>The computation of the Moore–Penrose inverse is based on the Golub–Kahan–Reinsch SVD algorithm.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">pinv_A[][]</td><td>pointer to the pseudo-inverse matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if the computation of the Moore-Penrose inverse is successful. </dd> +<dd> +-1, if the maximal, allowed column or row number is exceeded. </dd> +<dd> +-2, if the matrix is underdetermined (m<n). </dd> +<dd> +-3, if the rank of the matrix is equal to 0. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">38</a> of file <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html">moore_penrose_pseudo_inverse.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00056">matrix_transpose()</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, and <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="DOP_8c_source.html#l00030">get_PDOP()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00167">moore_penrose_pinv_compute_print()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="solve_8c_source.html#l00035">solve()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, and <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>.</p> + +</div> +</div> +<a id="ada5b18da23c06c1a6f2449bbfe97a7c9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ada5b18da23c06c1a6f2449bbfe97a7c9">◆ </a></span>moore_penrose_pinv_compute_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void moore_penrose_pinv_compute_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute and print the Moore–Penrose inverse of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>label. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00167">167</a> of file <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html">moore_penrose_pseudo_inverse.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00220">matrix_flex_print()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="moore__penrose__pinv__test_8c_source.html#l00030">moore_penrose_pinv_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="moore__penrose__pseudo__inverse_8c.html">moore_penrose_pseudo_inverse.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/moore__penrose__pseudo__inverse_8c.js b/doc/doxygen/html/moore__penrose__pseudo__inverse_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..7388f37831a59789b114b64a391017a1292cb1ac --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pseudo__inverse_8c.js @@ -0,0 +1,5 @@ +var moore__penrose__pseudo__inverse_8c = +[ + [ "moore_penrose_get_pinv", "moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce", null ], + [ "moore_penrose_pinv_compute_print", "moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/moore__penrose__pseudo__inverse_8c_source.html b/doc/doxygen/html/moore__penrose__pseudo__inverse_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..e864c20a241a540a0d0c6378044c1525812ed3d1 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pseudo__inverse_8c_source.html @@ -0,0 +1,274 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pseudo_inverse.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pseudo__inverse_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">moore_penrose_pseudo_inverse.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="moore__penrose__pseudo__inverse_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="svd_8h.html">svd.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">static</span> int32_t min(int32_t a, int32_t b);</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> int8_t moore_penrose_pinv(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  uint8_t u_m, uint8_t u_n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_m][u_n],</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_n][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n],</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  uint8_t s_length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[],</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m]);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce"> 38</a></span> int8_t <a class="code" href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m])</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> udim;</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  int8_t answer = 0;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">if</span> (m < n) { <span class="comment">/*</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> * first compute the pseudo inverse of the transposed of the</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * matrix A, than transpose the computed pseudo inverse.</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  uint8_t trans_m = n;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  uint8_t trans_n = m;</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> trans_A[n][m];</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> trans_A_pinv[trans_n][trans_m];</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(m, n, A, trans_A);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(trans_m, trans_n, &udim);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[udim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>][udim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>];</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[udim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>][trans_n];</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[trans_n][trans_n];</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  uint8_t s_length = <a class="code" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(trans_m, trans_n);</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[s_length];</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  answer = moore_penrose_pinv(trans_m, trans_n, trans_A,</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  udim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, udim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U, S, V,</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  s_length, s, trans_A_pinv);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a>(trans_n, trans_m, trans_A_pinv, pinv_A);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> answer;</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">else</span> { <span class="comment">/* compute the pseudo inverse */</span></div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(m, n, &udim);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[udim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>][udim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>];</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[udim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>][n];</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n];</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  uint8_t s_length = <a class="code" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(m, n);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[s_length];</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  answer = moore_penrose_pinv(m, n, A,</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  udim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, udim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U, S, V,</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  s_length, s, pinv_A);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> answer;</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">static</span> int8_t moore_penrose_pinv(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  uint8_t u_m, uint8_t u_n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_m][u_n],</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_n][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n],</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  uint8_t s_length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[],</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m])</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> u_dim;</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> rec_s[s_length];</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  uint8_t i, j, k, col_min;</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> ((m > <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746">MAX_ROW_NUM</a>) | (n > <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af">MAX_COL_NUM</a>)) {</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  printf(</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="stringliteral">"The maximal, allowed number of the rows and columns is %d\n"</span>,</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746">MAX_ROW_NUM</a>);</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1">MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED</a>;</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">if</span> (m < n) {</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  puts(<span class="stringliteral">"Please, give the transposed matrix"</span>);</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> <a class="code" href="moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4">MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE</a>;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(m, n, &u_dim);</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  s_length = <a class="code" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(m, n);</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a>(m, n, A, u_dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U, S, V, s_length,</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  s);</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (<a class="code" href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a>(m, n, s, s_length) < 1) {</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  puts(<span class="stringliteral">"The minimum rank-value of a matrix is one"</span>);</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e">MOORE_PENROSE_INVALID_RANK_VALUE</a>;</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a>(m, n, s_length, s, rec_s);</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  col_min = min(n, u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>);</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(n, m, pinv_A);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">for</span> (i = 0; i < n; i++) {</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">for</span> (j = 0; j < u_dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>; j++) {</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">for</span> (k = 0; k < col_min; k++) {</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  pinv_A[i][j] += V[i][k] * rec_s[k] * U[j][k];</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb">MOORE_PENROSE_PSEUDO_COMP_SUCCESS</a>;</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">static</span> int32_t min(int32_t a, int32_t b)</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (a < b) {</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div> +<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9"> 167</a></span> <span class="keywordtype">void</span> <a class="code" href="moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i)</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> {</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_mat[n][m];</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(m, n, matrix, pinv_mat);</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  printf(<span class="stringliteral">"pinv%d = "</span>, i);</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, pinv_mat, 11, 7);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a08c63915b31bfeb8d6256981f71b3746"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746">MAX_ROW_NUM</a></div><div class="ttdeci">#define MAX_ROW_NUM</div><div class="ttdoc">The maximal row number allowed.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8h_source.html#l00031">moore_penrose_pseudo_inverse.h:31</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a068a278115f777cb1b92107e5c88c68e"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e">MOORE_PENROSE_INVALID_RANK_VALUE</a></div><div class="ttdeci">#define MOORE_PENROSE_INVALID_RANK_VALUE</div><div class="ttdoc">Invalid rank value of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8h_source.html#l00057">moore_penrose_pseudo_inverse.h:57</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0e06b2cfb86340e88be7b1219bef0ce3"><div class="ttname"><a href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a></div><div class="ttdeci">void matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00046">matrix.c:46</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_a853244a0562d43bfdcdcb704ed707721"><div class="ttname"><a href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t::row_num</a></div><div class="ttdeci">uint8_t row_num</div><div class="ttdoc">the row number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00061">matrix.h:61</a></div></div> +<div class="ttc" id="asvd_8h_html_acdccfce5b7732e6334ca5a521c57e63e"><div class="ttname"><a href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a></div><div class="ttdeci">void svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[])</div><div class="ttdoc">Compute the Singular-Value Decomposition (SVD) of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00119">svd.c:119</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_ad174a66874978917203ae18e88d263af"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af">MAX_COL_NUM</a></div><div class="ttdeci">#define MAX_COL_NUM</div><div class="ttdoc">The maximal column number allowed.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8h_source.html#l00036">moore_penrose_pseudo_inverse.h:36</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad7c9a682a3cc4ca33c030afa8798241a"><div class="ttname"><a href="matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a">matrix_transpose</a></div><div class="ttdeci">void matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m])</div><div class="ttdoc">Computes the transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00056">matrix.c:56</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_aa41b1dd19931edcc50247511f12859e4"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4">MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE</a></div><div class="ttdeci">#define MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE</div><div class="ttdoc">The transposed matrix should be delivered.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8h_source.html#l00052">moore_penrose_pseudo_inverse.h:52</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_ae65d746cc90c1447fe1651614fde76eb"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb">MOORE_PENROSE_PSEUDO_COMP_SUCCESS</a></div><div class="ttdeci">#define MOORE_PENROSE_PSEUDO_COMP_SUCCESS</div><div class="ttdoc">The Moore–Penrose inverse is successfully completed.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8h_source.html#l00042">moore_penrose_pseudo_inverse.h:42</a></div></div> +<div class="ttc" id="amatrix_8h_html_a53879e7c4cfbc96725aef9f8234be7dd"><div class="ttname"><a href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a></div><div class="ttdeci">uint8_t matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length)</div><div class="ttdoc">Compute the rank of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00312">matrix.c:312</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="astructmatrix__dim__t_html"><div class="ttname"><a href="structmatrix__dim__t.html">matrix_dim_t</a></div><div class="ttdoc">A structure to define the row and column number of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00060">matrix.h:60</a></div></div> +<div class="ttc" id="asvd_8h_html"><div class="ttname"><a href="svd_8h.html">svd.h</a></div><div class="ttdoc">Algorithm for the Singular Value Decomposition (SVD).</div></div> +<div class="ttc" id="asvd_8h_html_a91b85e542b1fc44d3500ba52aecb8e0e"><div class="ttname"><a href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a></div><div class="ttdeci">uint8_t svd_get_single_values_num(uint8_t m, uint8_t n)</div><div class="ttdoc">Calculate the number of the singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00114">svd.c:114</a></div></div> +<div class="ttc" id="asvd_8h_html_ae92d53fe415ccfd63a21bb36936294cb"><div class="ttname"><a href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a></div><div class="ttdeci">void svd_get_reciproc_singular_values(uint8_t m, uint8_t n, uint8_t length, matrix_t singl_values_arr[], matrix_t recip_singl_values_arr[])</div><div class="ttdoc">Compute the reciprocal singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00747">svd.c:747</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a4b5bc244bcae0f030336269904158df1"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1">MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED</a></div><div class="ttdeci">#define MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED</div><div class="ttdoc">The maximal row number allowed is exceeded.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8h_source.html#l00047">moore_penrose_pseudo_inverse.h:47</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8c_html_ada5b18da23c06c1a6f2449bbfe97a7c9"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a></div><div class="ttdeci">void moore_penrose_pinv_compute_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i)</div><div class="ttdoc">Compute and print the Moore–Penrose inverse of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00167">moore_penrose_pseudo_inverse.c:167</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8c_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="asvd_8h_html_a8194826f85cc3105c4d8d4f342ca8df8"><div class="ttname"><a href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a></div><div class="ttdeci">void svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim)</div><div class="ttdoc">Calculate the dimension of the matrix U.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00096">svd.c:96</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_aac6b6ff205184047714d5c22019bdbab"><div class="ttname"><a href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t::col_num</a></div><div class="ttdeci">uint8_t col_num</div><div class="ttdoc">the column number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00062">matrix.h:62</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="moore__penrose__pseudo__inverse_8c.html">moore_penrose_pseudo_inverse.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/moore__penrose__pseudo__inverse_8h.html b/doc/doxygen/html/moore__penrose__pseudo__inverse_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..5036f4fbb0a20a3846723c354a02f677f7954316 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pseudo__inverse_8h.html @@ -0,0 +1,280 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pseudo_inverse.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pseudo__inverse_8h.html','');}); +/* @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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">moore_penrose_pseudo_inverse.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__pseudo__inverse.html">PSEUDO_INVERSE</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Moore–Penrose algorithm to compute the pseudo-inverse of a matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="moore__penrose__pseudo__inverse_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a08c63915b31bfeb8d6256981f71b3746"><td class="memItemLeft" align="right" valign="top"><a id="a08c63915b31bfeb8d6256981f71b3746"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746">MAX_ROW_NUM</a>   23</td></tr> +<tr class="memdesc:a08c63915b31bfeb8d6256981f71b3746"><td class="mdescLeft"> </td><td class="mdescRight">The maximal row number allowed. <br /></td></tr> +<tr class="separator:a08c63915b31bfeb8d6256981f71b3746"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad174a66874978917203ae18e88d263af"><td class="memItemLeft" align="right" valign="top"><a id="ad174a66874978917203ae18e88d263af"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af">MAX_COL_NUM</a>   23</td></tr> +<tr class="memdesc:ad174a66874978917203ae18e88d263af"><td class="mdescLeft"> </td><td class="mdescRight">The maximal column number allowed. <br /></td></tr> +<tr class="separator:ad174a66874978917203ae18e88d263af"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae65d746cc90c1447fe1651614fde76eb"><td class="memItemLeft" align="right" valign="top"><a id="ae65d746cc90c1447fe1651614fde76eb"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb">MOORE_PENROSE_PSEUDO_COMP_SUCCESS</a>   1</td></tr> +<tr class="memdesc:ae65d746cc90c1447fe1651614fde76eb"><td class="mdescLeft"> </td><td class="mdescRight">The Moore–Penrose inverse is successfully completed. <br /></td></tr> +<tr class="separator:ae65d746cc90c1447fe1651614fde76eb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4b5bc244bcae0f030336269904158df1"><td class="memItemLeft" align="right" valign="top"><a id="a4b5bc244bcae0f030336269904158df1"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1">MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED</a>   -1</td></tr> +<tr class="memdesc:a4b5bc244bcae0f030336269904158df1"><td class="mdescLeft"> </td><td class="mdescRight">The maximal row number allowed is exceeded. <br /></td></tr> +<tr class="separator:a4b5bc244bcae0f030336269904158df1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa41b1dd19931edcc50247511f12859e4"><td class="memItemLeft" align="right" valign="top"><a id="aa41b1dd19931edcc50247511f12859e4"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4">MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE</a>   -2</td></tr> +<tr class="memdesc:aa41b1dd19931edcc50247511f12859e4"><td class="mdescLeft"> </td><td class="mdescRight">The transposed matrix should be delivered. <br /></td></tr> +<tr class="separator:aa41b1dd19931edcc50247511f12859e4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a068a278115f777cb1b92107e5c88c68e"><td class="memItemLeft" align="right" valign="top"><a id="a068a278115f777cb1b92107e5c88c68e"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e">MOORE_PENROSE_INVALID_RANK_VALUE</a>   -3</td></tr> +<tr class="memdesc:a068a278115f777cb1b92107e5c88c68e"><td class="mdescLeft"> </td><td class="mdescRight">Invalid rank value of a matrix. <br /></td></tr> +<tr class="separator:a068a278115f777cb1b92107e5c88c68e"><td class="memSeparator" colspan="2"> </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:a0ddd46446f074a0d38c04157686f5fce"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m])</td></tr> +<tr class="memdesc:a0ddd46446f074a0d38c04157686f5fce"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the Moore–Penrose inverse of a rectangular matrix. <a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">More...</a><br /></td></tr> +<tr class="separator:a0ddd46446f074a0d38c04157686f5fce"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ada5b18da23c06c1a6f2449bbfe97a7c9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i)</td></tr> +<tr class="memdesc:ada5b18da23c06c1a6f2449bbfe97a7c9"><td class="mdescLeft"> </td><td class="mdescRight">Compute and print the Moore–Penrose inverse of a matrix. <a href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">More...</a><br /></td></tr> +<tr class="separator:ada5b18da23c06c1a6f2449bbfe97a7c9"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Moore–Penrose algorithm to compute the pseudo-inverse of a matrix. </p> +<p>The computation of the pseudo-inverse is based on the Singular Value Decomposition (SVD).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a0ddd46446f074a0d38c04157686f5fce"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0ddd46446f074a0d38c04157686f5fce">◆ </a></span>moore_penrose_get_pinv()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t moore_penrose_get_pinv </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pinv_A</em>[n][m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the Moore–Penrose inverse of a rectangular matrix. </p> +<p>The computation of the Moore–Penrose inverse is based on the Golub–Kahan–Reinsch SVD algorithm.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">pinv_A[][]</td><td>pointer to the pseudo-inverse matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if the computation of the Moore-Penrose inverse is successful. </dd> +<dd> +-1, if the maximal, allowed column or row number is exceeded. </dd> +<dd> +-2, if the matrix is underdetermined (m<n). </dd> +<dd> +-3, if the rank of the matrix is equal to 0. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">38</a> of file <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html">moore_penrose_pseudo_inverse.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00056">matrix_transpose()</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, and <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>, <a class="el" href="DOP_8c_source.html#l00030">get_PDOP()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00167">moore_penrose_pinv_compute_print()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="solve_8c_source.html#l00035">solve()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, and <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>.</p> + +</div> +</div> +<a id="ada5b18da23c06c1a6f2449bbfe97a7c9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ada5b18da23c06c1a6f2449bbfe97a7c9">◆ </a></span>moore_penrose_pinv_compute_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void moore_penrose_pinv_compute_print </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute and print the Moore–Penrose inverse of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>label. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00167">167</a> of file <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html">moore_penrose_pseudo_inverse.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00220">matrix_flex_print()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="moore__penrose__pinv__test_8c_source.html#l00030">moore_penrose_pinv_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html">include</a></li><li class="navelem"><a class="el" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/moore__penrose__pseudo__inverse_8h.js b/doc/doxygen/html/moore__penrose__pseudo__inverse_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..51e5067ba311cb08ad614681f49ad16ff8091858 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pseudo__inverse_8h.js @@ -0,0 +1,11 @@ +var moore__penrose__pseudo__inverse_8h = +[ + [ "MAX_COL_NUM", "moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af", null ], + [ "MAX_ROW_NUM", "moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746", null ], + [ "MOORE_PENROSE_INVALID_RANK_VALUE", "moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e", null ], + [ "MOORE_PENROSE_PSEUDO_COMP_SUCCESS", "moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb", null ], + [ "MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE", "moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4", null ], + [ "MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED", "moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1", null ], + [ "moore_penrose_get_pinv", "moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce", null ], + [ "moore_penrose_pinv_compute_print", "moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/moore__penrose__pseudo__inverse_8h_source.html b/doc/doxygen/html/moore__penrose__pseudo__inverse_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..eb3ece8ad658d9c708697ab165b43fee3a0bfb96 --- /dev/null +++ b/doc/doxygen/html/moore__penrose__pseudo__inverse_8h_source.html @@ -0,0 +1,143 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: moore_penrose_pseudo_inverse.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('moore__penrose__pseudo__inverse_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">moore_penrose_pseudo_inverse.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="moore__penrose__pseudo__inverse_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef MOORE_PENROSE_PSEUDO_INVERSE_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define MOORE_PENROSE_PSEUDO_INVERSE_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746"> 31</a></span> <span class="preprocessor">#define MAX_ROW_NUM 23</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af"> 36</a></span> <span class="preprocessor">#define MAX_COL_NUM 23</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/* define error numbers */</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb"> 42</a></span> <span class="preprocessor">#define MOORE_PENROSE_PSEUDO_COMP_SUCCESS 1</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1"> 47</a></span> <span class="preprocessor">#define MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED -1</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4"> 52</a></span> <span class="preprocessor">#define MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE -2</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e"> 57</a></span> <span class="preprocessor">#define MOORE_PENROSE_INVALID_RANK_VALUE -3</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> int8_t <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m]);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">void</span> <a class="code" href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix[m][n], uint8_t i);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif </span><span class="comment">/* MOORE_PENROSE_PSEUDO_INVERSE_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_ada5b18da23c06c1a6f2449bbfe97a7c9"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9">moore_penrose_pinv_compute_print</a></div><div class="ttdeci">void moore_penrose_pinv_compute_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i)</div><div class="ttdoc">Compute and print the Moore–Penrose inverse of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00167">moore_penrose_pseudo_inverse.c:167</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html">include</a></li><li class="navelem"><a class="el" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c.html b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..75b4e245d19e168213887b7656b1c59160f23c66 --- /dev/null +++ b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c.html @@ -0,0 +1,141 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_algo_own_norm_distr_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__algo__own__norm__distr__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">multipath_algo_own_norm_distr_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Example of the algorithm for the recognition and mitigation of multipath effects. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <float.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include <unistd.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="multipath__dist__detection__mitigation_8h_source.html">multipath_dist_detection_mitigation.h</a>"</code><br /> +<code>#include "<a class="el" href="loc__levenberg__marquardt_8h_source.html">loc_levenberg_marquardt.h</a>"</code><br /> +<code>#include "<a class="el" href="norm__dist__rnd__generator_8h_source.html">norm_dist_rnd_generator.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__jacobian_8h_source.html">dist_based_jacobian.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__fi_8h_source.html">dist_based_fi.h</a>"</code><br /> +<code>#include "<a class="el" href="shell__sort_8h_source.html">shell_sort.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="DOP_8h_source.html">DOP.h</a>"</code><br /> +</div> +<p><a href="multipath__algo__own__norm__distr__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a557f81ea2791d07f6341dc44b0f169dd"><td class="memItemLeft" align="right" valign="top"><a id="a557f81ea2791d07f6341dc44b0f169dd"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test</a> (void)</td></tr> +<tr class="memdesc:a557f81ea2791d07f6341dc44b0f169dd"><td class="mdescLeft"> </td><td class="mdescRight">Example of the algorithm for the recognition and mitigation of multipath effects. <br /></td></tr> +<tr class="separator:a557f81ea2791d07f6341dc44b0f169dd"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Example of the algorithm for the recognition and mitigation of multipath effects. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html">multipath_algo_own_norm_distr_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="multipath__algo__own__norm__distr__test_8c.html">multipath_algo_own_norm_distr_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c.js b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..6e073e58759e9a127381ca0de611253111f611de --- /dev/null +++ b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c.js @@ -0,0 +1,4 @@ +var multipath__algo__own__norm__distr__test_8c = +[ + [ "multipath_algo_own_norm_distr_test", "multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c_source.html b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..cd12c79c4bb41d7a9aecd61571284e6c0dc8c337 --- /dev/null +++ b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8c_source.html @@ -0,0 +1,332 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_algo_own_norm_distr_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__algo__own__norm__distr__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">multipath_algo_own_norm_distr_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="multipath__algo__own__norm__distr__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <unistd.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="dist__based__fi_8h.html">dist_based_fi.h</a>"</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="shell__sort_8h.html">shell_sort.h</a>"</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="DOP_8h.html">DOP.h</a>"</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd"> 38</a></span> <span class="keywordtype">void</span> <a class="code" href="multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">//to get the console output in the debugging mode.</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  setvbuf(stdout, NULL, _IONBF, 0);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  setvbuf(stderr, NULL, _IONBF, 0);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  uint8_t n = 8; <span class="comment">//length of alphabet</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  uint8_t k = 4; <span class="comment">//length of figures</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[][3] = { { 1, 1, 1 },</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  { 20, 1, 1 },</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  { 20, 20, 1 },</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  { 1, 20, 1 },</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  { 1, 1, 20 },</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  { 20, 1, 20 },</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  { 20, 20, 20 },</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  { 1, 20, 20 } };</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_noised_r_vec[k];</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sol_x[3];</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> optimal_start_pos[3];</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp_start_optimal[3];</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  uint8_t optimal_anchor_combi_arr[k];</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  uint8_t PDOP_Threshold = 8;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  uint8_t maxit = 100;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  uint8_t it = 0;</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau = 1e-6;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = 1e-5;</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0 = 0.2;</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1 = 0.8;</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  uint8_t d_max = 19;</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  uint8_t grid_cell_length = 2;</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  uint8_t axis_point_num = d_max / grid_cell_length;</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  uint32_t exact_point[3];</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">//matrix_t multipath[] = {5,3};</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">//matrix_t multipath[] = {4,3}; // for 4 anchors</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[] = { 3 }; <span class="comment">// for 4 anchors</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  uint8_t anchor_num = n;</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  uint32_t room_point_num;</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> noised_r_vec[anchor_num];</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  uint32_t counter = 0;</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> mean_lvm_call_num = 0;</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sigma = 0.1;</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  int32_t initial_seed_val = 3;</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  int32_t seed = 0;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> /************************************************/</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  puts(<span class="stringliteral">"################ START ################"</span>);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// initialize seed's value</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  seed = initial_seed_val;</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">//Sampling the room</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">for</span> (uint32_t z = 0; z <= axis_point_num; z++) {</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  exact_point[2] = ref_matrix[0][2] + grid_cell_length * z;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">for</span> (uint32_t y = 0; y <= axis_point_num; y++) {</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  exact_point[1] = ref_matrix[0][1]</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  + grid_cell_length * y;</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">for</span> (uint32_t x = 0; x <= axis_point_num; x++) {</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  exact_point[0] = ref_matrix[0][0]</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  + grid_cell_length * x;</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (!<a class="code" href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a>(anchor_num, ref_matrix,</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  exact_point)) {</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  printf(<span class="stringliteral">"seed = %ld\n"</span>, (<span class="keywordtype">long</span>) seed);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a>(n, ref_matrix, exact_point,</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  sigma, 2, multipath,</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  seed, noised_r_vec);</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  seed = 2 * initial_seed_val + 1;</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  initial_seed_val++;</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">recog_mitigate_multipath</a>(k, n,</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  ref_matrix,</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  noised_r_vec,</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  optimal_anchor_combi_arr,</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  optimal_start_pos);</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// PDOP & Levenberg</span></div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_ref_matrix_comb_matrix[k][3];</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a>(n,</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  ref_matrix, k,</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  optimal_anchor_combi_arr,</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  opt_ref_matrix_comb_matrix);</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> PDOP =</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a>(k,</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  opt_ref_matrix_comb_matrix,</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  optimal_start_pos);</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a>(k,</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  noised_r_vec,</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  optimal_anchor_combi_arr,</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  opt_noised_r_vec);</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (PDOP > PDOP_Threshold) {</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="vector_8h.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a>(</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  noised_r_vec, k,</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  optimal_anchor_combi_arr,</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  opt_noised_r_vec);</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3,</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  optimal_start_pos,</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  tmp_start_optimal);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  it =</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a>(</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  3,</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  opt_ref_matrix_comb_matrix,</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  optimal_start_pos,</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  opt_noised_r_vec,</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  eps,</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  tau,</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  beta0,</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  beta1,</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  maxit,</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  sol_x,</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a>,</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a>,</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a>,</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a>);</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  mean_lvm_call_num++;</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  it = 0;</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3,</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  optimal_start_pos,</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  sol_x);</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  puts(</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="stringliteral">"------------------------------------------------------------"</span>);</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  printf(<span class="stringliteral">"PDOP = %f | it = %d\n"</span>, PDOP,</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  it);</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  printf(<span class="stringliteral">"r_noised_vec = "</span>);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">//matrix_print_array(r_noised_vec, n, 7);</span></div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, noised_r_vec, 5,</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  7);</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  printf(</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="stringliteral">"anchors_optimal = {%u, %u, %u, %u}\n"</span>,</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  optimal_anchor_combi_arr[0],</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  optimal_anchor_combi_arr[1],</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  optimal_anchor_combi_arr[2],</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  optimal_anchor_combi_arr[3]);</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  printf(</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="stringliteral">"exact point = {%lu, %lu, %lu}\n"</span>,</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)exact_point[0],</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)exact_point[1],</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)exact_point[2]);</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span> (it != 0) {</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  printf(</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="stringliteral">"start_optimal = {%f, %f, %f}\n"</span>,</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  tmp_start_optimal[0],</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  tmp_start_optimal[1],</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  tmp_start_optimal[2]);</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  }</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  printf(<span class="stringliteral">"x_sol = {%.7f, %.7f, %.7f}\n"</span>,</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  sol_x[0],</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  sol_x[1],</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  sol_x[2]);</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  counter++;</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }<span class="comment">//x</span></div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }<span class="comment">//if</span></div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }<span class="comment">//y</span></div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }<span class="comment">//Z</span></div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  room_point_num = counter;</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  puts(</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="stringliteral">"----------------------------- End Simulation -------------------------------"</span>);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  printf(<span class="stringliteral">"Counter = %lu\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) counter);</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  printf(<span class="stringliteral">"room point num = %lu\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) room_point_num);</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  printf(<span class="stringliteral">"anchors num = %u\n"</span>, n);</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  printf(<span class="stringliteral">"LVM call number = %f\n"</span>, mean_lvm_call_num);</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  printf(<span class="stringliteral">"mean LVM call number = %f\n"</span>,</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  mean_lvm_call_num / room_point_num);</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a944bb181ffe0b3abc69e345ae88fbfc1"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a></div><div class="ttdeci">bool is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3])</div><div class="ttdoc">Determine if a point is an anchor or not.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00065">multipath_dist_detection_mitigation.c:65</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a540837de8e8a9d4e5dbaac1814b19b5e"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a></div><div class="ttdeci">void get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k])</div><div class="ttdoc">Compute noised distances corresponding to the optimal partial matrix.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00123">multipath_dist_detection_mitigation.c:123</a></div></div> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html_a09fdd720ff5c5658e160657153ee615f"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a></div><div class="ttdeci">uint8_t loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt.c:126</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a2840a12d90b5b26b59d50f449f754fbd"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">recog_mitigate_multipath</a></div><div class="ttdeci">void recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_Matrix[m][3], matrix_t r_noised_vec[m], uint8_t anchors_optimal[k], matrix_t start_optimal[3])</div><div class="ttdoc">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00133">multipath_dist_detection_mitigation.c:133</a></div></div> +<div class="ttc" id="adist__based__jacobian_8h_html"><div class="ttname"><a href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a></div><div class="ttdoc">Jacobian function of distance-based localization systems.</div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a></div><div class="ttdoc">Implement the Levenberg–Marquardt (LVM) algorithm for position optimization.</div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a04231d3d216ce6814eb3e183f7a2e408"><div class="ttname"><a href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a></div><div class="ttdeci">void dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])</div><div class="ttdoc">Computes of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00132">dist_based_jacobian.c:132</a></div></div> +<div class="ttc" id="adist__based__fi_8c_html_a2a1d8806de5f7f5131be1fbd706c17fa"><div class="ttname"><a href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a></div><div class="ttdeci">void dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[])</div><div class="ttdoc">Defines the error function of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__fi_8c_source.html#l00047">dist_based_fi.c:47</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a></div><div class="ttdoc">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.</div></div> +<div class="ttc" id="aDOP_8c_html_a8b878ff6d73e8da6fbc3ae40f01b1ce4"><div class="ttname"><a href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a></div><div class="ttdeci">matrix_t get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m])</div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</div><div class="ttdef"><b>Definition:</b> <a href="DOP_8c_source.html#l00030">DOP.c:30</a></div></div> +<div class="ttc" id="amultipath__algo__own__norm__distr__test_8c_html_a557f81ea2791d07f6341dc44b0f169dd"><div class="ttname"><a href="multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test</a></div><div class="ttdeci">void multipath_algo_own_norm_distr_test(void)</div><div class="ttdoc">Example of the algorithm for the recognition and mitigation of multipath effects.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test.c:38</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a6530e8d8955c511d3452748fec987a39"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a></div><div class="ttdeci">void get_optimal_partial_ref_matrix(uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3])</div><div class="ttdoc">Compute the optimal partial matrix including reference points.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00108">multipath_dist_detection_mitigation.c:108</a></div></div> +<div class="ttc" id="avector_8h_html_a1348a041e323e7b333482242b51a7674"><div class="ttname"><a href="vector_8h.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a></div><div class="ttdeci">void vector_get_elements(vector_t src_vec[], uint8_t k, uint8_t index_vec[], vector_t dst_vec[])</div><div class="ttdoc">Get the elements of the vector by an index vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00235">vector.c:235</a></div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a59b1a3323c2896ff28f71135af0204a2"><div class="ttname"><a href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a></div><div class="ttdeci">void dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian.c:56</a></div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="adist__based__fi_8h_html"><div class="ttname"><a href="dist__based__fi_8h.html">dist_based_fi.h</a></div><div class="ttdoc">Error function of distance-based localization systems.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a></div><div class="ttdoc">Generating normally distributed random numbers.</div></div> +<div class="ttc" id="ashell__sort_8h_html"><div class="ttname"><a href="shell__sort_8h.html">shell_sort.h</a></div><div class="ttdoc">Implement the Shell sort algorithm.</div></div> +<div class="ttc" id="aDOP_8h_html"><div class="ttname"><a href="DOP_8h.html">DOP.h</a></div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a769d35615d26a67b97bfd40b5d26a95c"><div class="ttname"><a href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a></div><div class="ttdeci">void dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian.c:28</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a2776d1c18727f8feb5f0a83a6963e957"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a></div><div class="ttdeci">void sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[])</div><div class="ttdoc">Simulate an UWB-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00078">multipath_dist_detection_mitigation.c:78</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="multipath__algo__own__norm__distr__test_8c.html">multipath_algo_own_norm_distr_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h.html b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..e586c76b1d5130ca9081c1a37ddff4872a29f07b --- /dev/null +++ b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h.html @@ -0,0 +1,129 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_algo_own_norm_distr_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__algo__own__norm__distr__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">multipath_algo_own_norm_distr_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Example of the algorithm for the recognition and mitigation of multipath effects. +<a href="#details">More...</a></p> + +<p><a href="multipath__algo__own__norm__distr__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a557f81ea2791d07f6341dc44b0f169dd"><td class="memItemLeft" align="right" valign="top"><a id="a557f81ea2791d07f6341dc44b0f169dd"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test</a> (void)</td></tr> +<tr class="memdesc:a557f81ea2791d07f6341dc44b0f169dd"><td class="mdescLeft"> </td><td class="mdescRight">Example of the algorithm for the recognition and mitigation of multipath effects. <br /></td></tr> +<tr class="separator:a557f81ea2791d07f6341dc44b0f169dd"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Example of the algorithm for the recognition and mitigation of multipath effects. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="multipath__algo__own__norm__distr__test_8h_source.html">multipath_algo_own_norm_distr_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_ca5718251f4b73cea33729edc1e819e5.html">include</a></li><li class="navelem"><a class="el" href="multipath__algo__own__norm__distr__test_8h.html">multipath_algo_own_norm_distr_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h.js b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..6521375ba40f8590db5ced2bcc2c584d68f3fb80 --- /dev/null +++ b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h.js @@ -0,0 +1,4 @@ +var multipath__algo__own__norm__distr__test_8h = +[ + [ "multipath_algo_own_norm_distr_test", "multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h_source.html b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..bfb0d2221bd4a68bdebab2d32dd30786dc65254c --- /dev/null +++ b/doc/doxygen/html/multipath__algo__own__norm__distr__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_algo_own_norm_distr_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__algo__own__norm__distr__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">multipath_algo_own_norm_distr_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="multipath__algo__own__norm__distr__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef MULTIPATH_ALGO_OWN_NORM_DISTR_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define MULTIPATH_ALGO_OWN_NORM_DISTR_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif </span><span class="comment">/* MULTIPATH_ALGO_OWN_NORM_DISTR_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amultipath__algo__own__norm__distr__test_8h_html_a557f81ea2791d07f6341dc44b0f169dd"><div class="ttname"><a href="multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd">multipath_algo_own_norm_distr_test</a></div><div class="ttdeci">void multipath_algo_own_norm_distr_test(void)</div><div class="ttdoc">Example of the algorithm for the recognition and mitigation of multipath effects.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test.c:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_ca5718251f4b73cea33729edc1e819e5.html">include</a></li><li class="navelem"><a class="el" href="multipath__algo__own__norm__distr__test_8h.html">multipath_algo_own_norm_distr_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__dist__detection__mitigation_8c.html b/doc/doxygen/html/multipath__dist__detection__mitigation_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..36dcc853d712328edbc9449fb2d659b4e9d32078 --- /dev/null +++ b/doc/doxygen/html/multipath__dist__detection__mitigation_8c.html @@ -0,0 +1,583 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_dist_detection_mitigation.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__dist__detection__mitigation_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">multipath_dist_detection_mitigation.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <stdbool.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include <float.h></code><br /> +<code>#include <stdlib.h></code><br /> +<code>#include <stdint.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="combinatorics_8h_source.html">combinatorics.h</a>"</code><br /> +<code>#include "<a class="el" href="multipath__dist__detection__mitigation_8h_source.html">multipath_dist_detection_mitigation.h</a>"</code><br /> +<code>#include "<a class="el" href="norm__dist__rnd__generator_8h_source.html">norm_dist_rnd_generator.h</a>"</code><br /> +<code>#include "<a class="el" href="shell__sort_8h_source.html">shell_sort.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__position_8h_source.html">dist_based_position.h</a>"</code><br /> +<code>#include "<a class="el" href="DOP_8h_source.html">DOP.h</a>"</code><br /> +<code>#include "<a class="el" href="trilateration_8h_source.html">trilateration.h</a>"</code><br /> +</div> +<p><a href="multipath__dist__detection__mitigation_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a38019260396a33562d5a1912c691c26a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a">get_exact_distance_to_anchor</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[], uint32_t exact_point[])</td></tr> +<tr class="memdesc:a38019260396a33562d5a1912c691c26a"><td class="mdescLeft"> </td><td class="mdescRight">Computes the exact distance between a mobile station and a reference station. <a href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a">More...</a><br /></td></tr> +<tr class="separator:a38019260396a33562d5a1912c691c26a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5609107d45b6abfa6614fc79c56273c8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8">is_member</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vector, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n])</td></tr> +<tr class="memdesc:a5609107d45b6abfa6614fc79c56273c8"><td class="mdescLeft"> </td><td class="mdescRight">Determine if a candidate is a multipath or not. <a href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8">More...</a><br /></td></tr> +<tr class="separator:a5609107d45b6abfa6614fc79c56273c8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a944bb181ffe0b3abc69e345ae88fbfc1"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matr[m][3], uint32_t point[3])</td></tr> +<tr class="memdesc:a944bb181ffe0b3abc69e345ae88fbfc1"><td class="mdescLeft"> </td><td class="mdescRight">Determine if a point is an anchor or not. <a href="multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1">More...</a><br /></td></tr> +<tr class="separator:a944bb181ffe0b3abc69e345ae88fbfc1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2776d1c18727f8feb5f0a83a6963e957"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[m][3], uint32_t exact_point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sigma, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n], int seed, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[])</td></tr> +<tr class="memdesc:a2776d1c18727f8feb5f0a83a6963e957"><td class="mdescLeft"> </td><td class="mdescRight">Simulate an UWB-based localization system. <a href="multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957">More...</a><br /></td></tr> +<tr class="separator:a2776d1c18727f8feb5f0a83a6963e957"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6530e8d8955c511d3452748fec987a39"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a> (uint8_t anchors_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_partial_ref_matrix[k][3])</td></tr> +<tr class="memdesc:a6530e8d8955c511d3452748fec987a39"><td class="mdescLeft"> </td><td class="mdescRight">Compute the optimal partial matrix including reference points. <a href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39">More...</a><br /></td></tr> +<tr class="separator:a6530e8d8955c511d3452748fec987a39"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a540837de8e8a9d4e5dbaac1814b19b5e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a> (uint8_t k, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[], uint8_t optimal_anchors_comb[k], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_sub_r_noised_vec[k])</td></tr> +<tr class="memdesc:a540837de8e8a9d4e5dbaac1814b19b5e"><td class="mdescLeft"> </td><td class="mdescRight">Compute noised distances corresponding to the optimal partial matrix. <a href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e">More...</a><br /></td></tr> +<tr class="separator:a540837de8e8a9d4e5dbaac1814b19b5e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8cce1ff9263404ca1e58d67910f38d47"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47">recog_mitigate_multipath</a> (uint8_t k, uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> noised_r_vec[m], uint8_t anchors_optimal_combi[k], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_optimal_pos[3])</td></tr> +<tr class="memdesc:a8cce1ff9263404ca1e58d67910f38d47"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. <a href="multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47">More...</a><br /></td></tr> +<tr class="separator:a8cce1ff9263404ca1e58d67910f38d47"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a38019260396a33562d5a1912c691c26a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a38019260396a33562d5a1912c691c26a">◆ </a></span>get_exact_distance_to_anchor()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> get_exact_distance_to_anchor </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>exact_point</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the exact distance between a mobile station and a reference station. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point</td><td>three-dimensional coordinates of a reference station. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">exact_point</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the exact distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00042">42</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +<a id="a540837de8e8a9d4e5dbaac1814b19b5e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a540837de8e8a9d4e5dbaac1814b19b5e">◆ </a></span>get_optimal_partial_r_noised_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_optimal_partial_r_noised_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>r_noised_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>optimal_anchors_comb</em>[k], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>opt_sub_r_noised_vec</em>[k] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute noised distances corresponding to the optimal partial matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>k anchors (possible sub-experiments). </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">r_noised_vec[]</td><td>include noised distances. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">optimal_anchors_comb[]</td><td>optimal k-anchor combination. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">opt_sub_r_noised_vec[][]</td><td>noised distances corresponding to the optimal k-anchors. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00123">123</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a6530e8d8955c511d3452748fec987a39"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6530e8d8955c511d3452748fec987a39">◆ </a></span>get_optimal_partial_ref_matrix()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_optimal_partial_ref_matrix </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchors_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_matrix</em>[anchors_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>optimal_anchors_comb</em>[k], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>opt_partial_ref_matrix</em>[k][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the optimal partial matrix including reference points. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchors_num</td><td>number of the reference points. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>k anchors (possible sub-experiments). </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">optimal_anchors_comb[]</td><td>optimal anchor combination. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">opt_partial_ref_matrix[][]</td><td>optimal partial matrix of anchors. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00108">108</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a944bb181ffe0b3abc69e345ae88fbfc1"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a944bb181ffe0b3abc69e345ae88fbfc1">◆ </a></span>is_anchor()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool is_anchor </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_matr</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>point</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine if a point is an anchor or not. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference points. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_matr[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of a point.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if a point is an anchor. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00065">65</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +<a id="a5609107d45b6abfa6614fc79c56273c8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5609107d45b6abfa6614fc79c56273c8">◆ </a></span>is_member()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool is_member </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vector</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>multipath</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine if a candidate is a multipath or not. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">vector</td><td>a candidate. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the multipath-vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">multipath[]</td><td>pointer to the multipath-vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if a candidate is a multipath. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00055">55</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +<a id="a8cce1ff9263404ca1e58d67910f38d47"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8cce1ff9263404ca1e58d67910f38d47">◆ </a></span>recog_mitigate_multipath()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void recog_mitigate_multipath </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_Matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>r_noised_vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchors_optimal</em>[k], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>start_optimal</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>k anchors (possible sub-experiments). </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of anchors. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_Matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">r_noised_vec[]</td><td>include noised distances. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchors_optimal[]</td><td>optimal k-anchor combination. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">start_optimal[]</td><td>optimal position. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">133</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">References <a class="el" href="combinatorics_8h_source.html#l00031">COMBI_ERROR</a>, <a class="el" href="combinatorics_8h_source.html#l00041">COMBI_SUCCESS</a>, <a class="el" href="combinatorics_8c_source.html#l00048">combinatorics_get_next_without_rep()</a>, <a class="el" href="combinatorics_8c_source.html#l00029">combinatorics_init()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00123">get_optimal_partial_r_noised_vec()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00108">get_optimal_partial_ref_matrix()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="shell__sort_8c_source.html#l00049">shell_sort()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00214">vector_get_index_vector()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00124">vector_square()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +<a id="a2776d1c18727f8feb5f0a83a6963e957"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2776d1c18727f8feb5f0a83a6963e957">◆ </a></span>sim_UWB_dist()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void sim_UWB_dist </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>exact_point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>sigma</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>multipath</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>seed</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>r_noised_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Simulate an UWB-based localization system. </p> +<p>The UWB system is simulated by noising the distances from a mobile to the reference station.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference points. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">exact_point[]</td><td>three-dimensional coordinates of a true position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">sigma</td><td><img class="formulaInl" alt="$ \sigma_{M,W} $" src="form_60.png"/> parameter. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>number of the multipath-affected distances. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">multipath[]</td><td>multipath vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">seed</td><td>seed value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">r_noised_vec[]</td><td>noised distances. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">78</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">References <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00042">get_exact_distance_to_anchor()</a>, <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00040">get_norm_distr_rand_num()</a>, <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00080">get_rand_num()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00055">is_member()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="multipath__dist__detection__mitigation_8c.html">multipath_dist_detection_mitigation.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__dist__detection__mitigation_8c.js b/doc/doxygen/html/multipath__dist__detection__mitigation_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..8ad711d75396159e0e8bfb2eb28bc497c4a82254 --- /dev/null +++ b/doc/doxygen/html/multipath__dist__detection__mitigation_8c.js @@ -0,0 +1,10 @@ +var multipath__dist__detection__mitigation_8c = +[ + [ "get_exact_distance_to_anchor", "multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a", null ], + [ "get_optimal_partial_r_noised_vec", "multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e", null ], + [ "get_optimal_partial_ref_matrix", "multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39", null ], + [ "is_anchor", "multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1", null ], + [ "is_member", "multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8", null ], + [ "recog_mitigate_multipath", "multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47", null ], + [ "sim_UWB_dist", "multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/multipath__dist__detection__mitigation_8c_source.html b/doc/doxygen/html/multipath__dist__detection__mitigation_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c20f444c4a5c345ba0221858017ee20fc561ffa9 --- /dev/null +++ b/doc/doxygen/html/multipath__dist__detection__mitigation_8c_source.html @@ -0,0 +1,326 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_dist_detection_mitigation.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__dist__detection__mitigation_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">multipath_dist_detection_mitigation.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="multipath__dist__detection__mitigation_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdlib.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="combinatorics_8h.html">combinatorics.h</a>"</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a>"</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a>"</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="shell__sort_8h.html">shell_sort.h</a>"</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="dist__based__position_8h.html">dist_based_position.h</a>"</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="DOP_8h.html">DOP.h</a>"</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="trilateration_8h.html">trilateration.h</a>"</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a"> 42</a></span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a">get_exact_distance_to_anchor</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[],</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  uint32_t exact_point[])</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d = sqrt(</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  pow((exact_point[0] - ref_point[0]), 2)</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  + pow((exact_point[1] - ref_point[1]),</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  2)</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  + pow((exact_point[2] - ref_point[2]),</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  2));</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">return</span> d;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8"> 55</a></span> <span class="keywordtype">bool</span> <a class="code" href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8">is_member</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vector, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n])</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (vector == multipath[i]) {</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1"> 65</a></span> <span class="keywordtype">bool</span> <a class="code" href="multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matr[m][3], uint32_t point[3])</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < m; i++) {</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span> (point[0] == ref_matr[i][0] && point[1] == ref_matr[i][1]</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  && point[2] == ref_matr[i][2]) {</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957"> 78</a></span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[m][3], uint32_t exact_point[],</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sigma, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n], <span class="keywordtype">int</span> seed,</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[])</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> M_UW = 0.88;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sigma_UW = 1.522;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R = 0.0;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// set seed</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">get_rand_num</a>(seed);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d = <a class="code" href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a">get_exact_distance_to_anchor</a>(ref_matrix[i],</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  exact_point);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (<a class="code" href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8">is_member</a>(i + 1, n, multipath) == <span class="keyword">true</span>) {</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  R = log(1 + d)</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  * <a class="code" href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">get_norm_distr_rand_num</a>(M_UW,</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  sigma_UW);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  R = sigma * <a class="code" href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">get_norm_distr_rand_num</a>(0, 1);</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  r_noised_vec[i] = R + d;</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div> +<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39"> 108</a></span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a>(uint8_t anchors_num,</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[anchors_num][3],</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  uint8_t k,</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  uint8_t optimal_anchors_comb[k],</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_partial_ref_matrix[k][3])</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < k; i++) {</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j < 3; j++) {</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  opt_partial_ref_matrix[i][j] =</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  ref_matrix[optimal_anchors_comb[i]][j];</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> }</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div> +<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e"> 123</a></span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a>(uint8_t k, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[],</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  uint8_t optimal_anchors_comb[k],</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_sub_r_noised_vec[k])</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < k; i++) {</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  opt_sub_r_noised_vec[i] = r_noised_vec[optimal_anchors_comb[i]];</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div> +<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47"> 133</a></span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47">recog_mitigate_multipath</a>(uint8_t k, uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[m][3],</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> noised_r_vec[m],</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  uint8_t anchors_optimal_combi[k],</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_optimal_pos[3])</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> {</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  int8_t status_num;</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  uint8_t combi_arr[k];</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_vec[3];</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> part_opt_ref_matrix[k][3];</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_part_r_noised_vec[k];</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  uint8_t index_vector[k];</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> qres_optimal = FLT_MAX;</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pos_solution_x1[4];</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// Initialize the combination generator</span></div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  status_num = <a class="code" href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a>(m, k, combi_arr);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span> (status_num == <a class="code" href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">COMBI_ERROR</a>) {</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  fprintf(stderr,</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="stringliteral">"Error: couldn't initialize the combination generator\n"</span>);</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span>;</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">while</span> (status_num == <a class="code" href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a>) {</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a>(m, ref_matrix, k, combi_arr,</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  part_opt_ref_matrix);</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a>(k, noised_r_vec, combi_arr,</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  opt_part_r_noised_vec);</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// Trilateration</span></div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a>(k, part_opt_ref_matrix, opt_part_r_noised_vec,</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  pos_solution_x1,</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  NULL);</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> residual_vec[m];</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> residual_vec_copy[m];</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(3, pos_solution_x1 + 1, ref_matrix[i],</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  r_vec);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  residual_vec[i] = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(3, r_vec)</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  - noised_r_vec[i];</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a>(m, residual_vec, residual_vec);</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(m, residual_vec, residual_vec_copy);</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a>(residual_vec_copy, m);</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="comment">// find index</span></div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a>(k, m, residual_vec, residual_vec_copy,</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  index_vector);</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  </div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> res_vec_copy_sum = 0;</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < k; i++) {</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  res_vec_copy_sum = res_vec_copy_sum</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  + residual_vec_copy[i];</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">if</span> (res_vec_copy_sum <= qres_optimal) {</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  qres_optimal = res_vec_copy_sum;</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  memcpy(anchors_optimal_combi, index_vector,</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  k * <span class="keyword">sizeof</span>(uint8_t));</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(3, pos_solution_x1 + 1, start_optimal_pos);</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  status_num = <a class="code" href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a>(m, k,</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  combi_arr);</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  } <span class="comment">//while</span></div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="atrilateration_8h_html"><div class="ttname"><a href="trilateration_8h.html">trilateration.h</a></div><div class="ttdoc">Implement the trilateration algorithm.</div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8c_html_a5609107d45b6abfa6614fc79c56273c8"><div class="ttname"><a href="multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8">is_member</a></div><div class="ttdeci">bool is_member(matrix_t vector, uint8_t n, matrix_t multipath[n])</div><div class="ttdoc">Determine if a candidate is a multipath or not.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00055">multipath_dist_detection_mitigation.c:55</a></div></div> +<div class="ttc" id="ashell__sort_8h_html_a569649d96b2e8f453793ea166d3e96a6"><div class="ttname"><a href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a></div><div class="ttdeci">void shell_sort(vector_t *arr, uint8_t length)</div><div class="ttdoc">Sort a data set of type utils_t by using the Shell sort algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="shell__sort_8c_source.html#l00049">shell_sort.c:49</a></div></div> +<div class="ttc" id="avector_8h_html_afc68fab0b07c974faf5a457d20b01c58"><div class="ttname"><a href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a></div><div class="ttdeci">void vector_square(uint8_t n, vector_t vec[n], vector_t square_vec[n])</div><div class="ttdoc">Compute the square of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00124">vector.c:124</a></div></div> +<div class="ttc" id="adist__based__position_8h_html"><div class="ttname"><a href="dist__based__position_8h.html">dist_based_position.h</a></div><div class="ttdoc">Functions of distance-based localization systems.</div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html_a58c36346c01fb7f1a336a610b177b903"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">get_rand_num</a></div><div class="ttdeci">double get_rand_num(int seed)</div><div class="ttdoc">Generate uniform (0.0, 1.0) random numbers by using the Linear Congruential Generator (LGC) algorithm...</div><div class="ttdef"><b>Definition:</b> <a href="norm__dist__rnd__generator_8c_source.html#l00080">norm_dist_rnd_generator.c:80</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a></div><div class="ttdoc">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.</div></div> +<div class="ttc" id="avector_8h_html_a45dfc0cdad1f1a542df4029b498766ba"><div class="ttname"><a href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a></div><div class="ttdeci">void vector_get_index_vector(uint8_t k, uint8_t n, vector_t unsorted_vector[n], vector_t sorted_vector[n], uint8_t index_vector[n])</div><div class="ttdoc">Determine the index of the vector elements before sorting.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00214">vector.c:214</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8c_html_a8cce1ff9263404ca1e58d67910f38d47"><div class="ttname"><a href="multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47">recog_mitigate_multipath</a></div><div class="ttdeci">void recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_matrix[m][3], matrix_t noised_r_vec[m], uint8_t anchors_optimal_combi[k], matrix_t start_optimal_pos[3])</div><div class="ttdoc">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00133">multipath_dist_detection_mitigation.c:133</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8c_html_a38019260396a33562d5a1912c691c26a"><div class="ttname"><a href="multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a">get_exact_distance_to_anchor</a></div><div class="ttdeci">matrix_t get_exact_distance_to_anchor(matrix_t ref_point[], uint32_t exact_point[])</div><div class="ttdoc">Computes the exact distance between a mobile station and a reference station.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00042">multipath_dist_detection_mitigation.c:42</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8c_html_a2776d1c18727f8feb5f0a83a6963e957"><div class="ttname"><a href="multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a></div><div class="ttdeci">void sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[])</div><div class="ttdoc">Simulate an UWB-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00078">multipath_dist_detection_mitigation.c:78</a></div></div> +<div class="ttc" id="acombinatorics_8h_html_a1249f9e7a382225c0889b8ef630d6509"><div class="ttname"><a href="combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509">COMBI_ERROR</a></div><div class="ttdeci">#define COMBI_ERROR</div><div class="ttdoc">Case of an error.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8h_source.html#l00031">combinatorics.h:31</a></div></div> +<div class="ttc" id="acombinatorics_8h_html"><div class="ttname"><a href="combinatorics_8h.html">combinatorics.h</a></div><div class="ttdoc">Calculate possible without repetition in ascending order.</div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html_a35eb81d6885b8d16d225b230f88a919a"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">get_norm_distr_rand_num</a></div><div class="ttdeci">double get_norm_distr_rand_num(double mean, double std_dev)</div><div class="ttdoc">Get a normally distributed random number by applying the Box–Muller method.</div><div class="ttdef"><b>Definition:</b> <a href="norm__dist__rnd__generator_8c_source.html#l00040">norm_dist_rnd_generator.c:40</a></div></div> +<div class="ttc" id="atrilateration_8h_html_adf749802a4d86c2a97a6bac50d17bfea"><div class="ttname"><a href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a></div><div class="ttdeci">void trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00069">trilateration.c:69</a></div></div> +<div class="ttc" id="acombinatorics_8h_html_af92c32bbf9a391a055cb472b6f43c498"><div class="ttname"><a href="combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498">COMBI_SUCCESS</a></div><div class="ttdeci">#define COMBI_SUCCESS</div><div class="ttdoc">Case of successfully calculated combination set.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8h_source.html#l00041">combinatorics.h:41</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8c_html_a944bb181ffe0b3abc69e345ae88fbfc1"><div class="ttname"><a href="multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a></div><div class="ttdeci">bool is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3])</div><div class="ttdoc">Determine if a point is an anchor or not.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00065">multipath_dist_detection_mitigation.c:65</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8c_html_a540837de8e8a9d4e5dbaac1814b19b5e"><div class="ttname"><a href="multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a></div><div class="ttdeci">void get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k])</div><div class="ttdoc">Compute noised distances corresponding to the optimal partial matrix.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00123">multipath_dist_detection_mitigation.c:123</a></div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a></div><div class="ttdoc">Generating normally distributed random numbers.</div></div> +<div class="ttc" id="ashell__sort_8h_html"><div class="ttname"><a href="shell__sort_8h.html">shell_sort.h</a></div><div class="ttdoc">Implement the Shell sort algorithm.</div></div> +<div class="ttc" id="acombinatorics_8c_html_a1bcaeef00a7027e9b9b7694da2efd1b9"><div class="ttname"><a href="combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9">combinatorics_init</a></div><div class="ttdeci">uint8_t combinatorics_init(uint8_t n, uint8_t k, uint8_t comb_arr[])</div><div class="ttdoc">Initialize the combinations generator.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8c_source.html#l00029">combinatorics.c:29</a></div></div> +<div class="ttc" id="aDOP_8h_html"><div class="ttname"><a href="DOP_8h.html">DOP.h</a></div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</div></div> +<div class="ttc" id="acombinatorics_8c_html_ae500ce949afe79089e8146eb1fb5cbb0"><div class="ttname"><a href="combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0">combinatorics_get_next_without_rep</a></div><div class="ttdeci">uint8_t combinatorics_get_next_without_rep(uint8_t n, uint8_t k, uint8_t comb_arr[])</div><div class="ttdoc">Generate the next combination.</div><div class="ttdef"><b>Definition:</b> <a href="combinatorics_8c_source.html#l00048">combinatorics.c:48</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8c_html_a6530e8d8955c511d3452748fec987a39"><div class="ttname"><a href="multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a></div><div class="ttdeci">void get_optimal_partial_ref_matrix(uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3])</div><div class="ttdoc">Compute the optimal partial matrix including reference points.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00108">multipath_dist_detection_mitigation.c:108</a></div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="multipath__dist__detection__mitigation_8c.html">multipath_dist_detection_mitigation.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__dist__detection__mitigation_8h.html b/doc/doxygen/html/multipath__dist__detection__mitigation_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..5c119e0ee51a8361499e9127c3077ce90ed842c7 --- /dev/null +++ b/doc/doxygen/html/multipath__dist__detection__mitigation_8h.html @@ -0,0 +1,569 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_dist_detection_mitigation.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__dist__detection__mitigation_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">multipath_dist_detection_mitigation.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__optimization.html">POSITION_OPTIMIZATION</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="multipath__dist__detection__mitigation_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a38019260396a33562d5a1912c691c26a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a">get_exact_distance_to_anchor</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[], uint32_t exact_point[])</td></tr> +<tr class="memdesc:a38019260396a33562d5a1912c691c26a"><td class="mdescLeft"> </td><td class="mdescRight">Computes the exact distance between a mobile station and a reference station. <a href="multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a">More...</a><br /></td></tr> +<tr class="separator:a38019260396a33562d5a1912c691c26a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5609107d45b6abfa6614fc79c56273c8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8">is_member</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vector, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n])</td></tr> +<tr class="memdesc:a5609107d45b6abfa6614fc79c56273c8"><td class="mdescLeft"> </td><td class="mdescRight">Determine if a candidate is a multipath or not. <a href="multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8">More...</a><br /></td></tr> +<tr class="separator:a5609107d45b6abfa6614fc79c56273c8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a944bb181ffe0b3abc69e345ae88fbfc1"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matr[m][3], uint32_t point[3])</td></tr> +<tr class="memdesc:a944bb181ffe0b3abc69e345ae88fbfc1"><td class="mdescLeft"> </td><td class="mdescRight">Determine if a point is an anchor or not. <a href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">More...</a><br /></td></tr> +<tr class="separator:a944bb181ffe0b3abc69e345ae88fbfc1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2776d1c18727f8feb5f0a83a6963e957"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[m][3], uint32_t exact_point[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sigma, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n], int seed, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[])</td></tr> +<tr class="memdesc:a2776d1c18727f8feb5f0a83a6963e957"><td class="mdescLeft"> </td><td class="mdescRight">Simulate an UWB-based localization system. <a href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">More...</a><br /></td></tr> +<tr class="separator:a2776d1c18727f8feb5f0a83a6963e957"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6530e8d8955c511d3452748fec987a39"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a> (uint8_t anchors_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_partial_ref_matrix[k][3])</td></tr> +<tr class="memdesc:a6530e8d8955c511d3452748fec987a39"><td class="mdescLeft"> </td><td class="mdescRight">Compute the optimal partial matrix including reference points. <a href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">More...</a><br /></td></tr> +<tr class="separator:a6530e8d8955c511d3452748fec987a39"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a540837de8e8a9d4e5dbaac1814b19b5e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a> (uint8_t k, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[], uint8_t optimal_anchors_comb[k], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_sub_r_noised_vec[k])</td></tr> +<tr class="memdesc:a540837de8e8a9d4e5dbaac1814b19b5e"><td class="mdescLeft"> </td><td class="mdescRight">Compute noised distances corresponding to the optimal partial matrix. <a href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">More...</a><br /></td></tr> +<tr class="separator:a540837de8e8a9d4e5dbaac1814b19b5e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2840a12d90b5b26b59d50f449f754fbd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">recog_mitigate_multipath</a> (uint8_t k, uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_Matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[m], uint8_t anchors_optimal[k], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_optimal[3])</td></tr> +<tr class="memdesc:a2840a12d90b5b26b59d50f449f754fbd"><td class="mdescLeft"> </td><td class="mdescRight">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. <a href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">More...</a><br /></td></tr> +<tr class="separator:a2840a12d90b5b26b59d50f449f754fbd"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd> +<dd> +Naouar Guerchali </dd></dl> + +<p class="definition">Definition in file <a class="el" href="multipath__dist__detection__mitigation_8h_source.html">multipath_dist_detection_mitigation.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a38019260396a33562d5a1912c691c26a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a38019260396a33562d5a1912c691c26a">◆ </a></span>get_exact_distance_to_anchor()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> get_exact_distance_to_anchor </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>exact_point</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the exact distance between a mobile station and a reference station. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_point</td><td>three-dimensional coordinates of a reference station. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">exact_point</td><td>three-dimensional coordinates of the mobile device.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the exact distance between the mobile station and the reference station. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00042">42</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +<a id="a540837de8e8a9d4e5dbaac1814b19b5e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a540837de8e8a9d4e5dbaac1814b19b5e">◆ </a></span>get_optimal_partial_r_noised_vec()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_optimal_partial_r_noised_vec </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>r_noised_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>optimal_anchors_comb</em>[k], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>opt_sub_r_noised_vec</em>[k] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute noised distances corresponding to the optimal partial matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>k anchors (possible sub-experiments). </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">r_noised_vec[]</td><td>include noised distances. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">optimal_anchors_comb[]</td><td>optimal k-anchor combination. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">opt_sub_r_noised_vec[][]</td><td>noised distances corresponding to the optimal k-anchors. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00123">123</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a6530e8d8955c511d3452748fec987a39"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6530e8d8955c511d3452748fec987a39">◆ </a></span>get_optimal_partial_ref_matrix()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void get_optimal_partial_ref_matrix </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchors_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_matrix</em>[anchors_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>optimal_anchors_comb</em>[k], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>opt_partial_ref_matrix</em>[k][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the optimal partial matrix including reference points. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchors_num</td><td>number of the reference points. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>k anchors (possible sub-experiments). </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">optimal_anchors_comb[]</td><td>optimal anchor combination. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">opt_partial_ref_matrix[][]</td><td>optimal partial matrix of anchors. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00108">108</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a944bb181ffe0b3abc69e345ae88fbfc1"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a944bb181ffe0b3abc69e345ae88fbfc1">◆ </a></span>is_anchor()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool is_anchor </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_matr</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>point</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine if a point is an anchor or not. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference points. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_matr[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">point[]</td><td>three-dimensional coordinates of a point.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if a point is an anchor. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00065">65</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +<a id="a5609107d45b6abfa6614fc79c56273c8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5609107d45b6abfa6614fc79c56273c8">◆ </a></span>is_member()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool is_member </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>vector</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>multipath</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine if a candidate is a multipath or not. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">vector</td><td>a candidate. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the multipath-vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">multipath[]</td><td>pointer to the multipath-vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if a candidate is a multipath. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00055">55</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +<a id="a2840a12d90b5b26b59d50f449f754fbd"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2840a12d90b5b26b59d50f449f754fbd">◆ </a></span>recog_mitigate_multipath()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void recog_mitigate_multipath </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_Matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>r_noised_vec</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchors_optimal</em>[k], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>start_optimal</em>[3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>k anchors (possible sub-experiments). </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of anchors. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_Matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">r_noised_vec[]</td><td>include noised distances. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchors_optimal[]</td><td>optimal k-anchor combination. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">start_optimal[]</td><td>optimal position. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">133</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">References <a class="el" href="combinatorics_8h_source.html#l00031">COMBI_ERROR</a>, <a class="el" href="combinatorics_8h_source.html#l00041">COMBI_SUCCESS</a>, <a class="el" href="combinatorics_8c_source.html#l00048">combinatorics_get_next_without_rep()</a>, <a class="el" href="combinatorics_8c_source.html#l00029">combinatorics_init()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00123">get_optimal_partial_r_noised_vec()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00108">get_optimal_partial_ref_matrix()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="shell__sort_8c_source.html#l00049">shell_sort()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00214">vector_get_index_vector()</a>, <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00124">vector_square()</a>, and <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +<a id="a2776d1c18727f8feb5f0a83a6963e957"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2776d1c18727f8feb5f0a83a6963e957">◆ </a></span>sim_UWB_dist()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void sim_UWB_dist </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>ref_matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>exact_point</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>sigma</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>multipath</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>seed</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>r_noised_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Simulate an UWB-based localization system. </p> +<p>The UWB system is simulated by noising the distances from a mobile to the reference station.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference points. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">ref_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">exact_point[]</td><td>three-dimensional coordinates of a true position. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">sigma</td><td><img class="formulaInl" alt="$ \sigma_{M,W} $" src="form_60.png"/> parameter. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>number of the multipath-affected distances. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">multipath[]</td><td>multipath vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">seed</td><td>seed value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">r_noised_vec[]</td><td>noised distances. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">78</a> of file <a class="el" href="multipath__dist__detection__mitigation_8c_source.html">multipath_dist_detection_mitigation.c</a>.</p> + +<p class="reference">References <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00042">get_exact_distance_to_anchor()</a>, <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00040">get_norm_distr_rand_num()</a>, <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00080">get_rand_num()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00055">is_member()</a>, and <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_05fcd006305b35cd419f9fa0533f5c7b.html">include</a></li><li class="navelem"><a class="el" href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/multipath__dist__detection__mitigation_8h.js b/doc/doxygen/html/multipath__dist__detection__mitigation_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..6000d4d48e8a8e54be34f493bff69c50476b8f90 --- /dev/null +++ b/doc/doxygen/html/multipath__dist__detection__mitigation_8h.js @@ -0,0 +1,10 @@ +var multipath__dist__detection__mitigation_8h = +[ + [ "get_exact_distance_to_anchor", "multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a", null ], + [ "get_optimal_partial_r_noised_vec", "multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e", null ], + [ "get_optimal_partial_ref_matrix", "multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39", null ], + [ "is_anchor", "multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1", null ], + [ "is_member", "multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8", null ], + [ "recog_mitigate_multipath", "multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd", null ], + [ "sim_UWB_dist", "multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/multipath__dist__detection__mitigation_8h_source.html b/doc/doxygen/html/multipath__dist__detection__mitigation_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..5b026569655840ad13267369f0caefb5b472c48d --- /dev/null +++ b/doc/doxygen/html/multipath__dist__detection__mitigation_8h_source.html @@ -0,0 +1,154 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: multipath_dist_detection_mitigation.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('multipath__dist__detection__mitigation_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">multipath_dist_detection_mitigation.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="multipath__dist__detection__mitigation_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef POSITIONING_ROBUST_OTF_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define POSITIONING_ROBUST_OTF_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> <a class="code" href="multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a">get_exact_distance_to_anchor</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point[],</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  uint32_t exact_point[]);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">bool</span> <a class="code" href="multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8">is_member</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> vector, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n]);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keywordtype">bool</span> <a class="code" href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matr[m][3], uint32_t point[3]);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[m][3], uint32_t exact_point[],</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sigma, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> multipath[n], <span class="keywordtype">int</span> seed,</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[]);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a>(uint8_t anchors_num,</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_matrix[anchors_num][3],</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  uint8_t k, uint8_t optimal_anchors_comb[k],</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_partial_ref_matrix[k][3]);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a>(uint8_t k, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[],</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  uint8_t optimal_anchors_comb[k],</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> opt_sub_r_noised_vec[k]);</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">void</span> <a class="code" href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">recog_mitigate_multipath</a>(uint8_t k, uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_Matrix[m][3],</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> r_noised_vec[m],</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  uint8_t anchors_optimal[k],</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> start_optimal[3]);</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#endif </span><span class="comment">/* POSITIONING_ROBUST_OTF_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a944bb181ffe0b3abc69e345ae88fbfc1"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1">is_anchor</a></div><div class="ttdeci">bool is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3])</div><div class="ttdoc">Determine if a point is an anchor or not.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00065">multipath_dist_detection_mitigation.c:65</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a540837de8e8a9d4e5dbaac1814b19b5e"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e">get_optimal_partial_r_noised_vec</a></div><div class="ttdeci">void get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k])</div><div class="ttdoc">Compute noised distances corresponding to the optimal partial matrix.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00123">multipath_dist_detection_mitigation.c:123</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a2840a12d90b5b26b59d50f449f754fbd"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd">recog_mitigate_multipath</a></div><div class="ttdeci">void recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_Matrix[m][3], matrix_t r_noised_vec[m], uint8_t anchors_optimal[k], matrix_t start_optimal[3])</div><div class="ttdoc">Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00133">multipath_dist_detection_mitigation.c:133</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a38019260396a33562d5a1912c691c26a"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a">get_exact_distance_to_anchor</a></div><div class="ttdeci">matrix_t get_exact_distance_to_anchor(matrix_t ref_point[], uint32_t exact_point[])</div><div class="ttdoc">Computes the exact distance between a mobile station and a reference station.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00042">multipath_dist_detection_mitigation.c:42</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a6530e8d8955c511d3452748fec987a39"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39">get_optimal_partial_ref_matrix</a></div><div class="ttdeci">void get_optimal_partial_ref_matrix(uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3])</div><div class="ttdoc">Compute the optimal partial matrix including reference points.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00108">multipath_dist_detection_mitigation.c:108</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a5609107d45b6abfa6614fc79c56273c8"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8">is_member</a></div><div class="ttdeci">bool is_member(matrix_t vector, uint8_t n, matrix_t multipath[n])</div><div class="ttdoc">Determine if a candidate is a multipath or not.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00055">multipath_dist_detection_mitigation.c:55</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amultipath__dist__detection__mitigation_8h_html_a2776d1c18727f8feb5f0a83a6963e957"><div class="ttname"><a href="multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957">sim_UWB_dist</a></div><div class="ttdeci">void sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[])</div><div class="ttdoc">Simulate an UWB-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="multipath__dist__detection__mitigation_8c_source.html#l00078">multipath_dist_detection_mitigation.c:78</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_6b02df0bd0782e84dd3cd412549b0acc.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_05fcd006305b35cd419f9fa0533f5c7b.html">include</a></li><li class="navelem"><a class="el" href="multipath__dist__detection__mitigation_8h.html">multipath_dist_detection_mitigation.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/nav_f.png b/doc/doxygen/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 Binary files /dev/null and b/doc/doxygen/html/nav_f.png differ diff --git a/doc/doxygen/html/nav_g.png b/doc/doxygen/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 Binary files /dev/null and b/doc/doxygen/html/nav_g.png differ diff --git a/doc/doxygen/html/nav_h.png b/doc/doxygen/html/nav_h.png new file mode 100644 index 0000000000000000000000000000000000000000..33389b101d9cd9b4c98ad286b5d9c46a6671f650 Binary files /dev/null and b/doc/doxygen/html/nav_h.png differ diff --git a/doc/doxygen/html/navtree.css b/doc/doxygen/html/navtree.css new file mode 100644 index 0000000000000000000000000000000000000000..33341a67d69b0b1bb09d1b11878cba8f95aa61d4 --- /dev/null +++ b/doc/doxygen/html/navtree.css @@ -0,0 +1,146 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url("splitbar.png"); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/doc/doxygen/html/navtree.js b/doc/doxygen/html/navtree.js new file mode 100644 index 0000000000000000000000000000000000000000..edc31efc6819c6aaa490e002e6b70c29eec7b2d9 --- /dev/null +++ b/doc/doxygen/html/navtree.js @@ -0,0 +1,544 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2019 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+1<o.breadcrumbs.length) { + showNode(o,n,index+1,hash); + } else { + if (typeof(n.childrenData)==='string') { + var varName = n.childrenData; + getScript(n.relpath+varName,function(){ + n.childrenData = getData(varName); + node.expanded=false; + showNode(o,node,index,hash); // retry with child node expanded + },true); + } else { + var rootBase = stripPath(o.toroot.replace(/\..+$/, '')); + if (rootBase=="index" || rootBase=="pages" || rootBase=="search") { + expandNode(o, n, true, true); + } + selectAndHighlight(hash,n); + } + } + } + } else { + selectAndHighlight(hash); + } +} + +function removeToInsertLater(element) { + var parentNode = element.parentNode; + var nextSibling = element.nextSibling; + parentNode.removeChild(element); + return function() { + if (nextSibling) { + parentNode.insertBefore(element, nextSibling); + } else { + parentNode.appendChild(element); + } + }; +} + +function getNode(o, po) +{ + var insertFunction = removeToInsertLater(po.li); + po.childrenVisited = true; + var l = po.childrenData.length-1; + for (var i in po.childrenData) { + var nodeData = po.childrenData[i]; + po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], + i==l); + } + insertFunction(); +} + +function gotoNode(o,subIndex,root,hash,relpath) +{ + var nti = navTreeSubIndices[subIndex][root+hash]; + o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]); + if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index + navTo(o,NAVTREE[0][1],"",relpath); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + if (o.breadcrumbs) { + o.breadcrumbs.unshift(0); // add 0 for root node + showNode(o, o.node, 0, hash); + } +} + +function navTo(o,root,hash,relpath) +{ + var link = cachedLink(); + if (link) { + var parts = link.split('#'); + root = parts[0]; + if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>'); +} + +function showSyncOn(n,relpath) +{ + n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>'); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]'); + } + if (a==null || !$(a).parent().parent().hasClass('selected')){ + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + var link=stripPath2(pathName()); + navTo(o,link,hashUrl(),relpath); + } else if (!animationInProgress) { + $('#doc-content').scrollTop(0); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + navTo(o,toroot,hashUrl(),relpath); + } + }) +} +/* @license-end */ diff --git a/doc/doxygen/html/navtreedata.js b/doc/doxygen/html/navtreedata.js new file mode 100644 index 0000000000000000000000000000000000000000..82838139edf3871a1865301e802f3cc7c410de37 --- /dev/null +++ b/doc/doxygen/html/navtreedata.js @@ -0,0 +1,92 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2019 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of version 2 of the GNU General Public License as published by +the Free Software Foundation + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var NAVTREE = +[ + [ "RcdMathLib_doc", "index.html", [ + [ "RcdMathLib Documentation", "index.html", [ + [ "RcdMathLib in a nutshell", "index.html#RcdMathLib-in-a-nutshell", null ], + [ "Download and use RcdMathLib", "index.html#download-use-RcdMathLib", null ], + [ "The quickest start", "index.html#the-quickest-start", null ], + [ "Structure", "index.html#structure", [ + [ "Linear Algebra", "index.html#autotoc_md1", null ], + [ "Non-Linear Algebra", "index.html#autotoc_md2", null ], + [ "Localization", "index.html#autotoc_md3", null ], + [ "examples", "index.html#autotoc_md4", null ], + [ "doc", "index.html#autotoc_md5", null ] + ] ], + [ "Further information", "index.html#further-information", null ] + ] ], + [ "Creating an application", "creating-an-application.html", [ + [ "Creating an application for full-fledged devices", "creating-an-application.html#creating-an-application-full-fledge", null ], + [ "Creating an application for resource-limited devices", "creating-an-application.html#creating-an-application-res-lim", null ], + [ "The main function", "creating-an-application.html#the-main-function", null ], + [ "The application's Makefile", "creating-an-application.html#the-applications-makefile", [ + [ "The minimal Makefile", "creating-an-application.html#the-minimal-makefile", null ], + [ "Including modules", "creating-an-application.html#including-modules", null ] + ] ] + ] ], + [ "Creating modules", "creating-modules.html", [ + [ "The general structure", "creating-modules.html#the-general-structure", null ], + [ "Module dependencies", "creating-modules.html#autotoc_md0", null ] + ] ], + [ "Getting started", "getting-started.html", [ + [ "Downloading RcdMathLib code", "getting-started.html#downloading-RcdMathLib-code", null ], + [ "Compiling RcdMathLib", "getting-started.html#compiling-RcdMathLib", [ + [ "Setting up a toolchain for full-fledged devices", "getting-started.html#setting-up-a-toolchain-full-fledge", null ], + [ "Setting up a toolchain for resource-limited devices", "getting-started.html#setting-up-a-toolchain-res-lim", null ], + [ "The build system for full-fledged devices", "getting-started.html#the-build-system-full-fledge", null ], + [ "The build system for resource-limited devices", "getting-started.html#the-build-system-res-lim", null ], + [ "Building and executing an example for resource-limited devices", "getting-started.html#building-and-executing-an-example-res-lim", null ] + ] ] + ] ], + [ "Modules", "modules.html", "modules" ], + [ "Data Structures", "annotated.html", [ + [ "Data Structures", "annotated.html", "annotated_dup" ], + [ "Data Structure Index", "classes.html", null ], + [ "Data Fields", "functions.html", [ + [ "All", "functions.html", null ], + [ "Variables", "functions_vars.html", null ] + ] ] + ] ], + [ "Files", "files.html", [ + [ "File List", "files.html", "files_dup" ], + [ "Globals", "globals.html", [ + [ "All", "globals.html", "globals_dup" ], + [ "Functions", "globals_func.html", "globals_func" ], + [ "Enumerations", "globals_enum.html", null ], + [ "Enumerator", "globals_eval.html", null ], + [ "Macros", "globals_defs.html", null ] + ] ] + ] ] + ] ] +]; + +var NAVTREEINDEX = +[ +"DOP_8c.html", +"magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59", +"qr__givens_8h.html" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file diff --git a/doc/doxygen/html/navtreeindex0.js b/doc/doxygen/html/navtreeindex0.js new file mode 100644 index 0000000000000000000000000000000000000000..a7e891f776a2847edac86a9bf7015127dadc3107 --- /dev/null +++ b/doc/doxygen/html/navtreeindex0.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX0 = +{ +"DOP_8c.html":[6,0,12], +"DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4":[6,0,12,0], +"DOP_8c_source.html":[6,0,12], +"DOP_8h.html":[6,0,13], +"DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4":[6,0,13,0], +"DOP_8h_source.html":[6,0,13], +"annotated.html":[5,0], +"classes.html":[5,1], +"combinatorics_8c.html":[6,0,0], +"combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9":[6,0,0,1], +"combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0":[6,0,0,0], +"combinatorics_8c_source.html":[6,0,0], +"combinatorics_8h.html":[6,0,1], +"combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509":[6,0,1,2], +"combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7":[6,0,1,1], +"combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9":[6,0,1,5], +"combinatorics_8h.html#a744ae7aa581aa908643d95d470394872":[6,0,1,0], +"combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0":[6,0,1,4], +"combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498":[6,0,1,3], +"combinatorics_8h_source.html":[6,0,1], +"creating-an-application.html":[1], +"creating-an-application.html#creating-an-application-full-fledge":[1,0], +"creating-an-application.html#creating-an-application-res-lim":[1,1], +"creating-an-application.html#including-modules":[1,3,1], +"creating-an-application.html#the-applications-makefile":[1,3], +"creating-an-application.html#the-main-function":[1,2], +"creating-an-application.html#the-minimal-makefile":[1,3,0], +"creating-modules.html":[2], +"creating-modules.html#autotoc_md0":[2,1], +"creating-modules.html#the-general-structure":[2,0], +"damped__newton__raphson_8c.html":[6,0,2], +"damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14":[6,0,2,0], +"damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a":[6,0,2,1], +"damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e":[6,0,2,2], +"damped__newton__raphson_8c_source.html":[6,0,2], +"damped__newton__raphson_8h.html":[6,0,3], +"damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14":[6,0,3,0], +"damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a":[6,0,3,1], +"damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e":[6,0,3,2], +"damped__newton__raphson_8h_source.html":[6,0,3], +"dist__based__fi_8c.html":[6,0,4], +"dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa":[6,0,4,0], +"dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a":[6,0,4,1], +"dist__based__fi_8c_source.html":[6,0,4], +"dist__based__fi_8h.html":[6,0,5], +"dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa":[6,0,5,0], +"dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a":[6,0,5,1], +"dist__based__fi_8h_source.html":[6,0,5], +"dist__based__jacobian_8c.html":[6,0,6], +"dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408":[6,0,6,1], +"dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2":[6,0,6,3], +"dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c":[6,0,6,2], +"dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc":[6,0,6,0], +"dist__based__jacobian_8c_source.html":[6,0,6], +"dist__based__jacobian_8h.html":[6,0,7], +"dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408":[6,0,7,1], +"dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2":[6,0,7,3], +"dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c":[6,0,7,2], +"dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc":[6,0,7,0], +"dist__based__jacobian_8h_source.html":[6,0,7], +"dist__based__position_8c.html":[6,0,8], +"dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3":[6,0,8,0], +"dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d":[6,0,8,1], +"dist__based__position_8c_source.html":[6,0,8], +"dist__based__position_8h.html":[6,0,9], +"dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3":[6,0,9,0], +"dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d":[6,0,9,1], +"dist__based__position_8h_source.html":[6,0,9], +"distance__based__test_8c.html":[6,0,10], +"distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115":[6,0,10,0], +"distance__based__test_8c_source.html":[6,0,10], +"distance__based__test_8h.html":[6,0,11], +"distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115":[6,0,11,0], +"distance__based__test_8h_source.html":[6,0,11], +"files.html":[6,0], +"fsolve_8c.html":[6,0,14], +"fsolve_8c.html#a690a05654627b94634ffed0893946ba7":[6,0,14,0], +"fsolve_8c_source.html":[6,0,14], +"fsolve_8h.html":[6,0,15], +"fsolve_8h.html#a690a05654627b94634ffed0893946ba7":[6,0,15,1], +"fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206":[6,0,15,0], +"fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117":[6,0,15,0,0], +"fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783":[6,0,15,0,1], +"fsolve_8h_source.html":[6,0,15], +"fsolve__test_8c.html":[6,0,16], +"fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f":[6,0,16,4], +"fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37":[6,0,16,0], +"fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100":[6,0,16,6], +"fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a":[6,0,16,3], +"fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e":[6,0,16,5], +"fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908":[6,0,16,2], +"fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b":[6,0,16,1], +"fsolve__test_8c_source.html":[6,0,16], +"fsolve__test_8h.html":[6,0,17], +"fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37":[6,0,17,0], +"fsolve__test_8h_source.html":[6,0,17], +"functions.html":[5,2,0], +"functions_vars.html":[5,2,1], +"getting-started.html":[3], +"getting-started.html#building-and-executing-an-example-res-lim":[3,1,4], +"getting-started.html#compiling-RcdMathLib":[3,1], +"getting-started.html#downloading-RcdMathLib-code":[3,0], +"getting-started.html#setting-up-a-toolchain-full-fledge":[3,1,0], +"getting-started.html#setting-up-a-toolchain-res-lim":[3,1,1], +"getting-started.html#the-build-system-full-fledge":[3,1,2], +"getting-started.html#the-build-system-res-lim":[3,1,3], +"givens__test_8c.html":[6,0,18], +"givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae":[6,0,18,0], +"givens__test_8c_source.html":[6,0,18], +"givens__test_8h.html":[6,0,19], +"givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae":[6,0,19,0], +"givens__test_8h_source.html":[6,0,19], +"globals.html":[6,1,0], +"globals.html":[6,1,0,0], +"globals_c.html":[6,1,0,1], +"globals_d.html":[6,1,0,2], +"globals_defs.html":[6,1,4], +"globals_enum.html":[6,1,2], +"globals_eval.html":[6,1,3], +"globals_f.html":[6,1,0,3], +"globals_func.html":[6,1,1], +"globals_func.html":[6,1,1,0], +"globals_func_d.html":[6,1,1,1], +"globals_func_f.html":[6,1,1,2], +"globals_func_g.html":[6,1,1,3], +"globals_func_h.html":[6,1,1,4], +"globals_func_i.html":[6,1,1,5], +"globals_func_l.html":[6,1,1,6], +"globals_func_m.html":[6,1,1,7], +"globals_func_n.html":[6,1,1,8], +"globals_func_o.html":[6,1,1,9], +"globals_func_p.html":[6,1,1,10], +"globals_func_q.html":[6,1,1,11], +"globals_func_r.html":[6,1,1,12], +"globals_func_s.html":[6,1,1,13], +"globals_func_t.html":[6,1,1,14], +"globals_func_u.html":[6,1,1,15], +"globals_func_v.html":[6,1,1,16], +"globals_g.html":[6,1,0,4], +"globals_h.html":[6,1,0,5], +"globals_i.html":[6,1,0,6], +"globals_k.html":[6,1,0,7], +"globals_l.html":[6,1,0,8], +"globals_m.html":[6,1,0,9], +"globals_n.html":[6,1,0,10], +"globals_o.html":[6,1,0,11], +"globals_p.html":[6,1,0,12], +"globals_q.html":[6,1,0,13], +"globals_r.html":[6,1,0,14], +"globals_s.html":[6,1,0,15], +"globals_t.html":[6,1,0,16], +"globals_u.html":[6,1,0,17], +"globals_v.html":[6,1,0,18], +"group__basic__operations.html":[4,1,0], +"group__distance__based.html":[4,2,0,0], +"group__examples.html":[4,0], +"group__linear__algebra.html":[4,1], +"group__localization.html":[4,2], +"group__magnetic__based.html":[4,2,0,1], +"group__matrix__decompositions.html":[4,1,1], +"group__non__linear__algebra.html":[4,3], +"group__optimization.html":[4,3,0], +"group__pos__algos__common.html":[4,2,0,2], +"group__position__algos.html":[4,2,0], +"group__position__optimization.html":[4,2,1], +"group__pseudo__inverse.html":[4,1,2], +"group__solve__linear__equations.html":[4,1,3], +"group__solve__non__linear__equations.html":[4,3,1], +"group__utilities.html":[4,1,4], +"householder__test_8c.html":[6,0,20], +"householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0":[6,0,20,0], +"householder__test_8c_source.html":[6,0,20], +"householder__test_8h.html":[6,0,21], +"householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0":[6,0,21,0], +"householder__test_8h_source.html":[6,0,21], +"index.html":[], +"index.html":[0], +"index.html#RcdMathLib-in-a-nutshell":[0,0], +"index.html#autotoc_md1":[0,3,0], +"index.html#autotoc_md2":[0,3,1], +"index.html#autotoc_md3":[0,3,2], +"index.html#autotoc_md4":[0,3,3], +"index.html#autotoc_md5":[0,3,4], +"index.html#download-use-RcdMathLib":[0,1], +"index.html#further-information":[0,4], +"index.html#structure":[0,3], +"index.html#the-quickest-start":[0,2], +"levenberg__marquardt_8c.html":[6,0,22], +"levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f":[6,0,22,0], +"levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f":[6,0,22,2], +"levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826":[6,0,22,1], +"levenberg__marquardt_8c_source.html":[6,0,22], +"levenberg__marquardt_8h.html":[6,0,23], +"levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f":[6,0,23,0], +"levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f":[6,0,23,1], +"levenberg__marquardt_8h_source.html":[6,0,23], +"loc__gauss__newton_8c.html":[6,0,24], +"loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e":[6,0,24,0], +"loc__gauss__newton_8c_source.html":[6,0,24], +"loc__gauss__newton_8h.html":[6,0,25], +"loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e":[6,0,25,0], +"loc__gauss__newton_8h_source.html":[6,0,25], +"loc__levenberg__marquardt_8c.html":[6,0,26], +"loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f":[6,0,26,0], +"loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357":[6,0,26,3], +"loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e":[6,0,26,2], +"loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6":[6,0,26,1], +"loc__levenberg__marquardt_8c_source.html":[6,0,26], +"loc__levenberg__marquardt_8h.html":[6,0,27], +"loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f":[6,0,27,0], +"loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357":[6,0,27,3], +"loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e":[6,0,27,2], +"loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6":[6,0,27,1], +"loc__levenberg__marquardt_8h_source.html":[6,0,27], +"lu__decomp_8c.html":[6,0,28], +"lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7":[6,0,28,0], +"lu__decomp_8c_source.html":[6,0,28], +"lu__decomp_8h.html":[6,0,29], +"lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7":[6,0,29,0], +"lu__decomp_8h_source.html":[6,0,29], +"lu__decomp__test_8c.html":[6,0,30], +"lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1":[6,0,30,0], +"lu__decomp__test_8c_source.html":[6,0,30], +"lu__decomp__test_8h.html":[6,0,31], +"lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1":[6,0,31,0], +"lu__decomp__test_8h_source.html":[6,0,31], +"magnetic__based__fi_8c.html":[6,0,32], +"magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a":[6,0,32,0], +"magnetic__based__fi_8c_source.html":[6,0,32], +"magnetic__based__fi_8h.html":[6,0,33], +"magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a":[6,0,33,0], +"magnetic__based__fi_8h_source.html":[6,0,33], +"magnetic__based__jacobian_8c.html":[6,0,34], +"magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8":[6,0,34,2], +"magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e":[6,0,34,3], +"magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224":[6,0,34,0], +"magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc":[6,0,34,1], +"magnetic__based__jacobian_8c_source.html":[6,0,34], +"magnetic__based__jacobian_8h.html":[6,0,35], +"magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8":[6,0,35,2], +"magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e":[6,0,35,3], +"magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224":[6,0,35,0], +"magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc":[6,0,35,1], +"magnetic__based__jacobian_8h_source.html":[6,0,35], +"magnetic__based__position_8c.html":[6,0,36], +"magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06":[6,0,36,5], +"magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d":[6,0,36,3], +"magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c":[6,0,36,4], +"magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599":[6,0,36,2], +"magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d":[6,0,36,0] +}; diff --git a/doc/doxygen/html/navtreeindex1.js b/doc/doxygen/html/navtreeindex1.js new file mode 100644 index 0000000000000000000000000000000000000000..35caefaab9ee2daf41dcb827e3fb8631d65d09ac --- /dev/null +++ b/doc/doxygen/html/navtreeindex1.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX1 = +{ +"magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59":[6,0,36,1], +"magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef":[6,0,36,6], +"magnetic__based__position_8c_source.html":[6,0,36], +"magnetic__based__position_8h.html":[6,0,37], +"magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06":[6,0,37,15], +"magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4":[6,0,37,6], +"magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc":[6,0,37,5], +"magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f":[6,0,37,9], +"magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d":[6,0,37,13], +"magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4":[6,0,37,3], +"magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691":[6,0,37,4], +"magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca":[6,0,37,8], +"magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe":[6,0,37,0], +"magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718":[6,0,37,1], +"magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254":[6,0,37,2], +"magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c":[6,0,37,14], +"magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599":[6,0,37,12], +"magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d":[6,0,37,10], +"magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59":[6,0,37,11], +"magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef":[6,0,37,16], +"magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687":[6,0,37,7], +"magnetic__based__position_8h_source.html":[6,0,37], +"magnetic__based__test_8c.html":[6,0,38], +"magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75":[6,0,38,0], +"magnetic__based__test_8c_source.html":[6,0,38], +"magnetic__based__test_8h.html":[6,0,39], +"magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75":[6,0,39,0], +"magnetic__based__test_8h_source.html":[6,0,39], +"matrix_8c.html":[6,0,40], +"matrix_8c.html#a0107887a6c40980fa639750be8262f01":[6,0,40,39], +"matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731":[6,0,40,31], +"matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672":[6,0,40,7], +"matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3":[6,0,40,2], +"matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a":[6,0,40,10], +"matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a":[6,0,40,34], +"matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2":[6,0,40,33], +"matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a":[6,0,40,30], +"matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864":[6,0,40,9], +"matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887":[6,0,40,42], +"matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e":[6,0,40,22], +"matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374":[6,0,40,36], +"matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d":[6,0,40,26], +"matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd":[6,0,40,19], +"matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7":[6,0,40,40], +"matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a":[6,0,40,24], +"matrix_8c.html#a56513a88eff05b0683320c532fadf945":[6,0,40,29], +"matrix_8c.html#a5f6a1948ec005cff4985559821c4943f":[6,0,40,6], +"matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029":[6,0,40,32], +"matrix_8c.html#a72297a60e572f85929989e813388a9c5":[6,0,40,4], +"matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a":[6,0,40,35], +"matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f":[6,0,40,38], +"matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252":[6,0,40,8], +"matrix_8c.html#a90b6eafa665d34d7330581c32564d632":[6,0,40,43], +"matrix_8c.html#aa8acafd4181978f536976f8151e51516":[6,0,40,1], +"matrix_8c.html#aaf85a32b8562c91d2d1889819580375e":[6,0,40,12], +"matrix_8c.html#ab166871472924745f70e2bb6e17498c8":[6,0,40,14], +"matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213":[6,0,40,21], +"matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4":[6,0,40,18], +"matrix_8c.html#ac7101bbaa3a2698658276a7e21501093":[6,0,40,0], +"matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3":[6,0,40,27], +"matrix_8c.html#acfd2bbc4a90915e57a4555694e842312":[6,0,40,23], +"matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de":[6,0,40,25], +"matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc":[6,0,40,17], +"matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2":[6,0,40,5], +"matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb":[6,0,40,28], +"matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a":[6,0,40,41], +"matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845":[6,0,40,15], +"matrix_8c.html#ae808f007791f060590d39c7668501988":[6,0,40,11], +"matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c":[6,0,40,3], +"matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48":[6,0,40,13], +"matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0":[6,0,40,20], +"matrix_8c.html#aed6fab1ffa40243eeb08117215082be3":[6,0,40,37], +"matrix_8c.html#aef8d1508ad101227ab255a714ab22b94":[6,0,40,16], +"matrix_8c_source.html":[6,0,40], +"matrix_8h.html":[6,0,41], +"matrix_8h.html#a0107887a6c40980fa639750be8262f01":[6,0,41,43], +"matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731":[6,0,41,35], +"matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672":[6,0,41,11], +"matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3":[6,0,41,6], +"matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a":[6,0,41,14], +"matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a":[6,0,41,38], +"matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2":[6,0,41,37], +"matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a":[6,0,41,34], +"matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864":[6,0,41,13], +"matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887":[6,0,41,46], +"matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e":[6,0,41,26], +"matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374":[6,0,41,40], +"matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d":[6,0,41,30], +"matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd":[6,0,41,23], +"matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7":[6,0,41,44], +"matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a":[6,0,41,28], +"matrix_8h.html#a56513a88eff05b0683320c532fadf945":[6,0,41,33], +"matrix_8h.html#a5f6a1948ec005cff4985559821c4943f":[6,0,41,10], +"matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029":[6,0,41,36], +"matrix_8h.html#a72297a60e572f85929989e813388a9c5":[6,0,41,8], +"matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a":[6,0,41,39], +"matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524":[6,0,41,9], +"matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f":[6,0,41,42], +"matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252":[6,0,41,12], +"matrix_8h.html#a90b6eafa665d34d7330581c32564d632":[6,0,41,47], +"matrix_8h.html#aa8acafd4181978f536976f8151e51516":[6,0,41,5], +"matrix_8h.html#aaf85a32b8562c91d2d1889819580375e":[6,0,41,16], +"matrix_8h.html#ab166871472924745f70e2bb6e17498c8":[6,0,41,18], +"matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213":[6,0,41,25], +"matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4":[6,0,41,22], +"matrix_8h.html#ac7101bbaa3a2698658276a7e21501093":[6,0,41,4], +"matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3":[6,0,41,31], +"matrix_8h.html#acfd2bbc4a90915e57a4555694e842312":[6,0,41,27], +"matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de":[6,0,41,29], +"matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc":[6,0,41,21], +"matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb":[6,0,41,32], +"matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a":[6,0,41,45], +"matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845":[6,0,41,19], +"matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3":[6,0,41,1], +"matrix_8h.html#ae808f007791f060590d39c7668501988":[6,0,41,15], +"matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c":[6,0,41,7], +"matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48":[6,0,41,17], +"matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0":[6,0,41,24], +"matrix_8h.html#aed6fab1ffa40243eeb08117215082be3":[6,0,41,41], +"matrix_8h.html#aef8d1508ad101227ab255a714ab22b94":[6,0,41,20], +"matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31":[6,0,41,3], +"matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192":[6,0,41,2], +"matrix_8h_source.html":[6,0,41], +"matrix__test_8c.html":[6,0,42], +"matrix__test_8c.html#a5713bd664a96ccd028896420050f22df":[6,0,42,0], +"matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2":[6,0,42,1], +"matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f":[6,0,42,2], +"matrix__test_8c_source.html":[6,0,42], +"matrix__test_8h.html":[6,0,43], +"matrix__test_8h.html#a5713bd664a96ccd028896420050f22df":[6,0,43,0], +"matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2":[6,0,43,1], +"matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f":[6,0,43,2], +"matrix__test_8h_source.html":[6,0,43], +"modified__gauss__newton_8c.html":[6,0,44], +"modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc":[6,0,44,0], +"modified__gauss__newton_8c_source.html":[6,0,44], +"modified__gauss__newton_8h.html":[6,0,45], +"modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc":[6,0,45,0], +"modified__gauss__newton_8h_source.html":[6,0,45], +"modules.html":[4], +"moore__penrose__pinv__test_8c.html":[6,0,46], +"moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014":[6,0,46,0], +"moore__penrose__pinv__test_8c_source.html":[6,0,46], +"moore__penrose__pinv__test_8h.html":[6,0,47], +"moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014":[6,0,47,0], +"moore__penrose__pinv__test_8h_source.html":[6,0,47], +"moore__penrose__pseudo__inverse_8c.html":[6,0,48], +"moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce":[6,0,48,0], +"moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9":[6,0,48,1], +"moore__penrose__pseudo__inverse_8c_source.html":[6,0,48], +"moore__penrose__pseudo__inverse_8h.html":[6,0,49], +"moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e":[6,0,49,2], +"moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746":[6,0,49,1], +"moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce":[6,0,49,6], +"moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1":[6,0,49,5], +"moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4":[6,0,49,4], +"moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af":[6,0,49,0], +"moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9":[6,0,49,7], +"moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb":[6,0,49,3], +"moore__penrose__pseudo__inverse_8h_source.html":[6,0,49], +"multipath__algo__own__norm__distr__test_8c.html":[6,0,50], +"multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd":[6,0,50,0], +"multipath__algo__own__norm__distr__test_8c_source.html":[6,0,50], +"multipath__algo__own__norm__distr__test_8h.html":[6,0,51], +"multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd":[6,0,51,0], +"multipath__algo__own__norm__distr__test_8h_source.html":[6,0,51], +"multipath__dist__detection__mitigation_8c.html":[6,0,52], +"multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957":[6,0,52,6], +"multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a":[6,0,52,0], +"multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e":[6,0,52,1], +"multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8":[6,0,52,4], +"multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39":[6,0,52,2], +"multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47":[6,0,52,5], +"multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1":[6,0,52,3], +"multipath__dist__detection__mitigation_8c_source.html":[6,0,52], +"multipath__dist__detection__mitigation_8h.html":[6,0,53], +"multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957":[6,0,53,6], +"multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd":[6,0,53,5], +"multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a":[6,0,53,0], +"multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e":[6,0,53,1], +"multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8":[6,0,53,4], +"multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39":[6,0,53,2], +"multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1":[6,0,53,3], +"multipath__dist__detection__mitigation_8h_source.html":[6,0,53], +"newton__raphson_8c.html":[6,0,54], +"newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc":[6,0,54,0], +"newton__raphson_8c_source.html":[6,0,54], +"newton__raphson_8h.html":[6,0,55], +"newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc":[6,0,55,0], +"newton__raphson_8h_source.html":[6,0,55], +"norm__dist__rnd__generator_8c.html":[6,0,56], +"norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb":[6,0,56,1], +"norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf":[6,0,56,0], +"norm__dist__rnd__generator_8c_source.html":[6,0,56], +"norm__dist__rnd__generator_8h.html":[6,0,57], +"norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a":[6,0,57,1], +"norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903":[6,0,57,2], +"norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca":[6,0,57,0], +"norm__dist__rnd__generator_8h_source.html":[6,0,57], +"optimization__test_8c.html":[6,0,58], +"optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20":[6,0,58,8], +"optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b":[6,0,58,5], +"optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9":[6,0,58,0], +"optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9":[6,0,58,7], +"optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b":[6,0,58,3], +"optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0":[6,0,58,2], +"optimization__test_8c.html#ac11e842f01767e97924c100df684476d":[6,0,58,1], +"optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c":[6,0,58,4], +"optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a":[6,0,58,6], +"optimization__test_8c_source.html":[6,0,58], +"optimization__test_8h.html":[6,0,59], +"optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20":[6,0,59,2], +"optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9":[6,0,59,0], +"optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9":[6,0,59,1], +"optimization__test_8h_source.html":[6,0,59], +"pages.html":[], +"pos__algos__common__test_8c.html":[6,0,60], +"pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c":[6,0,60,0], +"pos__algos__common__test_8c_source.html":[6,0,60], +"pos__algos__common__test_8h.html":[6,0,61], +"pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c":[6,0,61,0], +"pos__algos__common__test_8h_source.html":[6,0,61], +"position__optimization__test_8c.html":[6,0,62], +"position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166":[6,0,62,0], +"position__optimization__test_8c_source.html":[6,0,62], +"position__optimization__test_8h.html":[6,0,63], +"position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166":[6,0,63,0], +"position__optimization__test_8h_source.html":[6,0,63], +"pseudo__inverse_8h.html":[6,0,64], +"pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3":[6,0,64,0], +"pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04":[6,0,64,0,1], +"pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991":[6,0,64,0,2], +"pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220":[6,0,64,0,3], +"pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06":[6,0,64,0,0], +"pseudo__inverse_8h_source.html":[6,0,64], +"qr__common_8c.html":[6,0,65], +"qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b":[6,0,65,1], +"qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112":[6,0,65,0], +"qr__common_8c_source.html":[6,0,65], +"qr__common_8h.html":[6,0,66], +"qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612":[6,0,66,2], +"qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b":[6,0,66,0], +"qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73bac5a89d2d2ca110939bfab32732fc0f1a":[6,0,66,0,1], +"qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73bad33bdadaec01995a7dee94f202c598e3":[6,0,66,0,0], +"qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112":[6,0,66,1], +"qr__common_8h_source.html":[6,0,66], +"qr__givens_8c.html":[6,0,67], +"qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc":[6,0,67,0], +"qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644":[6,0,67,1], +"qr__givens_8c_source.html":[6,0,67] +}; diff --git a/doc/doxygen/html/navtreeindex2.js b/doc/doxygen/html/navtreeindex2.js new file mode 100644 index 0000000000000000000000000000000000000000..5eaff30c695049290ab3db880413da74c23e2d01 --- /dev/null +++ b/doc/doxygen/html/navtreeindex2.js @@ -0,0 +1,200 @@ +var NAVTREEINDEX2 = +{ +"qr__givens_8h.html":[6,0,68], +"qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc":[6,0,68,0], +"qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644":[6,0,68,1], +"qr__givens_8h_source.html":[6,0,68], +"qr__householder_8c.html":[6,0,69], +"qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f":[6,0,69,0], +"qr__householder_8c_source.html":[6,0,69], +"qr__householder_8h.html":[6,0,70], +"qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f":[6,0,70,0], +"qr__householder_8h_source.html":[6,0,70], +"qr__pinv__test_8c.html":[6,0,71], +"qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db":[6,0,71,0], +"qr__pinv__test_8c_source.html":[6,0,71], +"qr__pinv__test_8h.html":[6,0,72], +"qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db":[6,0,72,0], +"qr__pinv__test_8h_source.html":[6,0,72], +"qr__pseudo__inverse_8c.html":[6,0,73], +"qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d":[6,0,73,0], +"qr__pseudo__inverse_8c_source.html":[6,0,73], +"qr__pseudo__inverse_8h.html":[6,0,74], +"qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d":[6,0,74,0], +"qr__pseudo__inverse_8h_source.html":[6,0,74], +"shell__sort_8c.html":[6,0,75], +"shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6":[6,0,75,1], +"shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e":[6,0,75,0], +"shell__sort_8c_source.html":[6,0,75], +"shell__sort_8h.html":[6,0,76], +"shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6":[6,0,76,1], +"shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e":[6,0,76,0], +"shell__sort_8h_source.html":[6,0,76], +"solve_8c.html":[6,0,77], +"solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1":[6,0,77,0], +"solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634":[6,0,77,3], +"solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd":[6,0,77,2], +"solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88":[6,0,77,1], +"solve_8c_source.html":[6,0,77], +"solve_8h.html":[6,0,78], +"solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1":[6,0,78,0], +"solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634":[6,0,78,3], +"solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd":[6,0,78,2], +"solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88":[6,0,78,1], +"solve_8h_source.html":[6,0,78], +"solve__test_8c.html":[6,0,79], +"solve__test_8c.html#a468b4492daa139d24a18624526001220":[6,0,79,1], +"solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371":[6,0,79,0], +"solve__test_8c_source.html":[6,0,79], +"solve__test_8h.html":[6,0,80], +"solve__test_8h.html#a468b4492daa139d24a18624526001220":[6,0,80,1], +"solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371":[6,0,80,0], +"solve__test_8h_source.html":[6,0,80], +"structmatrix__dim__t.html":[5,0,0], +"structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721":[5,0,0,1], +"structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab":[5,0,0,0], +"svd_8c.html":[6,0,81], +"svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595":[6,0,81,1], +"svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8":[6,0,81,5], +"svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e":[6,0,81,4], +"svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07":[6,0,81,6], +"svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e":[6,0,81,0], +"svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb":[6,0,81,2], +"svd_8c.html#aeb7ac3eac076a0f52c729849599808a6":[6,0,81,3], +"svd_8c_source.html":[6,0,81], +"svd_8h.html":[6,0,82], +"svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595":[6,0,82,5], +"svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4":[6,0,82,3], +"svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8":[6,0,82,9], +"svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e":[6,0,82,8], +"svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5":[6,0,82,0], +"svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07":[6,0,82,10], +"svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a":[6,0,82,1], +"svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e":[6,0,82,4], +"svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb":[6,0,82,6], +"svd_8h.html#aeb7ac3eac076a0f52c729849599808a6":[6,0,82,7], +"svd_8h.html#af9e7db6685a0631312bfb93cc58dd756":[6,0,82,2], +"svd_8h_source.html":[6,0,82], +"svd__test_8c.html":[6,0,83], +"svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077":[6,0,83,0], +"svd__test_8c_source.html":[6,0,83], +"svd__test_8h.html":[6,0,84], +"svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077":[6,0,84,0], +"svd__test_8h_source.html":[6,0,84], +"trilateration_8c.html":[6,0,85], +"trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832":[6,0,85,2], +"trilateration_8c.html#a4270371ead754327c478d19d57bfafba":[6,0,85,8], +"trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e":[6,0,85,5], +"trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358":[6,0,85,4], +"trilateration_8c.html#a95fc45efcb10019be21704539eeedefb":[6,0,85,0], +"trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758":[6,0,85,7], +"trilateration_8c.html#ab5f06e68df75b4708d722c268932578c":[6,0,85,6], +"trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082":[6,0,85,3], +"trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea":[6,0,85,1], +"trilateration_8c_source.html":[6,0,85], +"trilateration_8h.html":[6,0,86], +"trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832":[6,0,86,2], +"trilateration_8h.html#a4270371ead754327c478d19d57bfafba":[6,0,86,8], +"trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358":[6,0,86,4], +"trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe":[6,0,86,5], +"trilateration_8h.html#a95fc45efcb10019be21704539eeedefb":[6,0,86,0], +"trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758":[6,0,86,7], +"trilateration_8h.html#ab5f06e68df75b4708d722c268932578c":[6,0,86,6], +"trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082":[6,0,86,3], +"trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea":[6,0,86,1], +"trilateration_8h_source.html":[6,0,86], +"utils_8c.html":[6,0,87], +"utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5":[6,0,87,2], +"utils_8c.html#a335d8d6c4b945638261228cd116cccd6":[6,0,87,6], +"utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1":[6,0,87,5], +"utils_8c.html#a689d2d3db40d341609423404abc5a23a":[6,0,87,9], +"utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5":[6,0,87,10], +"utils_8c.html#a81dabd4841ab656130497f0600979850":[6,0,87,11], +"utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8":[6,0,87,1], +"utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee":[6,0,87,0], +"utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf":[6,0,87,7], +"utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d":[6,0,87,4], +"utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6":[6,0,87,3], +"utils_8c.html#ad21f654c48115ba2419ca98644a44ae9":[6,0,87,8], +"utils_8c_source.html":[6,0,87], +"utils_8h.html":[6,0,88], +"utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5":[6,0,88,3], +"utils_8h.html#a335d8d6c4b945638261228cd116cccd6":[6,0,88,7], +"utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1":[6,0,88,6], +"utils_8h.html#a689d2d3db40d341609423404abc5a23a":[6,0,88,10], +"utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5":[6,0,88,11], +"utils_8h.html#a81dabd4841ab656130497f0600979850":[6,0,88,12], +"utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8":[6,0,88,2], +"utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee":[6,0,88,1], +"utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf":[6,0,88,8], +"utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d":[6,0,88,5], +"utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6":[6,0,88,4], +"utils_8h.html#ad21f654c48115ba2419ca98644a44ae9":[6,0,88,9], +"utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3":[6,0,88,0], +"utils_8h_source.html":[6,0,88], +"utils__test_8c.html":[6,0,89], +"utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7":[6,0,89,0], +"utils__test_8c_source.html":[6,0,89], +"utils__test_8h.html":[6,0,90], +"utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7":[6,0,90,0], +"utils__test_8h_source.html":[6,0,90], +"vector_8c.html":[6,0,91], +"vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5":[6,0,91,16], +"vector_8c.html#a1348a041e323e7b333482242b51a7674":[6,0,91,4], +"vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac":[6,0,91,10], +"vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63":[6,0,91,22], +"vector_8c.html#a3c0bdd0e463fb34757a71470c55af845":[6,0,91,20], +"vector_8c.html#a421f989647bf55af29c0f55b7f33d35a":[6,0,91,23], +"vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba":[6,0,91,6], +"vector_8c.html#a4a8fae4c69677390016c116123d9eff8":[6,0,91,8], +"vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6":[6,0,91,9], +"vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e":[6,0,91,11], +"vector_8c.html#a8ec75dc585746d950ab517e9929f31fe":[6,0,91,18], +"vector_8c.html#a8f24286db94dba6ab181edcdfe296262":[6,0,91,17], +"vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4":[6,0,91,14], +"vector_8c.html#a92917951880002814392c2367896d7a0":[6,0,91,0], +"vector_8c.html#a982bc2f9e4755461eac46c6322b4562d":[6,0,91,7], +"vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6":[6,0,91,12], +"vector_8c.html#ab2827264910e858f238868695a92db4b":[6,0,91,3], +"vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9":[6,0,91,5], +"vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14":[6,0,91,1], +"vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b":[6,0,91,19], +"vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6":[6,0,91,2], +"vector_8c.html#af1767c4decdd472ed81035a19cf2152b":[6,0,91,13], +"vector_8c.html#af98f2e3896ce7b96d598b11033ac1795":[6,0,91,15], +"vector_8c.html#afc68fab0b07c974faf5a457d20b01c58":[6,0,91,21], +"vector_8c_source.html":[6,0,91], +"vector_8h.html":[6,0,92], +"vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5":[6,0,92,17], +"vector_8h.html#a1348a041e323e7b333482242b51a7674":[6,0,92,5], +"vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac":[6,0,92,11], +"vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63":[6,0,92,23], +"vector_8h.html#a3c0bdd0e463fb34757a71470c55af845":[6,0,92,21], +"vector_8h.html#a421f989647bf55af29c0f55b7f33d35a":[6,0,92,24], +"vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba":[6,0,92,7], +"vector_8h.html#a4a8fae4c69677390016c116123d9eff8":[6,0,92,9], +"vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6":[6,0,92,10], +"vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e":[6,0,92,12], +"vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17":[6,0,92,2], +"vector_8h.html#a8ec75dc585746d950ab517e9929f31fe":[6,0,92,19], +"vector_8h.html#a8f24286db94dba6ab181edcdfe296262":[6,0,92,18], +"vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4":[6,0,92,15], +"vector_8h.html#a92917951880002814392c2367896d7a0":[6,0,92,1], +"vector_8h.html#a982bc2f9e4755461eac46c6322b4562d":[6,0,92,8], +"vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6":[6,0,92,13], +"vector_8h.html#ab2827264910e858f238868695a92db4b":[6,0,92,4], +"vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9":[6,0,92,6], +"vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221":[6,0,92,0], +"vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b":[6,0,92,20], +"vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6":[6,0,92,3], +"vector_8h.html#af1767c4decdd472ed81035a19cf2152b":[6,0,92,14], +"vector_8h.html#af98f2e3896ce7b96d598b11033ac1795":[6,0,92,16], +"vector_8h.html#afc68fab0b07c974faf5a457d20b01c58":[6,0,92,22], +"vector_8h_source.html":[6,0,92], +"vector__test_8c.html":[6,0,93], +"vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21":[6,0,93,0], +"vector__test_8c_source.html":[6,0,93], +"vector__test_8h.html":[6,0,94], +"vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21":[6,0,94,0], +"vector__test_8h_source.html":[6,0,94] +}; diff --git a/doc/doxygen/html/navtreeindex3.js b/doc/doxygen/html/navtreeindex3.js new file mode 100644 index 0000000000000000000000000000000000000000..7e583befb85772378c3b805c91590a3542055972 --- /dev/null +++ b/doc/doxygen/html/navtreeindex3.js @@ -0,0 +1,16 @@ +var NAVTREEINDEX3 = +{ +"vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221":[6,0,1,0,0,1,0], +"vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b":[6,0,1,0,0,1,20], +"vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6":[6,0,1,0,0,1,3], +"vector_8h.html#af1767c4decdd472ed81035a19cf2152b":[6,0,1,0,0,1,14], +"vector_8h.html#af98f2e3896ce7b96d598b11033ac1795":[6,0,1,0,0,1,16], +"vector_8h.html#afc68fab0b07c974faf5a457d20b01c58":[6,0,1,0,0,1,22], +"vector_8h_source.html":[6,0,1,0,0,1], +"vector__test_8c.html":[6,0,0,0,0,2], +"vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21":[6,0,0,0,0,2,0], +"vector__test_8c_source.html":[6,0,0,0,0,2], +"vector__test_8h.html":[6,0,0,0,0,0,1], +"vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21":[6,0,0,0,0,0,1,0], +"vector__test_8h_source.html":[6,0,0,0,0,0,1] +}; diff --git a/doc/doxygen/html/newton__raphson_8c.html b/doc/doxygen/html/newton__raphson_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..5e9d0769d0931010579a52184bbc05449e025ea9 --- /dev/null +++ b/doc/doxygen/html/newton__raphson_8c.html @@ -0,0 +1,216 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: newton_raphson.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('newton__raphson_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">newton_raphson.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Newton–Raphson algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +</div> +<p><a href="newton__raphson_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ac6837f695990867bd72cf23ee93961cc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[], double eps, uint8_t max_it_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:ac6837f695990867bd72cf23ee93961cc"><td class="mdescLeft"> </td><td class="mdescRight">Implements the Newton–Raphson algorithm. <a href="newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc">More...</a><br /></td></tr> +<tr class="separator:ac6837f695990867bd72cf23ee93961cc"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Newton–Raphson algorithm. </p> +<p>The Newton–Raphson algorithm enables to solve multi-variant nonlinear equation systems.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="newton__raphson_8c_source.html">newton_raphson.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ac6837f695990867bd72cf23ee93961cc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac6837f695990867bd72cf23ee93961cc">◆ </a></span>newton_raphson()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t newton_raphson </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_it_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_arr[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_it_num</td><td>maximal iteration number of the Newton–Raphson algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_arr[]</td><td>estimated (solution) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="newton__raphson_8c_source.html#l00028">28</a> of file <a class="el" href="newton__raphson_8c_source.html">newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve_8c_source.html#l00029">fsolve()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="newton__raphson_8c.html">newton_raphson.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/newton__raphson_8c.js b/doc/doxygen/html/newton__raphson_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..a6f8597cdd82985735b452f998cc039d407e3da8 --- /dev/null +++ b/doc/doxygen/html/newton__raphson_8c.js @@ -0,0 +1,4 @@ +var newton__raphson_8c = +[ + [ "newton_raphson", "newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/newton__raphson_8c_source.html b/doc/doxygen/html/newton__raphson_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..25ace68a0eefdaa5178038114f8f2ea33190e23e --- /dev/null +++ b/doc/doxygen/html/newton__raphson_8c_source.html @@ -0,0 +1,168 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: newton_raphson.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('newton__raphson_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">newton_raphson.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="newton__raphson_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">//n is the size of x0 that is equal to the column number of J</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc"> 28</a></span> uint8_t <a class="code" href="newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a>(uint8_t f_length, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[],</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordtype">double</span> eps, uint8_t max_it_num, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[],</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[],</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t iter_num;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordtype">double</span> step;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> prev_x_arr[n];</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[f_length][n];</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_J[n][f_length];</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> delta_x[n];</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[f_length];</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, x0_arr, prev_x_arr);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  step = eps;</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  iter_num = 0;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">while</span> ((step >= eps) && (iter_num < max_it_num)) {</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// compute the Jacobian matrix for the prev_x_arr.</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  get_jacobian(prev_x_arr, J);</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="comment">// compute the inverse of J (J^-1)</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(f_length, n, J, pinv_J);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// compute the value of f(x)</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  get_non_lin_sys(prev_x_arr, f_vec);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">//delta_x = J1^-1*f(x)</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(n, f_length, pinv_J, f_vec, delta_x);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">//improve x: x = x - delta_x</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(n, prev_x_arr, delta_x, est_x_arr);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">//next step</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  step = <a class="code" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a>(n, est_x_arr, prev_x_arr);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">//update prev_x</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(n, est_x_arr, prev_x_arr);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  iter_num++;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> iter_num;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="avector_8h_html_abbb6bf046e47a8634c15c43a508cacb9"><div class="ttname"><a href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a></div><div class="ttdeci">vector_t vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[])</div><div class="ttdoc">Compute the Euclidean distance between two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00163">vector.c:163</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="anewton__raphson_8c_html_ac6837f695990867bd72cf23ee93961cc"><div class="ttname"><a href="newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a></div><div class="ttdeci">uint8_t newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Implements the Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="newton__raphson_8c_source.html#l00028">newton_raphson.c:28</a></div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="newton__raphson_8c.html">newton_raphson.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/newton__raphson_8h.html b/doc/doxygen/html/newton__raphson_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..5bf53fd2495719b556dff7f8080a09518c0e6ab9 --- /dev/null +++ b/doc/doxygen/html/newton__raphson_8h.html @@ -0,0 +1,216 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: newton_raphson.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('newton__raphson_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">newton_raphson.h File Reference<div class="ingroups"><a class="el" href="group__non__linear__algebra.html">NON_LINEAR_ALGEBRA</a> » <a class="el" href="group__solve__non__linear__equations.html">SOLVE_NON_LINEAR_EQUATIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Newton–Raphson algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="newton__raphson_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ac6837f695990867bd72cf23ee93961cc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a> (uint8_t f_length, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[], double eps, uint8_t max_it_num, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[], void(*get_non_lin_sys)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]), void(*get_jacobian)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]))</td></tr> +<tr class="memdesc:ac6837f695990867bd72cf23ee93961cc"><td class="mdescLeft"> </td><td class="mdescRight">Implements the Newton–Raphson algorithm. <a href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">More...</a><br /></td></tr> +<tr class="separator:ac6837f695990867bd72cf23ee93961cc"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Newton–Raphson algorithm. </p> +<p>The Newton–Raphson algorithm enables to solve multi-variant nonlinear equation systems.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="newton__raphson_8h_source.html">newton_raphson.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="ac6837f695990867bd72cf23ee93961cc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac6837f695990867bd72cf23ee93961cc">◆ </a></span>newton_raphson()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t newton_raphson </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>f_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>eps</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>max_it_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>est_x_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]) </td> + <td class="paramname"><em>get_non_lin_sys</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void(*)(<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]) </td> + <td class="paramname"><em>get_jacobian</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the Newton–Raphson algorithm. </p> +<p>The user should provide pointers to non-linear equation systems and Jacobian functions. </p><dl class="section note"><dt>Note</dt><dd>This function is generally implemented.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">f_length</td><td>length of the error functions vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>length of the start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_arr[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">eps</td><td>accuracy bound. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">max_it_num</td><td>maximal iteration number of the Newton–Raphson algorithm. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">est_x_arr[]</td><td>estimated (solution) vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_non_lin_sys)</td><td>pointer to non-linear equation systems. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">(*get_jacobian)</td><td>pointer to the Jacobian matrix.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>required iteration number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="newton__raphson_8c_source.html#l00028">28</a> of file <a class="el" href="newton__raphson_8c_source.html">newton_raphson.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="vector_8c_source.html#l00037">vector_copy()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="fsolve_8c_source.html#l00029">fsolve()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li><li class="navelem"><a class="el" href="newton__raphson_8h.html">newton_raphson.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/newton__raphson_8h.js b/doc/doxygen/html/newton__raphson_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..aba238d25119016a1212c61974e8a52db4eb41ec --- /dev/null +++ b/doc/doxygen/html/newton__raphson_8h.js @@ -0,0 +1,4 @@ +var newton__raphson_8h = +[ + [ "newton_raphson", "newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/newton__raphson_8h_source.html b/doc/doxygen/html/newton__raphson_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..6a8d60c6a8750acb0eb6da6a5684b5129eda1118 --- /dev/null +++ b/doc/doxygen/html/newton__raphson_8h_source.html @@ -0,0 +1,133 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: newton_raphson.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('newton__raphson_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">newton_raphson.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="newton__raphson_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef NEWTON_RAPHSON_H_</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define NEWTON_RAPHSON_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> uint8_t <a class="code" href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a>(uint8_t f_length, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_arr[],</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordtype">double</span> eps, uint8_t max_it_num, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> est_x_arr[],</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">void</span> (*get_non_lin_sys)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[]),</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">void</span> (*get_jacobian)(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][n]));</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif </span><span class="comment">/* NEWTON_RAPHSON_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="anewton__raphson_8h_html_ac6837f695990867bd72cf23ee93961cc"><div class="ttname"><a href="newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc">newton_raphson</a></div><div class="ttdeci">uint8_t newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]))</div><div class="ttdoc">Implements the Newton–Raphson algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="newton__raphson_8c_source.html#l00028">newton_raphson.c:28</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li><li class="navelem"><a class="el" href="newton__raphson_8h.html">newton_raphson.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/non__lin__eq__common_8h_source.html b/doc/doxygen/html/non__lin__eq__common_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c55a95c91ac723c7f1625e17ec3ffbce9c2b4fa0 --- /dev/null +++ b/doc/doxygen/html/non__lin__eq__common_8h_source.html @@ -0,0 +1,122 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: F:/temp/publish/RcdMathLib_full_fledged_devices_tmp/RcdMathLib_app/src/RcdMathLib/non_linear_algebra/solve_non_linear_equations/include/non_lin_eq_common.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('non__lin__eq__common_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">non_lin_eq_common.h</div> </div> +</div><!--header--> +<div class="contents"> +<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef NON_LIN_EQ_COMMON_H_</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#define NON_LIN_EQ_COMMON_H_</span></div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  </div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//#include "vector.h"</span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">//</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//typedef vector_t (*vec_t_func)(uint8_t length, ...);</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#endif </span><span class="comment">/* NON_LIN_EQ_COMMON_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_943f05c9b1835bace55f73b49add4eb5.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_96fb3641df0eaf7ad29b2346d426a787.html">solve_non_linear_equations</a></li><li class="navelem"><a class="el" href="dir_11810571c148016bdf8359f21ff128b1.html">include</a></li><li class="navelem"><b>non_lin_eq_common.h</b></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/norm__dist__rnd__generator_8c.html b/doc/doxygen/html/norm__dist__rnd__generator_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..30bb9136f31f91c890c1caa58dd6184aa9d4767b --- /dev/null +++ b/doc/doxygen/html/norm__dist__rnd__generator_8c.html @@ -0,0 +1,208 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: norm_dist_rnd_generator.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('norm__dist__rnd__generator_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">norm_dist_rnd_generator.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Generating normally distributed random numbers. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdlib.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="norm__dist__rnd__generator_8h_source.html">norm_dist_rnd_generator.h</a>"</code><br /> +</div> +<p><a href="norm__dist__rnd__generator_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a7c43c3270c6c14bb23f14d071f6132bf"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf">get_norm_distr_rand_num</a> (double mean_val, double std_dev_val)</td></tr> +<tr class="memdesc:a7c43c3270c6c14bb23f14d071f6132bf"><td class="mdescLeft"> </td><td class="mdescRight">Get a normally distributed random number by applying the Box–Muller method. <a href="norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf">More...</a><br /></td></tr> +<tr class="separator:a7c43c3270c6c14bb23f14d071f6132bf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5767383d0f4f1fed2c194695a22f56cb"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">get_rand_num</a> (int initial_seed_val)</td></tr> +<tr class="memdesc:a5767383d0f4f1fed2c194695a22f56cb"><td class="mdescLeft"> </td><td class="mdescRight">Generate uniform (0.0, 1.0) random numbers by using the Linear Congruential Generator (LGC) algorithm. <a href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">More...</a><br /></td></tr> +<tr class="separator:a5767383d0f4f1fed2c194695a22f56cb"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Generating normally distributed random numbers. </p> +<p>The generation of normally distributed random numbers is implemented by using the Box–Muller method.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="norm__dist__rnd__generator_8c_source.html">norm_dist_rnd_generator.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a7c43c3270c6c14bb23f14d071f6132bf"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a7c43c3270c6c14bb23f14d071f6132bf">◆ </a></span>get_norm_distr_rand_num()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double get_norm_distr_rand_num </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>mean_val</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>std_dev_val</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get a normally distributed random number by applying the Box–Muller method. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">mean_val</td><td>mean value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">std_dev_val</td><td>standard deviation.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>normally distributed random number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00040">40</a> of file <a class="el" href="norm__dist__rnd__generator_8c_source.html">norm_dist_rnd_generator.c</a>.</p> + +<p class="reference">References <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00080">get_rand_num()</a>, and <a class="el" href="norm__dist__rnd__generator_8h_source.html#l00033">PI</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +<a id="a5767383d0f4f1fed2c194695a22f56cb"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5767383d0f4f1fed2c194695a22f56cb">◆ </a></span>get_rand_num()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double get_rand_num </td> + <td>(</td> + <td class="paramtype">int </td> + <td class="paramname"><em>initial_seed_val</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Generate uniform (0.0, 1.0) random numbers by using the Linear Congruential Generator (LGC) algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>The LGC is implemented based on the following book: R. Jain, "The Art of Computer Systems Performance Analysis," John Wiley & Sons, 1991.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">initial_seed_val</td><td>initial seed value.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>random number between 0.0 and 1.0. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00080">80</a> of file <a class="el" href="norm__dist__rnd__generator_8c_source.html">norm_dist_rnd_generator.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00040">get_norm_distr_rand_num()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="norm__dist__rnd__generator_8c.html">norm_dist_rnd_generator.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/norm__dist__rnd__generator_8c.js b/doc/doxygen/html/norm__dist__rnd__generator_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..7ad89c5f3260e0b02a8f92faffbfb1914dc14547 --- /dev/null +++ b/doc/doxygen/html/norm__dist__rnd__generator_8c.js @@ -0,0 +1,5 @@ +var norm__dist__rnd__generator_8c = +[ + [ "get_norm_distr_rand_num", "norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf", null ], + [ "get_rand_num", "norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/norm__dist__rnd__generator_8c_source.html b/doc/doxygen/html/norm__dist__rnd__generator_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..767166a62f6d9d0ec7aed66f1a53d54b06f0858e --- /dev/null +++ b/doc/doxygen/html/norm__dist__rnd__generator_8c_source.html @@ -0,0 +1,181 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: norm_dist_rnd_generator.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('norm__dist__rnd__generator_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">norm_dist_rnd_generator.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="norm__dist__rnd__generator_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdlib.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf"> 40</a></span> <span class="keywordtype">double</span> <a class="code" href="norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf">get_norm_distr_rand_num</a>(<span class="keywordtype">double</span> mean_val, <span class="keywordtype">double</span> std_dev_val)</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordtype">double</span> u, r, theta;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordtype">double</span> x;</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">double</span> adj_norm_rv;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Generate a random value of u</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  u = 0.0;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">while</span> (u == 0.0) {</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  u = <a class="code" href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">get_rand_num</a>(0);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  r = sqrt(-2.0 * log(u));</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// Generate a random value of theta</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  theta = 0.0;</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">while</span> (theta == 0.0) {</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  theta = 2.0 * <a class="code" href="norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca">PI</a> * <a class="code" href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">get_rand_num</a>(0);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  x = r * cos(theta);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  adj_norm_rv = (x * std_dev_val) + mean_val;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> (adj_norm_rv);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb"> 80</a></span> <span class="keywordtype">double</span> <a class="code" href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">get_rand_num</a>(<span class="keywordtype">int</span> initial_seed_val)</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> <span class="keywordtype">long</span> a = 16807;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">const</span> <span class="keywordtype">long</span> m = 2147483647;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">const</span> <span class="keywordtype">long</span> q = 127773;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> <span class="keywordtype">long</span> r = 2836;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">static</span> <span class="keywordtype">long</span> x;</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">long</span> x_div_q;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">long</span> x_mod_q;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordtype">long</span> new_x;</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// Setting of the seed value</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (initial_seed_val > 0) {</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  x = initial_seed_val;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> (0.0);</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  x_div_q = x / q;</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  x_mod_q = x % q;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  new_x = (a * x_mod_q) - (r * x_div_q);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">if</span> (new_x > 0) {</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  x = new_x;</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  x = new_x + m;</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> ((<span class="keywordtype">double</span>)x / m);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="anorm__dist__rnd__generator_8c_html_a7c43c3270c6c14bb23f14d071f6132bf"><div class="ttname"><a href="norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf">get_norm_distr_rand_num</a></div><div class="ttdeci">double get_norm_distr_rand_num(double mean_val, double std_dev_val)</div><div class="ttdoc">Get a normally distributed random number by applying the Box–Muller method.</div><div class="ttdef"><b>Definition:</b> <a href="norm__dist__rnd__generator_8c_source.html#l00040">norm_dist_rnd_generator.c:40</a></div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8c_html_a5767383d0f4f1fed2c194695a22f56cb"><div class="ttname"><a href="norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb">get_rand_num</a></div><div class="ttdeci">double get_rand_num(int initial_seed_val)</div><div class="ttdoc">Generate uniform (0.0, 1.0) random numbers by using the Linear Congruential Generator (LGC) algorithm...</div><div class="ttdef"><b>Definition:</b> <a href="norm__dist__rnd__generator_8c_source.html#l00080">norm_dist_rnd_generator.c:80</a></div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html_a598a3330b3c21701223ee0ca14316eca"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca">PI</a></div><div class="ttdeci">#define PI</div><div class="ttdef"><b>Definition:</b> <a href="norm__dist__rnd__generator_8h_source.html#l00033">norm_dist_rnd_generator.h:33</a></div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a></div><div class="ttdoc">Generating normally distributed random numbers.</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_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="norm__dist__rnd__generator_8c.html">norm_dist_rnd_generator.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/norm__dist__rnd__generator_8h.html b/doc/doxygen/html/norm__dist__rnd__generator_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..4e90149c2c47154a9b046bad13819d996f93c58f --- /dev/null +++ b/doc/doxygen/html/norm__dist__rnd__generator_8h.html @@ -0,0 +1,229 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: norm_dist_rnd_generator.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('norm__dist__rnd__generator_8h.html','');}); +/* @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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">norm_dist_rnd_generator.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__utilities.html">UTILITIES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Generating normally distributed random numbers. +<a href="#details">More...</a></p> + +<p><a href="norm__dist__rnd__generator_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a598a3330b3c21701223ee0ca14316eca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca">PI</a>   3.14159265</td></tr> +<tr class="separator:a598a3330b3c21701223ee0ca14316eca"><td class="memSeparator" colspan="2"> </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:a35eb81d6885b8d16d225b230f88a919a"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">get_norm_distr_rand_num</a> (double mean, double std_dev)</td></tr> +<tr class="memdesc:a35eb81d6885b8d16d225b230f88a919a"><td class="mdescLeft"> </td><td class="mdescRight">Get a normally distributed random number by applying the Box–Muller method. <a href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">More...</a><br /></td></tr> +<tr class="separator:a35eb81d6885b8d16d225b230f88a919a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a58c36346c01fb7f1a336a610b177b903"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">get_rand_num</a> (int seed)</td></tr> +<tr class="memdesc:a58c36346c01fb7f1a336a610b177b903"><td class="mdescLeft"> </td><td class="mdescRight">Generate uniform (0.0, 1.0) random numbers by using the Linear Congruential Generator (LGC) algorithm. <a href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">More...</a><br /></td></tr> +<tr class="separator:a58c36346c01fb7f1a336a610b177b903"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Generating normally distributed random numbers. </p> +<p>The generation of normally distributed random numbers is implemented by using the Box–Muller method.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="norm__dist__rnd__generator_8h_source.html">norm_dist_rnd_generator.h</a>.</p> +</div><h2 class="groupheader">Macro Definition Documentation</h2> +<a id="a598a3330b3c21701223ee0ca14316eca"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a598a3330b3c21701223ee0ca14316eca">◆ </a></span>PI</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define PI   3.14159265</td> + </tr> + </table> +</div><div class="memdoc"> +<p>Pi, the ratio of a circle's circumference to its diameter. </p> + +<p class="definition">Definition at line <a class="el" href="norm__dist__rnd__generator_8h_source.html#l00033">33</a> of file <a class="el" href="norm__dist__rnd__generator_8h_source.html">norm_dist_rnd_generator.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a id="a35eb81d6885b8d16d225b230f88a919a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a35eb81d6885b8d16d225b230f88a919a">◆ </a></span>get_norm_distr_rand_num()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double get_norm_distr_rand_num </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>mean_val</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>std_dev_val</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get a normally distributed random number by applying the Box–Muller method. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">mean_val</td><td>mean value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">std_dev_val</td><td>standard deviation.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>normally distributed random number. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00040">40</a> of file <a class="el" href="norm__dist__rnd__generator_8c_source.html">norm_dist_rnd_generator.c</a>.</p> + +<p class="reference">References <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00080">get_rand_num()</a>, and <a class="el" href="norm__dist__rnd__generator_8h_source.html#l00033">PI</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +<a id="a58c36346c01fb7f1a336a610b177b903"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a58c36346c01fb7f1a336a610b177b903">◆ </a></span>get_rand_num()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double get_rand_num </td> + <td>(</td> + <td class="paramtype">int </td> + <td class="paramname"><em>initial_seed_val</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Generate uniform (0.0, 1.0) random numbers by using the Linear Congruential Generator (LGC) algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>The LGC is implemented based on the following book: R. Jain, "The Art of Computer Systems Performance Analysis," John Wiley & Sons, 1991.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">initial_seed_val</td><td>initial seed value.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>random number between 0.0 and 1.0. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00080">80</a> of file <a class="el" href="norm__dist__rnd__generator_8c_source.html">norm_dist_rnd_generator.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="norm__dist__rnd__generator_8c_source.html#l00040">get_norm_distr_rand_num()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00078">sim_UWB_dist()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/norm__dist__rnd__generator_8h.js b/doc/doxygen/html/norm__dist__rnd__generator_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..68dc07b8abb763b79378452a037e6c6a6494b327 --- /dev/null +++ b/doc/doxygen/html/norm__dist__rnd__generator_8h.js @@ -0,0 +1,6 @@ +var norm__dist__rnd__generator_8h = +[ + [ "PI", "norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca", null ], + [ "get_norm_distr_rand_num", "norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a", null ], + [ "get_rand_num", "norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/norm__dist__rnd__generator_8h_source.html b/doc/doxygen/html/norm__dist__rnd__generator_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..ef7a201e1f15bd53828835bd3cd13e183073f732 --- /dev/null +++ b/doc/doxygen/html/norm__dist__rnd__generator_8h_source.html @@ -0,0 +1,128 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: norm_dist_rnd_generator.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('norm__dist__rnd__generator_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">norm_dist_rnd_generator.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="norm__dist__rnd__generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// COMBINATORICS_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef NORM_DIST_RND_GENERATOR_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#define NORM_DIST_RND_GENERATOR_H_</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca"> 33</a></span> <span class="preprocessor">#define PI 3.14159265</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">double</span> <a class="code" href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">get_norm_distr_rand_num</a>(<span class="keywordtype">double</span> mean, <span class="keywordtype">double</span> std_dev);</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">double</span> <a class="code" href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">get_rand_num</a>(<span class="keywordtype">int</span> seed);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif </span><span class="comment">/* NORM_DIST_RND_GENERATOR_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html_a58c36346c01fb7f1a336a610b177b903"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903">get_rand_num</a></div><div class="ttdeci">double get_rand_num(int seed)</div><div class="ttdoc">Generate uniform (0.0, 1.0) random numbers by using the Linear Congruential Generator (LGC) algorithm...</div><div class="ttdef"><b>Definition:</b> <a href="norm__dist__rnd__generator_8c_source.html#l00080">norm_dist_rnd_generator.c:80</a></div></div> +<div class="ttc" id="anorm__dist__rnd__generator_8h_html_a35eb81d6885b8d16d225b230f88a919a"><div class="ttname"><a href="norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a">get_norm_distr_rand_num</a></div><div class="ttdeci">double get_norm_distr_rand_num(double mean, double std_dev)</div><div class="ttdoc">Get a normally distributed random number by applying the Box–Muller method.</div><div class="ttdef"><b>Definition:</b> <a href="norm__dist__rnd__generator_8c_source.html#l00040">norm_dist_rnd_generator.c:40</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="norm__dist__rnd__generator_8h.html">norm_dist_rnd_generator.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/open.png b/doc/doxygen/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b Binary files /dev/null and b/doc/doxygen/html/open.png differ diff --git a/doc/doxygen/html/optimization__test_8c.html b/doc/doxygen/html/optimization__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..44dc4c7fdd8319ab195137748413a34bc5efe541 --- /dev/null +++ b/doc/doxygen/html/optimization__test_8c.html @@ -0,0 +1,490 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: optimization_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('optimization__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">optimization_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of optimization algorithms. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="levenberg__marquardt_8h_source.html">levenberg_marquardt.h</a>"</code><br /> +<code>#include "<a class="el" href="modified__gauss__newton_8h_source.html">modified_gauss_newton.h</a>"</code><br /> +</div> +<p><a href="optimization__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ac7361316d224b72baa4a681297d9f51c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">optimization_get_J</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][3])</td></tr> +<tr class="memdesc:ac7361316d224b72baa4a681297d9f51c"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the Jacobian matrix of the function <a class="el" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_get_f_error</a>. <a href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">More...</a><br /></td></tr> +<tr class="separator:ac7361316d224b72baa4a681297d9f51c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a610651298b8018db96cf21ee31740d3b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_get_f_error</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> measured_data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</td></tr> +<tr class="memdesc:a610651298b8018db96cf21ee31740d3b"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the error vector of the approximation. <a href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">More...</a><br /></td></tr> +<tr class="separator:a610651298b8018db96cf21ee31740d3b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1062ae4598fabcf957ec0b855737db20"><td class="memItemLeft" align="right" valign="top"><a id="a1062ae4598fabcf957ec0b855737db20"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20">optimization_test</a> (void)</td></tr> +<tr class="memdesc:a1062ae4598fabcf957ec0b855737db20"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms using the LVM and GN algorithms. <br /></td></tr> +<tr class="separator:a1062ae4598fabcf957ec0b855737db20"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac11e842f01767e97924c100df684476d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_get_exp_f</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</td></tr> +<tr class="memdesc:ac11e842f01767e97924c100df684476d"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the error vector using exponential data. <a href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">More...</a><br /></td></tr> +<tr class="separator:ac11e842f01767e97924c100df684476d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a98fdeac6ec9a38cb63f48e7c0f0085f0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_get_exp_Jacobian</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][2])</td></tr> +<tr class="memdesc:a98fdeac6ec9a38cb63f48e7c0f0085f0"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the Jacobian matrix using exponential data. <a href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">More...</a><br /></td></tr> +<tr class="separator:a98fdeac6ec9a38cb63f48e7c0f0085f0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f1f1ed377535a6d4c5758c38174fcb9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_exponential_data_test</a> (void)</td></tr> +<tr class="memdesc:a5f1f1ed377535a6d4c5758c38174fcb9"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms using exponential data. <a href="optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9">More...</a><br /></td></tr> +<tr class="separator:a5f1f1ed377535a6d4c5758c38174fcb9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1daefb42bf903899e7e1d5237ba62c0b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_get_sin_f</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</td></tr> +<tr class="memdesc:a1daefb42bf903899e7e1d5237ba62c0b"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the error vector using sinusoidal data. <a href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">More...</a><br /></td></tr> +<tr class="separator:a1daefb42bf903899e7e1d5237ba62c0b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acb161b62c37921a9edd0cb7aeb76342a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_get_sin_Jacobian</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][4])</td></tr> +<tr class="memdesc:acb161b62c37921a9edd0cb7aeb76342a"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the Jacobian matrix using sinusoidal data. <a href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">More...</a><br /></td></tr> +<tr class="separator:acb161b62c37921a9edd0cb7aeb76342a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f89a9747d6a7bec1ad0a80ba31647b9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_sinusoidal_data_test</a> (void)</td></tr> +<tr class="memdesc:a5f89a9747d6a7bec1ad0a80ba31647b9"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms using sinusoidal data. <a href="optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9">More...</a><br /></td></tr> +<tr class="separator:a5f89a9747d6a7bec1ad0a80ba31647b9"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of optimization algorithms. </p> +<p>Optimization algorithms examples (see the <a class="el" href="modified__gauss__newton_8h.html">modified GN</a> and <a class="el" href="levenberg__marquardt_8h.html">LVM</a> optimization methods).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a5f1f1ed377535a6d4c5758c38174fcb9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f1f1ed377535a6d4c5758c38174fcb9">◆ </a></span>optimization_exponential_data_test()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_exponential_data_test </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Examples of optimization algorithms using exponential data. </p> +<p>The model function is: <img class="formulaInl" alt="$ g(\vec{x}, t) = x_1 \mathrm{e}^{x_2t}, $" src="form_4.png"/> where <img class="formulaInl" alt="$\vec{x} = [x_1, x_2]^T$" src="form_5.png"/> and <img class="formulaInl" alt="$ \vec{x_0} = [6,.3]$" src="form_6.png"/> is the initial guess. The data set is <img class="formulaInl" alt="$ d(t_i, y_i)$" src="form_7.png"/>, whereby <img class="formulaInl" alt="$ t_i $" src="form_8.png"/> is equal to <img class="formulaInl" alt="$ \lbrace 1, \hdots, 8 \rbrace$" src="form_9.png"/> and <img class="formulaInl" alt="$ y_i$" src="form_10.png"/> is equal to <img class="formulaInl" alt="$\lbrace 8.3, 11.0, 14.7, 19.7, 26.7, 35.2, 44.4, 55.9 \rbrace $" src="form_11.png"/>. </p> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00264">264</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="optimization__test_8c_source.html#l00215">optimization_get_exp_f()</a>, <a class="el" href="optimization__test_8c_source.html#l00251">optimization_get_exp_Jacobian()</a>, <a class="el" href="vector_8c_source.html#l00032">vector_clear()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="ac11e842f01767e97924c100df684476d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac11e842f01767e97924c100df684476d">◆ </a></span>optimization_get_exp_f()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_get_exp_f </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the error vector using exponential data. </p> +<p>The error function is: <img class="formulaInl" alt="$ \vec{f}(x_1, x_2) = \begin{bmatrix} x_1 \mathrm{e}^{x_2} - y_1, ~\hdots, x_1\mathrm{e}^{8x_2}-y_8 \end{bmatrix}^{T}, $" src="form_0.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">f_vec[]</td><td>calculated error vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00215">215</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>.</p> + +</div> +</div> +<a id="a98fdeac6ec9a38cb63f48e7c0f0085f0"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a98fdeac6ec9a38cb63f48e7c0f0085f0">◆ </a></span>optimization_get_exp_Jacobian()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_get_exp_Jacobian </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[][2] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the Jacobian matrix using exponential data. </p> +<p>The Jacobian matrix is: <img class="formulaInl" alt="$ {J_f} = \begin{bmatrix} \frac{\partial f_1}{\partial x1} & \frac{\partial f_1}{\partial x_2} \\ \frac{\partial f_2}{\partial x1} & \frac{\partial f_2}{\partial x_2} \\ \vdots & \vdots & \\ \frac{\partial f_n}{\partial x1} & \frac{\partial f_n}{\partial x_2} \\ \end{bmatrix} = \begin{bmatrix} \mathrm{e}^{x_2} & \mathrm{e}^{x_2} x_1\\ \mathrm{e}^{2 x_2} & 2\mathrm{e}^{2x_2} x_1 \\ \vdots & \vdots & \\ \mathrm{e}^{8 x_2} & 8\mathrm{e}^{8x_2} x_1 \\ \end{bmatrix}. $" src="form_1.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">J[]</td><td>Jacobian matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00251">251</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>.</p> + +</div> +</div> +<a id="a610651298b8018db96cf21ee31740d3b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a610651298b8018db96cf21ee31740d3b">◆ </a></span>optimization_get_f_error()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_get_f_error </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>measured_data_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the error vector of the approximation. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_vec[]</td><td>start values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">measured_data_vec[]</td><td>measured data vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">f_vec[]</td><td>calculated error vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00070">70</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>.</p> + +</div> +</div> +<a id="ac7361316d224b72baa4a681297d9f51c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac7361316d224b72baa4a681297d9f51c">◆ </a></span>optimization_get_J()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_get_J </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x0_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[][3] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the Jacobian matrix of the function <a class="el" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_get_f_error</a>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x0_vec[]</td><td>start values. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">J[][]</td><td>calculated Jacobian matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00039">39</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>.</p> + +</div> +</div> +<a id="a1daefb42bf903899e7e1d5237ba62c0b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1daefb42bf903899e7e1d5237ba62c0b">◆ </a></span>optimization_get_sin_f()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_get_sin_f </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>data_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>f_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the error vector using sinusoidal data. </p> +<p>The error function is: <img class="formulaInl" alt="$ \vec{f}(x_1, x_2, x_3, x_4)= \begin{bmatrix} x_1 \sin\left( x_2 +x_3\right) +x_4 - y_1 \\ \vdots \\ x_1 \sin\left( 12 x_2 +x_3\right) +x_4 - y_{12} \end{bmatrix}. $" src="form_2.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">data_vec[]</td><td>data vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">f_vec[]</td><td>calculated error vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00325">325</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>.</p> + +</div> +</div> +<a id="acb161b62c37921a9edd0cb7aeb76342a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acb161b62c37921a9edd0cb7aeb76342a">◆ </a></span>optimization_get_sin_Jacobian()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_get_sin_Jacobian </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>x_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>J</em>[][4] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the Jacobian matrix using sinusoidal data. </p> +<p>The Jacobian matrix is <img class="formulaInl" alt="$ J_f = \left[\begin{matrix} \sin\left( x_2 +x_3\right) & x_1 \cos\left( x_2 +x_3\right) & x_1\cos\left( x_2 +x_3\right) \\ \sin\left( 2 x_2 +x_3\right) & 2 x_1 \cos\left( 2 x_2 +x_3\right) & x_1 \cos\left( 2 x_2 +x_3\right)\\ \vdots & \vdots \\ \sin\left( 12 x_2 +x_3\right) & 12 x_1 \cos\left( 12 x_2 +x_3\right) & x_1 \cos\left( 12 x_2 +x_3\right) \end{matrix}\right]. $" src="form_3.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x_vec[]</td><td>start vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">J[]</td><td>Jacobian matrix. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00360">360</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>.</p> + +</div> +</div> +<a id="a5f89a9747d6a7bec1ad0a80ba31647b9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f89a9747d6a7bec1ad0a80ba31647b9">◆ </a></span>optimization_sinusoidal_data_test()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_sinusoidal_data_test </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Examples of optimization algorithms using sinusoidal data. </p> +<p>The model function is: <img class="formulaInl" alt="$ g(\vec{x}, t) = x_1 \sin\left( x_2t +x_3\right) + x_4, $" src="form_12.png"/> whereby <img class="formulaInl" alt="$\vec{x} = [x_1, x_2, x_3, x_4]^T$" src="form_13.png"/> and <img class="formulaInl" alt="$\vec{x_0} = [17, 0.5, 10.5, 77]$" src="form_14.png"/> is the initial guess. The set of data points is <img class="formulaInl" alt="$ d(t_i, y_i) $" src="form_15.png"/>, where <img class="formulaInl" alt="$t_i $" src="form_16.png"/> is equal to <img class="formulaInl" alt="$\lbrace 1, \hdots, 12 \rbrace$" src="form_17.png"/> and <img class="formulaInl" alt="$y_i$" src="form_18.png"/> is equal to <img class="formulaInl" alt="$\lbrace 61, 65, 72, 78, 85, 90, 92, 92, 88, 81, 72, 63 \rbrace$" src="form_19.png"/>. </p> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00376">376</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="optimization__test_8c_source.html#l00325">optimization_get_sin_f()</a>, <a class="el" href="optimization__test_8c_source.html#l00360">optimization_get_sin_Jacobian()</a>, <a class="el" href="vector_8c_source.html#l00032">vector_clear()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_639c02752b2f8f0dbd6bec97ff3b969d.html">optimization</a></li><li class="navelem"><a class="el" href="optimization__test_8c.html">optimization_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/optimization__test_8c.js b/doc/doxygen/html/optimization__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..fa020a20e779a93543772cad6d8ab1e9cb25b306 --- /dev/null +++ b/doc/doxygen/html/optimization__test_8c.js @@ -0,0 +1,12 @@ +var optimization__test_8c = +[ + [ "optimization_exponential_data_test", "optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9", null ], + [ "optimization_get_exp_f", "optimization__test_8c.html#ac11e842f01767e97924c100df684476d", null ], + [ "optimization_get_exp_Jacobian", "optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0", null ], + [ "optimization_get_f_error", "optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b", null ], + [ "optimization_get_J", "optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c", null ], + [ "optimization_get_sin_f", "optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b", null ], + [ "optimization_get_sin_Jacobian", "optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a", null ], + [ "optimization_sinusoidal_data_test", "optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9", null ], + [ "optimization_test", "optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/optimization__test_8c_source.html b/doc/doxygen/html/optimization__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..b7ec9a47f5f3d4156506cb27627e775c366730dc --- /dev/null +++ b/doc/doxygen/html/optimization__test_8c_source.html @@ -0,0 +1,442 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: optimization_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('optimization__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">optimization_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="optimization__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c"> 39</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">optimization_get_J</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][3])</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  uint8_t i;</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> denom;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  uint8_t row_num = 4;</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_value_matrix[4][3] = { { 0, 0, 1.67 },</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  { 4.5, 0, 0.75 },</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  { 4.5, 4.45, 0.75 },</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  { 0, 4.92, 0.86 } };</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">for</span> (i = 0; i < row_num; i++) {</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  denom = sqrt(pow(x0_vec[0] - ref_value_matrix[i][0], 2) +</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  pow(x0_vec[1] - ref_value_matrix[i][1], 2) +</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  pow(x0_vec[2] - ref_value_matrix[i][2], 2));</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span> (denom != 0) {</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  J[i][0] = (x0_vec[0] - ref_value_matrix[i][0]) / denom;</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  J[i][1] = (x0_vec[1] - ref_value_matrix[i][1]) / denom;</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  J[i][2] = (x0_vec[2] - ref_value_matrix[i][2]) / denom;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b"> 70</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_get_f_error</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x0_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> measured_data_vec[],</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> {</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  uint8_t i;</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  uint8_t row_num = 4;</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_point_mat[4][3] = { { 0, 0, 1.67 },</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  { 4.5, 0, 0.75 },</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  { 4.5, 4.45, 0.75 },</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  { 0, 4.92, 0.86 } };</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span> (i = 0; i < row_num; i++) {</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  f_vec[i] =</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  sqrt(</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  (x0_vec[0] - ref_point_mat[i][0])</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  * (x0_vec[0]</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  - ref_point_mat[i][0])</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  +</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  (x0_vec[1]</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  - ref_point_mat[i][1])</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  * (x0_vec[1]</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  - ref_point_mat[i][1])</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  +</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  (x0_vec[2]</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  - ref_point_mat[i][2])</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  * (x0_vec[2]</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  - ref_point_mat[i][2])</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  )</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  - measured_data_vec[i];</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div> +<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20"> 101</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20">optimization_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> {</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  puts(</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="stringliteral">"***************** Optimization test *****************"</span>);</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> true_values_matrix[9][3] = {</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  { 1, 1, 0 }, <span class="comment">// T1</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  { 1, 2, 0 }, <span class="comment">// T2</span></div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  { 1, 3, 0 }, <span class="comment">// T3</span></div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  { 2, 1, 0 }, <span class="comment">// T4</span></div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  { 2, 2, 0 }, <span class="comment">// T5</span></div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  { 2, 3, 0 }, <span class="comment">// T6</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  { 3, 1, 0 }, <span class="comment">// T7</span></div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  { 3, 2, 0 }, <span class="comment">// T8</span></div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  { 3, 3, 0 }, <span class="comment">// T9</span></div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  };</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x0_matrix[9][3] = {</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  { 0.9645166, 0.9894337, -0.1127879 }, <span class="comment">// X0_1</span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  { 0.9706874, 1.9937843, -0.0767517 }, <span class="comment">// X0_2</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  { 0.9759567, 2.9980380, -0.0421651 }, <span class="comment">// X0_3</span></div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  { 1.9666907, 0.9892634, -0.1184331 }, <span class="comment">// X0_4</span></div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  { 1.9734193, 1.9945307, -0.0776960 }, <span class="comment">// X0_5</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  { 1.9791861, 2.9997600, -0.0385668 }, <span class="comment">// X0_6</span></div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  { 2.9676093, 0.9886335, -0.1290797 }, <span class="comment">// X0_7</span></div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  { 2.9749588, 1.9950495, -0.0824135 }, <span class="comment">// X0_8</span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  { 2.9814874, 3.0015139, -0.0370967 }, <span class="comment">// X0_9</span></div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  };</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> measured_values_matrix[9][4] = {</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  { 2.189355547, 3.732117187, 4.992518309, 4.126940038 }, <span class="comment">// M1</span></div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  { 2.791860082, 4.115904867, 4.358726079, 3.195059925 }, <span class="comment">// M2</span></div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  { 3.577157155, 4.685985423, 3.883094303, 2.320377599 }, <span class="comment">// M3</span></div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  { 2.791860082, 2.810684972, 4.347183679, 4.474971454 }, <span class="comment">// M4</span></div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  { 3.285646100, 3.303836609, 3.600904464, 3.633252051 }, <span class="comment">// M5</span></div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  { 3.974524884, 3.992093430, 3.006899725, 2.893757310 }, <span class="comment">// M6</span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  { 3.577157155, 1.968162419, 3.857113556, 5.001588788 }, <span class="comment">// M7</span></div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  { 3.974524884, 2.625676627, 2.990106568, 4.264874121 }, <span class="comment">// M8</span></div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  { 4.560484620, 3.452531771, 2.238079928, 3.655150652 }, <span class="comment">// M9</span></div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  };</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  uint8_t vector_values_num = 9;</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  uint8_t f_length = 4;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  uint8_t i;</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">//GN & LVM-parameters</span></div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin = 1e-11;</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = 1e-3;</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0 = 0.2;</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1 = 0.8;</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau = 1e-6;</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  uint8_t max_iter_num = 100;</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  uint8_t iter_num;</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_values_vec[3];</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  printf(<span class="stringliteral">"\nseeked_values_matrix = "</span>);</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(vector_values_num, 3, true_values_matrix, 7, 3);</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  puts(<span class="stringliteral">"############## PARAMETERS #################"</span>);</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  printf(<span class="stringliteral">"eps = %.0e\ntau = %.0e\nfmin = %.0e\n"</span>, eps, tau, fmin);</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">for</span> (i = 0; i < vector_values_num; i++) {</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> /************************************** Gauss-Newton **************************************/</span></div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  printf(</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="stringliteral">"\n----------------------------------------- T%u ----------------------------------\n"</span>,</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  i + 1);</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  printf(<span class="stringliteral">"true vector value = {%.4f, %.4f, %.4f}\n"</span>,</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  true_values_matrix[i][0],</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  true_values_matrix[i][1],</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  true_values_matrix[i][2]);</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  printf(<span class="stringliteral">"start vector value = "</span>);</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, x0_matrix[i], 5, 7);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  iter_num = <a class="code" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>(f_length, 3, x0_matrix[i],</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  measured_values_matrix[i], eps, fmin,</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  max_iter_num, est_values_vec,</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  &<a class="code" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_get_f_error</a>, &<a class="code" href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">optimization_get_J</a>);</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  printf(<span class="stringliteral">"Gauss-Newton solution = "</span>);</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, est_values_vec, 5, 7);</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  printf(<span class="stringliteral">"iteration number = %u\n"</span>, iter_num);</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>((uint8_t)3, est_values_vec);</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  iter_num = <a class="code" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a>(f_length, 3, x0_matrix[i],</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  measured_values_matrix[i], eps, tau,</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  beta0, beta1, max_iter_num,</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  est_values_vec, &<a class="code" href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_get_f_error</a>,</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">optimization_get_J</a>);</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  printf(<span class="stringliteral">"Levenberg-Marquardt solution = "</span>);</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, est_values_vec, 5, 7);</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  printf(<span class="stringliteral">"iteration number = %u"</span>, iter_num);</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  }</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> }</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  </div> +<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d"> 215</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_get_exp_f</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> {</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2;</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  uint8_t i;</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">for</span> (i = 1; i < 9; i++) {</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  f_vec[i - 1] = x1 * exp(i * x2) - data_vec[i - 1];</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> }</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div> +<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0"> 251</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_get_exp_Jacobian</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][2])</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> {</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2;</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  uint8_t i;</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">for</span> (i = 1; i < 9; i++) {</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  J[i - 1][0] = exp(i * x2);</div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  J[i - 1][1] = i * x1 * exp(i * x2);</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> }</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div> +<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9"> 264</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_exponential_data_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> {</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> d_vec[] = { 8.3, 11.0, 14.7, 19.7, 26.7, 35.2, 44.4, 55.9 };</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_x_vec[] = { 6, .3 };</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[8];</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[8][2];</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">// Parameters of GNM & LVM</span></div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0 = 0.2;</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1 = 0.8;</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = 1e-3;</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau = 1e-6;</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_min = 1e-11;</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  uint8_t max_it_num = 3;</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  uint8_t iter_num = 0;</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_x_vec[2];</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_get_exp_f</a>(start_x_vec, d_vec, f_vec);</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_get_exp_Jacobian</a>(start_x_vec, J);</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  puts(</div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="stringliteral">"\n\n############### Test Gauss-Newton & LVM algorithms ###############"</span>);</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  puts(<span class="stringliteral">"\nExponential Data:"</span>);</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  iter_num = <a class="code" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>(8, 2, start_x_vec, d_vec, eps, f_min,</div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  max_it_num, est_x_vec,</div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  &<a class="code" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_get_exp_f</a>,</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  &<a class="code" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_get_exp_Jacobian</a>);</div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  printf(<span class="stringliteral">"start value = {%.6f, %.6f}\n"</span>, start_x_vec[0], start_x_vec[1]);</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  printf(<span class="stringliteral">"Gauss-Newton solution = {%.6f, %.6f}\n"</span>, est_x_vec[0], est_x_vec[1]);</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  iter_num = 0;</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(2, est_x_vec);</div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  iter_num = <a class="code" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a>(8, 2, start_x_vec, d_vec, eps, tau,</div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  beta0, beta1, max_it_num,</div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  est_x_vec, &<a class="code" href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_get_exp_f</a>,</div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  &<a class="code" href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_get_exp_Jacobian</a>);</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  printf(<span class="stringliteral">"Levenberg-Marquardt solution = {%.6f, %.6f}\n"</span>, est_x_vec[0],</div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  est_x_vec[1]);</div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> }</div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  </div> +<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b"> 325</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_get_sin_f</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> data_vec[],</div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[])</div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> {</div> +<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2, x3, x4;</div> +<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  uint8_t i;</div> +<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  </div> +<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  x3 = x_vec[2];</div> +<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  x4 = x_vec[3];</div> +<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">for</span> (i = 1; i < 13; i++) {</div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  f_vec[i - 1] = x1 * sin(x2 * i + x3) + x4 - data_vec[i - 1];</div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> }</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div> +<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a"> 360</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_get_sin_Jacobian</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[][4])</div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> {</div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> x1, x2, x3;</div> +<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  uint8_t i;</div> +<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  </div> +<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  x1 = x_vec[0];</div> +<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  x2 = x_vec[1];</div> +<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  x3 = x_vec[2];</div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">for</span> (i = 1; i < 13; i++) {</div> +<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  J[i - 1][0] = sin(i * x2 + x3);</div> +<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  J[i - 1][1] = i * x1 * cos(i * x2 + x3);</div> +<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  J[i - 1][2] = x1 * cos(i * x2 + x3);</div> +<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  J[i - 1][3] = 1;</div> +<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div> +<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> }</div> +<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div> +<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9"> 376</a></span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_sinusoidal_data_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> {</div> +<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> d_vec[] = { 61, 65, 72, 78, 85, 90, 92, 92, 88, 81, 72, 63 };</div> +<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_x_vec[] = { 17, 0.5, 10.5, 77 };</div> +<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> f_vec[12];</div> +<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> J[12][4];</div> +<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div> +<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="comment">// Parameters of GNM & LVM</span></div> +<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0 = 0.2;</div> +<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1 = 0.8;</div> +<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = 1e-3;</div> +<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau = 1e-6;</div> +<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_min = 1e-11;</div> +<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  uint8_t max_it_num = 2;</div> +<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  uint8_t iter_num = 0;</div> +<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> est_x_vec[4];</div> +<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  </div> +<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_get_sin_f</a>(start_x_vec, d_vec, f_vec);</div> +<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_get_sin_Jacobian</a>(start_x_vec, J);</div> +<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div> +<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="comment">// puts("############### Test Gauss-Newton & LVM algorithms ###############");</span></div> +<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  puts(<span class="stringliteral">"\nSinusoidal Data:"</span>);</div> +<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  iter_num = <a class="code" href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a>(12, 4, start_x_vec, d_vec, eps, f_min,</div> +<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  max_it_num, est_x_vec,</div> +<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  &<a class="code" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_get_sin_f</a>,</div> +<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  &<a class="code" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_get_sin_Jacobian</a>);</div> +<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  printf(<span class="stringliteral">"start value = {%.6f, %.6f, %.6f, %.6f}\n"</span>, start_x_vec[0],</div> +<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  start_x_vec[1],</div> +<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  start_x_vec[2], start_x_vec[3]);</div> +<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  printf(<span class="stringliteral">"Gauss-Newton solution = {%.6f, %.6f, %.6f, %.6f}\n"</span>, est_x_vec[0],</div> +<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  est_x_vec[1],</div> +<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  est_x_vec[2], est_x_vec[3]);</div> +<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div> +<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  iter_num = 0;</div> +<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(4, est_x_vec);</div> +<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  </div> +<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  iter_num = <a class="code" href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a>(12, 4, start_x_vec, d_vec, eps, tau,</div> +<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  beta0, beta1, max_it_num,</div> +<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  est_x_vec, &<a class="code" href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_get_sin_f</a>,</div> +<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  &<a class="code" href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_get_sin_Jacobian</a>);</div> +<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  printf(<span class="stringliteral">"Levenberg-Marquardt solution = {%.6f, %.6f, %.6f, %.6f}\n"</span>, est_x_vec[0],</div> +<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  est_x_vec[1],</div> +<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  est_x_vec[2], est_x_vec[3]);</div> +<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  printf(<span class="stringliteral">"iteration number = %d\n"</span>, iter_num);</div> +<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="aoptimization__test_8c_html_a1062ae4598fabcf957ec0b855737db20"><div class="ttname"><a href="optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20">optimization_test</a></div><div class="ttdeci">void optimization_test(void)</div><div class="ttdoc">Examples of optimization algorithms using the LVM and GN algorithms.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00101">optimization_test.c:101</a></div></div> +<div class="ttc" id="amodified__gauss__newton_8h_html_a7376799043ad2c27fac02371624051bc"><div class="ttname"><a href="modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc">modified_gauss_newton</a></div><div class="ttdeci">uint8_t modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the modified Gauss–Newton algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton.c:32</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="aoptimization__test_8c_html_ac11e842f01767e97924c100df684476d"><div class="ttname"><a href="optimization__test_8c.html#ac11e842f01767e97924c100df684476d">optimization_get_exp_f</a></div><div class="ttdeci">void optimization_get_exp_f(vector_t x_vec[], vector_t data_vec[], vector_t f_vec[])</div><div class="ttdoc">Calculate the error vector using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00215">optimization_test.c:215</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aoptimization__test_8c_html_acb161b62c37921a9edd0cb7aeb76342a"><div class="ttname"><a href="optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a">optimization_get_sin_Jacobian</a></div><div class="ttdeci">void optimization_get_sin_Jacobian(vector_t x_vec[], matrix_t J[][4])</div><div class="ttdoc">Calculate the Jacobian matrix using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00360">optimization_test.c:360</a></div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="alevenberg__marquardt_8h_html"><div class="ttname"><a href="levenberg__marquardt_8h.html">levenberg_marquardt.h</a></div><div class="ttdoc">Implement the Levenberg–Marquardt (LVM) algorithm.</div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="aoptimization__test_8c_html_a1daefb42bf903899e7e1d5237ba62c0b"><div class="ttname"><a href="optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b">optimization_get_sin_f</a></div><div class="ttdeci">void optimization_get_sin_f(vector_t x_vec[], vector_t data_vec[], vector_t f_vec[])</div><div class="ttdoc">Calculate the error vector using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00325">optimization_test.c:325</a></div></div> +<div class="ttc" id="aoptimization__test_8c_html_a98fdeac6ec9a38cb63f48e7c0f0085f0"><div class="ttname"><a href="optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0">optimization_get_exp_Jacobian</a></div><div class="ttdeci">void optimization_get_exp_Jacobian(vector_t x_vec[], matrix_t J[][2])</div><div class="ttdoc">Calculate the Jacobian matrix using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00251">optimization_test.c:251</a></div></div> +<div class="ttc" id="aoptimization__test_8c_html_a610651298b8018db96cf21ee31740d3b"><div class="ttname"><a href="optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b">optimization_get_f_error</a></div><div class="ttdeci">void optimization_get_f_error(vector_t x0_vec[], vector_t measured_data_vec[], vector_t f_vec[])</div><div class="ttdoc">Calculate the error vector of the approximation.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00070">optimization_test.c:70</a></div></div> +<div class="ttc" id="aoptimization__test_8c_html_ac7361316d224b72baa4a681297d9f51c"><div class="ttname"><a href="optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c">optimization_get_J</a></div><div class="ttdeci">void optimization_get_J(vector_t x0_vec[], matrix_t J[][3])</div><div class="ttdoc">Calculate the Jacobian matrix of the function optimization_get_f_error.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00039">optimization_test.c:39</a></div></div> +<div class="ttc" id="alevenberg__marquardt_8h_html_a2a72b2b6be15a9998b61a9c0097e3d5f"><div class="ttname"><a href="levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f">opt_levenberg_marquardt</a></div><div class="ttdeci">uint8_t opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="levenberg__marquardt_8c_source.html#l00143">levenberg_marquardt.c:143</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amodified__gauss__newton_8h_html"><div class="ttname"><a href="modified__gauss__newton_8h.html">modified_gauss_newton.h</a></div><div class="ttdoc">Implement the Gauss–Newton algorithm.</div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="aoptimization__test_8c_html_a5f1f1ed377535a6d4c5758c38174fcb9"><div class="ttname"><a href="optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_exponential_data_test</a></div><div class="ttdeci">void optimization_exponential_data_test(void)</div><div class="ttdoc">Examples of optimization algorithms using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00264">optimization_test.c:264</a></div></div> +<div class="ttc" id="aoptimization__test_8c_html_a5f89a9747d6a7bec1ad0a80ba31647b9"><div class="ttname"><a href="optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_sinusoidal_data_test</a></div><div class="ttdeci">void optimization_sinusoidal_data_test(void)</div><div class="ttdoc">Examples of optimization algorithms using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00376">optimization_test.c:376</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_639c02752b2f8f0dbd6bec97ff3b969d.html">optimization</a></li><li class="navelem"><a class="el" href="optimization__test_8c.html">optimization_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/optimization__test_8h.html b/doc/doxygen/html/optimization__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..b5a940c8539cf7486596a0931d55e653dea11cbd --- /dev/null +++ b/doc/doxygen/html/optimization__test_8h.html @@ -0,0 +1,183 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: optimization_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('optimization__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">optimization_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of optimization algorithms. +<a href="#details">More...</a></p> + +<p><a href="optimization__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a1062ae4598fabcf957ec0b855737db20"><td class="memItemLeft" align="right" valign="top"><a id="a1062ae4598fabcf957ec0b855737db20"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20">optimization_test</a> (void)</td></tr> +<tr class="memdesc:a1062ae4598fabcf957ec0b855737db20"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms using the LVM and GN algorithms. <br /></td></tr> +<tr class="separator:a1062ae4598fabcf957ec0b855737db20"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f1f1ed377535a6d4c5758c38174fcb9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_exponential_data_test</a> (void)</td></tr> +<tr class="memdesc:a5f1f1ed377535a6d4c5758c38174fcb9"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms using exponential data. <a href="optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9">More...</a><br /></td></tr> +<tr class="separator:a5f1f1ed377535a6d4c5758c38174fcb9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f89a9747d6a7bec1ad0a80ba31647b9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_sinusoidal_data_test</a> (void)</td></tr> +<tr class="memdesc:a5f89a9747d6a7bec1ad0a80ba31647b9"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms using sinusoidal data. <a href="optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9">More...</a><br /></td></tr> +<tr class="separator:a5f89a9747d6a7bec1ad0a80ba31647b9"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of optimization algorithms. </p> +<p>Optimization algorithms examples (see the <a class="el" href="modified__gauss__newton_8h.html">modified GN</a> and <a class="el" href="levenberg__marquardt_8h.html">LVM</a> optimization methods).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="optimization__test_8h_source.html">optimization_test.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a5f1f1ed377535a6d4c5758c38174fcb9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f1f1ed377535a6d4c5758c38174fcb9">◆ </a></span>optimization_exponential_data_test()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_exponential_data_test </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Examples of optimization algorithms using exponential data. </p> +<p>The model function is: <img class="formulaInl" alt="$ g(\vec{x}, t) = x_1 \mathrm{e}^{x_2t}, $" src="form_4.png"/> where <img class="formulaInl" alt="$\vec{x} = [x_1, x_2]^T$" src="form_5.png"/> and <img class="formulaInl" alt="$ \vec{x_0} = [6,.3]$" src="form_6.png"/> is the initial guess. The data set is <img class="formulaInl" alt="$ d(t_i, y_i)$" src="form_7.png"/>, whereby <img class="formulaInl" alt="$ t_i $" src="form_8.png"/> is equal to <img class="formulaInl" alt="$ \lbrace 1, \hdots, 8 \rbrace$" src="form_9.png"/> and <img class="formulaInl" alt="$ y_i$" src="form_10.png"/> is equal to <img class="formulaInl" alt="$\lbrace 8.3, 11.0, 14.7, 19.7, 26.7, 35.2, 44.4, 55.9 \rbrace $" src="form_11.png"/>. </p> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00264">264</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="optimization__test_8c_source.html#l00215">optimization_get_exp_f()</a>, <a class="el" href="optimization__test_8c_source.html#l00251">optimization_get_exp_Jacobian()</a>, <a class="el" href="vector_8c_source.html#l00032">vector_clear()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="a5f89a9747d6a7bec1ad0a80ba31647b9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f89a9747d6a7bec1ad0a80ba31647b9">◆ </a></span>optimization_sinusoidal_data_test()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void optimization_sinusoidal_data_test </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Examples of optimization algorithms using sinusoidal data. </p> +<p>The model function is: <img class="formulaInl" alt="$ g(\vec{x}, t) = x_1 \sin\left( x_2t +x_3\right) + x_4, $" src="form_12.png"/> whereby <img class="formulaInl" alt="$\vec{x} = [x_1, x_2, x_3, x_4]^T$" src="form_13.png"/> and <img class="formulaInl" alt="$\vec{x_0} = [17, 0.5, 10.5, 77]$" src="form_14.png"/> is the initial guess. The set of data points is <img class="formulaInl" alt="$ d(t_i, y_i) $" src="form_15.png"/>, where <img class="formulaInl" alt="$t_i $" src="form_16.png"/> is equal to <img class="formulaInl" alt="$\lbrace 1, \hdots, 12 \rbrace$" src="form_17.png"/> and <img class="formulaInl" alt="$y_i$" src="form_18.png"/> is equal to <img class="formulaInl" alt="$\lbrace 61, 65, 72, 78, 85, 90, 92, 92, 88, 81, 72, 63 \rbrace$" src="form_19.png"/>. </p> + +<p class="definition">Definition at line <a class="el" href="optimization__test_8c_source.html#l00376">376</a> of file <a class="el" href="optimization__test_8c_source.html">optimization_test.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="optimization__test_8c_source.html#l00325">optimization_get_sin_f()</a>, <a class="el" href="optimization__test_8c_source.html#l00360">optimization_get_sin_Jacobian()</a>, <a class="el" href="vector_8c_source.html#l00032">vector_clear()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_639c02752b2f8f0dbd6bec97ff3b969d.html">optimization</a></li><li class="navelem"><a class="el" href="dir_623d500f3964709be0a6b3ba8db96a1c.html">include</a></li><li class="navelem"><a class="el" href="optimization__test_8h.html">optimization_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/optimization__test_8h.js b/doc/doxygen/html/optimization__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..68bad3593a94d80549e960cbe63b1e52da1861bd --- /dev/null +++ b/doc/doxygen/html/optimization__test_8h.js @@ -0,0 +1,6 @@ +var optimization__test_8h = +[ + [ "optimization_exponential_data_test", "optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9", null ], + [ "optimization_sinusoidal_data_test", "optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9", null ], + [ "optimization_test", "optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/optimization__test_8h_source.html b/doc/doxygen/html/optimization__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c96f190542979b7712204b9cf0f8bffaf6dc54a1 --- /dev/null +++ b/doc/doxygen/html/optimization__test_8h_source.html @@ -0,0 +1,128 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: optimization_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('optimization__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">optimization_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="optimization__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef EXAMPLES_OPTIMIZATION_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define EXAMPLES_OPTIMIZATION_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20">optimization_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_exponential_data_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">void</span> <a class="code" href="optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_sinusoidal_data_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#endif </span><span class="comment">/* EXAMPLES_OPTIMIZATION_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aoptimization__test_8h_html_a5f89a9747d6a7bec1ad0a80ba31647b9"><div class="ttname"><a href="optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9">optimization_sinusoidal_data_test</a></div><div class="ttdeci">void optimization_sinusoidal_data_test(void)</div><div class="ttdoc">Examples of optimization algorithms using sinusoidal data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00376">optimization_test.c:376</a></div></div> +<div class="ttc" id="aoptimization__test_8h_html_a1062ae4598fabcf957ec0b855737db20"><div class="ttname"><a href="optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20">optimization_test</a></div><div class="ttdeci">void optimization_test(void)</div><div class="ttdoc">Examples of optimization algorithms using the LVM and GN algorithms.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00101">optimization_test.c:101</a></div></div> +<div class="ttc" id="aoptimization__test_8h_html_a5f1f1ed377535a6d4c5758c38174fcb9"><div class="ttname"><a href="optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9">optimization_exponential_data_test</a></div><div class="ttdeci">void optimization_exponential_data_test(void)</div><div class="ttdoc">Examples of optimization algorithms using exponential data.</div><div class="ttdef"><b>Definition:</b> <a href="optimization__test_8c_source.html#l00264">optimization_test.c:264</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_e8f51c8b3be94f3d6e82400eb763d9de.html">non_linear_algebra</a></li><li class="navelem"><a class="el" href="dir_639c02752b2f8f0dbd6bec97ff3b969d.html">optimization</a></li><li class="navelem"><a class="el" href="dir_623d500f3964709be0a6b3ba8db96a1c.html">include</a></li><li class="navelem"><a class="el" href="optimization__test_8h.html">optimization_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/pages.html b/doc/doxygen/html/pages.html new file mode 100644 index 0000000000000000000000000000000000000000..95877d6fbe0346c9672c0cfc323c050a9f82649d --- /dev/null +++ b/doc/doxygen/html/pages.html @@ -0,0 +1,111 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: Related Pages</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('pages.html','');}); +/* @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="headertitle"> +<div class="title">Related Pages</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory"> +<table class="directory"> +<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="creating-an-application.html" target="_self">Creating an application</a></td><td class="desc"></td></tr> +<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="creating-modules.html" target="_self">Creating modules</a></td><td class="desc"></td></tr> +<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="getting-started.html" target="_self">Getting started</a></td><td class="desc"></td></tr> +</table> +</div><!-- directory --> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/pos__algos__common__test_8c.html b/doc/doxygen/html/pos__algos__common__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..949f8e3ec39935ff85e5da175efd868e8b63506a --- /dev/null +++ b/doc/doxygen/html/pos__algos__common__test_8c.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pos_algos_common_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('pos__algos__common__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">pos_algos_common_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of common algorithms of localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="DOP_8h_source.html">DOP.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="trilateration_8h_source.html">trilateration.h</a>"</code><br /> +</div> +<p><a href="pos__algos__common__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ad7c3809ba4d66f929854a4127784be8c"><td class="memItemLeft" align="right" valign="top"><a id="ad7c3809ba4d66f929854a4127784be8c"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test</a> (void)</td></tr> +<tr class="memdesc:ad7c3809ba4d66f929854a4127784be8c"><td class="mdescLeft"> </td><td class="mdescRight">Example of common localization algorithms. <br /></td></tr> +<tr class="separator:ad7c3809ba4d66f929854a4127784be8c"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of common algorithms of localization systems. </p> +<p>Common algorithms examples of positioning systems (see the <a class="el" href="group__pos__algos__common.html">positioning algorithms common</a> module).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="pos__algos__common__test_8c_source.html">pos_algos_common_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_eb8d9579dd996e15d1d43dfa981f1bc9.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="pos__algos__common__test_8c.html">pos_algos_common_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/pos__algos__common__test_8c.js b/doc/doxygen/html/pos__algos__common__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..85eb7b4a26d302b94d0170d222a809921c1dea00 --- /dev/null +++ b/doc/doxygen/html/pos__algos__common__test_8c.js @@ -0,0 +1,4 @@ +var pos__algos__common__test_8c = +[ + [ "pos_algos_common_test", "pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/pos__algos__common__test_8c_source.html b/doc/doxygen/html/pos__algos__common__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..21d3c0e4eb19fadc5568910252ec1a64fa2e6f6b --- /dev/null +++ b/doc/doxygen/html/pos__algos__common__test_8c_source.html @@ -0,0 +1,149 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pos_algos_common_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('pos__algos__common__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">pos_algos_common_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="pos__algos__common__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="DOP_8h.html">DOP.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="trilateration_8h.html">trilateration.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c"> 30</a></span> <span class="keywordtype">void</span> <a class="code" href="pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_pos_matrix[4][3] = { { 0, 0, 1.67 }, <span class="comment">// P1</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  { 4.5, 0, 0.75 }, <span class="comment">// P2</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  { 4.5, 4.45, 0.75 }, <span class="comment">// P3</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  { 0, 4.92, 0.86 } <span class="comment">// P4</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  };</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  uint8_t m = 4;</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordtype">double</span> A_matrix[m][4];</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">double</span> true_pos[] = { 1, 1, 0 };</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordtype">double</span> pdop_val = <a class="code" href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a>(m, ref_pos_matrix, true_pos);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  printf(<span class="stringliteral">"pdop_val = %.7f\n"</span>, pdop_val);</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a>(m, ref_pos_matrix, A_matrix);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  printf(<span class="stringliteral">"A_matrix = "</span>);</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, 4, A_matrix, 3, 7);</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="atrilateration_8h_html"><div class="ttname"><a href="trilateration_8h.html">trilateration.h</a></div><div class="ttdoc">Implement the trilateration algorithm.</div></div> +<div class="ttc" id="atrilateration_8h_html_a3c9dfccb08c7e4cdb5533cd6bc8b5832"><div class="ttname"><a href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a></div><div class="ttdeci">void trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4])</div><div class="ttdoc">Computes the matrix of the equation system: .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00256">trilateration.c:256</a></div></div> +<div class="ttc" id="aDOP_8c_html_a8b878ff6d73e8da6fbc3ae40f01b1ce4"><div class="ttname"><a href="DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4">get_PDOP</a></div><div class="ttdeci">matrix_t get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m])</div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</div><div class="ttdef"><b>Definition:</b> <a href="DOP_8c_source.html#l00030">DOP.c:30</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="apos__algos__common__test_8c_html_ad7c3809ba4d66f929854a4127784be8c"><div class="ttname"><a href="pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test</a></div><div class="ttdeci">void pos_algos_common_test(void)</div><div class="ttdoc">Example of common localization algorithms.</div><div class="ttdef"><b>Definition:</b> <a href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test.c:30</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="aDOP_8h_html"><div class="ttname"><a href="DOP_8h.html">DOP.h</a></div><div class="ttdoc">Compute the Position Dilution of Precision (PDOP).</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_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_eb8d9579dd996e15d1d43dfa981f1bc9.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="pos__algos__common__test_8c.html">pos_algos_common_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/pos__algos__common__test_8h.html b/doc/doxygen/html/pos__algos__common__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..ef31bedd3a8900c6967cafea38338d4081564725 --- /dev/null +++ b/doc/doxygen/html/pos__algos__common__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pos_algos_common_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('pos__algos__common__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">pos_algos_common_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of common algorithms of localization systems. +<a href="#details">More...</a></p> + +<p><a href="pos__algos__common__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ad7c3809ba4d66f929854a4127784be8c"><td class="memItemLeft" align="right" valign="top"><a id="ad7c3809ba4d66f929854a4127784be8c"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test</a> (void)</td></tr> +<tr class="memdesc:ad7c3809ba4d66f929854a4127784be8c"><td class="mdescLeft"> </td><td class="mdescRight">Example of common localization algorithms. <br /></td></tr> +<tr class="separator:ad7c3809ba4d66f929854a4127784be8c"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of common algorithms of localization systems. </p> +<p>Common algorithms examples of positioning systems (see the <a class="el" href="group__pos__algos__common.html">positioning algorithms common</a> module).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="pos__algos__common__test_8h_source.html">pos_algos_common_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_eb8d9579dd996e15d1d43dfa981f1bc9.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_d17d23561bfec00359efc467b3662047.html">include</a></li><li class="navelem"><a class="el" href="pos__algos__common__test_8h.html">pos_algos_common_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/pos__algos__common__test_8h.js b/doc/doxygen/html/pos__algos__common__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..d1f0f0f61ca382b7de2a2e7d8db0a4e3ff6e4400 --- /dev/null +++ b/doc/doxygen/html/pos__algos__common__test_8h.js @@ -0,0 +1,4 @@ +var pos__algos__common__test_8h = +[ + [ "pos_algos_common_test", "pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/pos__algos__common__test_8h_source.html b/doc/doxygen/html/pos__algos__common__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..5e96fdd324dc071db42bfd134b69c58f69801b86 --- /dev/null +++ b/doc/doxygen/html/pos__algos__common__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pos_algos_common_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('pos__algos__common__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">pos_algos_common_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="pos__algos__common__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef POS_ALGOS_COMMON_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define POS_ALGOS_COMMON_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif </span><span class="comment">/* POS_ALGOS_COMMON_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="apos__algos__common__test_8h_html_ad7c3809ba4d66f929854a4127784be8c"><div class="ttname"><a href="pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c">pos_algos_common_test</a></div><div class="ttdeci">void pos_algos_common_test(void)</div><div class="ttdoc">Example of common localization algorithms.</div><div class="ttdef"><b>Definition:</b> <a href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test.c:30</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_fd0747fb67b11559bfa7954b6401be5e.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_eb8d9579dd996e15d1d43dfa981f1bc9.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_d17d23561bfec00359efc467b3662047.html">include</a></li><li class="navelem"><a class="el" href="pos__algos__common__test_8h.html">pos_algos_common_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/position__optimization__test_8c.html b/doc/doxygen/html/position__optimization__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..de40bc19935031776a3364887b4ced1873cecadc --- /dev/null +++ b/doc/doxygen/html/position__optimization__test_8c.html @@ -0,0 +1,138 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_optimization_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('position__optimization__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">position_optimization_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of optimization algorithms for localization systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <stdint.h></code><br /> +<code>#include "<a class="el" href="loc__levenberg__marquardt_8h_source.html">loc_levenberg_marquardt.h</a>"</code><br /> +<code>#include "<a class="el" href="loc__gauss__newton_8h_source.html">loc_gauss_newton.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__fi_8h_source.html">dist_based_fi.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__position_8h_source.html">dist_based_position.h</a>"</code><br /> +<code>#include "<a class="el" href="dist__based__jacobian_8h_source.html">dist_based_jacobian.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="position__optimization__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:adf2ebfc668717eeac312234ac2b24166"><td class="memItemLeft" align="right" valign="top"><a id="adf2ebfc668717eeac312234ac2b24166"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test</a> (void)</td></tr> +<tr class="memdesc:adf2ebfc668717eeac312234ac2b24166"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms of a localization system. <br /></td></tr> +<tr class="separator:adf2ebfc668717eeac312234ac2b24166"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of optimization algorithms for localization systems. </p> +<p>Optimization algorithms examples for localization systems. (see the <a class="el" href="loc__gauss__newton_8h.html">modified GN</a> and <a class="el" href="loc__levenberg__marquardt_8h.html">LVM</a> optimization methods).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="position__optimization__test_8c_source.html">position_optimization_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="position__optimization__test_8c.html">position_optimization_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/position__optimization__test_8c.js b/doc/doxygen/html/position__optimization__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..639b8fcd1b92a1cbc1025f530ffd9335f10013c0 --- /dev/null +++ b/doc/doxygen/html/position__optimization__test_8c.js @@ -0,0 +1,4 @@ +var position__optimization__test_8c = +[ + [ "position_optimization_test", "position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/position__optimization__test_8c_source.html b/doc/doxygen/html/position__optimization__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..b9021fe21ce3e281f23a7f75caa6285b6db40e25 --- /dev/null +++ b/doc/doxygen/html/position__optimization__test_8c_source.html @@ -0,0 +1,189 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_optimization_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('position__optimization__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">position_optimization_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="position__optimization__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="loc__gauss__newton_8h.html">loc_gauss_newton.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="dist__based__fi_8h.html">dist_based_fi.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="dist__based__position_8h.html">dist_based_position.h</a>"</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a>"</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166"> 37</a></span> <span class="keywordtype">void</span> <a class="code" href="position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> ref_pos_matrix[4][3] = { { 0, 0, 1.67 }, <span class="comment">// P1</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { 4.5, 0, 0.75 }, <span class="comment">// P2</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  { 4.5, 4.45, 0.75 }, <span class="comment">// P3</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  { 0, 4.92, 0.86 } <span class="comment">// P4</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  };</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  uint8_t ref_num = 4;</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordtype">double</span> true_pos[] = { 1.0000, 1.0000, 0.0000 };</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">double</span> measured_dist_arr[] = { 2.1893555, 3.7321172, 4.9925183, 4.1269400 };</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> start_pos[] = { 0.9645166, 0.9894337, -0.1127879 };</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordtype">double</span> est_pos[3];</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  uint8_t iter_num;</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> fmin = 1e-11;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = 1e-3;</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta0 = 0.2;</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> beta1 = 0.8;</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tau = 1e-6;</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  uint8_t max_iter_num = 100;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  iter_num = <a class="code" href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a>(ref_num, ref_pos_matrix, start_pos,</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  measured_dist_arr, eps, fmin, max_iter_num, est_pos,</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  &<a class="code" href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a>, &<a class="code" href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a>,</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  &<a class="code" href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a>);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  printf(<span class="stringliteral">"True position = "</span>);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, true_pos, 3, 4);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  printf(<span class="stringliteral">"Optimized position with Gauss-Newton algorithm = "</span>);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, est_pos, 5, 7);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  printf(<span class="stringliteral">"iteration number = %u\n"</span>, iter_num);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>((uint8_t) 3, est_pos);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  iter_num = <a class="code" href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a>(ref_num, ref_pos_matrix, start_pos,</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  measured_dist_arr, eps, tau, beta0, beta1, max_iter_num,</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  est_pos,</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  &<a class="code" href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a>, &<a class="code" href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a>,</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  &<a class="code" href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a>,</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  &<a class="code" href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a>);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  printf(<span class="stringliteral">"Optimized position with Levenberg-Marquardt algorithm = "</span>);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(3, est_pos, 5, 7);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  printf(<span class="stringliteral">"iteration number = %u\n"</span>, iter_num);</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html_a09fdd720ff5c5658e160657153ee615f"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f">loc_levenberg_marquardt</a></div><div class="ttdeci">uint8_t loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]))</div><div class="ttdoc">Implements the Levenberg–Marquardt (LVM) algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt.c:126</a></div></div> +<div class="ttc" id="adist__based__jacobian_8h_html"><div class="ttname"><a href="dist__based__jacobian_8h.html">dist_based_jacobian.h</a></div><div class="ttdoc">Jacobian function of distance-based localization systems.</div></div> +<div class="ttc" id="aloc__levenberg__marquardt_8h_html"><div class="ttname"><a href="loc__levenberg__marquardt_8h.html">loc_levenberg_marquardt.h</a></div><div class="ttdoc">Implement the Levenberg–Marquardt (LVM) algorithm for position optimization.</div></div> +<div class="ttc" id="adist__based__position_8h_html"><div class="ttname"><a href="dist__based__position_8h.html">dist_based_position.h</a></div><div class="ttdoc">Functions of distance-based localization systems.</div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a04231d3d216ce6814eb3e183f7a2e408"><div class="ttname"><a href="dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408">dist_based_jacobian_get_J_mul_s</a></div><div class="ttdeci">void dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])</div><div class="ttdoc">Computes of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00132">dist_based_jacobian.c:132</a></div></div> +<div class="ttc" id="adist__based__fi_8c_html_a2a1d8806de5f7f5131be1fbd706c17fa"><div class="ttname"><a href="dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa">dist_based_f_i</a></div><div class="ttdeci">void dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[])</div><div class="ttdoc">Defines the error function of a distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__fi_8c_source.html#l00047">dist_based_fi.c:47</a></div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a59b1a3323c2896ff28f71135af0204a2"><div class="ttname"><a href="dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2">dist_based_jacobian_get_JTJ</a></div><div class="ttdeci">void dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00056">dist_based_jacobian.c:56</a></div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="aposition__optimization__test_8c_html_adf2ebfc668717eeac312234ac2b24166"><div class="ttname"><a href="position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test</a></div><div class="ttdeci">void position_optimization_test(void)</div><div class="ttdoc">Examples of optimization algorithms of a localization system.</div><div class="ttdef"><b>Definition:</b> <a href="position__optimization__test_8c_source.html#l00037">position_optimization_test.c:37</a></div></div> +<div class="ttc" id="aloc__gauss__newton_8h_html"><div class="ttname"><a href="loc__gauss__newton_8h.html">loc_gauss_newton.h</a></div><div class="ttdoc">Implement the Gauss–Newton algorithm for position optimization.</div></div> +<div class="ttc" id="aloc__gauss__newton_8h_html_aaba1f25cf23d5529e4fc3bca22f8784e"><div class="ttname"><a href="loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e">loc_gauss_newton</a></div><div class="ttdeci">uint8_t loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]))</div><div class="ttdoc">Implements the modified Gauss–Newton algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton.c:30</a></div></div> +<div class="ttc" id="adist__based__fi_8h_html"><div class="ttname"><a href="dist__based__fi_8h.html">dist_based_fi.h</a></div><div class="ttdoc">Error function of distance-based localization systems.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="adist__based__jacobian_8c_html_a769d35615d26a67b97bfd40b5d26a95c"><div class="ttname"><a href="dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c">dist_based_jacobian_get_JTf</a></div><div class="ttdeci">void dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3])</div><div class="ttdoc">Defines of distance-based localization system.</div><div class="ttdef"><b>Definition:</b> <a href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian.c:28</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="position__optimization__test_8c.html">position_optimization_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/position__optimization__test_8h.html b/doc/doxygen/html/position__optimization__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..78c47ed29c436e04b1a5892106198ff82862547d --- /dev/null +++ b/doc/doxygen/html/position__optimization__test_8h.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_optimization_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('position__optimization__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">position_optimization_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of optimization algorithms for localization systems. +<a href="#details">More...</a></p> + +<p><a href="position__optimization__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:adf2ebfc668717eeac312234ac2b24166"><td class="memItemLeft" align="right" valign="top"><a id="adf2ebfc668717eeac312234ac2b24166"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test</a> (void)</td></tr> +<tr class="memdesc:adf2ebfc668717eeac312234ac2b24166"><td class="mdescLeft"> </td><td class="mdescRight">Examples of optimization algorithms of a localization system. <br /></td></tr> +<tr class="separator:adf2ebfc668717eeac312234ac2b24166"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of optimization algorithms for localization systems. </p> +<p>Optimization algorithms examples for localization systems. (see the <a class="el" href="loc__gauss__newton_8h.html">modified GN</a> and <a class="el" href="loc__levenberg__marquardt_8h.html">LVM</a> optimization methods).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Naouar Guerchali </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="position__optimization__test_8h_source.html">position_optimization_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_ca5718251f4b73cea33729edc1e819e5.html">include</a></li><li class="navelem"><a class="el" href="position__optimization__test_8h.html">position_optimization_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/position__optimization__test_8h.js b/doc/doxygen/html/position__optimization__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..46a445eb19b25ebdd5ea0bf925c2f0e89545f21d --- /dev/null +++ b/doc/doxygen/html/position__optimization__test_8h.js @@ -0,0 +1,4 @@ +var position__optimization__test_8h = +[ + [ "position_optimization_test", "position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/position__optimization__test_8h_source.html b/doc/doxygen/html/position__optimization__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c1bd15ed91257bc5b72878aa8cc89da932b057b6 --- /dev/null +++ b/doc/doxygen/html/position__optimization__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: position_optimization_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('position__optimization__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">position_optimization_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="position__optimization__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef POSITION_OPTIMIZATION_TEST_H_</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define POSITION_OPTIMIZATION_TEST_H_</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">void</span> <a class="code" href="position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif </span><span class="comment">/* POSITION_OPTIMIZATION_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aposition__optimization__test_8h_html_adf2ebfc668717eeac312234ac2b24166"><div class="ttname"><a href="position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166">position_optimization_test</a></div><div class="ttdeci">void position_optimization_test(void)</div><div class="ttdoc">Examples of optimization algorithms of a localization system.</div><div class="ttdef"><b>Definition:</b> <a href="position__optimization__test_8c_source.html#l00037">position_optimization_test.c:37</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_801c9944761e72e374dff631ac46ee01.html">localization</a></li><li class="navelem"><a class="el" href="dir_37a5553f1548d2dee3f75063e28a3b6f.html">position_optimization</a></li><li class="navelem"><a class="el" href="dir_ca5718251f4b73cea33729edc1e819e5.html">include</a></li><li class="navelem"><a class="el" href="position__optimization__test_8h.html">position_optimization_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/pseudo__inverse_8h.html b/doc/doxygen/html/pseudo__inverse_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..f776e736507fd1b8f7bdb0363d0aac2bb97f0fb7 --- /dev/null +++ b/doc/doxygen/html/pseudo__inverse_8h.html @@ -0,0 +1,158 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pseudo_inverse.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('pseudo__inverse_8h.html','');}); +/* @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="#enum-members">Enumerations</a> </div> + <div class="headertitle"> +<div class="title">pseudo_inverse.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__pseudo__inverse.html">PSEUDO_INVERSE</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Compute the pseudo-inverse of a matrix. +<a href="#details">More...</a></p> + +<p><a href="pseudo__inverse_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> +Enumerations</h2></td></tr> +<tr class="memitem:aeead1612e2f846fe32e4c50e1ab3d7c3"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> { <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>, +<a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>, +<a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>, +<a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a> + }</td></tr> +<tr class="memdesc:aeead1612e2f846fe32e4c50e1ab3d7c3"><td class="mdescLeft"> </td><td class="mdescRight">Possible algorithms to compute the pseudo-inverse matrix. <a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">More...</a><br /></td></tr> +<tr class="separator:aeead1612e2f846fe32e4c50e1ab3d7c3"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Compute the pseudo-inverse of a matrix. </p> +<p>The pseudo-inverse matrix can be computed using the Singular Value Decomposition (SVD), Householder, or Givens algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="pseudo__inverse_8h_source.html">pseudo_inverse.h</a>.</p> +</div><h2 class="groupheader">Enumeration Type Documentation</h2> +<a id="aeead1612e2f846fe32e4c50e1ab3d7c3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aeead1612e2f846fe32e4c50e1ab3d7c3">◆ </a></span>ALGORITHM</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">enum <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Possible algorithms to compute the pseudo-inverse matrix. </p> +<table class="fieldtable"> +<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06"></a>Moore_Penrose </td><td class="fielddoc"><p>Moore–Penrose algorithm. </p> +</td></tr> +<tr><td class="fieldname"><a id="aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04"></a>Householder </td><td class="fielddoc"><p>Householder algorithm. </p> +</td></tr> +<tr><td class="fieldname"><a id="aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991"></a>Givens </td><td class="fielddoc"><p>Givens algorithm. </p> +</td></tr> +<tr><td class="fieldname"><a id="aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220"></a>Gauss </td><td class="fielddoc"><p>Gaussian elimination with pivoting algorithm. </p> +</td></tr> +</table> + +<p class="definition">Definition at line <a class="el" href="pseudo__inverse_8h_source.html#l00030">30</a> of file <a class="el" href="pseudo__inverse_8h_source.html">pseudo_inverse.h</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html">include</a></li><li class="navelem"><a class="el" href="pseudo__inverse_8h.html">pseudo_inverse.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/pseudo__inverse_8h.js b/doc/doxygen/html/pseudo__inverse_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..f0f2b0375533934dc70dd3bbafb3b049313c9c45 --- /dev/null +++ b/doc/doxygen/html/pseudo__inverse_8h.js @@ -0,0 +1,9 @@ +var pseudo__inverse_8h = +[ + [ "ALGORITHM", "pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3", [ + [ "Moore_Penrose", "pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06", null ], + [ "Householder", "pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04", null ], + [ "Givens", "pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991", null ], + [ "Gauss", "pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220", null ] + ] ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/pseudo__inverse_8h_source.html b/doc/doxygen/html/pseudo__inverse_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c4ee77d084731e605ed2dc0fee4d1bd1162ebd8f --- /dev/null +++ b/doc/doxygen/html/pseudo__inverse_8h_source.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: pseudo_inverse.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('pseudo__inverse_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">pseudo_inverse.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="pseudo__inverse_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef PSEUDO_INVERSE_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define PSEUDO_INVERSE_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3"> 30</a></span> <span class="keyword">enum</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> {</div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06"> 31</a></span>  <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>, </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04"> 32</a></span>  <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>, </div> +<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991"> 33</a></span>  <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>, </div> +<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220"> 34</a></span>  <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a> </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> };</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif </span><span class="comment">/* PSEUDO_INVERSE_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a></div><div class="ttdoc">Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00033">pseudo_inverse.h:33</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a></div><div class="ttdoc">Moore–Penrose algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00031">pseudo_inverse.h:31</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a></div><div class="ttdoc">Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00032">pseudo_inverse.h:32</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a></div><div class="ttdeci">ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00030">pseudo_inverse.h:30</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a></div><div class="ttdoc">Gaussian elimination with pivoting algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00034">pseudo_inverse.h:34</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html">include</a></li><li class="navelem"><a class="el" href="pseudo__inverse_8h.html">pseudo_inverse.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__common_8c.html b/doc/doxygen/html/qr__common_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..3c2139dd4e63207e34a700f4d09bf527dedb3dec --- /dev/null +++ b/doc/doxygen/html/qr__common_8c.html @@ -0,0 +1,265 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_common.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__common_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_common.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="qr__common_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:adad26253c0e08a0d9fe2dfe0f6d64112"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[m])</td></tr> +<tr class="memdesc:adad26253c0e08a0d9fe2dfe0f6d64112"><td class="mdescLeft"> </td><td class="mdescRight">Implements the backward substitution algorithm. <a href="qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112">More...</a><br /></td></tr> +<tr class="separator:adad26253c0e08a0d9fe2dfe0f6d64112"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a47e88b1e236d3637717ea144811cdc1b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b">qr_common_get_reduced_QR</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> reduc_Q[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> reduc_R[n][n])</td></tr> +<tr class="memdesc:a47e88b1e236d3637717ea144811cdc1b"><td class="mdescLeft"> </td><td class="mdescRight">Compute the reduced form of the QR-decomposition algorithm. <a href="qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b">More...</a><br /></td></tr> +<tr class="separator:a47e88b1e236d3637717ea144811cdc1b"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__common_8c_source.html">qr_common.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="adad26253c0e08a0d9fe2dfe0f6d64112"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adad26253c0e08a0d9fe2dfe0f6d64112">◆ </a></span>qr_common_backward_subst()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void qr_common_backward_subst </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>U</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the backward substitution algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">U[][]</td><td>pointer to the matrix U. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution of the substitution algorithm. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="qr__common_8c_source.html#l00028">28</a> of file <a class="el" href="qr__common_8c_source.html">qr_common.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +<a id="a47e88b1e236d3637717ea144811cdc1b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a47e88b1e236d3637717ea144811cdc1b">◆ </a></span>qr_common_get_reduced_QR()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void qr_common_get_reduced_QR </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Q</em>[m][m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>R</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>red_Q</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>red_R</em>[n][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the reduced form of the QR-decomposition algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">Q[][]</td><td>pointer to the matrix Q. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">R[][]</td><td>pointer to the matrix R. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">red_Q[][]</td><td>pointer to the reduced matrix Q. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">red_R[][]</td><td>pointer to the reduced matrix R. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="qr__common_8c_source.html#l00059">59</a> of file <a class="el" href="qr__common_8c_source.html">qr_common.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00089">matrix_part_copy()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="qr__common_8c.html">qr_common.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__common_8c.js b/doc/doxygen/html/qr__common_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..94d39f485af7e5b37eb222ed19a7c3238f051897 --- /dev/null +++ b/doc/doxygen/html/qr__common_8c.js @@ -0,0 +1,5 @@ +var qr__common_8c = +[ + [ "qr_common_backward_subst", "qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112", null ], + [ "qr_common_get_reduced_QR", "qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__common_8c_source.html b/doc/doxygen/html/qr__common_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..6f138ac9b864b9054933b370511805d367c1969d --- /dev/null +++ b/doc/doxygen/html/qr__common_8c_source.html @@ -0,0 +1,169 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_common.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__common_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_common.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__common_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112"> 28</a></span> <span class="keywordtype">void</span> <a class="code" href="qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n],</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[m])</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  int8_t i;</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  uint8_t j;</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sum;</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">if</span> (m != n) {</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  puts(<span class="stringliteral">"The matrix should be square !!!"</span>);</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">return</span>;</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  }</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment">//clear x_sol</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  memset(x_sol, 0, <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>) * m);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">if</span> (U[m - 1][m - 1] != 0) {</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  x_sol[m - 1] = b[m - 1] / U[m - 1][m - 1];</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">for</span> (i = m - 2; i >= 0; i--) {</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  sum = 0.0;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">for</span> (j = i + 1; j < m; j++) {</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  sum += U[i][j] * x_sol[j];</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span> (U[i][i] != 0) {</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  x_sol[i] = (b[i] - sum) / U[i][i];</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> }</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b"> 59</a></span> <span class="keywordtype">void</span> <a class="code" href="qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b">qr_common_get_reduced_QR</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> reduc_Q[m][n],</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> reduc_R[n][n])</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (m >= n) {</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(m, m, Q, 0, m - 1, 0, n - 1, m, n, reduc_Q);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(m, n, R, 0, n - 1, 0, n - 1, n, n, reduc_R);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  puts(</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="stringliteral">"The row number of A should be greater than the column number of A"</span>);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__common_8c_html_adad26253c0e08a0d9fe2dfe0f6d64112"><div class="ttname"><a href="qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a></div><div class="ttdeci">void qr_common_backward_subst(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t b[m], matrix_t x_sol[m])</div><div class="ttdoc">Implements the backward substitution algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8c_source.html#l00028">qr_common.c:28</a></div></div> +<div class="ttc" id="aqr__common_8c_html_a47e88b1e236d3637717ea144811cdc1b"><div class="ttname"><a href="qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b">qr_common_get_reduced_QR</a></div><div class="ttdeci">void qr_common_get_reduced_QR(uint8_t m, uint8_t n, matrix_t Q[m][m], matrix_t R[m][n], matrix_t reduc_Q[m][n], matrix_t reduc_R[n][n])</div><div class="ttdoc">Compute the reduced form of the QR-decomposition algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8c_source.html#l00059">qr_common.c:59</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_a56513a88eff05b0683320c532fadf945"><div class="ttname"><a href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a></div><div class="ttdeci">void matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num])</div><div class="ttdoc">Copy a part of a matrix to another matrix or sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00089">matrix.c:89</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="qr__common_8c.html">qr_common.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__common_8h.html b/doc/doxygen/html/qr__common_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..4daae217e15e726c6e77838145b6b887050a8d4c --- /dev/null +++ b/doc/doxygen/html/qr__common_8h.html @@ -0,0 +1,272 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_common.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__common_8h.html','');}); +/* @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="#enum-members">Enumerations</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_common.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__matrix__decompositions.html">MATRIX_DECOMPOSITIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="qr__common_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> +Enumerations</h2></td></tr> +<tr class="memitem:ac62c54358ecc0c35cdef1c3fb37cc73b"><td class="memItemLeft" align="right" valign="top"><a id="ac62c54358ecc0c35cdef1c3fb37cc73b"></a>enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> { <b>QR_Householder</b>, +<b>QR_Givens</b> + }</td></tr> +<tr class="memdesc:ac62c54358ecc0c35cdef1c3fb37cc73b"><td class="mdescLeft"> </td><td class="mdescRight">Possible algorithms to compute the QR-decomposition of a matrix. <br /></td></tr> +<tr class="separator:ac62c54358ecc0c35cdef1c3fb37cc73b"><td class="memSeparator" colspan="2"> </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:adad26253c0e08a0d9fe2dfe0f6d64112"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[m])</td></tr> +<tr class="memdesc:adad26253c0e08a0d9fe2dfe0f6d64112"><td class="mdescLeft"> </td><td class="mdescRight">Implements the backward substitution algorithm. <a href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">More...</a><br /></td></tr> +<tr class="separator:adad26253c0e08a0d9fe2dfe0f6d64112"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3144f99da14a69ec80bf9ded23714612"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common_get_reduced_QR</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_Q[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_R[n][n])</td></tr> +<tr class="memdesc:a3144f99da14a69ec80bf9ded23714612"><td class="mdescLeft"> </td><td class="mdescRight">Compute the reduced form of the QR-decomposition algorithm. <a href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">More...</a><br /></td></tr> +<tr class="separator:a3144f99da14a69ec80bf9ded23714612"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Common definitions and implementations for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__common_8h_source.html">qr_common.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="adad26253c0e08a0d9fe2dfe0f6d64112"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adad26253c0e08a0d9fe2dfe0f6d64112">◆ </a></span>qr_common_backward_subst()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void qr_common_backward_subst </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>U</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[m] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implements the backward substitution algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">U[][]</td><td>pointer to the matrix U. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution of the substitution algorithm. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="qr__common_8c_source.html#l00028">28</a> of file <a class="el" href="qr__common_8c_source.html">qr_common.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +</div> +</div> +<a id="a3144f99da14a69ec80bf9ded23714612"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3144f99da14a69ec80bf9ded23714612">◆ </a></span>qr_common_get_reduced_QR()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void qr_common_get_reduced_QR </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Q</em>[m][m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>R</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>red_Q</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>red_R</em>[n][n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the reduced form of the QR-decomposition algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">Q[][]</td><td>pointer to the matrix Q. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">R[][]</td><td>pointer to the matrix R. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">red_Q[][]</td><td>pointer to the reduced matrix Q. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">red_R[][]</td><td>pointer to the reduced matrix R. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="qr__common_8c_source.html#l00059">59</a> of file <a class="el" href="qr__common_8c_source.html">qr_common.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00089">matrix_part_copy()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="qr__common_8h.html">qr_common.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__common_8h.js b/doc/doxygen/html/qr__common_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..926d2876807c6604587f388c528df1fd8468ecff --- /dev/null +++ b/doc/doxygen/html/qr__common_8h.js @@ -0,0 +1,9 @@ +var qr__common_8h = +[ + [ "QR_ALGORITHM", "qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b", [ + [ "QR_Householder", "qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73bad33bdadaec01995a7dee94f202c598e3", null ], + [ "QR_Givens", "qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73bac5a89d2d2ca110939bfab32732fc0f1a", null ] + ] ], + [ "qr_common_backward_subst", "qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112", null ], + [ "qr_common_get_reduced_QR", "qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__common_8h_source.html b/doc/doxygen/html/qr__common_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..05887ffc7060af62b1e62d4c44b347b5f212040e --- /dev/null +++ b/doc/doxygen/html/qr__common_8h_source.html @@ -0,0 +1,135 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_common.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__common_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_common.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__common_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef QR_COMMON_H_</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define QR_COMMON_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b"> 32</a></span> <span class="keyword">enum</span> <a class="code" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> {</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  QR_Householder, QR_Givens</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> };</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">void</span> <a class="code" href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[][n],</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[m]);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">void</span> <a class="code" href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common_get_reduced_QR</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_Q[m][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> red_R[n][n]);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif </span><span class="comment">/* QR_COMMON_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__common_8h_html_ac62c54358ecc0c35cdef1c3fb37cc73b"><div class="ttname"><a href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a></div><div class="ttdeci">QR_ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the QR-decomposition of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8h_source.html#l00032">qr_common.h:32</a></div></div> +<div class="ttc" id="aqr__common_8h_html_a3144f99da14a69ec80bf9ded23714612"><div class="ttname"><a href="qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612">qr_common_get_reduced_QR</a></div><div class="ttdeci">void qr_common_get_reduced_QR(uint8_t m, uint8_t n, matrix_t Q[m][m], matrix_t R[m][n], matrix_t red_Q[m][n], matrix_t red_R[n][n])</div><div class="ttdoc">Compute the reduced form of the QR-decomposition algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8c_source.html#l00059">qr_common.c:59</a></div></div> +<div class="ttc" id="aqr__common_8h_html_adad26253c0e08a0d9fe2dfe0f6d64112"><div class="ttname"><a href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a></div><div class="ttdeci">void qr_common_backward_subst(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t b[m], matrix_t x_sol[m])</div><div class="ttdoc">Implements the backward substitution algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8c_source.html#l00028">qr_common.c:28</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="qr__common_8h.html">qr_common.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__givens_8c.html b/doc/doxygen/html/qr__givens_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..4139f1bb0b688f9839e1a17a16e2123e15614bbd --- /dev/null +++ b/doc/doxygen/html/qr__givens_8c.html @@ -0,0 +1,260 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_givens.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__givens_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_givens.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times $" src="form_36.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include <float.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__givens_8h_source.html">qr_givens.h</a>"</code><br /> +</div> +<p><a href="qr__givens_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a07adca97c58afc057a5cff738f6473cc"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t q_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num], bool reduced)</td></tr> +<tr class="memdesc:a07adca97c58afc057a5cff738f6473cc"><td class="mdescLeft"> </td><td class="mdescRight">Computes the QR decomposition of the matrix A by using the Givens algorithm. <a href="qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc">More...</a><br /></td></tr> +<tr class="separator:a07adca97c58afc057a5cff738f6473cc"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a53f748fbc6f8a129deb6a048d423d644"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xjj, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xij, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_s_t_r_vec[])</td></tr> +<tr class="memdesc:a53f748fbc6f8a129deb6a048d423d644"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Givens parameters. <a href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644">More...</a><br /></td></tr> +<tr class="separator:a53f748fbc6f8a129deb6a048d423d644"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times $" src="form_36.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__givens_8c_source.html">qr_givens.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a07adca97c58afc057a5cff738f6473cc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a07adca97c58afc057a5cff738f6473cc">◆ </a></span>qr_givens_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t qr_givens_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>q_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Q</em>[][q_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>reduced</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the QR decomposition of the matrix A by using the Givens algorithm. </p> +<p>Gets a QR decomposition of an m-by-n matrix A such that A = Q*R. The compact as well as the full decomposition of the matrix can be computed.</p> +<dl class="section note"><dt>Note</dt><dd>R is stored in the matrix A.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrices A and R. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">q_col_num</td><td>column number of the matrix Q. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">Q[][]</td><td>pointer to the Q matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">reduced</td><td>computes the compact form of the QR decomposition if true, otherwise the full version.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if computing the QR decomposition is successful. </dd> +<dd> +-1, if computing the QR decomposition is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="qr__givens_8c_source.html#l00033">33</a> of file <a class="el" href="qr__givens_8c_source.html">qr_givens.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, <a class="el" href="matrix_8c_source.html#l00841">matrix_get_upp_triang()</a>, <a class="el" href="matrix_8c_source.html#l00089">matrix_part_copy()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="qr__givens_8c_source.html#l00110">qr_givens_get_params()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, and <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>.</p> + +</div> +</div> +<a id="a53f748fbc6f8a129deb6a048d423d644"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a53f748fbc6f8a129deb6a048d423d644">◆ </a></span>qr_givens_get_params()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void qr_givens_get_params </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>xjj</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>xij</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>c_s_t_r_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Givens parameters. </p> +<p>The computation of the parameters c, s, t, and r can have problems with overflow or underflow, therefore this algorithm employs a normalization procedure. The Givens parameters c, s, t and r are saved in a vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">xjj</td><td>value at the diagonal j of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">xij</td><td>value at the index j of a column vector i. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">c_s_t_r_vec[]</td><td>pointer to the vector holding the c, s, t and r parameters. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="qr__givens_8c_source.html#l00110">110</a> of file <a class="el" href="qr__givens_8c_source.html">qr_givens.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="qr__givens_8c.html">qr_givens.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__givens_8c.js b/doc/doxygen/html/qr__givens_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..c50cf0e506f6fa15ed55c42a1bfcd129d0ab8b61 --- /dev/null +++ b/doc/doxygen/html/qr__givens_8c.js @@ -0,0 +1,5 @@ +var qr__givens_8c = +[ + [ "qr_givens_decomp", "qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc", null ], + [ "qr_givens_get_params", "qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__givens_8c_source.html b/doc/doxygen/html/qr__givens_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..8b36cfe8a7f60e825031e0c572bb596ae6c3382e --- /dev/null +++ b/doc/doxygen/html/qr__givens_8c_source.html @@ -0,0 +1,225 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_givens.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__givens_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_givens.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__givens_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="qr__givens_8h.html">qr_givens.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/*R will be stored in A */</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc"> 33</a></span> int8_t <a class="code" href="qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t q_col_num,</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num], <span class="keywordtype">bool</span> reduced)</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">if</span> (m < n) {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  puts(<span class="stringliteral">"A has more columns than rows"</span>);</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">return</span> -1;</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  }</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j < n; j++) {</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span> (uint8_t i = j + 1; i < m; i++) {</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_s_t_r_vec[4];</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a>(A[j][j], A[i][j], c_s_t_r_vec);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  A[i][j] = c_s_t_r_vec[2]; <span class="comment">//A[i][j] = t</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  A[j][j] = c_s_t_r_vec[3]; <span class="comment">//A[j][j] = r</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (j < n) {</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">for</span> (uint8_t k = j + 1; k < n; k++) {</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c, s;</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  c = c_s_t_r_vec[0];</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  s = c_s_t_r_vec[1];</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp = A[j][k];</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  A[j][k] = c * A[j][k] + s * A[i][k];</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  A[i][k] = -s * tmp + c * A[i][k];</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  uint8_t max_m;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (reduced) {</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  max_m = n;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  max_m = m;</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">if</span> (!reduced) {</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(m, max_m, Q);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a>(m, n, A, 0, m - 1, 0, n - 1, m, max_m, Q);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">// Build R</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a>(m, n, A, A);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// Build Q</span></div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span> (int16_t j = max_m - 1; j >= 0; j--) {</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// Zero out column j from row 0 up to row j</span></div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">for</span> (uint8_t k = 0; k <= j; k++) {</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  Q[k][j] = 0;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  Q[j][j] = 1;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">for</span> (int16_t i = m - 1; i >= j + 1; i--) {</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> t = Q[i][j];</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  Q[i][j] = 0;</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c = 1 / sqrt(1 + t * t);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s;</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (c != 0) {</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  s = c * t;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  s = 1;</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">for</span> (uint8_t k = j; k < max_m; k++) {</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp = Q[j][k];</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  Q[j][k] = c * Q[j][k] - s * Q[i][k];</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  Q[i][k] = s * tmp + c * Q[i][k];</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  } <span class="comment">//for</span></div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> 1;</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div> +<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644"> 110</a></span> <span class="keywordtype">void</span> <a class="code" href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xjj, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xij, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_s_t_r_vec[])</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> {</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (xjj != 0) {</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> u;</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  c_s_t_r_vec[2] = xij / xjj; <span class="comment">//t = xij/xjj</span></div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  u = sqrt(1 + c_s_t_r_vec[2] * c_s_t_r_vec[2]); <span class="comment">//u = sqrt(1 + t*t)</span></div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  c_s_t_r_vec[0] = 1 / u; <span class="comment">//c = 1/u</span></div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  c_s_t_r_vec[1] = c_s_t_r_vec[0] * c_s_t_r_vec[2]; <span class="comment">//s = c*t</span></div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  c_s_t_r_vec[3] = u * xjj; <span class="comment">//r = u*xjj</span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  c_s_t_r_vec[0] = 0; <span class="comment">//c = 0</span></div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  c_s_t_r_vec[1] = 1; <span class="comment">//s = 1</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  c_s_t_r_vec[2] = FLT_MAX; <span class="comment">//t = infinity</span></div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  c_s_t_r_vec[3] = xij; <span class="comment">//r = xij</span></div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_a0e06b2cfb86340e88be7b1219bef0ce3"><div class="ttname"><a href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a></div><div class="ttdeci">void matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00046">matrix.c:46</a></div></div> +<div class="ttc" id="aqr__givens_8c_html_a53f748fbc6f8a129deb6a048d423d644"><div class="ttname"><a href="qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a></div><div class="ttdeci">void qr_givens_get_params(matrix_t xjj, matrix_t xij, matrix_t c_s_t_r_vec[])</div><div class="ttdoc">Compute the Givens parameters.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00110">qr_givens.c:110</a></div></div> +<div class="ttc" id="amatrix_8h_html_abbaf8f39b2b7bb4bd2987f99674c1213"><div class="ttname"><a href="matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213">matrix_get_upp_triang</a></div><div class="ttdeci">void matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n])</div><div class="ttdoc">Gets the upper triangular part of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00841">matrix.c:841</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aqr__givens_8c_html_a07adca97c58afc057a5cff738f6473cc"><div class="ttname"><a href="qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a></div><div class="ttdeci">int8_t qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00033">qr_givens.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_a56513a88eff05b0683320c532fadf945"><div class="ttname"><a href="matrix_8h.html#a56513a88eff05b0683320c532fadf945">matrix_part_copy</a></div><div class="ttdeci">void matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num])</div><div class="ttdoc">Copy a part of a matrix to another matrix or sub-matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00089">matrix.c:89</a></div></div> +<div class="ttc" id="aqr__givens_8h_html"><div class="ttname"><a href="qr__givens_8h.html">qr_givens.h</a></div><div class="ttdoc">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices ...</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_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="qr__givens_8c.html">qr_givens.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__givens_8h.html b/doc/doxygen/html/qr__givens_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..b15b95dcacd5282b6d71c180649b012ed6f6a47f --- /dev/null +++ b/doc/doxygen/html/qr__givens_8h.html @@ -0,0 +1,257 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_givens.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__givens_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_givens.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__matrix__decompositions.html">MATRIX_DECOMPOSITIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="qr__givens_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a07adca97c58afc057a5cff738f6473cc"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t q_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num], bool reduced)</td></tr> +<tr class="memdesc:a07adca97c58afc057a5cff738f6473cc"><td class="mdescLeft"> </td><td class="mdescRight">Computes the QR decomposition of the matrix A by using the Givens algorithm. <a href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">More...</a><br /></td></tr> +<tr class="separator:a07adca97c58afc057a5cff738f6473cc"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a53f748fbc6f8a129deb6a048d423d644"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xjj, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xij, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_s_t_r_vec[])</td></tr> +<tr class="memdesc:a53f748fbc6f8a129deb6a048d423d644"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Givens parameters. <a href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">More...</a><br /></td></tr> +<tr class="separator:a53f748fbc6f8a129deb6a048d423d644"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices using Givens rotations. A = QR, where Q is an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__givens_8h_source.html">qr_givens.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a07adca97c58afc057a5cff738f6473cc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a07adca97c58afc057a5cff738f6473cc">◆ </a></span>qr_givens_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t qr_givens_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>q_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Q</em>[][q_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>reduced</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the QR decomposition of the matrix A by using the Givens algorithm. </p> +<p>Gets a QR decomposition of an m-by-n matrix A such that A = Q*R. The compact as well as the full decomposition of the matrix can be computed.</p> +<dl class="section note"><dt>Note</dt><dd>R is stored in the matrix A.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrices A and R. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">q_col_num</td><td>column number of the matrix Q. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">Q[][]</td><td>pointer to the Q matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">reduced</td><td>computes the compact form of the QR decomposition if true, otherwise the full version.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if computing the QR decomposition is successful. </dd> +<dd> +-1, if computing the QR decomposition is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="qr__givens_8c_source.html#l00033">33</a> of file <a class="el" href="qr__givens_8c_source.html">qr_givens.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00046">matrix_clear()</a>, <a class="el" href="matrix_8c_source.html#l00841">matrix_get_upp_triang()</a>, <a class="el" href="matrix_8c_source.html#l00089">matrix_part_copy()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="qr__givens_8c_source.html#l00110">qr_givens_get_params()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, and <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>.</p> + +</div> +</div> +<a id="a53f748fbc6f8a129deb6a048d423d644"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a53f748fbc6f8a129deb6a048d423d644">◆ </a></span>qr_givens_get_params()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void qr_givens_get_params </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>xjj</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>xij</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>c_s_t_r_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Givens parameters. </p> +<p>The computation of the parameters c, s, t, and r can have problems with overflow or underflow, therefore this algorithm employs a normalization procedure. The Givens parameters c, s, t and r are saved in a vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">xjj</td><td>value at the diagonal j of the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">xij</td><td>value at the index j of a column vector i. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">c_s_t_r_vec[]</td><td>pointer to the vector holding the c, s, t and r parameters. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="qr__givens_8c_source.html#l00110">110</a> of file <a class="el" href="qr__givens_8c_source.html">qr_givens.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="givens__test_8c_source.html#l00028">givens_test()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="qr__givens_8h.html">qr_givens.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__givens_8h.js b/doc/doxygen/html/qr__givens_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..97106f504754e9564af524eb9adb173afcee4871 --- /dev/null +++ b/doc/doxygen/html/qr__givens_8h.js @@ -0,0 +1,5 @@ +var qr__givens_8h = +[ + [ "qr_givens_decomp", "qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc", null ], + [ "qr_givens_get_params", "qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__givens_8h_source.html b/doc/doxygen/html/qr__givens_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..096c6a86fc009332fce440b2f4fc4cb20bd82d72 --- /dev/null +++ b/doc/doxygen/html/qr__givens_8h_source.html @@ -0,0 +1,132 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_givens.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__givens_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_givens.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__givens_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef QR_GIVENS_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#define QR_GIVENS_H_</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> int8_t <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  uint8_t q_col_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">bool</span> reduced);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordtype">void</span> <a class="code" href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xjj, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> xij, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> c_s_t_r_vec[]);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#endif </span><span class="comment">/* QR_GIVENS_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aqr__givens_8h_html_a07adca97c58afc057a5cff738f6473cc"><div class="ttname"><a href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a></div><div class="ttdeci">int8_t qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00033">qr_givens.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="aqr__givens_8h_html_a53f748fbc6f8a129deb6a048d423d644"><div class="ttname"><a href="qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644">qr_givens_get_params</a></div><div class="ttdeci">void qr_givens_get_params(matrix_t xjj, matrix_t xij, matrix_t c_s_t_r_vec[])</div><div class="ttdoc">Compute the Givens parameters.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00110">qr_givens.c:110</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="qr__givens_8h.html">qr_givens.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__householder_8c.html b/doc/doxygen/html/qr__householder_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..8ba8baf7828ef99711a193a138ff85329a9a0179 --- /dev/null +++ b/doc/doxygen/html/qr__householder_8c.html @@ -0,0 +1,206 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_householder.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__householder_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_householder.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Householder algorithm for the QR-decomposition. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <stdbool.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +</div> +<p><a href="qr__householder_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a926e8bce91b658f64837d5c93b0bc74f"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t q_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num], bool reduced)</td></tr> +<tr class="memdesc:a926e8bce91b658f64837d5c93b0bc74f"><td class="mdescLeft"> </td><td class="mdescRight">Computes the QR decomposition of the matrix A by using the Householder algorithm. <a href="qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f">More...</a><br /></td></tr> +<tr class="separator:a926e8bce91b658f64837d5c93b0bc74f"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Householder algorithm for the QR-decomposition. </p> +<p>Provide necessary methods to construct Q- and R- matrices using Householder reflections. A = QR, where Q is an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__householder_8c_source.html">qr_householder.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a926e8bce91b658f64837d5c93b0bc74f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a926e8bce91b658f64837d5c93b0bc74f">◆ </a></span>qr_householder_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t qr_householder_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>q_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Q</em>[][q_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>reduced</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the QR decomposition of the matrix A by using the Householder algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>R is stored in the matrix A.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose in QR. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose in QR. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrices A and R. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">q_col_num</td><td>column number of the matrix Q. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">Q[][]</td><td>pointer to the matrix Q. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">reduced</td><td>computes the compact form of the QR decomposition if true, otherwise the full version.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if computing the QR decomposition is successful. </dd> +<dd> +-1, if computing the QR decomposition is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="qr__householder_8c_source.html#l00033">33</a> of file <a class="el" href="qr__householder_8c_source.html">qr_householder.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="utils_8c_source.html#l00168">utils_get_save_square_root()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, and <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="qr__householder_8c.html">qr_householder.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__householder_8c.js b/doc/doxygen/html/qr__householder_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..60a5be88e9dd25c8723ac56c7eaced8d432a5b46 --- /dev/null +++ b/doc/doxygen/html/qr__householder_8c.js @@ -0,0 +1,4 @@ +var qr__householder_8c = +[ + [ "qr_householder_decomp", "qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__householder_8c_source.html b/doc/doxygen/html/qr__householder_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..39707878da458ce04583d2f9c4be1cd924195e98 --- /dev/null +++ b/doc/doxygen/html/qr__householder_8c_source.html @@ -0,0 +1,220 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_householder.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__householder_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_householder.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__householder_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/*R will be stored in A */</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f"> 33</a></span> int8_t <a class="code" href="qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t q_col_num,</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num], <span class="keywordtype">bool</span> reduced)</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">if</span> (m < n) {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  puts(<span class="stringliteral">"A has more columns than rows"</span>);</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">return</span> -1;</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  }</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_R_vec[n];</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">for</span> (uint8_t k = 0; k < n; k++) {</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">//compute the two-norm of the k-th column of the matrix A</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordtype">double</span> norm_2 = 0.0;</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">for</span> (uint8_t i = k; i < m; i++) {</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  norm_2 = <a class="code" href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a>(norm_2, A[i][k]);</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (norm_2 != 0.0) {</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Form k-th Householder vector.</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span> (A[k][k] < 0) {</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  norm_2 = -norm_2;</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k; i < m; i++) {</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  A[i][k] /= norm_2;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  A[k][k] += 1.0;</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// Apply the Householder transformation to the rest columns of the matrix.</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span> (uint8_t j = k + 1; j < n; j++) {</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordtype">double</span> sigma = 0.0;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">for</span> (uint8_t i = k; i < m; i++) {</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  sigma += A[i][k] * A[i][j];</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  sigma = -sigma / A[k][k];</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">for</span> (uint8_t i = k; i < m; i++) {</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  A[i][j] += sigma * A[i][k];</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  } <span class="comment">// if</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  diag_R_vec[k] = -norm_2;</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  } <span class="comment">//for</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// Build Q</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  uint8_t max_n, max_m;</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span> (!reduced) {</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  max_n = m;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  max_m = m;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  max_n = n;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  max_m = n;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = max_n - 1; k >= 0; k--) {</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  Q[i][k] = 0.0;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  } <span class="comment">// clear matrix Q</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  Q[k][k] = 1.0;</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = k; j < max_n; j++) {</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (k < n) {</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (A[k][k] != 0) {</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordtype">double</span> s = 0.0;</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k; i < m; i++) {</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  s += A[i][k] * Q[i][j];</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  s = -s / A[k][k];</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k; i < m; i++) {</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  Q[i][j] += s * A[i][k];</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  } <span class="comment">//if</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  } <span class="comment">//if</span></div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// Build R</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < max_m; i++) {</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j < n; j++) {</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span> (i == j) {</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  A[i][j] = diag_R_vec[i];</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i > j) {</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  A[i][j] = 0;</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> 1;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="aqr__householder_8c_html_a926e8bce91b658f64837d5c93b0bc74f"><div class="ttname"><a href="qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a></div><div class="ttdeci">int8_t qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__householder_8c_source.html#l00033">qr_householder.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="autils_8h_html_a8cda5a6c15e99e2b76abfb04316301d8"><div class="ttname"><a href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a></div><div class="ttdeci">double utils_get_save_square_root(double x, double y)</div><div class="ttdoc">Compute the square root without under/overflow.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00168">utils.c:168</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="qr__householder_8c.html">qr_householder.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__householder_8h.html b/doc/doxygen/html/qr__householder_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..ea0bf10a1697a14cf093ed134b7395557fb8651f --- /dev/null +++ b/doc/doxygen/html/qr__householder_8h.html @@ -0,0 +1,203 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_householder.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__householder_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_householder.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__matrix__decompositions.html">MATRIX_DECOMPOSITIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Householder algorithm for the QR-decomposition. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="qr__householder_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a926e8bce91b658f64837d5c93b0bc74f"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], uint8_t q_col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num], bool reduced)</td></tr> +<tr class="memdesc:a926e8bce91b658f64837d5c93b0bc74f"><td class="mdescLeft"> </td><td class="mdescRight">Computes the QR decomposition of the matrix A by using the Householder algorithm. <a href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">More...</a><br /></td></tr> +<tr class="separator:a926e8bce91b658f64837d5c93b0bc74f"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Householder algorithm for the QR-decomposition. </p> +<p>Provide necessary methods to construct Q- and R- matrices using Householder reflections. A = QR, where Q is an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n)-matrix with orthonormal columns and R is an (n <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) upper triangular matrix.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__householder_8h_source.html">qr_householder.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a926e8bce91b658f64837d5c93b0bc74f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a926e8bce91b658f64837d5c93b0bc74f">◆ </a></span>qr_householder_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t qr_householder_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>q_col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Q</em>[][q_col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>reduced</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the QR decomposition of the matrix A by using the Householder algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>R is stored in the matrix A.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose in QR. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose in QR. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrices A and R. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">q_col_num</td><td>column number of the matrix Q. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">Q[][]</td><td>pointer to the matrix Q. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">reduced</td><td>computes the compact form of the QR decomposition if true, otherwise the full version.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if computing the QR decomposition is successful. </dd> +<dd> +-1, if computing the QR decomposition is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="qr__householder_8c_source.html#l00033">33</a> of file <a class="el" href="qr__householder_8c_source.html">qr_householder.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="utils_8c_source.html#l00168">utils_get_save_square_root()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="householder__test_8c_source.html#l00031">householder_test()</a>, and <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="qr__householder_8h.html">qr_householder.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__householder_8h.js b/doc/doxygen/html/qr__householder_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..6eefdf7b370595cda4add2ebbe4624bf140eefa4 --- /dev/null +++ b/doc/doxygen/html/qr__householder_8h.js @@ -0,0 +1,4 @@ +var qr__householder_8h = +[ + [ "qr_householder_decomp", "qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__householder_8h_source.html b/doc/doxygen/html/qr__householder_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..f3fb61216d65979e3fffb192a662c992dbae805a --- /dev/null +++ b/doc/doxygen/html/qr__householder_8h_source.html @@ -0,0 +1,128 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_householder.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__householder_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_householder.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__householder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef QR_HOUSEHOLDER_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define QR_HOUSEHOLDER_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> int8_t <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  uint8_t q_col_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[][q_col_num],</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">bool</span> reduced);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif </span><span class="comment">/* QR_HOUSEHOLDER_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__householder_8h_html_a926e8bce91b658f64837d5c93b0bc74f"><div class="ttname"><a href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a></div><div class="ttdeci">int8_t qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__householder_8c_source.html#l00033">qr_householder.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="qr__householder_8h.html">qr_householder.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pinv__test_8c.html b/doc/doxygen/html/qr__pinv__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..4fd7e7e030c287dfcbec1065025418ab6abe79f8 --- /dev/null +++ b/doc/doxygen/html/qr__pinv__test_8c.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pinv_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pinv__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_pinv_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the QR-based pseudo-inverse algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <<a class="el" href="qr__pseudo__inverse_8h_source.html">qr_pseudo_inverse.h</a>></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__common_8h_source.html">qr_common.h</a>"</code><br /> +</div> +<p><a href="qr__pinv__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a292d2351f35310e579dd0741ab4857db"><td class="memItemLeft" align="right" valign="top"><a id="a292d2351f35310e579dd0741ab4857db"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test</a> (void)</td></tr> +<tr class="memdesc:a292d2351f35310e579dd0741ab4857db"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the QR-based pseudo-inverse algorithm. <br /></td></tr> +<tr class="separator:a292d2351f35310e579dd0741ab4857db"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the QR-based pseudo-inverse algorithm. </p> +<p>QR-based pseudo-inverse algorithm examples (see the <a class="el" href="qr__pseudo__inverse_8h.html">QR Pseudo-Inverse</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__pinv__test_8c_source.html">qr_pinv_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="qr__pinv__test_8c.html">qr_pinv_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pinv__test_8c.js b/doc/doxygen/html/qr__pinv__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..8d9ed76065f14698522692297b50db86ea4cc8c1 --- /dev/null +++ b/doc/doxygen/html/qr__pinv__test_8c.js @@ -0,0 +1,4 @@ +var qr__pinv__test_8c = +[ + [ "qr_pinv_test", "qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__pinv__test_8c_source.html b/doc/doxygen/html/qr__pinv__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..d3288a51372a66f6ba4083f24ed60155d91ef223 --- /dev/null +++ b/doc/doxygen/html/qr__pinv__test_8c_source.html @@ -0,0 +1,200 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pinv_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pinv__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_pinv_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__pinv__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="qr__pseudo__inverse_8h.html">qr_pseudo_inverse.h</a>></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="qr__common_8h.html">qr_common.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db"> 30</a></span> <span class="keywordtype">void</span> <a class="code" href="qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  puts(<span class="stringliteral">"\n\n++++++++++++++++++++++++++++++ QR Pseudo-Inverse ++++++++++++++++++++++++++++++\n"</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  puts(<span class="stringliteral">"************ Householder: MATRIX A ************"</span>);</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[10][5] = {</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 },</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { 0.0975, 0.1419, 0.7577, 0.8235, 0.4898 },</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  { 0.2785, 0.4218, 0.7431, 0.6948, 0.4456 },</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  { 0.5469, 0.9157, 0.3922, 0.3171, 0.6463 },</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  { 0.9575, 0.7922, 0.6555, 0.9502, 0.7094 },</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  { 0.9649, 0.9595, 0.1712, 0.0344, 0.7547 }</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  };</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  uint8_t m, n;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  m = 10;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  n = 5;</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m];</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a>(m, n, A, pinv_A, QR_Householder);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  printf(<span class="stringliteral">"pinv_A = "</span>);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, pinv_A, 8, 4);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  puts(<span class="stringliteral">"************ Householder: MATRIX B ************"</span>);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> B[7][7] =</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  { 0.8147, 0.5469, 0.8003, 0.0357, 0.6555, 0.8235, 0.7655 },</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  { 0.9058, 0.9575, 0.1419, 0.8491, 0.1712, 0.6948, 0.7952 },</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  { 0.1270, 0.9649, 0.4218, 0.9340, 0.7060, 0.3171, 0.1869 },</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  { 0.9134, 0.1576, 0.9157, 0.6787, 0.0318, 0.9502, 0.4898 },</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  { 0.6324, 0.9706, 0.7922, 0.7577, 0.2769, 0.0344, 0.4456 },</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  { 0.0975, 0.9572, 0.9595, 0.7431, 0.0462, 0.4387, 0.6463 },</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  { 0.2785, 0.4854, 0.6557, 0.3922, 0.0971, 0.3816, 0.7094 }</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  };</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  m = 7;</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  n = 7;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_B[m][n];</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a>(m, n, B, pinv_B, QR_Householder);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  printf(<span class="stringliteral">"pinv_B = "</span>);</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, pinv_B, 8, 4);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  puts(<span class="stringliteral">"************ Givens: MATRIX A ************"</span>);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  m = 10;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  n = 5;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a>(m, n, A, pinv_A, QR_Givens);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  printf(<span class="stringliteral">"pinv_A = "</span>);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, pinv_A, 8, 4);</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  puts(<span class="stringliteral">"************ Givens: MATRIX B ************"</span>);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  m = 7;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  n = 7;</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a>(m, n, B, pinv_B, QR_Givens);</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  printf(<span class="stringliteral">"pinv_B = "</span>);</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(n, m, pinv_B, 8, 4);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__pseudo__inverse_8h_html"><div class="ttname"><a href="qr__pseudo__inverse_8h.html">qr_pseudo_inverse.h</a></div><div class="ttdoc">QR decomposition algorithms to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="aqr__pseudo__inverse_8h_html_a9fb1ebdfe21c5a66cd322f00bf886d8d"><div class="ttname"><a href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a></div><div class="ttdeci">int8_t qr_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m], enum QR_ALGORITHM algo)</div><div class="ttdoc">Calculate the pseudo inverse of a rectangular matrix using the QR decomposition.</div><div class="ttdef"><b>Definition:</b> <a href="qr__pseudo__inverse_8c_source.html#l00032">qr_pseudo_inverse.c:32</a></div></div> +<div class="ttc" id="aqr__common_8h_html"><div class="ttname"><a href="qr__common_8h.html">qr_common.h</a></div><div class="ttdoc">Common definitions and implementations for the QR-decomposition. Provide necessary methods to constru...</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="aqr__pinv__test_8c_html_a292d2351f35310e579dd0741ab4857db"><div class="ttname"><a href="qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test</a></div><div class="ttdeci">void qr_pinv_test(void)</div><div class="ttdoc">Examples of the QR-based pseudo-inverse algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__pinv__test_8c_source.html#l00030">qr_pinv_test.c:30</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="qr__pinv__test_8c.html">qr_pinv_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pinv__test_8h.html b/doc/doxygen/html/qr__pinv__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..33b6961ab88c73e50180592f9572ac9d68282cd2 --- /dev/null +++ b/doc/doxygen/html/qr__pinv__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pinv_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pinv__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_pinv_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the QR-based pseudo-inverse algorithm. +<a href="#details">More...</a></p> + +<p><a href="qr__pinv__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a292d2351f35310e579dd0741ab4857db"><td class="memItemLeft" align="right" valign="top"><a id="a292d2351f35310e579dd0741ab4857db"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test</a> (void)</td></tr> +<tr class="memdesc:a292d2351f35310e579dd0741ab4857db"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the QR-based pseudo-inverse algorithm. <br /></td></tr> +<tr class="separator:a292d2351f35310e579dd0741ab4857db"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the QR-based pseudo-inverse algorithm. </p> +<p>QR-based pseudo-inverse algorithm examples (see the <a class="el" href="qr__pseudo__inverse_8h.html">QR Pseudo-Inverse</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__pinv__test_8h_source.html">qr_pinv_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_d1e348b883576f9e259f3b5246ea82c0.html">include</a></li><li class="navelem"><a class="el" href="qr__pinv__test_8h.html">qr_pinv_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pinv__test_8h.js b/doc/doxygen/html/qr__pinv__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..d978d46d8342156acd0d118d73c6ef9e3027c7ec --- /dev/null +++ b/doc/doxygen/html/qr__pinv__test_8h.js @@ -0,0 +1,4 @@ +var qr__pinv__test_8h = +[ + [ "qr_pinv_test", "qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__pinv__test_8h_source.html b/doc/doxygen/html/qr__pinv__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..a9e3d4097ba14ce485fff0edd37ccff72d2d9fe3 --- /dev/null +++ b/doc/doxygen/html/qr__pinv__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pinv_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pinv__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_pinv_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__pinv__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef QR_PINV_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define QR_PINV_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif </span><span class="comment">/* TESTS_QR_PINV_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__pinv__test_8h_html_a292d2351f35310e579dd0741ab4857db"><div class="ttname"><a href="qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db">qr_pinv_test</a></div><div class="ttdeci">void qr_pinv_test(void)</div><div class="ttdoc">Examples of the QR-based pseudo-inverse algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__pinv__test_8c_source.html#l00030">qr_pinv_test.c:30</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_1513adee4b8f281871e1ff2ded4af7fe.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_d1e348b883576f9e259f3b5246ea82c0.html">include</a></li><li class="navelem"><a class="el" href="qr__pinv__test_8h.html">qr_pinv_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pseudo__inverse_8c.html b/doc/doxygen/html/qr__pseudo__inverse_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..2c64a9b128773b76ca320b862f743ac7759e390f --- /dev/null +++ b/doc/doxygen/html/qr__pseudo__inverse_8c.html @@ -0,0 +1,198 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pseudo_inverse.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pseudo__inverse_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_pseudo_inverse.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>QR decomposition algorithms to compute the pseudo-inverse of a matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__common_8h_source.html">qr_common.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__givens_8h_source.html">qr_givens.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__householder_8h_source.html">qr_householder.h</a>"</code><br /> +<code>#include "<a class="el" href="pseudo__inverse_8h_source.html">pseudo_inverse.h</a>"</code><br /> +</div> +<p><a href="qr__pseudo__inverse_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a9fb1ebdfe21c5a66cd322f00bf886d8d"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m], enum <a class="el" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> algo)</td></tr> +<tr class="memdesc:a9fb1ebdfe21c5a66cd322f00bf886d8d"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the pseudo inverse of a rectangular matrix using the QR decomposition. <a href="qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">More...</a><br /></td></tr> +<tr class="separator:a9fb1ebdfe21c5a66cd322f00bf886d8d"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>QR decomposition algorithms to compute the pseudo-inverse of a matrix. </p> +<p>The computation of the pseudo-inverse is implemented using the Householder or the Givens algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__pseudo__inverse_8c_source.html">qr_pseudo_inverse.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a9fb1ebdfe21c5a66cd322f00bf886d8d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a9fb1ebdfe21c5a66cd322f00bf886d8d">◆ </a></span>qr_get_pinv()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t qr_get_pinv </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pinv_A</em>[n][m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">enum <a class="el" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> </td> + <td class="paramname"><em>algo</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the pseudo inverse of a rectangular matrix using the QR decomposition. </p> +<p>The computation of the pseudo inverse is based on the Householder or Givens algorithm.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">pinv_A[][]</td><td>pointer to the pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">algo</td><td>choice between the Householder or Givens algorithms.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if computing the pseudo-inverse matrix is successful. </dd> +<dd> +-1, if computing the pseudo-inverse matrix is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="qr__pseudo__inverse_8c_source.html#l00032">32</a> of file <a class="el" href="qr__pseudo__inverse_8c_source.html">qr_pseudo_inverse.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__pinv__test_8c_source.html#l00030">qr_pinv_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="qr__pseudo__inverse_8c.html">qr_pseudo_inverse.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pseudo__inverse_8c.js b/doc/doxygen/html/qr__pseudo__inverse_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..5f6664d1bfcf3e0f37f6a9a0fbb56498a3a1dfd1 --- /dev/null +++ b/doc/doxygen/html/qr__pseudo__inverse_8c.js @@ -0,0 +1,4 @@ +var qr__pseudo__inverse_8c = +[ + [ "qr_get_pinv", "qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__pseudo__inverse_8c_source.html b/doc/doxygen/html/qr__pseudo__inverse_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..0a02bbc9eacc94ac86e7126b74e8143564a9254a --- /dev/null +++ b/doc/doxygen/html/qr__pseudo__inverse_8c_source.html @@ -0,0 +1,195 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pseudo_inverse.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pseudo__inverse_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_pseudo_inverse.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__pseudo__inverse_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="qr__common_8h.html">qr_common.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="qr__givens_8h.html">qr_givens.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="qr__householder_8h.html">qr_householder.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="pseudo__inverse_8h.html">pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d"> 32</a></span> int8_t <a class="code" href="qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m], <span class="keyword">enum</span> <a class="code" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> algo)</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  int8_t status;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">switch</span> (algo) {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">case</span> QR_Householder:</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  {</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  puts(<span class="stringliteral">"Householder !!!!"</span>);</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m];</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R[m][n];</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, R);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  status = <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(m, n, R, m, Q, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_R[n][m];</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a>(m, n, R, inv_R);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">// A+ = R^-1*Q'</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a>(m, Q);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(n, m, inv_R, m, m, Q, pinv_A);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">case</span> QR_Givens:</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  puts(<span class="stringliteral">"Givens !!!"</span>);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m];</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R[m][n];</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, R);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  status = <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(m, n, R, m, Q, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_R[n][m];</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a>(m, n, R, inv_R);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// A+ = R^-1*Q'</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a>(m, Q);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(n, m, inv_R, m, m, Q, pinv_A);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">default</span>:</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][m];</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> R[m][n];</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, R);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  status = <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(m, n, R, m, Q, <span class="keyword">false</span>);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_R[n][m];</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a>(m, n, R, inv_R);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// A+ = R^-1*Q'</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a>(m, Q);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(n, m, inv_R, m, m, Q, pinv_A);</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> status;</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__householder_8h_html_a926e8bce91b658f64837d5c93b0bc74f"><div class="ttname"><a href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a></div><div class="ttdeci">int8_t qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__householder_8c_source.html#l00033">qr_householder.c:33</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html"><div class="ttname"><a href="pseudo__inverse_8h.html">pseudo_inverse.h</a></div><div class="ttdoc">Compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="aqr__householder_8h_html"><div class="ttname"><a href="qr__householder_8h.html">qr_householder.h</a></div><div class="ttdoc">Householder algorithm for the QR-decomposition.</div></div> +<div class="ttc" id="aqr__common_8h_html_ac62c54358ecc0c35cdef1c3fb37cc73b"><div class="ttname"><a href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a></div><div class="ttdeci">QR_ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the QR-decomposition of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8h_source.html#l00032">qr_common.h:32</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aqr__pseudo__inverse_8c_html_a9fb1ebdfe21c5a66cd322f00bf886d8d"><div class="ttname"><a href="qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a></div><div class="ttdeci">int8_t qr_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m], enum QR_ALGORITHM algo)</div><div class="ttdoc">Calculate the pseudo inverse of a rectangular matrix using the QR decomposition.</div><div class="ttdef"><b>Definition:</b> <a href="qr__pseudo__inverse_8c_source.html#l00032">qr_pseudo_inverse.c:32</a></div></div> +<div class="ttc" id="aqr__common_8h_html"><div class="ttname"><a href="qr__common_8h.html">qr_common.h</a></div><div class="ttdoc">Common definitions and implementations for the QR-decomposition. Provide necessary methods to constru...</div></div> +<div class="ttc" id="amatrix_8h_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="aqr__givens_8h_html_a07adca97c58afc057a5cff738f6473cc"><div class="ttname"><a href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a></div><div class="ttdeci">int8_t qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00033">qr_givens.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_ab166871472924745f70e2bb6e17498c8"><div class="ttname"><a href="matrix_8h.html#ab166871472924745f70e2bb6e17498c8">matrix_get_inv_upp_triang</a></div><div class="ttdeci">void matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m])</div><div class="ttdoc">Computes the inverse an upper triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00795">matrix.c:795</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_a48b36217faeda15438f4e07c54d0ef9e"><div class="ttname"><a href="matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e">matrix_in_place_transpose</a></div><div class="ttdeci">void matrix_in_place_transpose(uint8_t m, matrix_t matrix[][m])</div><div class="ttdoc">Computes the in-place transpose of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00069">matrix.c:69</a></div></div> +<div class="ttc" id="aqr__givens_8h_html"><div class="ttname"><a href="qr__givens_8h.html">qr_givens.h</a></div><div class="ttdoc">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices ...</div></div> +<div class="ttc" id="amatrix_8h_html_a550aa0d5a3212e35ad0af134895fd20a"><div class="ttname"><a href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a></div><div class="ttdeci">void matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num])</div><div class="ttdoc">Compute the multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00363">matrix.c:363</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="qr__pseudo__inverse_8c.html">qr_pseudo_inverse.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pseudo__inverse_8h.html b/doc/doxygen/html/qr__pseudo__inverse_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..0decb53a6b2f2e67959b2e7cc038746ff3647626 --- /dev/null +++ b/doc/doxygen/html/qr__pseudo__inverse_8h.html @@ -0,0 +1,195 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pseudo_inverse.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pseudo__inverse_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">qr_pseudo_inverse.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__pseudo__inverse.html">PSEUDO_INVERSE</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>QR decomposition algorithms to compute the pseudo-inverse of a matrix. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__common_8h_source.html">qr_common.h</a>"</code><br /> +</div> +<p><a href="qr__pseudo__inverse_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a9fb1ebdfe21c5a66cd322f00bf886d8d"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m], enum <a class="el" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> algo)</td></tr> +<tr class="memdesc:a9fb1ebdfe21c5a66cd322f00bf886d8d"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the pseudo inverse of a rectangular matrix using the QR decomposition. <a href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">More...</a><br /></td></tr> +<tr class="separator:a9fb1ebdfe21c5a66cd322f00bf886d8d"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>QR decomposition algorithms to compute the pseudo-inverse of a matrix. </p> +<p>The computation of the pseudo-inverse is implemented using the Householder or the Givens algorithms.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="qr__pseudo__inverse_8h_source.html">qr_pseudo_inverse.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a9fb1ebdfe21c5a66cd322f00bf886d8d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a9fb1ebdfe21c5a66cd322f00bf886d8d">◆ </a></span>qr_get_pinv()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t qr_get_pinv </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pinv_A</em>[n][m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">enum <a class="el" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> </td> + <td class="paramname"><em>algo</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the pseudo inverse of a rectangular matrix using the QR decomposition. </p> +<p>The computation of the pseudo inverse is based on the Householder or Givens algorithm.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to inverse. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">pinv_A[][]</td><td>pointer to the pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">algo</td><td>choice between the Householder or Givens algorithms.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if computing the pseudo-inverse matrix is successful. </dd> +<dd> +-1, if computing the pseudo-inverse matrix is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="qr__pseudo__inverse_8c_source.html#l00032">32</a> of file <a class="el" href="qr__pseudo__inverse_8c_source.html">qr_pseudo_inverse.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__pinv__test_8c_source.html#l00030">qr_pinv_test()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html">include</a></li><li class="navelem"><a class="el" href="qr__pseudo__inverse_8h.html">qr_pseudo_inverse.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/qr__pseudo__inverse_8h.js b/doc/doxygen/html/qr__pseudo__inverse_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..6be647474a0ea70e7ad849fa35ca7175e3a2525a --- /dev/null +++ b/doc/doxygen/html/qr__pseudo__inverse_8h.js @@ -0,0 +1,4 @@ +var qr__pseudo__inverse_8h = +[ + [ "qr_get_pinv", "qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/qr__pseudo__inverse_8h_source.html b/doc/doxygen/html/qr__pseudo__inverse_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..8b2a816ad95336c7c3ef978674a3e9063017af3a --- /dev/null +++ b/doc/doxygen/html/qr__pseudo__inverse_8h_source.html @@ -0,0 +1,131 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: qr_pseudo_inverse.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('qr__pseudo__inverse_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">qr_pseudo_inverse.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="qr__pseudo__inverse_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef QR_GET_PINV_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define QR_GET_PINV_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="qr__common_8h.html">qr_common.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> int8_t <a class="code" href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m], <span class="keyword">enum</span> <a class="code" href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a> algo);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif </span><span class="comment">/* QR_GET_PINV_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="aqr__common_8h_html_ac62c54358ecc0c35cdef1c3fb37cc73b"><div class="ttname"><a href="qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b">QR_ALGORITHM</a></div><div class="ttdeci">QR_ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the QR-decomposition of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8h_source.html#l00032">qr_common.h:32</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="aqr__pseudo__inverse_8h_html_a9fb1ebdfe21c5a66cd322f00bf886d8d"><div class="ttname"><a href="qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d">qr_get_pinv</a></div><div class="ttdeci">int8_t qr_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m], enum QR_ALGORITHM algo)</div><div class="ttdoc">Calculate the pseudo inverse of a rectangular matrix using the QR decomposition.</div><div class="ttdef"><b>Definition:</b> <a href="qr__pseudo__inverse_8c_source.html#l00032">qr_pseudo_inverse.c:32</a></div></div> +<div class="ttc" id="aqr__common_8h_html"><div class="ttname"><a href="qr__common_8h.html">qr_common.h</a></div><div class="ttdoc">Common definitions and implementations for the QR-decomposition. Provide necessary methods to constru...</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_26c6b27917397f8a74a0fdde30fa8c1c.html">pseudo_inverse</a></li><li class="navelem"><a class="el" href="dir_67e8c5a6e5ecbf2be8ed6f96c0e04fcd.html">include</a></li><li class="navelem"><a class="el" href="qr__pseudo__inverse_8h.html">qr_pseudo_inverse.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/resize.js b/doc/doxygen/html/resize.js new file mode 100644 index 0000000000000000000000000000000000000000..f5291d902759ee8552e4ac4a811e48b9c574745f --- /dev/null +++ b/doc/doxygen/html/resize.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width<desktop_vp && collapsedWidth>=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth<desktop_vp) { + if (collapsed) { + collapseExpand(); + } + } + collapsedWidth=width; + } + } + + function collapseExpand() + { + if (sidenav.width()>0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/doc/doxygen/html/search/all_0.html b/doc/doxygen/html/search/all_0.html new file mode 100644 index 0000000000000000000000000000000000000000..a52d5f0535391b661a1dfae0ed00dc7974ee0507 --- /dev/null +++ b/doc/doxygen/html/search/all_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_0.js b/doc/doxygen/html/search/all_0.js new file mode 100644 index 0000000000000000000000000000000000000000..9873e8d04193d2b1c1dae523fa36a726c1e08c03 --- /dev/null +++ b/doc/doxygen/html/search/all_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['algorithm_0',['ALGORITHM',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3',1,'pseudo_inverse.h']]], + ['ar_1',['AR',['../magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/all_1.html b/doc/doxygen/html/search/all_1.html new file mode 100644 index 0000000000000000000000000000000000000000..0fcb70401f93774dce98bec0fe557279aeae71ea --- /dev/null +++ b/doc/doxygen/html/search/all_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_1.js b/doc/doxygen/html/search/all_1.js new file mode 100644 index 0000000000000000000000000000000000000000..2a6a23b15e5d9528fa7f3cc5aa3d0f761cc1c467 --- /dev/null +++ b/doc/doxygen/html/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['basic_5foperations_2',['BASIC_OPERATIONS',['../group__basic__operations.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_10.html b/doc/doxygen/html/search/all_10.html new file mode 100644 index 0000000000000000000000000000000000000000..c234738ec7ea0f9f13e60c897e84e6efa3d19fcb --- /dev/null +++ b/doc/doxygen/html/search/all_10.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_10.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_10.js b/doc/doxygen/html/search/all_10.js new file mode 100644 index 0000000000000000000000000000000000000000..f8c74acccdeace9d2b7cd68c2a2e599f49bbc932 --- /dev/null +++ b/doc/doxygen/html/search/all_10.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['rcdmathlib_20documentation_248',['RcdMathLib Documentation',['../index.html',1,'']]], + ['r0_249',['R0',['../magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f',1,'magnetic_based_position.h']]], + ['recog_5fmitigate_5fmultipath_250',['recog_mitigate_multipath',['../multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd',1,'recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_Matrix[m][3], matrix_t r_noised_vec[m], uint8_t anchors_optimal[k], matrix_t start_optimal[3]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47',1,'recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_matrix[m][3], matrix_t noised_r_vec[m], uint8_t anchors_optimal_combi[k], matrix_t start_optimal_pos[3]): multipath_dist_detection_mitigation.c']]], + ['row_5fnum_251',['row_num',['../structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721',1,'matrix_dim_t']]] +]; diff --git a/doc/doxygen/html/search/all_11.html b/doc/doxygen/html/search/all_11.html new file mode 100644 index 0000000000000000000000000000000000000000..2f927fe5f033f1bf481494352f8340237f834967 --- /dev/null +++ b/doc/doxygen/html/search/all_11.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_11.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_11.js b/doc/doxygen/html/search/all_11.js new file mode 100644 index 0000000000000000000000000000000000000000..48966253c991c0320fe501746a64f7a6e0e0c8f9 --- /dev/null +++ b/doc/doxygen/html/search/all_11.js @@ -0,0 +1,35 @@ +var searchData= +[ + ['shell_5fsort_252',['shell_sort',['../shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6',1,'shell_sort(vector_t *arr, uint8_t length): shell_sort.c'],['../shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6',1,'shell_sort(vector_t *arr, uint8_t length): shell_sort.c']]], + ['shell_5fsort_2ec_253',['shell_sort.c',['../shell__sort_8c.html',1,'']]], + ['shell_5fsort_2eh_254',['shell_sort.h',['../shell__sort_8h.html',1,'']]], + ['sim_5fuwb_5fdist_255',['sim_UWB_dist',['../multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957',1,'sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957',1,'sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[]): multipath_dist_detection_mitigation.c']]], + ['solve_256',['solve',['../solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1',1,'solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo): solve.c'],['../solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1',1,'solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo): solve.c']]], + ['solve_2ec_257',['solve.c',['../solve_8c.html',1,'']]], + ['solve_2eh_258',['solve.h',['../solve_8h.html',1,'']]], + ['solve_5fbig_5fmatrix_5ftest_259',['solve_big_matrix_test',['../solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371',1,'solve_big_matrix_test(void): solve_test.c'],['../solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371',1,'solve_big_matrix_test(void): solve_test.c']]], + ['solve_5fgivens_260',['solve_givens',['../solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88',1,'solve_givens(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c'],['../solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88',1,'solve_givens(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c']]], + ['solve_5fhouseholder_261',['solve_householder',['../solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd',1,'solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c'],['../solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd',1,'solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c']]], + ['solve_5flinear_5fequations_262',['SOLVE_LINEAR_EQUATIONS',['../group__solve__linear__equations.html',1,'']]], + ['solve_5flu_5fdecomp_263',['solve_lu_decomp',['../solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634',1,'solve_lu_decomp(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c'],['../solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634',1,'solve_lu_decomp(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c']]], + ['solve_5fnon_5flinear_5fequations_264',['SOLVE_NON_LINEAR_EQUATIONS',['../group__solve__non__linear__equations.html',1,'']]], + ['solve_5ftest_265',['solve_test',['../solve__test_8h.html#a468b4492daa139d24a18624526001220',1,'solve_test(void): solve_test.c'],['../solve__test_8c.html#a468b4492daa139d24a18624526001220',1,'solve_test(void): solve_test.c']]], + ['solve_5ftest_2ec_266',['solve_test.c',['../solve__test_8c.html',1,'']]], + ['solve_5ftest_2eh_267',['solve_test.h',['../solve__test_8h.html',1,'']]], + ['svd_268',['svd',['../svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e',1,'svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[]): svd.c'],['../svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e',1,'svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[]): svd.c']]], + ['svd_2ec_269',['svd.c',['../svd_8c.html',1,'']]], + ['svd_2eh_270',['svd.h',['../svd_8h.html',1,'']]], + ['svd_5fcompute_5fnegligible_5fvalues_271',['SVD_COMPUTE_NEGLIGIBLE_VALUES',['../svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5',1,'svd.h']]], + ['svd_5fcompute_5fprint_5fu_5fs_5fv_5fs_272',['svd_compute_print_U_S_V_s',['../svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595',1,'svd_compute_print_U_S_V_s(uint8_t m, uint8_t n, matrix_t matrix_arr[m][n], uint8_t i): svd.c'],['../svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595',1,'svd_compute_print_U_S_V_s(uint8_t m, uint8_t n, matrix_t matrix_arr[m][n], uint8_t i): svd.c']]], + ['svd_5fget_5freciproc_5fsingular_5fvalues_273',['svd_get_reciproc_singular_values',['../svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb',1,'svd_get_reciproc_singular_values(uint8_t m, uint8_t n, uint8_t length, matrix_t singl_values_arr[], matrix_t recip_singl_values_arr[]): svd.c'],['../svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb',1,'svd_get_reciproc_singular_values(uint8_t m, uint8_t n, uint8_t length, matrix_t singl_values_arr[], matrix_t recip_singl_values_arr[]): svd.c']]], + ['svd_5fget_5fs_5fdim_274',['svd_get_S_dim',['../svd_8h.html#aeb7ac3eac076a0f52c729849599808a6',1,'svd_get_S_dim(uint8_t m, uint8_t n, matrix_dim_t *s_dim): svd.c'],['../svd_8c.html#aeb7ac3eac076a0f52c729849599808a6',1,'svd_get_S_dim(uint8_t m, uint8_t n, matrix_dim_t *s_dim): svd.c']]], + ['svd_5fget_5fsingle_5fvalues_5fnum_275',['svd_get_single_values_num',['../svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e',1,'svd_get_single_values_num(uint8_t m, uint8_t n): svd.c'],['../svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e',1,'svd_get_single_values_num(uint8_t m, uint8_t n): svd.c']]], + ['svd_5fget_5fu_5fdim_276',['svd_get_U_dim',['../svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8',1,'svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim): svd.c'],['../svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8',1,'svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim): svd.c']]], + ['svd_5fget_5fv_5fdim_277',['svd_get_V_dim',['../svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07',1,'svd_get_V_dim(uint8_t m, uint8_t n, matrix_dim_t *v_dim): svd.c'],['../svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07',1,'svd_get_V_dim(uint8_t m, uint8_t n, matrix_dim_t *v_dim): svd.c']]], + ['svd_5forder_5fabsolute_5fsing_5fvalues_278',['SVD_ORDER_ABSOLUTE_SING_VALUES',['../svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a',1,'svd.h']]], + ['svd_5fqr_5fstep_279',['SVD_QR_STEP',['../svd_8h.html#af9e7db6685a0631312bfb93cc58dd756',1,'svd.h']]], + ['svd_5fsplit_5fat_5fnegligible_5fvalues_280',['SVD_SPLIT_AT_NEGLIGIBLE_VALUES',['../svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4',1,'svd.h']]], + ['svd_5ftest_281',['svd_test',['../svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077',1,'svd_test(void): svd_test.c'],['../svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077',1,'svd_test(void): svd_test.c']]], + ['svd_5ftest_2ec_282',['svd_test.c',['../svd__test_8c.html',1,'']]], + ['svd_5ftest_2eh_283',['svd_test.h',['../svd__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_12.html b/doc/doxygen/html/search/all_12.html new file mode 100644 index 0000000000000000000000000000000000000000..6b0988c9246acc33d61f642647eed60f24121e8b --- /dev/null +++ b/doc/doxygen/html/search/all_12.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_12.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_12.js b/doc/doxygen/html/search/all_12.js new file mode 100644 index 0000000000000000000000000000000000000000..7fb77ba496054e8e9dbb681c0a27e7433b83a365 --- /dev/null +++ b/doc/doxygen/html/search/all_12.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['triangular_5fmatrices_5ftest_284',['triangular_matrices_test',['../matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f',1,'triangular_matrices_test(void): matrix_test.c'],['../matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f',1,'triangular_matrices_test(void): matrix_test.c']]], + ['trilateration_2ec_285',['trilateration.c',['../trilateration_8c.html',1,'']]], + ['trilateration_2eh_286',['trilateration.h',['../trilateration_8h.html',1,'']]], + ['trilateration1_287',['trilateration1',['../trilateration_8h.html#a95fc45efcb10019be21704539eeedefb',1,'trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c'],['../trilateration_8c.html#a95fc45efcb10019be21704539eeedefb',1,'trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c']]], + ['trilateration2_288',['trilateration2',['../trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea',1,'trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c'],['../trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea',1,'trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c']]], + ['trilateration_5fget_5fa_5fmatrix_289',['trilateration_get_A_matrix',['../trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832',1,'trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4]): trilateration.c'],['../trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832',1,'trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4]): trilateration.c']]], + ['trilateration_5fget_5fb_5fvector_290',['trilateration_get_b_vector',['../trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082',1,'trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[], matrix_t anchor_pos_matrix[anchor_num][3], matrix_t b_vec[]): trilateration.c'],['../trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082',1,'trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[], matrix_t anchor_pos_matrix[anchor_num][3], matrix_t b_vec[]): trilateration.c']]], + ['trilateration_5fget_5fparticular_5fsolution_291',['trilateration_get_particular_solution',['../trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358',1,'trilateration_get_particular_solution(uint8_t m, uint8_t n, matrix_t anchor_pos_mat[m][n], matrix_t dist_arr[], matrix_t Xp[]): trilateration.c'],['../trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358',1,'trilateration_get_particular_solution(uint8_t m, uint8_t n, matrix_t anchor_pos_mat[m][n], matrix_t dist_arr[], matrix_t Xp[]): trilateration.c']]], + ['trilateration_5fget_5fquadratic_5fequation_5fsolution_292',['trilateration_get_quadratic_equation_solution',['../trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe',1,'trilateration_get_quadratic_equation_solution(matrix_t particular_solu_arr[], matrix_t homogeneous_solution_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c'],['../trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e',1,'trilateration_get_quadratic_equation_solution(matrix_t Xp[], matrix_t Xh[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c']]], + ['trilateration_5fget_5frank_5fand_5fhomogeneous_5fsolution_293',['trilateration_get_rank_and_homogeneous_solution',['../trilateration_8h.html#ab5f06e68df75b4708d722c268932578c',1,'trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t Xh[]): trilateration.c'],['../trilateration_8c.html#ab5f06e68df75b4708d722c268932578c',1,'trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t Xh[]): trilateration.c']]], + ['trilateration_5fpreprocessed_5fget_5fparticular_5fsolution_294',['trilateration_preprocessed_get_particular_solution',['../trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758',1,'trilateration_preprocessed_get_particular_solution(matrix_t pseudo_inv_matrix[4][3], matrix_t b_arr[], matrix_t particular_solu_arr[]): trilateration.c'],['../trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758',1,'trilateration_preprocessed_get_particular_solution(matrix_t pseudo_inv_matrix[4][3], matrix_t b_arr[], matrix_t particular_solu_arr[]): trilateration.c']]], + ['trilateration_5fsolve_5flinear_5fequation_295',['trilateration_solve_linear_equation',['../trilateration_8h.html#a4270371ead754327c478d19d57bfafba',1,'trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num, matrix_t pseudo_inv_matrix[line_num][col_num], matrix_t b_vec[], matrix_t sol_vec[]): trilateration.c'],['../trilateration_8c.html#a4270371ead754327c478d19d57bfafba',1,'trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num, matrix_t pseudo_inv_matrix[line_num][col_num], matrix_t b_vec[], matrix_t sol_vec[]): trilateration.c']]] +]; diff --git a/doc/doxygen/html/search/all_13.html b/doc/doxygen/html/search/all_13.html new file mode 100644 index 0000000000000000000000000000000000000000..7e5f42a98b0daca10b5faaeac26c91dad77470c7 --- /dev/null +++ b/doc/doxygen/html/search/all_13.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_13.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_13.js b/doc/doxygen/html/search/all_13.js new file mode 100644 index 0000000000000000000000000000000000000000..5f1f3dc64d3f357a8ed86350770e2b5a7ae3eedd --- /dev/null +++ b/doc/doxygen/html/search/all_13.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['utilities_296',['UTILITIES',['../group__utilities.html',1,'']]], + ['utils_2ec_297',['utils.c',['../utils_8c.html',1,'']]], + ['utils_2eh_298',['utils.h',['../utils_8h.html',1,'']]], + ['utils_5fget_5fmedian_299',['utils_get_median',['../utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee',1,'utils_get_median(vector_t arr[], uint8_t length): utils.c'],['../utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee',1,'utils_get_median(vector_t arr[], uint8_t length): utils.c']]], + ['utils_5fget_5fsave_5fsquare_5froot_300',['utils_get_save_square_root',['../utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8',1,'utils_get_save_square_root(double x, double y): utils.c'],['../utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8',1,'utils_get_save_square_root(double x, double y): utils.c']]], + ['utils_5fmax_301',['utils_max',['../utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5',1,'utils_max(double a, double b): utils.c'],['../utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5',1,'utils_max(double a, double b): utils.c']]], + ['utils_5fmean_302',['utils_mean',['../utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6',1,'utils_mean(uint8_t arr_size, vector_t in_arr[]): utils.c'],['../utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6',1,'utils_mean(uint8_t arr_size, vector_t in_arr[]): utils.c']]], + ['utils_5fmin_303',['utils_min',['../utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d',1,'utils_min(double a, double b): utils.c'],['../utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d',1,'utils_min(double a, double b): utils.c']]], + ['utils_5fmoving_5faverage_304',['utils_moving_average',['../utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1',1,'utils_moving_average(uint8_t arr_size, vector_t in_arr[], uint8_t window_size, vector_t out_arr[]): utils.c'],['../utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1',1,'utils_moving_average(uint8_t arr_size, vector_t in_arr[], uint8_t window_size, vector_t out_arr[]): utils.c']]], + ['utils_5fprintf_305',['utils_printf',['../utils_8h.html#a335d8d6c4b945638261228cd116cccd6',1,'utils_printf(char *format_str,...): utils.c'],['../utils_8c.html#a335d8d6c4b945638261228cd116cccd6',1,'utils_printf(char *format_str,...): utils.c']]], + ['utils_5fsind_306',['utils_sind',['../utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf',1,'utils_sind(double deg_angle): utils.c'],['../utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf',1,'utils_sind(double deg_angle): utils.c']]], + ['utils_5fswap_307',['utils_swap',['../utils_8h.html#ad21f654c48115ba2419ca98644a44ae9',1,'utils_swap(uint8_t *a, uint8_t *b): utils.c'],['../utils_8c.html#ad21f654c48115ba2419ca98644a44ae9',1,'utils_swap(uint8_t *a, uint8_t *b): utils.c']]], + ['utils_5ftest_308',['utils_test',['../utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7',1,'utils_test(void): utils_test.c'],['../utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7',1,'utils_test(void): utils_test.c']]], + ['utils_5ftest_2ec_309',['utils_test.c',['../utils__test_8c.html',1,'']]], + ['utils_5ftest_2eh_310',['utils_test.h',['../utils__test_8h.html',1,'']]], + ['utils_5fto_5fradian_311',['utils_to_radian',['../utils_8h.html#a689d2d3db40d341609423404abc5a23a',1,'utils_to_radian(double deg_angle): utils.c'],['../utils_8c.html#a689d2d3db40d341609423404abc5a23a',1,'utils_to_radian(double deg_angle): utils.c']]], + ['utils_5fu8_5fmax_312',['utils_u8_max',['../utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5',1,'utils_u8_max(uint8_t a, uint8_t b): utils.c'],['../utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5',1,'utils_u8_max(uint8_t a, uint8_t b): utils.c']]], + ['utils_5fu8_5fmin_313',['utils_u8_min',['../utils_8h.html#a81dabd4841ab656130497f0600979850',1,'utils_u8_min(uint8_t a, uint8_t b): utils.c'],['../utils_8c.html#a81dabd4841ab656130497f0600979850',1,'utils_u8_min(uint8_t a, uint8_t b): utils.c']]] +]; diff --git a/doc/doxygen/html/search/all_14.html b/doc/doxygen/html/search/all_14.html new file mode 100644 index 0000000000000000000000000000000000000000..ec7711ee85a70e7d298fd8cee0fd06998725fd43 --- /dev/null +++ b/doc/doxygen/html/search/all_14.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_14.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_14.js b/doc/doxygen/html/search/all_14.js new file mode 100644 index 0000000000000000000000000000000000000000..d93504f29df7bed38969b5c508a8c1d058a45d41 --- /dev/null +++ b/doc/doxygen/html/search/all_14.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['vector_2ec_314',['vector.c',['../vector_8c.html',1,'']]], + ['vector_2eh_315',['vector.h',['../vector_8h.html',1,'']]], + ['vector_5fadd_316',['vector_add',['../vector_8h.html#a92917951880002814392c2367896d7a0',1,'vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size]): vector.c'],['../vector_8c.html#a92917951880002814392c2367896d7a0',1,'vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size]): vector.c']]], + ['vector_5fclear_317',['vector_clear',['../vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17',1,'vector_clear(uint8_t size, vector_t arr[]): vector.c'],['../vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14',1,'vector_clear(uint8_t n, vector_t arr[]): vector.c']]], + ['vector_5fcopy_318',['vector_copy',['../vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6',1,'vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[]): vector.c'],['../vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6',1,'vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[]): vector.c']]], + ['vector_5fflex_5fprint_319',['vector_flex_print',['../vector_8h.html#ab2827264910e858f238868695a92db4b',1,'vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot): vector.c'],['../vector_8c.html#ab2827264910e858f238868695a92db4b',1,'vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot): vector.c']]], + ['vector_5fget_5felements_320',['vector_get_elements',['../vector_8h.html#a1348a041e323e7b333482242b51a7674',1,'vector_get_elements(vector_t src_vec[], uint8_t k, uint8_t index_vec[], vector_t dst_vec[]): vector.c'],['../vector_8c.html#a1348a041e323e7b333482242b51a7674',1,'vector_get_elements(vector_t src_vec[], uint8_t k, uint8_t index_vec[], vector_t dst_vec[]): vector.c']]], + ['vector_5fget_5feuclidean_5fdistance_321',['vector_get_euclidean_distance',['../vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9',1,'vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[]): vector.c'],['../vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9',1,'vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[]): vector.c']]], + ['vector_5fget_5findex_5fvector_322',['vector_get_index_vector',['../vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba',1,'vector_get_index_vector(uint8_t k, uint8_t n, vector_t unsorted_vector[n], vector_t sorted_vector[n], uint8_t index_vector[n]): vector.c'],['../vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba',1,'vector_get_index_vector(uint8_t k, uint8_t n, vector_t unsorted_vector[n], vector_t sorted_vector[n], uint8_t index_vector[n]): vector.c']]], + ['vector_5fget_5fmax_5fand_5findex_323',['vector_get_max_and_index',['../vector_8h.html#a982bc2f9e4755461eac46c6322b4562d',1,'vector_get_max_and_index(uint8_t length, vector_t vec[], uint8_t *index): vector.c'],['../vector_8c.html#a982bc2f9e4755461eac46c6322b4562d',1,'vector_get_max_and_index(uint8_t length, vector_t vec[], uint8_t *index): vector.c']]], + ['vector_5fget_5fmean_5fvalue_324',['vector_get_mean_value',['../vector_8h.html#a4a8fae4c69677390016c116123d9eff8',1,'vector_get_mean_value(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#a4a8fae4c69677390016c116123d9eff8',1,'vector_get_mean_value(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fget_5fnorm2_325',['vector_get_norm2',['../vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6',1,'vector_get_norm2(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6',1,'vector_get_norm2(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fget_5fresidual_326',['vector_get_residual',['../vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac',1,'vector_get_residual(uint8_t length, vector_t a_vec[], vector_t b_vec[]): vector.c'],['../vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac',1,'vector_get_residual(uint8_t length, vector_t a_vec[], vector_t b_vec[]): vector.c']]], + ['vector_5fget_5fscalar_5fproduct_327',['vector_get_scalar_product',['../vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e',1,'vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n]): vector.c'],['../vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e',1,'vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n]): vector.c']]], + ['vector_5fget_5fsquare_5fnorm2_328',['vector_get_square_norm2',['../vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6',1,'vector_get_square_norm2(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6',1,'vector_get_square_norm2(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fget_5fsum_329',['vector_get_sum',['../vector_8h.html#af1767c4decdd472ed81035a19cf2152b',1,'vector_get_sum(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#af1767c4decdd472ed81035a19cf2152b',1,'vector_get_sum(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fin_5fplace_5fscalar_5fmul_330',['vector_in_place_scalar_mul',['../vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4',1,'vector_in_place_scalar_mul(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c'],['../vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4',1,'vector_in_place_scalar_mul(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c']]], + ['vector_5fis_5fequal_331',['vector_is_equal',['../vector_8h.html#af98f2e3896ce7b96d598b11033ac1795',1,'vector_is_equal(uint16_t length, vector_t vec_1[], vector_t vec_2[]): vector.c'],['../vector_8c.html#af98f2e3896ce7b96d598b11033ac1795',1,'vector_is_equal(uint16_t length, vector_t vec_1[], vector_t vec_2[]): vector.c']]], + ['vector_5fmul_332',['vector_mul',['../vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5',1,'vector_mul(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_mul_b_vec[size]): vector.c'],['../vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5',1,'vector_mul(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_mul_b_vec[size]): vector.c']]], + ['vector_5fprint_333',['vector_print',['../vector_8h.html#a8f24286db94dba6ab181edcdfe296262',1,'vector_print(uint32_t length, vector_t arr[]): vector.c'],['../vector_8c.html#a8f24286db94dba6ab181edcdfe296262',1,'vector_print(uint32_t length, vector_t arr[]): vector.c']]], + ['vector_5fprint_5fu8_5farray_334',['vector_print_u8_array',['../vector_8h.html#a8ec75dc585746d950ab517e9929f31fe',1,'vector_print_u8_array(uint32_t length, uint8_t arr[]): vector.c'],['../vector_8c.html#a8ec75dc585746d950ab517e9929f31fe',1,'vector_print_u8_array(uint32_t length, uint8_t arr[]): vector.c']]], + ['vector_5fscalar_5fdiv_335',['vector_scalar_div',['../vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b',1,'vector_scalar_div(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c'],['../vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b',1,'vector_scalar_div(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c']]], + ['vector_5fscalar_5fmul_336',['vector_scalar_mul',['../vector_8h.html#a3c0bdd0e463fb34757a71470c55af845',1,'vector_scalar_mul(uint8_t size, vector_t src_vec[size], vector_t scl, vector_t dest_vec[]): vector.c'],['../vector_8c.html#a3c0bdd0e463fb34757a71470c55af845',1,'vector_scalar_mul(uint8_t size, vector_t src_vec[size], vector_t scl, vector_t dest_vec[]): vector.c']]], + ['vector_5fsquare_337',['vector_square',['../vector_8h.html#afc68fab0b07c974faf5a457d20b01c58',1,'vector_square(uint8_t n, vector_t vec[n], vector_t square_vec[n]): vector.c'],['../vector_8c.html#afc68fab0b07c974faf5a457d20b01c58',1,'vector_square(uint8_t n, vector_t vec[n], vector_t square_vec[n]): vector.c']]], + ['vector_5fsub_338',['vector_sub',['../vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63',1,'vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[]): vector.c'],['../vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63',1,'vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[]): vector.c']]], + ['vector_5ft_339',['vector_t',['../vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221',1,'vector.h']]], + ['vector_5ftest_340',['vector_test',['../vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21',1,'vector_test(void): vector_test.c'],['../vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21',1,'vector_test(void): vector_test.c']]], + ['vector_5ftest_2ec_341',['vector_test.c',['../vector__test_8c.html',1,'']]], + ['vector_5ftest_2eh_342',['vector_test.h',['../vector__test_8h.html',1,'']]], + ['vector_5fuint32_5fis_5fequal_343',['vector_uint32_is_equal',['../vector_8h.html#a421f989647bf55af29c0f55b7f33d35a',1,'vector_uint32_is_equal(uint32_t length, uint32_t vec_1[], uint32_t vec_2[]): vector.c'],['../vector_8c.html#a421f989647bf55af29c0f55b7f33d35a',1,'vector_uint32_is_equal(uint32_t length, uint32_t vec_1[], uint32_t vec_2[]): vector.c']]] +]; diff --git a/doc/doxygen/html/search/all_2.html b/doc/doxygen/html/search/all_2.html new file mode 100644 index 0000000000000000000000000000000000000000..19c530f2512bf1c33877412096a87aa4410eda81 --- /dev/null +++ b/doc/doxygen/html/search/all_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_2.js b/doc/doxygen/html/search/all_2.js new file mode 100644 index 0000000000000000000000000000000000000000..06aa5c118c2a0da582de6bed9b14f5093c57d266 --- /dev/null +++ b/doc/doxygen/html/search/all_2.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['col_5fnum_3',['col_num',['../structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab',1,'matrix_dim_t']]], + ['combi_5fempty_4',['COMBI_EMPTY',['../combinatorics_8h.html#a744ae7aa581aa908643d95d470394872',1,'combinatorics.h']]], + ['combi_5fend_5',['COMBI_END',['../combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7',1,'combinatorics.h']]], + ['combi_5ferror_6',['COMBI_ERROR',['../combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509',1,'combinatorics.h']]], + ['combi_5fsuccess_7',['COMBI_SUCCESS',['../combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498',1,'combinatorics.h']]], + ['combinatorics_2ec_8',['combinatorics.c',['../combinatorics_8c.html',1,'']]], + ['combinatorics_2eh_9',['combinatorics.h',['../combinatorics_8h.html',1,'']]], + ['combinatorics_5fget_5fnext_5fwithout_5frep_10',['combinatorics_get_next_without_rep',['../combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0',1,'combinatorics_get_next_without_rep(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c'],['../combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0',1,'combinatorics_get_next_without_rep(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c']]], + ['combinatorics_5finit_11',['combinatorics_init',['../combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9',1,'combinatorics_init(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c'],['../combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9',1,'combinatorics_init(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c']]], + ['creating_20an_20application_12',['Creating an application',['../creating-an-application.html',1,'']]], + ['creating_20modules_13',['Creating modules',['../creating-modules.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_3.html b/doc/doxygen/html/search/all_3.html new file mode 100644 index 0000000000000000000000000000000000000000..1ae887fc624b6078a7066bad79ddab7db97dc4a2 --- /dev/null +++ b/doc/doxygen/html/search/all_3.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_3.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_3.js b/doc/doxygen/html/search/all_3.js new file mode 100644 index 0000000000000000000000000000000000000000..07b39e7b826c9b118bc2223a9ca7e07aa84a31f3 --- /dev/null +++ b/doc/doxygen/html/search/all_3.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['damped_5fnewton_5fraphson_14',['Damped_Newton_Raphson',['../fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783',1,'Damped_Newton_Raphson(): fsolve.h'],['../damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14',1,'damped_newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double min_lamda, double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c'],['../damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14',1,'damped_newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double min_lamda, double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c']]], + ['damped_5fnewton_5fraphson_2ec_15',['damped_newton_raphson.c',['../damped__newton__raphson_8c.html',1,'']]], + ['damped_5fnewton_5fraphson_2eh_16',['damped_newton_raphson.h',['../damped__newton__raphson_8h.html',1,'']]], + ['dist_5fbased_5ff_5fi_17',['dist_based_f_i',['../dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa',1,'dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]): dist_based_fi.c'],['../dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa',1,'dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]): dist_based_fi.c']]], + ['dist_5fbased_5ffi_18',['dist_based_fi',['../dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a',1,'dist_based_fi(matrix_t point[3], matrix_t ref_point[3], matrix_t ri): dist_based_fi.c'],['../dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a',1,'dist_based_fi(matrix_t point[3], matrix_t ref_point[3], matrix_t ri): dist_based_fi.c']]], + ['dist_5fbased_5ffi_2ec_19',['dist_based_fi.c',['../dist__based__fi_8c.html',1,'']]], + ['dist_5fbased_5ffi_2eh_20',['dist_based_fi.h',['../dist__based__fi_8h.html',1,'']]], + ['dist_5fbased_5fget_5fabsolute_5ferror_21',['dist_based_get_absolute_error',['../dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3',1,'dist_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): dist_based_position.c'],['../dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3',1,'dist_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): dist_based_position.c']]], + ['dist_5fbased_5fget_5fdistance_5fto_5fanchor_22',['dist_based_get_distance_to_anchor',['../dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d',1,'dist_based_get_distance_to_anchor(matrix_t ref_point[3], matrix_t point[3]): dist_based_position.c'],['../dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d',1,'dist_based_get_distance_to_anchor(matrix_t ref_point[3], matrix_t point[3]): dist_based_position.c']]], + ['dist_5fbased_5fjacobian_2ec_23',['dist_based_jacobian.c',['../dist__based__jacobian_8c.html',1,'']]], + ['dist_5fbased_5fjacobian_2eh_24',['dist_based_jacobian.h',['../dist__based__jacobian_8h.html',1,'']]], + ['dist_5fbased_5fjacobian_5fget_5fj_25',['dist_based_jacobian_get_J',['../dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc',1,'dist_based_jacobian_get_J(uint8_t ref_points_num, matrix_t point[3], matrix_t ref_point_matrix[ref_points_num][3], matrix_t J[ref_points_num][3]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc',1,'dist_based_jacobian_get_J(uint8_t ref_points_num, matrix_t point[3], matrix_t ref_point_matrix[ref_points_num][3], matrix_t J[ref_points_num][3]): dist_based_jacobian.c']]], + ['dist_5fbased_5fjacobian_5fget_5fj_5fmul_5fs_26',['dist_based_jacobian_get_J_mul_s',['../dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408',1,'dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408',1,'dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): dist_based_jacobian.c']]], + ['dist_5fbased_5fjacobian_5fget_5fjtf_27',['dist_based_jacobian_get_JTf',['../dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c',1,'dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c',1,'dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3]): dist_based_jacobian.c']]], + ['dist_5fbased_5fjacobian_5fget_5fjtj_28',['dist_based_jacobian_get_JTJ',['../dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2',1,'dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2',1,'dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3]): dist_based_jacobian.c']]], + ['dist_5fbased_5fposition_2ec_29',['dist_based_position.c',['../dist__based__position_8c.html',1,'']]], + ['dist_5fbased_5fposition_2eh_30',['dist_based_position.h',['../dist__based__position_8h.html',1,'']]], + ['distance_5fbased_31',['DISTANCE_BASED',['../group__distance__based.html',1,'']]], + ['distance_5fbased_5ftest_32',['distance_based_test',['../distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115',1,'distance_based_test(void): distance_based_test.c'],['../distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115',1,'distance_based_test(void): distance_based_test.c']]], + ['distance_5fbased_5ftest_2ec_33',['distance_based_test.c',['../distance__based__test_8c.html',1,'']]], + ['distance_5fbased_5ftest_2eh_34',['distance_based_test.h',['../distance__based__test_8h.html',1,'']]], + ['dop_2ec_35',['DOP.c',['../DOP_8c.html',1,'']]], + ['dop_2eh_36',['DOP.h',['../DOP_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_4.html b/doc/doxygen/html/search/all_4.html new file mode 100644 index 0000000000000000000000000000000000000000..14c90ef5609e89d15f70e542d4390106c5a45585 --- /dev/null +++ b/doc/doxygen/html/search/all_4.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_4.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_4.js b/doc/doxygen/html/search/all_4.js new file mode 100644 index 0000000000000000000000000000000000000000..1cbe70f5e209f78d144f7278bdc179719504bf00 --- /dev/null +++ b/doc/doxygen/html/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['examples_37',['EXAMPLES',['../group__examples.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_5.html b/doc/doxygen/html/search/all_5.html new file mode 100644 index 0000000000000000000000000000000000000000..60fa53e9eeee8f801c414478959fc5fc765dd504 --- /dev/null +++ b/doc/doxygen/html/search/all_5.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_5.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_5.js b/doc/doxygen/html/search/all_5.js new file mode 100644 index 0000000000000000000000000000000000000000..9fa79405269dd6fed53b3c2e7e8a5a6008445934 --- /dev/null +++ b/doc/doxygen/html/search/all_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['fsolve_38',['fsolve',['../fsolve_8c.html#a690a05654627b94634ffed0893946ba7',1,'fsolve(uint8_t f_length, uint8_t x0_length, vector_t x0_arr[], enum NON_LIN_ALGORITHM algo, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][x0_length])): fsolve.c'],['../fsolve_8h.html#a690a05654627b94634ffed0893946ba7',1,'fsolve(uint8_t f_length, uint8_t x0_length, vector_t x0_arr[], enum NON_LIN_ALGORITHM algo, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][x0_length])): fsolve.c']]], + ['fsolve_2ec_39',['fsolve.c',['../fsolve_8c.html',1,'']]], + ['fsolve_2eh_40',['fsolve.h',['../fsolve_8h.html',1,'']]], + ['fsolve_5ftest_41',['fsolve_test',['../fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37',1,'fsolve_test(void): fsolve_test.c'],['../fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37',1,'fsolve_test(void): fsolve_test.c']]], + ['fsolve_5ftest_2ec_42',['fsolve_test.c',['../fsolve__test_8c.html',1,'']]], + ['fsolve_5ftest_2eh_43',['fsolve_test.h',['../fsolve__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_6.html b/doc/doxygen/html/search/all_6.html new file mode 100644 index 0000000000000000000000000000000000000000..71803631376d2f6808dd5ef83b63b894b5a15479 --- /dev/null +++ b/doc/doxygen/html/search/all_6.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_6.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_6.js b/doc/doxygen/html/search/all_6.js new file mode 100644 index 0000000000000000000000000000000000000000..9e3e3b0518d89fe20fe8e01dee637951f15ea219 --- /dev/null +++ b/doc/doxygen/html/search/all_6.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['gauss_44',['Gauss',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220',1,'pseudo_inverse.h']]], + ['get_5fdamped_5fnorm_45',['get_damped_norm',['../damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a',1,'get_damped_norm(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c'],['../damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a',1,'get_damped_norm(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c']]], + ['get_5fdelta_5fx_46',['get_delta_x',['../damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e',1,'get_delta_x(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]), vector_t delta_x_arr[]): damped_newton_raphson.c'],['../damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e',1,'get_delta_x(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]), vector_t delta_x_arr[]): damped_newton_raphson.c']]], + ['get_5fexact_5fdistance_5fto_5fanchor_47',['get_exact_distance_to_anchor',['../multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a',1,'get_exact_distance_to_anchor(matrix_t ref_point[], uint32_t exact_point[]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a',1,'get_exact_distance_to_anchor(matrix_t ref_point[], uint32_t exact_point[]): multipath_dist_detection_mitigation.c']]], + ['get_5fnon_5flin_5fsys_5ff1_5f_48',['get_non_lin_sys_f1_',['../fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5ff2_5f_49',['get_non_lin_sys_f2_',['../fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5ff3_5f_50',['get_non_lin_sys_f3_',['../fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5fj1_5f_51',['get_non_lin_sys_J1_',['../fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5fj2_5f_52',['get_non_lin_sys_J2_',['../fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5fj3_5f_53',['get_non_lin_sys_J3_',['../fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100',1,'fsolve_test.c']]], + ['get_5fnorm_5fdistr_5frand_5fnum_54',['get_norm_distr_rand_num',['../norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a',1,'get_norm_distr_rand_num(double mean, double std_dev): norm_dist_rnd_generator.c'],['../norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf',1,'get_norm_distr_rand_num(double mean_val, double std_dev_val): norm_dist_rnd_generator.c']]], + ['get_5foptimal_5fpartial_5fr_5fnoised_5fvec_55',['get_optimal_partial_r_noised_vec',['../multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e',1,'get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e',1,'get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k]): multipath_dist_detection_mitigation.c']]], + ['get_5foptimal_5fpartial_5fref_5fmatrix_56',['get_optimal_partial_ref_matrix',['../multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39',1,'get_optimal_partial_ref_matrix(uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39',1,'get_optimal_partial_ref_matrix(uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3]): multipath_dist_detection_mitigation.c']]], + ['get_5fpdop_57',['get_PDOP',['../DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4',1,'get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m]): DOP.c'],['../DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4',1,'get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m]): DOP.c']]], + ['get_5frand_5fnum_58',['get_rand_num',['../norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903',1,'get_rand_num(int seed): norm_dist_rnd_generator.c'],['../norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb',1,'get_rand_num(int initial_seed_val): norm_dist_rnd_generator.c']]], + ['getting_20started_59',['Getting started',['../getting-started.html',1,'']]], + ['givens_60',['Givens',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991',1,'pseudo_inverse.h']]], + ['givens_5ftest_61',['givens_test',['../givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae',1,'givens_test(void): givens_test.c'],['../givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae',1,'givens_test(void): givens_test.c']]], + ['givens_5ftest_2ec_62',['givens_test.c',['../givens__test_8c.html',1,'']]], + ['givens_5ftest_2eh_63',['givens_test.h',['../givens__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_7.html b/doc/doxygen/html/search/all_7.html new file mode 100644 index 0000000000000000000000000000000000000000..ee6d2e4a5de8c008c470bf1cfc44fc5e2a6ffbe9 --- /dev/null +++ b/doc/doxygen/html/search/all_7.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_7.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_7.js b/doc/doxygen/html/search/all_7.js new file mode 100644 index 0000000000000000000000000000000000000000..eb391d16773fae9167f5b58366dc4fcbd6700d40 --- /dev/null +++ b/doc/doxygen/html/search/all_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['householder_64',['Householder',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04',1,'pseudo_inverse.h']]], + ['householder_5ftest_65',['householder_test',['../householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0',1,'householder_test(void): householder_test.c'],['../householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0',1,'householder_test(void): householder_test.c']]], + ['householder_5ftest_2ec_66',['householder_test.c',['../householder__test_8c.html',1,'']]], + ['householder_5ftest_2eh_67',['householder_test.h',['../householder__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_8.html b/doc/doxygen/html/search/all_8.html new file mode 100644 index 0000000000000000000000000000000000000000..7829aa40c2fa37a259b06dd7be6d55bfb07303f7 --- /dev/null +++ b/doc/doxygen/html/search/all_8.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_8.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_8.js b/doc/doxygen/html/search/all_8.js new file mode 100644 index 0000000000000000000000000000000000000000..54751ba2b62e8679fcb3c080f74ea81fef31b26b --- /dev/null +++ b/doc/doxygen/html/search/all_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['i0_68',['I0',['../magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718',1,'magnetic_based_position.h']]], + ['int_5fshell_5fsort_69',['int_shell_sort',['../shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e',1,'int_shell_sort(int *array, int length): shell_sort.c'],['../shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e',1,'int_shell_sort(int *array, int length): shell_sort.c']]], + ['inv_5ftriangular_5fmatrices_5ftest_70',['inv_triangular_matrices_test',['../matrix__test_8h.html#a5713bd664a96ccd028896420050f22df',1,'inv_triangular_matrices_test(void): matrix_test.c'],['../matrix__test_8c.html#a5713bd664a96ccd028896420050f22df',1,'inv_triangular_matrices_test(void): matrix_test.c']]], + ['is_5fanchor_71',['is_anchor',['../multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1',1,'is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1',1,'is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3]): multipath_dist_detection_mitigation.c']]], + ['is_5fmember_72',['is_member',['../multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8',1,'is_member(matrix_t vector, uint8_t n, matrix_t multipath[n]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8',1,'is_member(matrix_t vector, uint8_t n, matrix_t multipath[n]): multipath_dist_detection_mitigation.c']]] +]; diff --git a/doc/doxygen/html/search/all_9.html b/doc/doxygen/html/search/all_9.html new file mode 100644 index 0000000000000000000000000000000000000000..e4242c7161fea99a6e0b0c07dfbeec248314cb2a --- /dev/null +++ b/doc/doxygen/html/search/all_9.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_9.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_9.js b/doc/doxygen/html/search/all_9.js new file mode 100644 index 0000000000000000000000000000000000000000..7d3f303412d260f3c3eae1a59faa4ee8c01c8553 --- /dev/null +++ b/doc/doxygen/html/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['k_73',['K',['../magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254',1,'magnetic_based_position.h']]], + ['k_5ft_74',['K_T',['../magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/all_a.html b/doc/doxygen/html/search/all_a.html new file mode 100644 index 0000000000000000000000000000000000000000..47a4a78d2edbbccceb070d6aef7c158bee0ee68a --- /dev/null +++ b/doc/doxygen/html/search/all_a.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_a.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_a.js b/doc/doxygen/html/search/all_a.js new file mode 100644 index 0000000000000000000000000000000000000000..6500de645c4139156c9e3db4a69a857ca4435baf --- /dev/null +++ b/doc/doxygen/html/search/all_a.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['levenberg_5fmarquardt_2ec_75',['levenberg_marquardt.c',['../levenberg__marquardt_8c.html',1,'']]], + ['levenberg_5fmarquardt_2eh_76',['levenberg_marquardt.h',['../levenberg__marquardt_8h.html',1,'']]], + ['linear_5falgebra_77',['LINEAR_ALGEBRA',['../group__linear__algebra.html',1,'']]], + ['loc_5fgauss_5fnewton_78',['loc_gauss_newton',['../loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e',1,'loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3])): loc_gauss_newton.c'],['../loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e',1,'loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3])): loc_gauss_newton.c']]], + ['loc_5fgauss_5fnewton_2ec_79',['loc_gauss_newton.c',['../loc__gauss__newton_8c.html',1,'']]], + ['loc_5fgauss_5fnewton_2eh_80',['loc_gauss_newton.h',['../loc__gauss__newton_8h.html',1,'']]], + ['loc_5flevenberg_5fmarquardt_81',['loc_levenberg_marquardt',['../loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f',1,'loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f',1,'loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c']]], + ['loc_5flevenberg_5fmarquardt_2ec_82',['loc_levenberg_marquardt.c',['../loc__levenberg__marquardt_8c.html',1,'']]], + ['loc_5flevenberg_5fmarquardt_2eh_83',['loc_levenberg_marquardt.h',['../loc__levenberg__marquardt_8h.html',1,'']]], + ['loc_5flevenberg_5fmarquardt_5fcorrection_84',['loc_levenberg_marquardt_correction',['../loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6',1,'loc_levenberg_marquardt_correction(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t s[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6',1,'loc_levenberg_marquardt_correction(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t s[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c']]], + ['loc_5flevenberg_5fmarquardt_5fget_5fjtj_5fmu2_5fi_85',['loc_levenberg_marquardt_get_JTJ_mu2_I',['../loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e',1,'loc_levenberg_marquardt_get_JTJ_mu2_I(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3])): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e',1,'loc_levenberg_marquardt_get_JTJ_mu2_I(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3])): loc_levenberg_marquardt.c']]], + ['loc_5flevenberg_5fmarquardt_5fget_5fmu0_86',['loc_levenberg_marquardt_get_mu0',['../loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357',1,'loc_levenberg_marquardt_get_mu0(matrix_t tau, matrix_t JTJ[3][3]): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357',1,'loc_levenberg_marquardt_get_mu0(matrix_t tau, matrix_t JTJ[3][3]): loc_levenberg_marquardt.c']]], + ['localization_87',['LOCALIZATION',['../group__localization.html',1,'']]], + ['lu_5fdecomp_88',['lu_decomp',['../lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7',1,'lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n]): lu_decomp.c'],['../lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7',1,'lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n]): lu_decomp.c']]], + ['lu_5fdecomp_2ec_89',['lu_decomp.c',['../lu__decomp_8c.html',1,'']]], + ['lu_5fdecomp_2eh_90',['lu_decomp.h',['../lu__decomp_8h.html',1,'']]], + ['lu_5fdecomp_5ftest_91',['lu_decomp_test',['../lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1',1,'lu_decomp_test(void): lu_decomp_test.c'],['../lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1',1,'lu_decomp_test(void): lu_decomp_test.c']]], + ['lu_5fdecomp_5ftest_2ec_92',['lu_decomp_test.c',['../lu__decomp__test_8c.html',1,'']]], + ['lu_5fdecomp_5ftest_2eh_93',['lu_decomp_test.h',['../lu__decomp__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_b.html b/doc/doxygen/html/search/all_b.html new file mode 100644 index 0000000000000000000000000000000000000000..1320a43f54c3c1c302bd9c6248c07d51463ac66c --- /dev/null +++ b/doc/doxygen/html/search/all_b.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_b.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_b.js b/doc/doxygen/html/search/all_b.js new file mode 100644 index 0000000000000000000000000000000000000000..af1605fecd90527de2e0b71296a78c15816d984b --- /dev/null +++ b/doc/doxygen/html/search/all_b.js @@ -0,0 +1,104 @@ +var searchData= +[ + ['m_5fpi_94',['M_PI',['../matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3',1,'M_PI(): matrix.h'],['../utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3',1,'M_PI(): utils.h']]], + ['macheps_95',['MACHEPS',['../matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192',1,'matrix.h']]], + ['magnetic_5fbased_96',['MAGNETIC_BASED',['../group__magnetic__based.html',1,'']]], + ['magnetic_5fbased_5ff_5fi_97',['magnetic_based_f_i',['../magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a',1,'magnetic_based_f_i(uint8_t ref_points_num, matrix_t ref_points_matrix[][3], matrix_t point[], matrix_t Bi_vec[], matrix_t f_vec[]): magnetic_based_fi.c'],['../magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a',1,'magnetic_based_f_i(uint8_t ref_points_num, matrix_t ref_points_matrix[][3], matrix_t point[], matrix_t Bi_vec[], matrix_t f_vec[]): magnetic_based_fi.c']]], + ['magnetic_5fbased_5ffi_2ec_98',['magnetic_based_fi.c',['../magnetic__based__fi_8c.html',1,'']]], + ['magnetic_5fbased_5ffi_2eh_99',['magnetic_based_fi.h',['../magnetic__based__fi_8h.html',1,'']]], + ['magnetic_5fbased_5fget_5fabsolute_5ferror_100',['magnetic_based_get_absolute_error',['../magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d',1,'magnetic_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): magnetic_based_position.c'],['../magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d',1,'magnetic_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fdistances_101',['magnetic_based_get_distances',['../magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59',1,'magnetic_based_get_distances(matrix_t magnetic_field_strength_arr[], matrix_t angular_theta_arr[], matrix_t distance_arr[], uint8_t length, matrix_t k): magnetic_based_position.c'],['../magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59',1,'magnetic_based_get_distances(matrix_t magnetic_field_strength_arr[], matrix_t angular_theta_arr[], matrix_t distance_arr[], uint8_t length, matrix_t k): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fdistances_5fto_5fanchors_102',['magnetic_based_get_distances_to_anchors',['../magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599',1,'magnetic_based_get_distances_to_anchors(matrix_t ref_point[3], matrix_t point[3]): magnetic_based_position.c'],['../magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599',1,'magnetic_based_get_distances_to_anchors(matrix_t ref_point[3], matrix_t point[3]): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fmagnetic_5ffield_103',['magnetic_based_get_magnetic_field',['../magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d',1,'magnetic_based_get_magnetic_field(matrix_t ref_point[3], matrix_t target_point[3], matrix_t k): magnetic_based_position.c'],['../magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d',1,'magnetic_based_get_magnetic_field(matrix_t ref_point[3], matrix_t target_point[3], matrix_t k): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fmagnetic_5ffield_5fvec_104',['magnetic_based_get_magnetic_field_vec',['../magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c',1,'magnetic_based_get_magnetic_field_vec(uint8_t m, matrix_t ref_point_matrix[m][3], matrix_t target_point[], matrix_t k, matrix_t magn_field_vec[]): magnetic_based_position.c'],['../magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c',1,'magnetic_based_get_magnetic_field_vec(uint8_t m, matrix_t ref_point_matrix[m][3], matrix_t target_point[], matrix_t k, matrix_t magn_field_vec[]): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fr_105',['magnetic_based_get_r',['../magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06',1,'magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k): magnetic_based_position.c'],['../magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06',1,'magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k): magnetic_based_position.c']]], + ['magnetic_5fbased_5fjacobian_2ec_106',['magnetic_based_jacobian.c',['../magnetic__based__jacobian_8c.html',1,'']]], + ['magnetic_5fbased_5fjacobian_2eh_107',['magnetic_based_jacobian.h',['../magnetic__based__jacobian_8h.html',1,'']]], + ['magnetic_5fbased_5fjacobian_5fget_5fj_108',['magnetic_based_jacobian_get_J',['../magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224',1,'magnetic_based_jacobian_get_J(uint8_t ref_point_num, matrix_t ref_point_matrix[ref_point_num][3], matrix_t point[], matrix_t J[ref_point_num][3]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224',1,'magnetic_based_jacobian_get_J(uint8_t ref_point_num, matrix_t ref_point_matrix[ref_point_num][3], matrix_t point[], matrix_t J[ref_point_num][3]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fjacobian_5fget_5fj_5fmul_5fs_109',['magnetic_based_jacobian_get_J_mul_s',['../magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc',1,'magnetic_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc',1,'magnetic_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fjacobian_5fget_5fjtf_110',['magnetic_based_jacobian_get_JTf',['../magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8',1,'magnetic_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t Bi_vec[ref_points_num], matrix_t JTf[3]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8',1,'magnetic_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t Bi_vec[ref_points_num], matrix_t JTf[3]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fjacobian_5fget_5fjtj_111',['magnetic_based_jacobian_get_JTJ',['../magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e',1,'magnetic_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t *unused, matrix_t JTJ[3][3]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e',1,'magnetic_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t *unused, matrix_t JTJ[3][3]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fposition_2ec_112',['magnetic_based_position.c',['../magnetic__based__position_8c.html',1,'']]], + ['magnetic_5fbased_5fposition_2eh_113',['magnetic_based_position.h',['../magnetic__based__position_8h.html',1,'']]], + ['magnetic_5fbased_5fpreprocessing_5fget_5fposition_114',['magnetic_based_preprocessing_get_position',['../magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef',1,'magnetic_based_preprocessing_get_position(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): magnetic_based_position.c'],['../magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef',1,'magnetic_based_preprocessing_get_position(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): magnetic_based_position.c']]], + ['magnetic_5fbased_5ftest_115',['magnetic_based_test',['../magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75',1,'magnetic_based_test(void): magnetic_based_test.c'],['../magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75',1,'magnetic_based_test(void): magnetic_based_test.c']]], + ['magnetic_5fbased_5ftest_2ec_116',['magnetic_based_test.c',['../magnetic__based__test_8c.html',1,'']]], + ['magnetic_5fbased_5ftest_2eh_117',['magnetic_based_test.h',['../magnetic__based__test_8h.html',1,'']]], + ['matrix_2ec_118',['matrix.c',['../matrix_8c.html',1,'']]], + ['matrix_2eh_119',['matrix.h',['../matrix_8h.html',1,'']]], + ['matrix_5fadd_120',['matrix_add',['../matrix_8h.html#ac7101bbaa3a2698658276a7e21501093',1,'matrix_add(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_plus_B[m][n]): matrix.c'],['../matrix_8c.html#ac7101bbaa3a2698658276a7e21501093',1,'matrix_add(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_plus_B[m][n]): matrix.c']]], + ['matrix_5fadd_5fto_5fdiag_121',['matrix_add_to_diag',['../matrix_8h.html#aa8acafd4181978f536976f8151e51516',1,'matrix_add_to_diag(uint8_t n, matrix_t A[][n], uint8_t diag_el_num, matrix_t value): matrix.c'],['../matrix_8c.html#aa8acafd4181978f536976f8151e51516',1,'matrix_add_to_diag(uint8_t n, matrix_t A[][n], uint8_t diag_el_num, matrix_t value): matrix.c']]], + ['matrix_5fclear_122',['matrix_clear',['../matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3',1,'matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c'],['../matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3',1,'matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c']]], + ['matrix_5fcopy_123',['matrix_copy',['../matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c',1,'matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n]): matrix.c'],['../matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c',1,'matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n]): matrix.c']]], + ['matrix_5fdecompositions_124',['MATRIX_DECOMPOSITIONS',['../group__matrix__decompositions.html',1,'']]], + ['matrix_5fdim_5ft_125',['matrix_dim_t',['../structmatrix__dim__t.html',1,'']]], + ['matrix_5fflex_5fpart_5fprint_126',['matrix_flex_part_print',['../matrix_8h.html#a72297a60e572f85929989e813388a9c5',1,'matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot): matrix.c'],['../matrix_8c.html#a72297a60e572f85929989e813388a9c5',1,'matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot): matrix.c']]], + ['matrix_5fflex_5fprint_127',['matrix_flex_print',['../matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524',1,'matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec): matrix.c'],['../matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2',1,'matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dot, uint8_t after_dot): matrix.c']]], + ['matrix_5fget_5fabs_5fmax_5felem_5fand_5findex_5fin_5fpart_5fcolumn_128',['matrix_get_abs_max_elem_and_index_in_part_column',['../matrix_8h.html#a5f6a1948ec005cff4985559821c4943f',1,'matrix_get_abs_max_elem_and_index_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index): matrix.c'],['../matrix_8c.html#a5f6a1948ec005cff4985559821c4943f',1,'matrix_get_abs_max_elem_and_index_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index): matrix.c']]], + ['matrix_5fget_5fabs_5fmax_5felem_5fin_5fcolumn_129',['matrix_get_abs_max_elem_in_column',['../matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672',1,'matrix_get_abs_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c'],['../matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672',1,'matrix_get_abs_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fabs_5fmax_5felem_5fin_5fpart_5fcolumn_130',['matrix_get_abs_max_elem_in_part_column',['../matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252',1,'matrix_get_abs_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c'],['../matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252',1,'matrix_get_abs_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fcolumn_5fvec_131',['matrix_get_column_vec',['../matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864',1,'matrix_get_column_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num, matrix_t col_vec[m]): matrix.c'],['../matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864',1,'matrix_get_column_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num, matrix_t col_vec[m]): matrix.c']]], + ['matrix_5fget_5fdiag_5fmat_132',['matrix_get_diag_mat',['../matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a',1,'matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c'],['../matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a',1,'matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c']]], + ['matrix_5fget_5fdiag_5fmat_5fnew_133',['matrix_get_diag_mat_new',['../matrix_8h.html#ae808f007791f060590d39c7668501988',1,'matrix_get_diag_mat_new(uint8_t m, uint8_t n, matrix_t diag_matrix[m][n], uint8_t length, matrix_t vec[]): matrix.c'],['../matrix_8c.html#ae808f007791f060590d39c7668501988',1,'matrix_get_diag_mat_new(uint8_t m, uint8_t n, matrix_t diag_matrix[m][n], uint8_t length, matrix_t vec[]): matrix.c']]], + ['matrix_5fget_5ffrob_5fnorm_134',['matrix_get_frob_norm',['../matrix_8h.html#aaf85a32b8562c91d2d1889819580375e',1,'matrix_get_frob_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c'],['../matrix_8c.html#aaf85a32b8562c91d2d1889819580375e',1,'matrix_get_frob_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c']]], + ['matrix_5fget_5finv_5flow_5ftriang_135',['matrix_get_inv_low_triang',['../matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48',1,'matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m]): matrix.c'],['../matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48',1,'matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m]): matrix.c']]], + ['matrix_5fget_5finv_5fupp_5ftriang_136',['matrix_get_inv_upp_triang',['../matrix_8h.html#ab166871472924745f70e2bb6e17498c8',1,'matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m]): matrix.c'],['../matrix_8c.html#ab166871472924745f70e2bb6e17498c8',1,'matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m]): matrix.c']]], + ['matrix_5fget_5flow_5ftriang_137',['matrix_get_low_triang',['../matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845',1,'matrix_get_low_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_low_A[][n]): matrix.c'],['../matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845',1,'matrix_get_low_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_low_A[][n]): matrix.c']]], + ['matrix_5fget_5fmax_5felem_5fin_5fcolumn_138',['matrix_get_max_elem_in_column',['../matrix_8h.html#aef8d1508ad101227ab255a714ab22b94',1,'matrix_get_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c'],['../matrix_8c.html#aef8d1508ad101227ab255a714ab22b94',1,'matrix_get_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fmax_5felem_5fin_5fpart_5fcolumn_139',['matrix_get_max_elem_in_part_column',['../matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc',1,'matrix_get_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c'],['../matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc',1,'matrix_get_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fpart_5fcolumn_5fvec_140',['matrix_get_part_column_vec',['../matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4',1,'matrix_get_part_column_vec(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t col_num, uint8_t offset, matrix_t col_vec[max_m - offset]): matrix.c'],['../matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4',1,'matrix_get_part_column_vec(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t col_num, uint8_t offset, matrix_t col_vec[max_m - offset]): matrix.c']]], + ['matrix_5fget_5frank_141',['matrix_get_rank',['../matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd',1,'matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length): matrix.c'],['../matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd',1,'matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length): matrix.c']]], + ['matrix_5fget_5ftwo_5fnorm_142',['matrix_get_two_norm',['../matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0',1,'matrix_get_two_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c'],['../matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0',1,'matrix_get_two_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c']]], + ['matrix_5fget_5fupp_5ftriang_143',['matrix_get_upp_triang',['../matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213',1,'matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n]): matrix.c'],['../matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213',1,'matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n]): matrix.c']]], + ['matrix_5fin_5fplace_5ftranspose_144',['matrix_in_place_transpose',['../matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e',1,'matrix_in_place_transpose(uint8_t m, matrix_t matrix[][m]): matrix.c'],['../matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e',1,'matrix_in_place_transpose(uint8_t m, matrix_t matrix[][m]): matrix.c']]], + ['matrix_5finit_145',['matrix_init',['../matrix_8h.html#acfd2bbc4a90915e57a4555694e842312',1,'matrix_init(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t value): matrix.c'],['../matrix_8c.html#acfd2bbc4a90915e57a4555694e842312',1,'matrix_init(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t value): matrix.c']]], + ['matrix_5fmul_146',['matrix_mul',['../matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a',1,'matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num]): matrix.c'],['../matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a',1,'matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num]): matrix.c']]], + ['matrix_5fmul_5fcol_5fvec_5frow_5fvec_147',['matrix_mul_col_vec_row_vec',['../matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de',1,'matrix_mul_col_vec_row_vec(uint8_t m, matrix_t col_vec[m], uint8_t n, matrix_t row_vec[n], uint8_t max_n, matrix_t res_mat[][max_n]): matrix.c'],['../matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de',1,'matrix_mul_col_vec_row_vec(uint8_t m, matrix_t col_vec[m], uint8_t n, matrix_t row_vec[n], uint8_t max_n, matrix_t res_mat[][max_n]): matrix.c']]], + ['matrix_5fmul_5fscalar_148',['matrix_mul_scalar',['../matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d',1,'matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n]): matrix.c'],['../matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d',1,'matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n]): matrix.c']]], + ['matrix_5fmul_5fscalar_5fvec_5fmatr_149',['matrix_mul_scalar_vec_matr',['../matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3',1,'matrix_mul_scalar_vec_matr(uint8_t m, uint8_t n, matrix_t scalar, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c'],['../matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3',1,'matrix_mul_scalar_vec_matr(uint8_t m, uint8_t n, matrix_t scalar, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c']]], + ['matrix_5fmul_5fvec_150',['matrix_mul_vec',['../matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb',1,'matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m]): matrix.c'],['../matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb',1,'matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m]): matrix.c']]], + ['matrix_5fpart_5fcopy_151',['matrix_part_copy',['../matrix_8h.html#a56513a88eff05b0683320c532fadf945',1,'matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num]): matrix.c'],['../matrix_8c.html#a56513a88eff05b0683320c532fadf945',1,'matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num]): matrix.c']]], + ['matrix_5fpart_5fmul_152',['matrix_part_mul',['../matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a',1,'matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size]): matrix.c'],['../matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a',1,'matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size]): matrix.c']]], + ['matrix_5fpart_5fmul_5fscalar_5fvec_5fmatr_153',['matrix_part_mul_scalar_vec_matr',['../matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731',1,'matrix_part_mul_scalar_vec_matr(uint8_t max_m, uint8_t max_n, matrix_t scalar, matrix_t vec[max_m], matrix_t matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, matrix_t dst_arr[max_n - begin_row]): matrix.c'],['../matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731',1,'matrix_part_mul_scalar_vec_matr(uint8_t max_m, uint8_t max_n, matrix_t scalar, matrix_t vec[max_m], matrix_t matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, matrix_t dst_arr[max_n - begin_row]): matrix.c']]], + ['matrix_5fpart_5fprint_154',['matrix_part_print',['../matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029',1,'matrix_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind): matrix.c'],['../matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029',1,'matrix_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind): matrix.c']]], + ['matrix_5fpart_5fswap_5frows_155',['matrix_part_swap_rows',['../matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2',1,'matrix_part_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end): matrix.c'],['../matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2',1,'matrix_part_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end): matrix.c']]], + ['matrix_5fprint_156',['matrix_print',['../matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a',1,'matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c'],['../matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a',1,'matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c']]], + ['matrix_5fread_157',['matrix_read',['../matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a',1,'matrix_read(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j): matrix.c'],['../matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a',1,'matrix_read(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j): matrix.c']]], + ['matrix_5fset_5fdiag_5felements_158',['matrix_set_diag_elements',['../matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374',1,'matrix_set_diag_elements(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c'],['../matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374',1,'matrix_set_diag_elements(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c']]], + ['matrix_5fsub_159',['matrix_sub',['../matrix_8h.html#aed6fab1ffa40243eeb08117215082be3',1,'matrix_sub(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_minus_B[m][n]): matrix.c'],['../matrix_8c.html#aed6fab1ffa40243eeb08117215082be3',1,'matrix_sub(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_minus_B[m][n]): matrix.c']]], + ['matrix_5fswap_5frows_160',['matrix_swap_rows',['../matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f',1,'matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j): matrix.c'],['../matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f',1,'matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j): matrix.c']]], + ['matrix_5ft_161',['matrix_t',['../matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31',1,'matrix.h']]], + ['matrix_5ftest_162',['matrix_test',['../matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2',1,'matrix_test(void): matrix_test.c'],['../matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2',1,'matrix_test(void): matrix_test.c']]], + ['matrix_5ftest_2ec_163',['matrix_test.c',['../matrix__test_8c.html',1,'']]], + ['matrix_5ftest_2eh_164',['matrix_test.h',['../matrix__test_8h.html',1,'']]], + ['matrix_5ftrans_5fmul_5fitself_165',['matrix_trans_mul_itself',['../matrix_8h.html#a0107887a6c40980fa639750be8262f01',1,'matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n]): matrix.c'],['../matrix_8c.html#a0107887a6c40980fa639750be8262f01',1,'matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n]): matrix.c']]], + ['matrix_5ftrans_5fmul_5fvec_166',['matrix_trans_mul_vec',['../matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7',1,'matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n]): matrix.c'],['../matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7',1,'matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n]): matrix.c']]], + ['matrix_5ftranspose_167',['matrix_transpose',['../matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a',1,'matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m]): matrix.c'],['../matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a',1,'matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m]): matrix.c']]], + ['matrix_5fvec_5fmul_5fmatr_168',['matrix_vec_mul_matr',['../matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887',1,'matrix_vec_mul_matr(uint8_t m, uint8_t n, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c'],['../matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887',1,'matrix_vec_mul_matr(uint8_t m, uint8_t n, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c']]], + ['matrix_5fwrite_169',['matrix_write',['../matrix_8h.html#a90b6eafa665d34d7330581c32564d632',1,'matrix_write(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j, matrix_t val): matrix.c'],['../matrix_8c.html#a90b6eafa665d34d7330581c32564d632',1,'matrix_write(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j, matrix_t val): matrix.c']]], + ['max_5fcol_5fnum_170',['MAX_COL_NUM',['../moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af',1,'moore_penrose_pseudo_inverse.h']]], + ['max_5frow_5fnum_171',['MAX_ROW_NUM',['../moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746',1,'moore_penrose_pseudo_inverse.h']]], + ['mg_5fto_5ft_172',['MG_TO_T',['../magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691',1,'magnetic_based_position.h']]], + ['milps_5fmax_5fdist_173',['MILPS_MAX_DIST',['../magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc',1,'magnetic_based_position.h']]], + ['modified_5fgauss_5fnewton_174',['modified_gauss_newton',['../modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc',1,'modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): modified_gauss_newton.c'],['../modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc',1,'modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): modified_gauss_newton.c']]], + ['modified_5fgauss_5fnewton_2ec_175',['modified_gauss_newton.c',['../modified__gauss__newton_8c.html',1,'']]], + ['modified_5fgauss_5fnewton_2eh_176',['modified_gauss_newton.h',['../modified__gauss__newton_8h.html',1,'']]], + ['moore_5fpenrose_177',['Moore_Penrose',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06',1,'pseudo_inverse.h']]], + ['moore_5fpenrose_5fget_5fpinv_178',['moore_penrose_get_pinv',['../moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce',1,'moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m]): moore_penrose_pseudo_inverse.c'],['../moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce',1,'moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m]): moore_penrose_pseudo_inverse.c']]], + ['moore_5fpenrose_5finvalid_5frank_5fvalue_179',['MOORE_PENROSE_INVALID_RANK_VALUE',['../moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e',1,'moore_penrose_pseudo_inverse.h']]], + ['moore_5fpenrose_5fpinv_5fcompute_5fprint_180',['moore_penrose_pinv_compute_print',['../moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9',1,'moore_penrose_pinv_compute_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i): moore_penrose_pseudo_inverse.c'],['../moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9',1,'moore_penrose_pinv_compute_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i): moore_penrose_pseudo_inverse.c']]], + ['moore_5fpenrose_5fpinv_5ftest_181',['moore_penrose_pinv_test',['../moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014',1,'moore_penrose_pinv_test(void): moore_penrose_pinv_test.c'],['../moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014',1,'moore_penrose_pinv_test(void): moore_penrose_pinv_test.c']]], + ['moore_5fpenrose_5fpinv_5ftest_2ec_182',['moore_penrose_pinv_test.c',['../moore__penrose__pinv__test_8c.html',1,'']]], + ['moore_5fpenrose_5fpinv_5ftest_2eh_183',['moore_penrose_pinv_test.h',['../moore__penrose__pinv__test_8h.html',1,'']]], + ['moore_5fpenrose_5fpseudo_5fcomp_5fsuccess_184',['MOORE_PENROSE_PSEUDO_COMP_SUCCESS',['../moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb',1,'moore_penrose_pseudo_inverse.h']]], + ['moore_5fpenrose_5fpseudo_5fgive_5fmatrix_5ftranspose_185',['MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE',['../moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4',1,'moore_penrose_pseudo_inverse.h']]], + ['moore_5fpenrose_5fpseudo_5finverse_2ec_186',['moore_penrose_pseudo_inverse.c',['../moore__penrose__pseudo__inverse_8c.html',1,'']]], + ['moore_5fpenrose_5fpseudo_5finverse_2eh_187',['moore_penrose_pseudo_inverse.h',['../moore__penrose__pseudo__inverse_8h.html',1,'']]], + ['moore_5fpenrose_5fpseudo_5fmax_5fallow_5frow_5fcol_5fexceeed_188',['MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED',['../moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1',1,'moore_penrose_pseudo_inverse.h']]], + ['mu0_189',['MU0',['../magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4',1,'magnetic_based_position.h']]], + ['multipath_5falgo_5fown_5fnorm_5fdistr_5ftest_190',['multipath_algo_own_norm_distr_test',['../multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd',1,'multipath_algo_own_norm_distr_test(void): multipath_algo_own_norm_distr_test.c'],['../multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd',1,'multipath_algo_own_norm_distr_test(void): multipath_algo_own_norm_distr_test.c']]], + ['multipath_5falgo_5fown_5fnorm_5fdistr_5ftest_2ec_191',['multipath_algo_own_norm_distr_test.c',['../multipath__algo__own__norm__distr__test_8c.html',1,'']]], + ['multipath_5falgo_5fown_5fnorm_5fdistr_5ftest_2eh_192',['multipath_algo_own_norm_distr_test.h',['../multipath__algo__own__norm__distr__test_8h.html',1,'']]], + ['multipath_5fdist_5fdetection_5fmitigation_2ec_193',['multipath_dist_detection_mitigation.c',['../multipath__dist__detection__mitigation_8c.html',1,'']]], + ['multipath_5fdist_5fdetection_5fmitigation_2eh_194',['multipath_dist_detection_mitigation.h',['../multipath__dist__detection__mitigation_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_c.html b/doc/doxygen/html/search/all_c.html new file mode 100644 index 0000000000000000000000000000000000000000..32a3a1b8fdba631ad493861ad5d00cb77712c240 --- /dev/null +++ b/doc/doxygen/html/search/all_c.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_c.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_c.js b/doc/doxygen/html/search/all_c.js new file mode 100644 index 0000000000000000000000000000000000000000..66cb9325f3f3104e4a979f87dce53574401e45f2 --- /dev/null +++ b/doc/doxygen/html/search/all_c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['newton_5fraphson_195',['Newton_Raphson',['../fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117',1,'Newton_Raphson(): fsolve.h'],['../newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc',1,'newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): newton_raphson.c'],['../newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc',1,'newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): newton_raphson.c']]], + ['newton_5fraphson_2ec_196',['newton_raphson.c',['../newton__raphson_8c.html',1,'']]], + ['newton_5fraphson_2eh_197',['newton_raphson.h',['../newton__raphson_8h.html',1,'']]], + ['non_5flin_5falgorithm_198',['NON_LIN_ALGORITHM',['../fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206',1,'fsolve.h']]], + ['non_5flinear_5falgebra_199',['NON_LINEAR_ALGEBRA',['../group__non__linear__algebra.html',1,'']]], + ['norm_5fdist_5frnd_5fgenerator_2ec_200',['norm_dist_rnd_generator.c',['../norm__dist__rnd__generator_8c.html',1,'']]], + ['norm_5fdist_5frnd_5fgenerator_2eh_201',['norm_dist_rnd_generator.h',['../norm__dist__rnd__generator_8h.html',1,'']]], + ['nw_202',['NW',['../magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/all_d.html b/doc/doxygen/html/search/all_d.html new file mode 100644 index 0000000000000000000000000000000000000000..a3860966d8684f314091284ec96352ee5a41a531 --- /dev/null +++ b/doc/doxygen/html/search/all_d.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_d.js b/doc/doxygen/html/search/all_d.js new file mode 100644 index 0000000000000000000000000000000000000000..ac796a4caf27d3914396bc6f632e04f9e0f3423d --- /dev/null +++ b/doc/doxygen/html/search/all_d.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['opt_5flevenberg_5fmarquardt_203',['opt_levenberg_marquardt',['../levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f',1,'opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): levenberg_marquardt.c'],['../levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f',1,'opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): levenberg_marquardt.c']]], + ['opt_5flevenberg_5fmarquardt_5fcorrection_204',['opt_levenberg_marquardt_correction',['../levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826',1,'levenberg_marquardt.c']]], + ['opt_5flevenberg_5fmarquardt_5fget_5fmu0_205',['opt_levenberg_marquardt_get_mu0',['../levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f',1,'opt_levenberg_marquardt_get_mu0(uint8_t n, matrix_t tau, matrix_t JTJ[][n]): levenberg_marquardt.c'],['../levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f',1,'opt_levenberg_marquardt_get_mu0(uint8_t n, matrix_t tau, matrix_t JTJ[][n]): levenberg_marquardt.c']]], + ['optimization_206',['OPTIMIZATION',['../group__optimization.html',1,'']]], + ['optimization_5fexponential_5fdata_5ftest_207',['optimization_exponential_data_test',['../optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9',1,'optimization_exponential_data_test(void): optimization_test.c'],['../optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9',1,'optimization_exponential_data_test(void): optimization_test.c']]], + ['optimization_5fget_5fexp_5ff_208',['optimization_get_exp_f',['../optimization__test_8c.html#ac11e842f01767e97924c100df684476d',1,'optimization_test.c']]], + ['optimization_5fget_5fexp_5fjacobian_209',['optimization_get_exp_Jacobian',['../optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0',1,'optimization_test.c']]], + ['optimization_5fget_5ff_5ferror_210',['optimization_get_f_error',['../optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b',1,'optimization_test.c']]], + ['optimization_5fget_5fj_211',['optimization_get_J',['../optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c',1,'optimization_test.c']]], + ['optimization_5fget_5fsin_5ff_212',['optimization_get_sin_f',['../optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b',1,'optimization_test.c']]], + ['optimization_5fget_5fsin_5fjacobian_213',['optimization_get_sin_Jacobian',['../optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a',1,'optimization_test.c']]], + ['optimization_5fsinusoidal_5fdata_5ftest_214',['optimization_sinusoidal_data_test',['../optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9',1,'optimization_sinusoidal_data_test(void): optimization_test.c'],['../optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9',1,'optimization_sinusoidal_data_test(void): optimization_test.c']]], + ['optimization_5ftest_215',['optimization_test',['../optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20',1,'optimization_test(void): optimization_test.c'],['../optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20',1,'optimization_test(void): optimization_test.c']]], + ['optimization_5ftest_2ec_216',['optimization_test.c',['../optimization__test_8c.html',1,'']]], + ['optimization_5ftest_2eh_217',['optimization_test.h',['../optimization__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_e.html b/doc/doxygen/html/search/all_e.html new file mode 100644 index 0000000000000000000000000000000000000000..293161891f0317e6081f7842bea91789e6641790 --- /dev/null +++ b/doc/doxygen/html/search/all_e.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_e.js b/doc/doxygen/html/search/all_e.js new file mode 100644 index 0000000000000000000000000000000000000000..741e33209541978e074742002d4bcaee8b3f15fa --- /dev/null +++ b/doc/doxygen/html/search/all_e.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['pi_218',['PI',['../norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): norm_dist_rnd_generator.h'],['../magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): magnetic_based_position.h']]], + ['pos_5falgos_5fcommon_219',['POS_ALGOS_COMMON',['../group__pos__algos__common.html',1,'']]], + ['pos_5falgos_5fcommon_5ftest_220',['pos_algos_common_test',['../pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c',1,'pos_algos_common_test(void): pos_algos_common_test.c'],['../pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c',1,'pos_algos_common_test(void): pos_algos_common_test.c']]], + ['pos_5falgos_5fcommon_5ftest_2ec_221',['pos_algos_common_test.c',['../pos__algos__common__test_8c.html',1,'']]], + ['pos_5falgos_5fcommon_5ftest_2eh_222',['pos_algos_common_test.h',['../pos__algos__common__test_8h.html',1,'']]], + ['position_5falgos_223',['POSITION_ALGOS',['../group__position__algos.html',1,'']]], + ['position_5foptimization_224',['POSITION_OPTIMIZATION',['../group__position__optimization.html',1,'']]], + ['position_5foptimization_5ftest_225',['position_optimization_test',['../position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166',1,'position_optimization_test(void): position_optimization_test.c'],['../position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166',1,'position_optimization_test(void): position_optimization_test.c']]], + ['position_5foptimization_5ftest_2ec_226',['position_optimization_test.c',['../position__optimization__test_8c.html',1,'']]], + ['position_5foptimization_5ftest_2eh_227',['position_optimization_test.h',['../position__optimization__test_8h.html',1,'']]], + ['pseudo_5finverse_228',['PSEUDO_INVERSE',['../group__pseudo__inverse.html',1,'']]], + ['pseudo_5finverse_2eh_229',['pseudo_inverse.h',['../pseudo__inverse_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/all_f.html b/doc/doxygen/html/search/all_f.html new file mode 100644 index 0000000000000000000000000000000000000000..ca42a522fbf8ed3f900b968a02408904f881c6d4 --- /dev/null +++ b/doc/doxygen/html/search/all_f.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_f.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/all_f.js b/doc/doxygen/html/search/all_f.js new file mode 100644 index 0000000000000000000000000000000000000000..5b89e46171fe4e94b50cff9539ebfa76bc78cab4 --- /dev/null +++ b/doc/doxygen/html/search/all_f.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['qr_5falgorithm_230',['QR_ALGORITHM',['../qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b',1,'qr_common.h']]], + ['qr_5fcommon_2ec_231',['qr_common.c',['../qr__common_8c.html',1,'']]], + ['qr_5fcommon_2eh_232',['qr_common.h',['../qr__common_8h.html',1,'']]], + ['qr_5fcommon_5fbackward_5fsubst_233',['qr_common_backward_subst',['../qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112',1,'qr_common_backward_subst(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t b[m], matrix_t x_sol[m]): qr_common.c'],['../qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112',1,'qr_common_backward_subst(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t b[m], matrix_t x_sol[m]): qr_common.c']]], + ['qr_5fcommon_5fget_5freduced_5fqr_234',['qr_common_get_reduced_QR',['../qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612',1,'qr_common_get_reduced_QR(uint8_t m, uint8_t n, matrix_t Q[m][m], matrix_t R[m][n], matrix_t red_Q[m][n], matrix_t red_R[n][n]): qr_common.c'],['../qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b',1,'qr_common_get_reduced_QR(uint8_t m, uint8_t n, matrix_t Q[m][m], matrix_t R[m][n], matrix_t reduc_Q[m][n], matrix_t reduc_R[n][n]): qr_common.c']]], + ['qr_5fget_5fpinv_235',['qr_get_pinv',['../qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d',1,'qr_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m], enum QR_ALGORITHM algo): qr_pseudo_inverse.c'],['../qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d',1,'qr_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m], enum QR_ALGORITHM algo): qr_pseudo_inverse.c']]], + ['qr_5fgivens_2ec_236',['qr_givens.c',['../qr__givens_8c.html',1,'']]], + ['qr_5fgivens_2eh_237',['qr_givens.h',['../qr__givens_8h.html',1,'']]], + ['qr_5fgivens_5fdecomp_238',['qr_givens_decomp',['../qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc',1,'qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_givens.c'],['../qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc',1,'qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_givens.c']]], + ['qr_5fgivens_5fget_5fparams_239',['qr_givens_get_params',['../qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644',1,'qr_givens_get_params(matrix_t xjj, matrix_t xij, matrix_t c_s_t_r_vec[]): qr_givens.c'],['../qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644',1,'qr_givens_get_params(matrix_t xjj, matrix_t xij, matrix_t c_s_t_r_vec[]): qr_givens.c']]], + ['qr_5fhouseholder_2ec_240',['qr_householder.c',['../qr__householder_8c.html',1,'']]], + ['qr_5fhouseholder_2eh_241',['qr_householder.h',['../qr__householder_8h.html',1,'']]], + ['qr_5fhouseholder_5fdecomp_242',['qr_householder_decomp',['../qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f',1,'qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_householder.c'],['../qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f',1,'qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_householder.c']]], + ['qr_5fpinv_5ftest_243',['qr_pinv_test',['../qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db',1,'qr_pinv_test(void): qr_pinv_test.c'],['../qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db',1,'qr_pinv_test(void): qr_pinv_test.c']]], + ['qr_5fpinv_5ftest_2ec_244',['qr_pinv_test.c',['../qr__pinv__test_8c.html',1,'']]], + ['qr_5fpinv_5ftest_2eh_245',['qr_pinv_test.h',['../qr__pinv__test_8h.html',1,'']]], + ['qr_5fpseudo_5finverse_2ec_246',['qr_pseudo_inverse.c',['../qr__pseudo__inverse_8c.html',1,'']]], + ['qr_5fpseudo_5finverse_2eh_247',['qr_pseudo_inverse.h',['../qr__pseudo__inverse_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/classes_0.html b/doc/doxygen/html/search/classes_0.html new file mode 100644 index 0000000000000000000000000000000000000000..d585e6a9bfd75969145272ca9c0873e8be11892b --- /dev/null +++ b/doc/doxygen/html/search/classes_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="classes_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/classes_0.js b/doc/doxygen/html/search/classes_0.js new file mode 100644 index 0000000000000000000000000000000000000000..8470723444f5d5754b04f9be323b6585d7fb42e8 --- /dev/null +++ b/doc/doxygen/html/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['matrix_5fdim_5ft_344',['matrix_dim_t',['../structmatrix__dim__t.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/close.png b/doc/doxygen/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 Binary files /dev/null and b/doc/doxygen/html/search/close.png differ diff --git a/doc/doxygen/html/search/defines_0.html b/doc/doxygen/html/search/defines_0.html new file mode 100644 index 0000000000000000000000000000000000000000..8fb07b8c87ef8965660d44beeebdadb1e64cd368 --- /dev/null +++ b/doc/doxygen/html/search/defines_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_0.js b/doc/doxygen/html/search/defines_0.js new file mode 100644 index 0000000000000000000000000000000000000000..a8945ea975e0a1f077a055c0973fc34cbdf9e603 --- /dev/null +++ b/doc/doxygen/html/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ar_642',['AR',['../magnetic__based__position_8h.html#a6f98ae7b0908254a0dfd1627e652bebe',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/defines_1.html b/doc/doxygen/html/search/defines_1.html new file mode 100644 index 0000000000000000000000000000000000000000..2858dbe393212911434b7136e0799c8e9bcf85d7 --- /dev/null +++ b/doc/doxygen/html/search/defines_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_1.js b/doc/doxygen/html/search/defines_1.js new file mode 100644 index 0000000000000000000000000000000000000000..816df0fe19bf3edf617486462cd50a6b24ee684d --- /dev/null +++ b/doc/doxygen/html/search/defines_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['combi_5fempty_643',['COMBI_EMPTY',['../combinatorics_8h.html#a744ae7aa581aa908643d95d470394872',1,'combinatorics.h']]], + ['combi_5fend_644',['COMBI_END',['../combinatorics_8h.html#a16396d8294127e6ea7dbbdaa3b8132e7',1,'combinatorics.h']]], + ['combi_5ferror_645',['COMBI_ERROR',['../combinatorics_8h.html#a1249f9e7a382225c0889b8ef630d6509',1,'combinatorics.h']]], + ['combi_5fsuccess_646',['COMBI_SUCCESS',['../combinatorics_8h.html#af92c32bbf9a391a055cb472b6f43c498',1,'combinatorics.h']]] +]; diff --git a/doc/doxygen/html/search/defines_2.html b/doc/doxygen/html/search/defines_2.html new file mode 100644 index 0000000000000000000000000000000000000000..81824d5d790e254d1173ac92f6181055e98a29d7 --- /dev/null +++ b/doc/doxygen/html/search/defines_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_2.js b/doc/doxygen/html/search/defines_2.js new file mode 100644 index 0000000000000000000000000000000000000000..6febf73602af08c7ae34a811fd3f2e66457a55d6 --- /dev/null +++ b/doc/doxygen/html/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i0_647',['I0',['../magnetic__based__position_8h.html#a73d113d91ab7ec355ca707cc930eb718',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/defines_3.html b/doc/doxygen/html/search/defines_3.html new file mode 100644 index 0000000000000000000000000000000000000000..e9d08d70c2da20d109e6517f71c51c053bcbc01b --- /dev/null +++ b/doc/doxygen/html/search/defines_3.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_3.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_3.js b/doc/doxygen/html/search/defines_3.js new file mode 100644 index 0000000000000000000000000000000000000000..fb47465393bd33d35c3fee5ca6fd4ff8fe00fc62 --- /dev/null +++ b/doc/doxygen/html/search/defines_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['k_648',['K',['../magnetic__based__position_8h.html#a97d832ae23af4f215e801e37e4f94254',1,'magnetic_based_position.h']]], + ['k_5ft_649',['K_T',['../magnetic__based__position_8h.html#a3ee4ec231172a5fd866f72acead15bc4',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/defines_4.html b/doc/doxygen/html/search/defines_4.html new file mode 100644 index 0000000000000000000000000000000000000000..d8b61bbfba69224cb07b25deb03de44dca7d9fa8 --- /dev/null +++ b/doc/doxygen/html/search/defines_4.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_4.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_4.js b/doc/doxygen/html/search/defines_4.js new file mode 100644 index 0000000000000000000000000000000000000000..c5910d49e5b880cdf3b49937aa96ea0c9b4e4f2e --- /dev/null +++ b/doc/doxygen/html/search/defines_4.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['m_5fpi_650',['M_PI',['../matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3',1,'M_PI(): matrix.h'],['../utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3',1,'M_PI(): utils.h']]], + ['macheps_651',['MACHEPS',['../matrix_8h.html#af57ae8796956bfd0ee173b9040ba5192',1,'matrix.h']]], + ['matrix_5ft_652',['matrix_t',['../matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31',1,'matrix.h']]], + ['max_5fcol_5fnum_653',['MAX_COL_NUM',['../moore__penrose__pseudo__inverse_8h.html#ad174a66874978917203ae18e88d263af',1,'moore_penrose_pseudo_inverse.h']]], + ['max_5frow_5fnum_654',['MAX_ROW_NUM',['../moore__penrose__pseudo__inverse_8h.html#a08c63915b31bfeb8d6256981f71b3746',1,'moore_penrose_pseudo_inverse.h']]], + ['mg_5fto_5ft_655',['MG_TO_T',['../magnetic__based__position_8h.html#a544d6868e9b6cf4f9b9db9e1ad413691',1,'magnetic_based_position.h']]], + ['milps_5fmax_5fdist_656',['MILPS_MAX_DIST',['../magnetic__based__position_8h.html#a2ab193fcd7e0bc8f46ce92c3299b99bc',1,'magnetic_based_position.h']]], + ['moore_5fpenrose_5finvalid_5frank_5fvalue_657',['MOORE_PENROSE_INVALID_RANK_VALUE',['../moore__penrose__pseudo__inverse_8h.html#a068a278115f777cb1b92107e5c88c68e',1,'moore_penrose_pseudo_inverse.h']]], + ['moore_5fpenrose_5fpseudo_5fcomp_5fsuccess_658',['MOORE_PENROSE_PSEUDO_COMP_SUCCESS',['../moore__penrose__pseudo__inverse_8h.html#ae65d746cc90c1447fe1651614fde76eb',1,'moore_penrose_pseudo_inverse.h']]], + ['moore_5fpenrose_5fpseudo_5fgive_5fmatrix_5ftranspose_659',['MOORE_PENROSE_PSEUDO_GIVE_MATRIX_TRANSPOSE',['../moore__penrose__pseudo__inverse_8h.html#aa41b1dd19931edcc50247511f12859e4',1,'moore_penrose_pseudo_inverse.h']]], + ['moore_5fpenrose_5fpseudo_5fmax_5fallow_5frow_5fcol_5fexceeed_660',['MOORE_PENROSE_PSEUDO_MAX_ALLOW_ROW_COL_EXCEEED',['../moore__penrose__pseudo__inverse_8h.html#a4b5bc244bcae0f030336269904158df1',1,'moore_penrose_pseudo_inverse.h']]], + ['mu0_661',['MU0',['../magnetic__based__position_8h.html#a0fa11f33bdb89b468b60f19395381cc4',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/defines_5.html b/doc/doxygen/html/search/defines_5.html new file mode 100644 index 0000000000000000000000000000000000000000..14637be62a4b931ed483d7db623fdc49fe4bb763 --- /dev/null +++ b/doc/doxygen/html/search/defines_5.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_5.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_5.js b/doc/doxygen/html/search/defines_5.js new file mode 100644 index 0000000000000000000000000000000000000000..f23c3952419ee1a472067c8f4331c5ea8c0e4b34 --- /dev/null +++ b/doc/doxygen/html/search/defines_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nw_662',['NW',['../magnetic__based__position_8h.html#af9cccf331f045b89a9f12366df5f7687',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/defines_6.html b/doc/doxygen/html/search/defines_6.html new file mode 100644 index 0000000000000000000000000000000000000000..ad0d34c99eb4171aaa138c21fd3fa559afa70951 --- /dev/null +++ b/doc/doxygen/html/search/defines_6.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_6.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_6.js b/doc/doxygen/html/search/defines_6.js new file mode 100644 index 0000000000000000000000000000000000000000..5a824bc5c91f3b86332aefb5b1648f83fd432655 --- /dev/null +++ b/doc/doxygen/html/search/defines_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pi_663',['PI',['../norm__dist__rnd__generator_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): norm_dist_rnd_generator.h'],['../magnetic__based__position_8h.html#a598a3330b3c21701223ee0ca14316eca',1,'PI(): magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/defines_7.html b/doc/doxygen/html/search/defines_7.html new file mode 100644 index 0000000000000000000000000000000000000000..4e8e63d246dc77dfb644a3a78094daeeb0c41b58 --- /dev/null +++ b/doc/doxygen/html/search/defines_7.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_7.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_7.js b/doc/doxygen/html/search/defines_7.js new file mode 100644 index 0000000000000000000000000000000000000000..181cebf1cc229d7d5ec8c6160bd2c41bd33b008e --- /dev/null +++ b/doc/doxygen/html/search/defines_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['r0_664',['R0',['../magnetic__based__position_8h.html#a30ab9da60435727bc80839d416461b8f',1,'magnetic_based_position.h']]] +]; diff --git a/doc/doxygen/html/search/defines_8.html b/doc/doxygen/html/search/defines_8.html new file mode 100644 index 0000000000000000000000000000000000000000..c737d1c751d30555f4525f5d7bed273b7a40a3ab --- /dev/null +++ b/doc/doxygen/html/search/defines_8.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_8.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_8.js b/doc/doxygen/html/search/defines_8.js new file mode 100644 index 0000000000000000000000000000000000000000..641774ff108a0e8bbbdf6db898eaa9e02788f5bb --- /dev/null +++ b/doc/doxygen/html/search/defines_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['svd_5fcompute_5fnegligible_5fvalues_665',['SVD_COMPUTE_NEGLIGIBLE_VALUES',['../svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5',1,'svd.h']]], + ['svd_5forder_5fabsolute_5fsing_5fvalues_666',['SVD_ORDER_ABSOLUTE_SING_VALUES',['../svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a',1,'svd.h']]], + ['svd_5fqr_5fstep_667',['SVD_QR_STEP',['../svd_8h.html#af9e7db6685a0631312bfb93cc58dd756',1,'svd.h']]], + ['svd_5fsplit_5fat_5fnegligible_5fvalues_668',['SVD_SPLIT_AT_NEGLIGIBLE_VALUES',['../svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4',1,'svd.h']]] +]; diff --git a/doc/doxygen/html/search/defines_9.html b/doc/doxygen/html/search/defines_9.html new file mode 100644 index 0000000000000000000000000000000000000000..dcd8c1cd64eb2b5b725b016399da46777a05911c --- /dev/null +++ b/doc/doxygen/html/search/defines_9.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_9.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/defines_9.js b/doc/doxygen/html/search/defines_9.js new file mode 100644 index 0000000000000000000000000000000000000000..64245334af5a1dab93f55b3b6e427cc13f0524b4 --- /dev/null +++ b/doc/doxygen/html/search/defines_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vector_5ft_669',['vector_t',['../vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221',1,'vector.h']]] +]; diff --git a/doc/doxygen/html/search/enums_0.html b/doc/doxygen/html/search/enums_0.html new file mode 100644 index 0000000000000000000000000000000000000000..ae7a88444de7e53f3cd645eef97076150c03cad8 --- /dev/null +++ b/doc/doxygen/html/search/enums_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enums_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enums_0.js b/doc/doxygen/html/search/enums_0.js new file mode 100644 index 0000000000000000000000000000000000000000..2d5b2e6bc2af65efa0a7e4fd5b8f9592fe578de2 --- /dev/null +++ b/doc/doxygen/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['algorithm_633',['ALGORITHM',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3',1,'pseudo_inverse.h']]] +]; diff --git a/doc/doxygen/html/search/enums_1.html b/doc/doxygen/html/search/enums_1.html new file mode 100644 index 0000000000000000000000000000000000000000..dfbb13a8577426bfb5456d2268f263fdf3a8113a --- /dev/null +++ b/doc/doxygen/html/search/enums_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enums_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enums_1.js b/doc/doxygen/html/search/enums_1.js new file mode 100644 index 0000000000000000000000000000000000000000..cc367ad6a35c2b83fb9d83a6bd9c8fbd499936da --- /dev/null +++ b/doc/doxygen/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['non_5flin_5falgorithm_634',['NON_LIN_ALGORITHM',['../fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206',1,'fsolve.h']]] +]; diff --git a/doc/doxygen/html/search/enums_2.html b/doc/doxygen/html/search/enums_2.html new file mode 100644 index 0000000000000000000000000000000000000000..6d4d754a15190f28834ccb5cfb30b2ea2defa8b2 --- /dev/null +++ b/doc/doxygen/html/search/enums_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enums_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enums_2.js b/doc/doxygen/html/search/enums_2.js new file mode 100644 index 0000000000000000000000000000000000000000..1c47aeabb3b884d573626df4a9327925deb58d19 --- /dev/null +++ b/doc/doxygen/html/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['qr_5falgorithm_635',['QR_ALGORITHM',['../qr__common_8h.html#ac62c54358ecc0c35cdef1c3fb37cc73b',1,'qr_common.h']]] +]; diff --git a/doc/doxygen/html/search/enumvalues_0.html b/doc/doxygen/html/search/enumvalues_0.html new file mode 100644 index 0000000000000000000000000000000000000000..1c0bbf934dcbdb72ad64e320a9b76ca2aaf3a0d0 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enumvalues_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enumvalues_0.js b/doc/doxygen/html/search/enumvalues_0.js new file mode 100644 index 0000000000000000000000000000000000000000..40769438c91cfe9a37753cf11e170bb12cec484e --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['damped_5fnewton_5fraphson_636',['Damped_Newton_Raphson',['../fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783',1,'fsolve.h']]] +]; diff --git a/doc/doxygen/html/search/enumvalues_1.html b/doc/doxygen/html/search/enumvalues_1.html new file mode 100644 index 0000000000000000000000000000000000000000..070fd0b8b00919221fff78771c16e96e25f7f008 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enumvalues_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enumvalues_1.js b/doc/doxygen/html/search/enumvalues_1.js new file mode 100644 index 0000000000000000000000000000000000000000..f5fac0cb2181bc17ea51836469f15d603fb34aa5 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['gauss_637',['Gauss',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220',1,'pseudo_inverse.h']]], + ['givens_638',['Givens',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991',1,'pseudo_inverse.h']]] +]; diff --git a/doc/doxygen/html/search/enumvalues_2.html b/doc/doxygen/html/search/enumvalues_2.html new file mode 100644 index 0000000000000000000000000000000000000000..25e9a370ce1e838074244f94c80a97fca1cfe143 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enumvalues_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enumvalues_2.js b/doc/doxygen/html/search/enumvalues_2.js new file mode 100644 index 0000000000000000000000000000000000000000..32223fed22a9a8a0b2ed19b20291ac875921e418 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['householder_639',['Householder',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04',1,'pseudo_inverse.h']]] +]; diff --git a/doc/doxygen/html/search/enumvalues_3.html b/doc/doxygen/html/search/enumvalues_3.html new file mode 100644 index 0000000000000000000000000000000000000000..670eb93e9fa35f69b822e8dfe4fff5c470578be0 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_3.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enumvalues_3.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enumvalues_3.js b/doc/doxygen/html/search/enumvalues_3.js new file mode 100644 index 0000000000000000000000000000000000000000..838f65dbbefb76f11947dac0d11fc46dadc80a26 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['moore_5fpenrose_640',['Moore_Penrose',['../pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06',1,'pseudo_inverse.h']]] +]; diff --git a/doc/doxygen/html/search/enumvalues_4.html b/doc/doxygen/html/search/enumvalues_4.html new file mode 100644 index 0000000000000000000000000000000000000000..b96e21297cee2aa716d697181f1ddfd45b32eae5 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_4.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="enumvalues_4.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/enumvalues_4.js b/doc/doxygen/html/search/enumvalues_4.js new file mode 100644 index 0000000000000000000000000000000000000000..3e77d060a88e0dab47b1c5f7a18446da36993157 --- /dev/null +++ b/doc/doxygen/html/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['newton_5fraphson_641',['Newton_Raphson',['../fsolve_8h.html#a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117',1,'fsolve.h']]] +]; diff --git a/doc/doxygen/html/search/files_0.html b/doc/doxygen/html/search/files_0.html new file mode 100644 index 0000000000000000000000000000000000000000..de151d53810323f164bc99a45480fcbf0aee71a3 --- /dev/null +++ b/doc/doxygen/html/search/files_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_0.js b/doc/doxygen/html/search/files_0.js new file mode 100644 index 0000000000000000000000000000000000000000..c8e33666e26671fb192b8b091a1fec37c9737c4f --- /dev/null +++ b/doc/doxygen/html/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['combinatorics_2ec_345',['combinatorics.c',['../combinatorics_8c.html',1,'']]], + ['combinatorics_2eh_346',['combinatorics.h',['../combinatorics_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_1.html b/doc/doxygen/html/search/files_1.html new file mode 100644 index 0000000000000000000000000000000000000000..73e2c8bcfb1fee157f1c5fe62af41c0abcecd50e --- /dev/null +++ b/doc/doxygen/html/search/files_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_1.js b/doc/doxygen/html/search/files_1.js new file mode 100644 index 0000000000000000000000000000000000000000..3eb13ba951e0864dccb54f94953dd1167b366c0b --- /dev/null +++ b/doc/doxygen/html/search/files_1.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['damped_5fnewton_5fraphson_2ec_347',['damped_newton_raphson.c',['../damped__newton__raphson_8c.html',1,'']]], + ['damped_5fnewton_5fraphson_2eh_348',['damped_newton_raphson.h',['../damped__newton__raphson_8h.html',1,'']]], + ['dist_5fbased_5ffi_2ec_349',['dist_based_fi.c',['../dist__based__fi_8c.html',1,'']]], + ['dist_5fbased_5ffi_2eh_350',['dist_based_fi.h',['../dist__based__fi_8h.html',1,'']]], + ['dist_5fbased_5fjacobian_2ec_351',['dist_based_jacobian.c',['../dist__based__jacobian_8c.html',1,'']]], + ['dist_5fbased_5fjacobian_2eh_352',['dist_based_jacobian.h',['../dist__based__jacobian_8h.html',1,'']]], + ['dist_5fbased_5fposition_2ec_353',['dist_based_position.c',['../dist__based__position_8c.html',1,'']]], + ['dist_5fbased_5fposition_2eh_354',['dist_based_position.h',['../dist__based__position_8h.html',1,'']]], + ['distance_5fbased_5ftest_2ec_355',['distance_based_test.c',['../distance__based__test_8c.html',1,'']]], + ['distance_5fbased_5ftest_2eh_356',['distance_based_test.h',['../distance__based__test_8h.html',1,'']]], + ['dop_2ec_357',['DOP.c',['../DOP_8c.html',1,'']]], + ['dop_2eh_358',['DOP.h',['../DOP_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_2.html b/doc/doxygen/html/search/files_2.html new file mode 100644 index 0000000000000000000000000000000000000000..24cb5419ac8a025f10d4cd1675e9b0efb8d64945 --- /dev/null +++ b/doc/doxygen/html/search/files_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_2.js b/doc/doxygen/html/search/files_2.js new file mode 100644 index 0000000000000000000000000000000000000000..77f6eaca86fd4881c5704ec73649af608121bd07 --- /dev/null +++ b/doc/doxygen/html/search/files_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['fsolve_2ec_359',['fsolve.c',['../fsolve_8c.html',1,'']]], + ['fsolve_2eh_360',['fsolve.h',['../fsolve_8h.html',1,'']]], + ['fsolve_5ftest_2ec_361',['fsolve_test.c',['../fsolve__test_8c.html',1,'']]], + ['fsolve_5ftest_2eh_362',['fsolve_test.h',['../fsolve__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_3.html b/doc/doxygen/html/search/files_3.html new file mode 100644 index 0000000000000000000000000000000000000000..ef0b0ff727b59630f150b7cff7f65392794e37bb --- /dev/null +++ b/doc/doxygen/html/search/files_3.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_3.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_3.js b/doc/doxygen/html/search/files_3.js new file mode 100644 index 0000000000000000000000000000000000000000..64e5ccc964a0b457a940ac6a53751938740e5c13 --- /dev/null +++ b/doc/doxygen/html/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['givens_5ftest_2ec_363',['givens_test.c',['../givens__test_8c.html',1,'']]], + ['givens_5ftest_2eh_364',['givens_test.h',['../givens__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_4.html b/doc/doxygen/html/search/files_4.html new file mode 100644 index 0000000000000000000000000000000000000000..324abe4f54e6f3fd63a5fccdc4d01b707667aab9 --- /dev/null +++ b/doc/doxygen/html/search/files_4.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_4.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_4.js b/doc/doxygen/html/search/files_4.js new file mode 100644 index 0000000000000000000000000000000000000000..14b52897ef564ae3b2048eff9eaced9b081a9022 --- /dev/null +++ b/doc/doxygen/html/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['householder_5ftest_2ec_365',['householder_test.c',['../householder__test_8c.html',1,'']]], + ['householder_5ftest_2eh_366',['householder_test.h',['../householder__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_5.html b/doc/doxygen/html/search/files_5.html new file mode 100644 index 0000000000000000000000000000000000000000..7d6881677b4c1b38f8d2e312d1677e09cc7f5ec6 --- /dev/null +++ b/doc/doxygen/html/search/files_5.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_5.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_5.js b/doc/doxygen/html/search/files_5.js new file mode 100644 index 0000000000000000000000000000000000000000..ffe8efb1acf3e00dda4901c31a737bc3176e5fd0 --- /dev/null +++ b/doc/doxygen/html/search/files_5.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['levenberg_5fmarquardt_2ec_367',['levenberg_marquardt.c',['../levenberg__marquardt_8c.html',1,'']]], + ['levenberg_5fmarquardt_2eh_368',['levenberg_marquardt.h',['../levenberg__marquardt_8h.html',1,'']]], + ['loc_5fgauss_5fnewton_2ec_369',['loc_gauss_newton.c',['../loc__gauss__newton_8c.html',1,'']]], + ['loc_5fgauss_5fnewton_2eh_370',['loc_gauss_newton.h',['../loc__gauss__newton_8h.html',1,'']]], + ['loc_5flevenberg_5fmarquardt_2ec_371',['loc_levenberg_marquardt.c',['../loc__levenberg__marquardt_8c.html',1,'']]], + ['loc_5flevenberg_5fmarquardt_2eh_372',['loc_levenberg_marquardt.h',['../loc__levenberg__marquardt_8h.html',1,'']]], + ['lu_5fdecomp_2ec_373',['lu_decomp.c',['../lu__decomp_8c.html',1,'']]], + ['lu_5fdecomp_2eh_374',['lu_decomp.h',['../lu__decomp_8h.html',1,'']]], + ['lu_5fdecomp_5ftest_2ec_375',['lu_decomp_test.c',['../lu__decomp__test_8c.html',1,'']]], + ['lu_5fdecomp_5ftest_2eh_376',['lu_decomp_test.h',['../lu__decomp__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_6.html b/doc/doxygen/html/search/files_6.html new file mode 100644 index 0000000000000000000000000000000000000000..cc06fb25ebce785177013a20c543d1c5a8589deb --- /dev/null +++ b/doc/doxygen/html/search/files_6.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_6.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_6.js b/doc/doxygen/html/search/files_6.js new file mode 100644 index 0000000000000000000000000000000000000000..dab52d7f8997ae59ae1273483169b2e4bcf9c199 --- /dev/null +++ b/doc/doxygen/html/search/files_6.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['magnetic_5fbased_5ffi_2ec_377',['magnetic_based_fi.c',['../magnetic__based__fi_8c.html',1,'']]], + ['magnetic_5fbased_5ffi_2eh_378',['magnetic_based_fi.h',['../magnetic__based__fi_8h.html',1,'']]], + ['magnetic_5fbased_5fjacobian_2ec_379',['magnetic_based_jacobian.c',['../magnetic__based__jacobian_8c.html',1,'']]], + ['magnetic_5fbased_5fjacobian_2eh_380',['magnetic_based_jacobian.h',['../magnetic__based__jacobian_8h.html',1,'']]], + ['magnetic_5fbased_5fposition_2ec_381',['magnetic_based_position.c',['../magnetic__based__position_8c.html',1,'']]], + ['magnetic_5fbased_5fposition_2eh_382',['magnetic_based_position.h',['../magnetic__based__position_8h.html',1,'']]], + ['magnetic_5fbased_5ftest_2ec_383',['magnetic_based_test.c',['../magnetic__based__test_8c.html',1,'']]], + ['magnetic_5fbased_5ftest_2eh_384',['magnetic_based_test.h',['../magnetic__based__test_8h.html',1,'']]], + ['matrix_2ec_385',['matrix.c',['../matrix_8c.html',1,'']]], + ['matrix_2eh_386',['matrix.h',['../matrix_8h.html',1,'']]], + ['matrix_5ftest_2ec_387',['matrix_test.c',['../matrix__test_8c.html',1,'']]], + ['matrix_5ftest_2eh_388',['matrix_test.h',['../matrix__test_8h.html',1,'']]], + ['modified_5fgauss_5fnewton_2ec_389',['modified_gauss_newton.c',['../modified__gauss__newton_8c.html',1,'']]], + ['modified_5fgauss_5fnewton_2eh_390',['modified_gauss_newton.h',['../modified__gauss__newton_8h.html',1,'']]], + ['moore_5fpenrose_5fpinv_5ftest_2ec_391',['moore_penrose_pinv_test.c',['../moore__penrose__pinv__test_8c.html',1,'']]], + ['moore_5fpenrose_5fpinv_5ftest_2eh_392',['moore_penrose_pinv_test.h',['../moore__penrose__pinv__test_8h.html',1,'']]], + ['moore_5fpenrose_5fpseudo_5finverse_2ec_393',['moore_penrose_pseudo_inverse.c',['../moore__penrose__pseudo__inverse_8c.html',1,'']]], + ['moore_5fpenrose_5fpseudo_5finverse_2eh_394',['moore_penrose_pseudo_inverse.h',['../moore__penrose__pseudo__inverse_8h.html',1,'']]], + ['multipath_5falgo_5fown_5fnorm_5fdistr_5ftest_2ec_395',['multipath_algo_own_norm_distr_test.c',['../multipath__algo__own__norm__distr__test_8c.html',1,'']]], + ['multipath_5falgo_5fown_5fnorm_5fdistr_5ftest_2eh_396',['multipath_algo_own_norm_distr_test.h',['../multipath__algo__own__norm__distr__test_8h.html',1,'']]], + ['multipath_5fdist_5fdetection_5fmitigation_2ec_397',['multipath_dist_detection_mitigation.c',['../multipath__dist__detection__mitigation_8c.html',1,'']]], + ['multipath_5fdist_5fdetection_5fmitigation_2eh_398',['multipath_dist_detection_mitigation.h',['../multipath__dist__detection__mitigation_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_7.html b/doc/doxygen/html/search/files_7.html new file mode 100644 index 0000000000000000000000000000000000000000..10c2046e3cd8712f19139ee8e6f15c71cb2f791d --- /dev/null +++ b/doc/doxygen/html/search/files_7.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_7.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_7.js b/doc/doxygen/html/search/files_7.js new file mode 100644 index 0000000000000000000000000000000000000000..126bce2600d585a5ad8b6650c965f102ef7e06e3 --- /dev/null +++ b/doc/doxygen/html/search/files_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['newton_5fraphson_2ec_399',['newton_raphson.c',['../newton__raphson_8c.html',1,'']]], + ['newton_5fraphson_2eh_400',['newton_raphson.h',['../newton__raphson_8h.html',1,'']]], + ['norm_5fdist_5frnd_5fgenerator_2ec_401',['norm_dist_rnd_generator.c',['../norm__dist__rnd__generator_8c.html',1,'']]], + ['norm_5fdist_5frnd_5fgenerator_2eh_402',['norm_dist_rnd_generator.h',['../norm__dist__rnd__generator_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_8.html b/doc/doxygen/html/search/files_8.html new file mode 100644 index 0000000000000000000000000000000000000000..6ee57c511bab5df48883ddcd7b9f8dce4ea71571 --- /dev/null +++ b/doc/doxygen/html/search/files_8.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_8.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_8.js b/doc/doxygen/html/search/files_8.js new file mode 100644 index 0000000000000000000000000000000000000000..bf7175b7d4ac8737c88c28c611e9f200dd6ae715 --- /dev/null +++ b/doc/doxygen/html/search/files_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['optimization_5ftest_2ec_403',['optimization_test.c',['../optimization__test_8c.html',1,'']]], + ['optimization_5ftest_2eh_404',['optimization_test.h',['../optimization__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_9.html b/doc/doxygen/html/search/files_9.html new file mode 100644 index 0000000000000000000000000000000000000000..5da3443a728f7be183f0208d651e5b69bf2c6f79 --- /dev/null +++ b/doc/doxygen/html/search/files_9.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_9.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_9.js b/doc/doxygen/html/search/files_9.js new file mode 100644 index 0000000000000000000000000000000000000000..c125abcb88038e1bb00eb6dc16bcca192db5d8f5 --- /dev/null +++ b/doc/doxygen/html/search/files_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['pos_5falgos_5fcommon_5ftest_2ec_405',['pos_algos_common_test.c',['../pos__algos__common__test_8c.html',1,'']]], + ['pos_5falgos_5fcommon_5ftest_2eh_406',['pos_algos_common_test.h',['../pos__algos__common__test_8h.html',1,'']]], + ['position_5foptimization_5ftest_2ec_407',['position_optimization_test.c',['../position__optimization__test_8c.html',1,'']]], + ['position_5foptimization_5ftest_2eh_408',['position_optimization_test.h',['../position__optimization__test_8h.html',1,'']]], + ['pseudo_5finverse_2eh_409',['pseudo_inverse.h',['../pseudo__inverse_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_a.html b/doc/doxygen/html/search/files_a.html new file mode 100644 index 0000000000000000000000000000000000000000..118985d6253dd5f018b690276348b5b990657fdf --- /dev/null +++ b/doc/doxygen/html/search/files_a.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_a.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_a.js b/doc/doxygen/html/search/files_a.js new file mode 100644 index 0000000000000000000000000000000000000000..882927ba2f8178a14ecf8e5661fcd8c5284cef1a --- /dev/null +++ b/doc/doxygen/html/search/files_a.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['qr_5fcommon_2ec_410',['qr_common.c',['../qr__common_8c.html',1,'']]], + ['qr_5fcommon_2eh_411',['qr_common.h',['../qr__common_8h.html',1,'']]], + ['qr_5fgivens_2ec_412',['qr_givens.c',['../qr__givens_8c.html',1,'']]], + ['qr_5fgivens_2eh_413',['qr_givens.h',['../qr__givens_8h.html',1,'']]], + ['qr_5fhouseholder_2ec_414',['qr_householder.c',['../qr__householder_8c.html',1,'']]], + ['qr_5fhouseholder_2eh_415',['qr_householder.h',['../qr__householder_8h.html',1,'']]], + ['qr_5fpinv_5ftest_2ec_416',['qr_pinv_test.c',['../qr__pinv__test_8c.html',1,'']]], + ['qr_5fpinv_5ftest_2eh_417',['qr_pinv_test.h',['../qr__pinv__test_8h.html',1,'']]], + ['qr_5fpseudo_5finverse_2ec_418',['qr_pseudo_inverse.c',['../qr__pseudo__inverse_8c.html',1,'']]], + ['qr_5fpseudo_5finverse_2eh_419',['qr_pseudo_inverse.h',['../qr__pseudo__inverse_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_b.html b/doc/doxygen/html/search/files_b.html new file mode 100644 index 0000000000000000000000000000000000000000..94b7254436a4e7e0b3499efcceddaa7ed870d676 --- /dev/null +++ b/doc/doxygen/html/search/files_b.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_b.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_b.js b/doc/doxygen/html/search/files_b.js new file mode 100644 index 0000000000000000000000000000000000000000..5791df516b86d3e6e4a70d8b840ea200ad2bb9fa --- /dev/null +++ b/doc/doxygen/html/search/files_b.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['shell_5fsort_2ec_420',['shell_sort.c',['../shell__sort_8c.html',1,'']]], + ['shell_5fsort_2eh_421',['shell_sort.h',['../shell__sort_8h.html',1,'']]], + ['solve_2ec_422',['solve.c',['../solve_8c.html',1,'']]], + ['solve_2eh_423',['solve.h',['../solve_8h.html',1,'']]], + ['solve_5ftest_2ec_424',['solve_test.c',['../solve__test_8c.html',1,'']]], + ['solve_5ftest_2eh_425',['solve_test.h',['../solve__test_8h.html',1,'']]], + ['svd_2ec_426',['svd.c',['../svd_8c.html',1,'']]], + ['svd_2eh_427',['svd.h',['../svd_8h.html',1,'']]], + ['svd_5ftest_2ec_428',['svd_test.c',['../svd__test_8c.html',1,'']]], + ['svd_5ftest_2eh_429',['svd_test.h',['../svd__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_c.html b/doc/doxygen/html/search/files_c.html new file mode 100644 index 0000000000000000000000000000000000000000..8d175bc15c649ff2c72d5b047076381ebf135705 --- /dev/null +++ b/doc/doxygen/html/search/files_c.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_c.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_c.js b/doc/doxygen/html/search/files_c.js new file mode 100644 index 0000000000000000000000000000000000000000..f76a52a473d72486e2f348df799d4e384aed7e89 --- /dev/null +++ b/doc/doxygen/html/search/files_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['trilateration_2ec_430',['trilateration.c',['../trilateration_8c.html',1,'']]], + ['trilateration_2eh_431',['trilateration.h',['../trilateration_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_d.html b/doc/doxygen/html/search/files_d.html new file mode 100644 index 0000000000000000000000000000000000000000..c5132dd347ef86b51fcf02761b72f05fae9f4d81 --- /dev/null +++ b/doc/doxygen/html/search/files_d.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_d.js b/doc/doxygen/html/search/files_d.js new file mode 100644 index 0000000000000000000000000000000000000000..63a40a4cdfd65d35b0ac4ecf5ad35ac711aaae3d --- /dev/null +++ b/doc/doxygen/html/search/files_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['utils_2ec_432',['utils.c',['../utils_8c.html',1,'']]], + ['utils_2eh_433',['utils.h',['../utils_8h.html',1,'']]], + ['utils_5ftest_2ec_434',['utils_test.c',['../utils__test_8c.html',1,'']]], + ['utils_5ftest_2eh_435',['utils_test.h',['../utils__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_e.html b/doc/doxygen/html/search/files_e.html new file mode 100644 index 0000000000000000000000000000000000000000..01ff2259d61b42ec24aa610baac36eee313298da --- /dev/null +++ b/doc/doxygen/html/search/files_e.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_e.js b/doc/doxygen/html/search/files_e.js new file mode 100644 index 0000000000000000000000000000000000000000..253b96bfd1d9953d0db9fda7539ff90cbc846f30 --- /dev/null +++ b/doc/doxygen/html/search/files_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['vector_2ec_436',['vector.c',['../vector_8c.html',1,'']]], + ['vector_2eh_437',['vector.h',['../vector_8h.html',1,'']]], + ['vector_5ftest_2ec_438',['vector_test.c',['../vector__test_8c.html',1,'']]], + ['vector_5ftest_2eh_439',['vector_test.h',['../vector__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/files_f.html b/doc/doxygen/html/search/files_f.html new file mode 100644 index 0000000000000000000000000000000000000000..c4a4dcb141c939f81571e8a03f3e22b35d92cdf7 --- /dev/null +++ b/doc/doxygen/html/search/files_f.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_f.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/files_f.js b/doc/doxygen/html/search/files_f.js new file mode 100644 index 0000000000000000000000000000000000000000..201f4361a66c035a441d760cc7a9f1661ffc3ab8 --- /dev/null +++ b/doc/doxygen/html/search/files_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['vector_2ec_443',['vector.c',['../vector_8c.html',1,'']]], + ['vector_2eh_444',['vector.h',['../vector_8h.html',1,'']]], + ['vector_5ftest_2ec_445',['vector_test.c',['../vector__test_8c.html',1,'']]], + ['vector_5ftest_2eh_446',['vector_test.h',['../vector__test_8h.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/functions_0.html b/doc/doxygen/html/search/functions_0.html new file mode 100644 index 0000000000000000000000000000000000000000..8a729f78c8783b603575ee42029488795a5cd0fd --- /dev/null +++ b/doc/doxygen/html/search/functions_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_0.js b/doc/doxygen/html/search/functions_0.js new file mode 100644 index 0000000000000000000000000000000000000000..2aa1a7bce13acdb911814fd468ac4926134b5f56 --- /dev/null +++ b/doc/doxygen/html/search/functions_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['combinatorics_5fget_5fnext_5fwithout_5frep_440',['combinatorics_get_next_without_rep',['../combinatorics_8c.html#ae500ce949afe79089e8146eb1fb5cbb0',1,'combinatorics_get_next_without_rep(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c'],['../combinatorics_8h.html#ae500ce949afe79089e8146eb1fb5cbb0',1,'combinatorics_get_next_without_rep(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c']]], + ['combinatorics_5finit_441',['combinatorics_init',['../combinatorics_8c.html#a1bcaeef00a7027e9b9b7694da2efd1b9',1,'combinatorics_init(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c'],['../combinatorics_8h.html#a1bcaeef00a7027e9b9b7694da2efd1b9',1,'combinatorics_init(uint8_t n, uint8_t k, uint8_t comb_arr[]): combinatorics.c']]] +]; diff --git a/doc/doxygen/html/search/functions_1.html b/doc/doxygen/html/search/functions_1.html new file mode 100644 index 0000000000000000000000000000000000000000..d4929aaf1d6b2763a4087df26c7cf7480d22fecc --- /dev/null +++ b/doc/doxygen/html/search/functions_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_1.js b/doc/doxygen/html/search/functions_1.js new file mode 100644 index 0000000000000000000000000000000000000000..27f01fb3846e8ec436880dae013c5edf02a70529 --- /dev/null +++ b/doc/doxygen/html/search/functions_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['damped_5fnewton_5fraphson_442',['damped_newton_raphson',['../damped__newton__raphson_8c.html#a0cf3dc5e334091bc43820fa1d8e86c14',1,'damped_newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double min_lamda, double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c'],['../damped__newton__raphson_8h.html#a0cf3dc5e334091bc43820fa1d8e86c14',1,'damped_newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double min_lamda, double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c']]], + ['dist_5fbased_5ff_5fi_443',['dist_based_f_i',['../dist__based__fi_8c.html#a2a1d8806de5f7f5131be1fbd706c17fa',1,'dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]): dist_based_fi.c'],['../dist__based__fi_8h.html#a2a1d8806de5f7f5131be1fbd706c17fa',1,'dist_based_f_i(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]): dist_based_fi.c']]], + ['dist_5fbased_5ffi_444',['dist_based_fi',['../dist__based__fi_8c.html#a67e1cf0904bc0be1258e5fb4cb292a9a',1,'dist_based_fi(matrix_t point[3], matrix_t ref_point[3], matrix_t ri): dist_based_fi.c'],['../dist__based__fi_8h.html#a67e1cf0904bc0be1258e5fb4cb292a9a',1,'dist_based_fi(matrix_t point[3], matrix_t ref_point[3], matrix_t ri): dist_based_fi.c']]], + ['dist_5fbased_5fget_5fabsolute_5ferror_445',['dist_based_get_absolute_error',['../dist__based__position_8c.html#a308f40001270af6663e2b1f9aff47cc3',1,'dist_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): dist_based_position.c'],['../dist__based__position_8h.html#a308f40001270af6663e2b1f9aff47cc3',1,'dist_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): dist_based_position.c']]], + ['dist_5fbased_5fget_5fdistance_5fto_5fanchor_446',['dist_based_get_distance_to_anchor',['../dist__based__position_8c.html#a756c1407a4ba61d312a676ffd824517d',1,'dist_based_get_distance_to_anchor(matrix_t ref_point[3], matrix_t point[3]): dist_based_position.c'],['../dist__based__position_8h.html#a756c1407a4ba61d312a676ffd824517d',1,'dist_based_get_distance_to_anchor(matrix_t ref_point[3], matrix_t point[3]): dist_based_position.c']]], + ['dist_5fbased_5fjacobian_5fget_5fj_447',['dist_based_jacobian_get_J',['../dist__based__jacobian_8c.html#a8f900ff7d66d260d3b2e3e0ef2757ccc',1,'dist_based_jacobian_get_J(uint8_t ref_points_num, matrix_t point[3], matrix_t ref_point_matrix[ref_points_num][3], matrix_t J[ref_points_num][3]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a8f900ff7d66d260d3b2e3e0ef2757ccc',1,'dist_based_jacobian_get_J(uint8_t ref_points_num, matrix_t point[3], matrix_t ref_point_matrix[ref_points_num][3], matrix_t J[ref_points_num][3]): dist_based_jacobian.c']]], + ['dist_5fbased_5fjacobian_5fget_5fj_5fmul_5fs_448',['dist_based_jacobian_get_J_mul_s',['../dist__based__jacobian_8c.html#a04231d3d216ce6814eb3e183f7a2e408',1,'dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a04231d3d216ce6814eb3e183f7a2e408',1,'dist_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): dist_based_jacobian.c']]], + ['dist_5fbased_5fjacobian_5fget_5fjtf_449',['dist_based_jacobian_get_JTf',['../dist__based__jacobian_8c.html#a769d35615d26a67b97bfd40b5d26a95c',1,'dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a769d35615d26a67b97bfd40b5d26a95c',1,'dist_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], vector_t JTf[3]): dist_based_jacobian.c']]], + ['dist_5fbased_5fjacobian_5fget_5fjtj_450',['dist_based_jacobian_get_JTJ',['../dist__based__jacobian_8c.html#a59b1a3323c2896ff28f71135af0204a2',1,'dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3]): dist_based_jacobian.c'],['../dist__based__jacobian_8h.html#a59b1a3323c2896ff28f71135af0204a2',1,'dist_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t dist_vec[ref_points_num], matrix_t JTJ[3][3]): dist_based_jacobian.c']]], + ['distance_5fbased_5ftest_451',['distance_based_test',['../distance__based__test_8c.html#a3a6d73a022976728a5a298ba62d8e115',1,'distance_based_test(void): distance_based_test.c'],['../distance__based__test_8h.html#a3a6d73a022976728a5a298ba62d8e115',1,'distance_based_test(void): distance_based_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_10.html b/doc/doxygen/html/search/functions_10.html new file mode 100644 index 0000000000000000000000000000000000000000..839ba3308f07c3a50c32a8961a3e78d52dbf612c --- /dev/null +++ b/doc/doxygen/html/search/functions_10.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_10.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_10.js b/doc/doxygen/html/search/functions_10.js new file mode 100644 index 0000000000000000000000000000000000000000..d5c7a5fc41aa15d87dd0a07658b57859ff77501e --- /dev/null +++ b/doc/doxygen/html/search/functions_10.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['vector_5fadd_606',['vector_add',['../vector_8h.html#a92917951880002814392c2367896d7a0',1,'vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size]): vector.c'],['../vector_8c.html#a92917951880002814392c2367896d7a0',1,'vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size]): vector.c']]], + ['vector_5fclear_607',['vector_clear',['../vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17',1,'vector_clear(uint8_t size, vector_t arr[]): vector.c'],['../vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14',1,'vector_clear(uint8_t n, vector_t arr[]): vector.c']]], + ['vector_5fcopy_608',['vector_copy',['../vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6',1,'vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[]): vector.c'],['../vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6',1,'vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[]): vector.c']]], + ['vector_5fflex_5fprint_609',['vector_flex_print',['../vector_8h.html#ab2827264910e858f238868695a92db4b',1,'vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot): vector.c'],['../vector_8c.html#ab2827264910e858f238868695a92db4b',1,'vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot): vector.c']]], + ['vector_5fget_5felements_610',['vector_get_elements',['../vector_8h.html#a1348a041e323e7b333482242b51a7674',1,'vector_get_elements(vector_t src_vec[], uint8_t k, uint8_t index_vec[], vector_t dst_vec[]): vector.c'],['../vector_8c.html#a1348a041e323e7b333482242b51a7674',1,'vector_get_elements(vector_t src_vec[], uint8_t k, uint8_t index_vec[], vector_t dst_vec[]): vector.c']]], + ['vector_5fget_5feuclidean_5fdistance_611',['vector_get_euclidean_distance',['../vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9',1,'vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[]): vector.c'],['../vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9',1,'vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[]): vector.c']]], + ['vector_5fget_5findex_5fvector_612',['vector_get_index_vector',['../vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba',1,'vector_get_index_vector(uint8_t k, uint8_t n, vector_t unsorted_vector[n], vector_t sorted_vector[n], uint8_t index_vector[n]): vector.c'],['../vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba',1,'vector_get_index_vector(uint8_t k, uint8_t n, vector_t unsorted_vector[n], vector_t sorted_vector[n], uint8_t index_vector[n]): vector.c']]], + ['vector_5fget_5fmax_5fand_5findex_613',['vector_get_max_and_index',['../vector_8h.html#a982bc2f9e4755461eac46c6322b4562d',1,'vector_get_max_and_index(uint8_t length, vector_t vec[], uint8_t *index): vector.c'],['../vector_8c.html#a982bc2f9e4755461eac46c6322b4562d',1,'vector_get_max_and_index(uint8_t length, vector_t vec[], uint8_t *index): vector.c']]], + ['vector_5fget_5fmean_5fvalue_614',['vector_get_mean_value',['../vector_8h.html#a4a8fae4c69677390016c116123d9eff8',1,'vector_get_mean_value(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#a4a8fae4c69677390016c116123d9eff8',1,'vector_get_mean_value(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fget_5fnorm2_615',['vector_get_norm2',['../vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6',1,'vector_get_norm2(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6',1,'vector_get_norm2(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fget_5fresidual_616',['vector_get_residual',['../vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac',1,'vector_get_residual(uint8_t length, vector_t a_vec[], vector_t b_vec[]): vector.c'],['../vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac',1,'vector_get_residual(uint8_t length, vector_t a_vec[], vector_t b_vec[]): vector.c']]], + ['vector_5fget_5fscalar_5fproduct_617',['vector_get_scalar_product',['../vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e',1,'vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n]): vector.c'],['../vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e',1,'vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n]): vector.c']]], + ['vector_5fget_5fsquare_5fnorm2_618',['vector_get_square_norm2',['../vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6',1,'vector_get_square_norm2(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6',1,'vector_get_square_norm2(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fget_5fsum_619',['vector_get_sum',['../vector_8h.html#af1767c4decdd472ed81035a19cf2152b',1,'vector_get_sum(uint8_t length, vector_t arr[]): vector.c'],['../vector_8c.html#af1767c4decdd472ed81035a19cf2152b',1,'vector_get_sum(uint8_t length, vector_t arr[]): vector.c']]], + ['vector_5fin_5fplace_5fscalar_5fmul_620',['vector_in_place_scalar_mul',['../vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4',1,'vector_in_place_scalar_mul(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c'],['../vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4',1,'vector_in_place_scalar_mul(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c']]], + ['vector_5fis_5fequal_621',['vector_is_equal',['../vector_8h.html#af98f2e3896ce7b96d598b11033ac1795',1,'vector_is_equal(uint16_t length, vector_t vec_1[], vector_t vec_2[]): vector.c'],['../vector_8c.html#af98f2e3896ce7b96d598b11033ac1795',1,'vector_is_equal(uint16_t length, vector_t vec_1[], vector_t vec_2[]): vector.c']]], + ['vector_5fmul_622',['vector_mul',['../vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5',1,'vector_mul(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_mul_b_vec[size]): vector.c'],['../vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5',1,'vector_mul(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_mul_b_vec[size]): vector.c']]], + ['vector_5fprint_623',['vector_print',['../vector_8h.html#a8f24286db94dba6ab181edcdfe296262',1,'vector_print(uint32_t length, vector_t arr[]): vector.c'],['../vector_8c.html#a8f24286db94dba6ab181edcdfe296262',1,'vector_print(uint32_t length, vector_t arr[]): vector.c']]], + ['vector_5fprint_5fu8_5farray_624',['vector_print_u8_array',['../vector_8h.html#a8ec75dc585746d950ab517e9929f31fe',1,'vector_print_u8_array(uint32_t length, uint8_t arr[]): vector.c'],['../vector_8c.html#a8ec75dc585746d950ab517e9929f31fe',1,'vector_print_u8_array(uint32_t length, uint8_t arr[]): vector.c']]], + ['vector_5fscalar_5fdiv_625',['vector_scalar_div',['../vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b',1,'vector_scalar_div(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c'],['../vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b',1,'vector_scalar_div(uint8_t size, vector_t a_vec[size], vector_t scl): vector.c']]], + ['vector_5fscalar_5fmul_626',['vector_scalar_mul',['../vector_8h.html#a3c0bdd0e463fb34757a71470c55af845',1,'vector_scalar_mul(uint8_t size, vector_t src_vec[size], vector_t scl, vector_t dest_vec[]): vector.c'],['../vector_8c.html#a3c0bdd0e463fb34757a71470c55af845',1,'vector_scalar_mul(uint8_t size, vector_t src_vec[size], vector_t scl, vector_t dest_vec[]): vector.c']]], + ['vector_5fsquare_627',['vector_square',['../vector_8h.html#afc68fab0b07c974faf5a457d20b01c58',1,'vector_square(uint8_t n, vector_t vec[n], vector_t square_vec[n]): vector.c'],['../vector_8c.html#afc68fab0b07c974faf5a457d20b01c58',1,'vector_square(uint8_t n, vector_t vec[n], vector_t square_vec[n]): vector.c']]], + ['vector_5fsub_628',['vector_sub',['../vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63',1,'vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[]): vector.c'],['../vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63',1,'vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[]): vector.c']]], + ['vector_5ftest_629',['vector_test',['../vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21',1,'vector_test(void): vector_test.c'],['../vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21',1,'vector_test(void): vector_test.c']]], + ['vector_5fuint32_5fis_5fequal_630',['vector_uint32_is_equal',['../vector_8h.html#a421f989647bf55af29c0f55b7f33d35a',1,'vector_uint32_is_equal(uint32_t length, uint32_t vec_1[], uint32_t vec_2[]): vector.c'],['../vector_8c.html#a421f989647bf55af29c0f55b7f33d35a',1,'vector_uint32_is_equal(uint32_t length, uint32_t vec_1[], uint32_t vec_2[]): vector.c']]] +]; diff --git a/doc/doxygen/html/search/functions_2.html b/doc/doxygen/html/search/functions_2.html new file mode 100644 index 0000000000000000000000000000000000000000..07e3fdad44dd14ebb1430d5f44d05df90a204b1e --- /dev/null +++ b/doc/doxygen/html/search/functions_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_2.js b/doc/doxygen/html/search/functions_2.js new file mode 100644 index 0000000000000000000000000000000000000000..b7d935fc734668a93fe3e67066640e5b158c9921 --- /dev/null +++ b/doc/doxygen/html/search/functions_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['fsolve_452',['fsolve',['../fsolve_8c.html#a690a05654627b94634ffed0893946ba7',1,'fsolve(uint8_t f_length, uint8_t x0_length, vector_t x0_arr[], enum NON_LIN_ALGORITHM algo, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][x0_length])): fsolve.c'],['../fsolve_8h.html#a690a05654627b94634ffed0893946ba7',1,'fsolve(uint8_t f_length, uint8_t x0_length, vector_t x0_arr[], enum NON_LIN_ALGORITHM algo, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][x0_length])): fsolve.c']]], + ['fsolve_5ftest_453',['fsolve_test',['../fsolve__test_8c.html#a53bbdeb6ad57eeb4b512c4620b64cc37',1,'fsolve_test(void): fsolve_test.c'],['../fsolve__test_8h.html#a53bbdeb6ad57eeb4b512c4620b64cc37',1,'fsolve_test(void): fsolve_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_3.html b/doc/doxygen/html/search/functions_3.html new file mode 100644 index 0000000000000000000000000000000000000000..40bd389ee14504e264d71f83be56cd76667bae53 --- /dev/null +++ b/doc/doxygen/html/search/functions_3.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_3.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_3.js b/doc/doxygen/html/search/functions_3.js new file mode 100644 index 0000000000000000000000000000000000000000..ecb0d159d5c64ffd4a2f7049a61e851ffb466870 --- /dev/null +++ b/doc/doxygen/html/search/functions_3.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['get_5fdamped_5fnorm_454',['get_damped_norm',['../damped__newton__raphson_8c.html#a46f90a02170f4f35f9b3bdbc5c65271a',1,'get_damped_norm(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c'],['../damped__newton__raphson_8h.html#a46f90a02170f4f35f9b3bdbc5c65271a',1,'get_damped_norm(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): damped_newton_raphson.c']]], + ['get_5fdelta_5fx_455',['get_delta_x',['../damped__newton__raphson_8c.html#acd5be84f1d01dfb379d85cc8aef8b65e',1,'get_delta_x(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]), vector_t delta_x_arr[]): damped_newton_raphson.c'],['../damped__newton__raphson_8h.html#acd5be84f1d01dfb379d85cc8aef8b65e',1,'get_delta_x(uint8_t m, uint8_t n, vector_t x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n]), vector_t delta_x_arr[]): damped_newton_raphson.c']]], + ['get_5fexact_5fdistance_5fto_5fanchor_456',['get_exact_distance_to_anchor',['../multipath__dist__detection__mitigation_8h.html#a38019260396a33562d5a1912c691c26a',1,'get_exact_distance_to_anchor(matrix_t ref_point[], uint32_t exact_point[]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a38019260396a33562d5a1912c691c26a',1,'get_exact_distance_to_anchor(matrix_t ref_point[], uint32_t exact_point[]): multipath_dist_detection_mitigation.c']]], + ['get_5fnon_5flin_5fsys_5ff1_5f_457',['get_non_lin_sys_f1_',['../fsolve__test_8c.html#aefd0d3fa000963221de289a3933b7c9b',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5ff2_5f_458',['get_non_lin_sys_f2_',['../fsolve__test_8c.html#ae36fe8e55d180d348ef331efbbc5b908',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5ff3_5f_459',['get_non_lin_sys_f3_',['../fsolve__test_8c.html#a8f8a1fe785d5304202601b95e1e6871a',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5fj1_5f_460',['get_non_lin_sys_J1_',['../fsolve__test_8c.html#a3344cde9f5060d7ab962fbaaf1cdd88f',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5fj2_5f_461',['get_non_lin_sys_J2_',['../fsolve__test_8c.html#ab95955c80b1896b9e75a04faa4ce742e',1,'fsolve_test.c']]], + ['get_5fnon_5flin_5fsys_5fj3_5f_462',['get_non_lin_sys_J3_',['../fsolve__test_8c.html#a6686e4624961ca943bebb616e763a100',1,'fsolve_test.c']]], + ['get_5fnorm_5fdistr_5frand_5fnum_463',['get_norm_distr_rand_num',['../norm__dist__rnd__generator_8h.html#a35eb81d6885b8d16d225b230f88a919a',1,'get_norm_distr_rand_num(double mean, double std_dev): norm_dist_rnd_generator.c'],['../norm__dist__rnd__generator_8c.html#a7c43c3270c6c14bb23f14d071f6132bf',1,'get_norm_distr_rand_num(double mean_val, double std_dev_val): norm_dist_rnd_generator.c']]], + ['get_5foptimal_5fpartial_5fr_5fnoised_5fvec_464',['get_optimal_partial_r_noised_vec',['../multipath__dist__detection__mitigation_8h.html#a540837de8e8a9d4e5dbaac1814b19b5e',1,'get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a540837de8e8a9d4e5dbaac1814b19b5e',1,'get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k]): multipath_dist_detection_mitigation.c']]], + ['get_5foptimal_5fpartial_5fref_5fmatrix_465',['get_optimal_partial_ref_matrix',['../multipath__dist__detection__mitigation_8h.html#a6530e8d8955c511d3452748fec987a39',1,'get_optimal_partial_ref_matrix(uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a6530e8d8955c511d3452748fec987a39',1,'get_optimal_partial_ref_matrix(uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3]): multipath_dist_detection_mitigation.c']]], + ['get_5fpdop_466',['get_PDOP',['../DOP_8c.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4',1,'get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m]): DOP.c'],['../DOP_8h.html#a8b878ff6d73e8da6fbc3ae40f01b1ce4',1,'get_PDOP(uint8_t m, matrix_t ref_Matrix[m][3], matrix_t true_pos[m]): DOP.c']]], + ['get_5frand_5fnum_467',['get_rand_num',['../norm__dist__rnd__generator_8h.html#a58c36346c01fb7f1a336a610b177b903',1,'get_rand_num(int seed): norm_dist_rnd_generator.c'],['../norm__dist__rnd__generator_8c.html#a5767383d0f4f1fed2c194695a22f56cb',1,'get_rand_num(int initial_seed_val): norm_dist_rnd_generator.c']]], + ['givens_5ftest_468',['givens_test',['../givens__test_8c.html#a7b8199da35e2aec77e76bbb9c52a28ae',1,'givens_test(void): givens_test.c'],['../givens__test_8h.html#a7b8199da35e2aec77e76bbb9c52a28ae',1,'givens_test(void): givens_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_4.html b/doc/doxygen/html/search/functions_4.html new file mode 100644 index 0000000000000000000000000000000000000000..8a4df4cdcdef2c67de4d08f9f3e0e1b354230e2e --- /dev/null +++ b/doc/doxygen/html/search/functions_4.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_4.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_4.js b/doc/doxygen/html/search/functions_4.js new file mode 100644 index 0000000000000000000000000000000000000000..41999a1ebba1d0c5ecbdadc14acbf7a5aaa5c0f7 --- /dev/null +++ b/doc/doxygen/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['householder_5ftest_469',['householder_test',['../householder__test_8c.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0',1,'householder_test(void): householder_test.c'],['../householder__test_8h.html#aacc09bb5d8990f8f6f3bc872b9a8d9a0',1,'householder_test(void): householder_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_5.html b/doc/doxygen/html/search/functions_5.html new file mode 100644 index 0000000000000000000000000000000000000000..2b983b214614526dd7f716422393af390a444c4a --- /dev/null +++ b/doc/doxygen/html/search/functions_5.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_5.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_5.js b/doc/doxygen/html/search/functions_5.js new file mode 100644 index 0000000000000000000000000000000000000000..7c64ccb754c0a425a17b5c2fcbf336dc0f1f17b6 --- /dev/null +++ b/doc/doxygen/html/search/functions_5.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['int_5fshell_5fsort_470',['int_shell_sort',['../shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e',1,'int_shell_sort(int *array, int length): shell_sort.c'],['../shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e',1,'int_shell_sort(int *array, int length): shell_sort.c']]], + ['inv_5ftriangular_5fmatrices_5ftest_471',['inv_triangular_matrices_test',['../matrix__test_8h.html#a5713bd664a96ccd028896420050f22df',1,'inv_triangular_matrices_test(void): matrix_test.c'],['../matrix__test_8c.html#a5713bd664a96ccd028896420050f22df',1,'inv_triangular_matrices_test(void): matrix_test.c']]], + ['is_5fanchor_472',['is_anchor',['../multipath__dist__detection__mitigation_8h.html#a944bb181ffe0b3abc69e345ae88fbfc1',1,'is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a944bb181ffe0b3abc69e345ae88fbfc1',1,'is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3]): multipath_dist_detection_mitigation.c']]], + ['is_5fmember_473',['is_member',['../multipath__dist__detection__mitigation_8h.html#a5609107d45b6abfa6614fc79c56273c8',1,'is_member(matrix_t vector, uint8_t n, matrix_t multipath[n]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a5609107d45b6abfa6614fc79c56273c8',1,'is_member(matrix_t vector, uint8_t n, matrix_t multipath[n]): multipath_dist_detection_mitigation.c']]] +]; diff --git a/doc/doxygen/html/search/functions_6.html b/doc/doxygen/html/search/functions_6.html new file mode 100644 index 0000000000000000000000000000000000000000..f7d283d10c4e5856502e73fbabf05a82d34074db --- /dev/null +++ b/doc/doxygen/html/search/functions_6.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_6.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_6.js b/doc/doxygen/html/search/functions_6.js new file mode 100644 index 0000000000000000000000000000000000000000..402ea185a3b0436727258769ac41e1ee3dfe98ef --- /dev/null +++ b/doc/doxygen/html/search/functions_6.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['loc_5fgauss_5fnewton_474',['loc_gauss_newton',['../loc__gauss__newton_8h.html#aaba1f25cf23d5529e4fc3bca22f8784e',1,'loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3])): loc_gauss_newton.c'],['../loc__gauss__newton_8c.html#aaba1f25cf23d5529e4fc3bca22f8784e',1,'loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3])): loc_gauss_newton.c']]], + ['loc_5flevenberg_5fmarquardt_475',['loc_levenberg_marquardt',['../loc__levenberg__marquardt_8h.html#a09fdd720ff5c5658e160657153ee615f',1,'loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a09fdd720ff5c5658e160657153ee615f',1,'loc_levenberg_marquardt(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, matrix_t est_pos[3], void(*f_i)(uint8_t ref_points_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c']]], + ['loc_5flevenberg_5fmarquardt_5fcorrection_476',['loc_levenberg_marquardt_correction',['../loc__levenberg__marquardt_8h.html#a9b2c27f650c9db97f2923b645a8ca5f6',1,'loc_levenberg_marquardt_correction(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t s[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a9b2c27f650c9db97f2923b645a8ca5f6',1,'loc_levenberg_marquardt_correction(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t s[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]), void(*jacobian_get_J_mul_s)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num])): loc_levenberg_marquardt.c']]], + ['loc_5flevenberg_5fmarquardt_5fget_5fjtj_5fmu2_5fi_477',['loc_levenberg_marquardt_get_JTJ_mu2_I',['../loc__levenberg__marquardt_8h.html#a4bad4d347859b95ac176779b34f26f8e',1,'loc_levenberg_marquardt_get_JTJ_mu2_I(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3])): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a4bad4d347859b95ac176779b34f26f8e',1,'loc_levenberg_marquardt_get_JTJ_mu2_I(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t measured_data_vec[ref_points_num], matrix_t mu, matrix_t JTJ_mu2_I[3][3], void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3])): loc_levenberg_marquardt.c']]], + ['loc_5flevenberg_5fmarquardt_5fget_5fmu0_478',['loc_levenberg_marquardt_get_mu0',['../loc__levenberg__marquardt_8h.html#a34f52d51278453ca0fc0818a1f73a357',1,'loc_levenberg_marquardt_get_mu0(matrix_t tau, matrix_t JTJ[3][3]): loc_levenberg_marquardt.c'],['../loc__levenberg__marquardt_8c.html#a34f52d51278453ca0fc0818a1f73a357',1,'loc_levenberg_marquardt_get_mu0(matrix_t tau, matrix_t JTJ[3][3]): loc_levenberg_marquardt.c']]], + ['lu_5fdecomp_479',['lu_decomp',['../lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7',1,'lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n]): lu_decomp.c'],['../lu__decomp_8c.html#a8649e9f4b85f17bf35a22b18e7f239d7',1,'lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n]): lu_decomp.c']]], + ['lu_5fdecomp_5ftest_480',['lu_decomp_test',['../lu__decomp__test_8h.html#a5798fee8a59a44f3a6a712ffd700dfd1',1,'lu_decomp_test(void): lu_decomp_test.c'],['../lu__decomp__test_8c.html#a5798fee8a59a44f3a6a712ffd700dfd1',1,'lu_decomp_test(void): lu_decomp_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_7.html b/doc/doxygen/html/search/functions_7.html new file mode 100644 index 0000000000000000000000000000000000000000..a74fe44aa37720aaf3976a0fa7026c65b5139b1f --- /dev/null +++ b/doc/doxygen/html/search/functions_7.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_7.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_7.js b/doc/doxygen/html/search/functions_7.js new file mode 100644 index 0000000000000000000000000000000000000000..a8da63138e48d9f0cdd8b14a1c459f657649d991 --- /dev/null +++ b/doc/doxygen/html/search/functions_7.js @@ -0,0 +1,66 @@ +var searchData= +[ + ['magnetic_5fbased_5ff_5fi_481',['magnetic_based_f_i',['../magnetic__based__fi_8h.html#a897f5c675ad714feb9f2ae7571de620a',1,'magnetic_based_f_i(uint8_t ref_points_num, matrix_t ref_points_matrix[][3], matrix_t point[], matrix_t Bi_vec[], matrix_t f_vec[]): magnetic_based_fi.c'],['../magnetic__based__fi_8c.html#a897f5c675ad714feb9f2ae7571de620a',1,'magnetic_based_f_i(uint8_t ref_points_num, matrix_t ref_points_matrix[][3], matrix_t point[], matrix_t Bi_vec[], matrix_t f_vec[]): magnetic_based_fi.c']]], + ['magnetic_5fbased_5fget_5fabsolute_5ferror_482',['magnetic_based_get_absolute_error',['../magnetic__based__position_8h.html#ad5a7513337486e277ea028480403569d',1,'magnetic_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): magnetic_based_position.c'],['../magnetic__based__position_8c.html#ad5a7513337486e277ea028480403569d',1,'magnetic_based_get_absolute_error(matrix_t value_arr[], matrix_t approx_value_arr[], matrix_t absolute_error_arr[], uint8_t length): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fdistances_483',['magnetic_based_get_distances',['../magnetic__based__position_8h.html#ae584dff239a0111c47b7c5d1e197af59',1,'magnetic_based_get_distances(matrix_t magnetic_field_strength_arr[], matrix_t angular_theta_arr[], matrix_t distance_arr[], uint8_t length, matrix_t k): magnetic_based_position.c'],['../magnetic__based__position_8c.html#ae584dff239a0111c47b7c5d1e197af59',1,'magnetic_based_get_distances(matrix_t magnetic_field_strength_arr[], matrix_t angular_theta_arr[], matrix_t distance_arr[], uint8_t length, matrix_t k): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fdistances_5fto_5fanchors_484',['magnetic_based_get_distances_to_anchors',['../magnetic__based__position_8h.html#ac852e4c0dcb8e9901aa3fab5efd91599',1,'magnetic_based_get_distances_to_anchors(matrix_t ref_point[3], matrix_t point[3]): magnetic_based_position.c'],['../magnetic__based__position_8c.html#ac852e4c0dcb8e9901aa3fab5efd91599',1,'magnetic_based_get_distances_to_anchors(matrix_t ref_point[3], matrix_t point[3]): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fmagnetic_5ffield_485',['magnetic_based_get_magnetic_field',['../magnetic__based__position_8h.html#a361f3f3c4f9516a1aa6107367ebfda8d',1,'magnetic_based_get_magnetic_field(matrix_t ref_point[3], matrix_t target_point[3], matrix_t k): magnetic_based_position.c'],['../magnetic__based__position_8c.html#a361f3f3c4f9516a1aa6107367ebfda8d',1,'magnetic_based_get_magnetic_field(matrix_t ref_point[3], matrix_t target_point[3], matrix_t k): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fmagnetic_5ffield_5fvec_486',['magnetic_based_get_magnetic_field_vec',['../magnetic__based__position_8h.html#aac026f28838a5b30c8f6f189e3ab354c',1,'magnetic_based_get_magnetic_field_vec(uint8_t m, matrix_t ref_point_matrix[m][3], matrix_t target_point[], matrix_t k, matrix_t magn_field_vec[]): magnetic_based_position.c'],['../magnetic__based__position_8c.html#aac026f28838a5b30c8f6f189e3ab354c',1,'magnetic_based_get_magnetic_field_vec(uint8_t m, matrix_t ref_point_matrix[m][3], matrix_t target_point[], matrix_t k, matrix_t magn_field_vec[]): magnetic_based_position.c']]], + ['magnetic_5fbased_5fget_5fr_487',['magnetic_based_get_r',['../magnetic__based__position_8h.html#a01bb024303e8eb202a19dbd70b291c06',1,'magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k): magnetic_based_position.c'],['../magnetic__based__position_8c.html#a01bb024303e8eb202a19dbd70b291c06',1,'magnetic_based_get_r(matrix_t B, matrix_t theta, matrix_t k): magnetic_based_position.c']]], + ['magnetic_5fbased_5fjacobian_5fget_5fj_488',['magnetic_based_jacobian_get_J',['../magnetic__based__jacobian_8h.html#ac3aca0a9af6ad84f6c010a215239f224',1,'magnetic_based_jacobian_get_J(uint8_t ref_point_num, matrix_t ref_point_matrix[ref_point_num][3], matrix_t point[], matrix_t J[ref_point_num][3]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#ac3aca0a9af6ad84f6c010a215239f224',1,'magnetic_based_jacobian_get_J(uint8_t ref_point_num, matrix_t ref_point_matrix[ref_point_num][3], matrix_t point[], matrix_t J[ref_point_num][3]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fjacobian_5fget_5fj_5fmul_5fs_489',['magnetic_based_jacobian_get_J_mul_s',['../magnetic__based__jacobian_8h.html#ae1e7849d86970a33ef5b784705ebc2fc',1,'magnetic_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#ae1e7849d86970a33ef5b784705ebc2fc',1,'magnetic_based_jacobian_get_J_mul_s(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t s[3], matrix_t J_s[ref_points_num]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fjacobian_5fget_5fjtf_490',['magnetic_based_jacobian_get_JTf',['../magnetic__based__jacobian_8h.html#a87f1c7a7d6b151883c2308de275269b8',1,'magnetic_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t Bi_vec[ref_points_num], matrix_t JTf[3]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#a87f1c7a7d6b151883c2308de275269b8',1,'magnetic_based_jacobian_get_JTf(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], matrix_t point[3], matrix_t Bi_vec[ref_points_num], matrix_t JTf[3]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fjacobian_5fget_5fjtj_491',['magnetic_based_jacobian_get_JTJ',['../magnetic__based__jacobian_8h.html#aa66e6f52fd806c36f4b735b7c4c3307e',1,'magnetic_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t *unused, matrix_t JTJ[3][3]): magnetic_based_jacobian.c'],['../magnetic__based__jacobian_8c.html#aa66e6f52fd806c36f4b735b7c4c3307e',1,'magnetic_based_jacobian_get_JTJ(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t *unused, matrix_t JTJ[3][3]): magnetic_based_jacobian.c']]], + ['magnetic_5fbased_5fpreprocessing_5fget_5fposition_492',['magnetic_based_preprocessing_get_position',['../magnetic__based__position_8h.html#af316f67cb87759b57bc815326b8d1cef',1,'magnetic_based_preprocessing_get_position(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): magnetic_based_position.c'],['../magnetic__based__position_8c.html#af316f67cb87759b57bc815326b8d1cef',1,'magnetic_based_preprocessing_get_position(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): magnetic_based_position.c']]], + ['magnetic_5fbased_5ftest_493',['magnetic_based_test',['../magnetic__based__test_8h.html#a94f4b9ae7750825fc3d332e8f1903f75',1,'magnetic_based_test(void): magnetic_based_test.c'],['../magnetic__based__test_8c.html#a94f4b9ae7750825fc3d332e8f1903f75',1,'magnetic_based_test(void): magnetic_based_test.c']]], + ['matrix_5fadd_494',['matrix_add',['../matrix_8h.html#ac7101bbaa3a2698658276a7e21501093',1,'matrix_add(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_plus_B[m][n]): matrix.c'],['../matrix_8c.html#ac7101bbaa3a2698658276a7e21501093',1,'matrix_add(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_plus_B[m][n]): matrix.c']]], + ['matrix_5fadd_5fto_5fdiag_495',['matrix_add_to_diag',['../matrix_8h.html#aa8acafd4181978f536976f8151e51516',1,'matrix_add_to_diag(uint8_t n, matrix_t A[][n], uint8_t diag_el_num, matrix_t value): matrix.c'],['../matrix_8c.html#aa8acafd4181978f536976f8151e51516',1,'matrix_add_to_diag(uint8_t n, matrix_t A[][n], uint8_t diag_el_num, matrix_t value): matrix.c']]], + ['matrix_5fclear_496',['matrix_clear',['../matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3',1,'matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c'],['../matrix_8c.html#a0e06b2cfb86340e88be7b1219bef0ce3',1,'matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c']]], + ['matrix_5fcopy_497',['matrix_copy',['../matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c',1,'matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n]): matrix.c'],['../matrix_8c.html#ae8d8daa117e9f96a5e29fe6c76c4998c',1,'matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n]): matrix.c']]], + ['matrix_5fflex_5fpart_5fprint_498',['matrix_flex_part_print',['../matrix_8h.html#a72297a60e572f85929989e813388a9c5',1,'matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot): matrix.c'],['../matrix_8c.html#a72297a60e572f85929989e813388a9c5',1,'matrix_flex_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t before_dot, uint8_t after_dot): matrix.c']]], + ['matrix_5fflex_5fprint_499',['matrix_flex_print',['../matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524',1,'matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec): matrix.c'],['../matrix_8c.html#ad386233d68c73656a03641ddf3ecaaf2',1,'matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dot, uint8_t after_dot): matrix.c']]], + ['matrix_5fget_5fabs_5fmax_5felem_5fand_5findex_5fin_5fpart_5fcolumn_500',['matrix_get_abs_max_elem_and_index_in_part_column',['../matrix_8h.html#a5f6a1948ec005cff4985559821c4943f',1,'matrix_get_abs_max_elem_and_index_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index): matrix.c'],['../matrix_8c.html#a5f6a1948ec005cff4985559821c4943f',1,'matrix_get_abs_max_elem_and_index_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num, uint8_t *index): matrix.c']]], + ['matrix_5fget_5fabs_5fmax_5felem_5fin_5fcolumn_501',['matrix_get_abs_max_elem_in_column',['../matrix_8h.html#a0a3d3cfa20ad3e75ad783af457343672',1,'matrix_get_abs_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c'],['../matrix_8c.html#a0a3d3cfa20ad3e75ad783af457343672',1,'matrix_get_abs_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fabs_5fmax_5felem_5fin_5fpart_5fcolumn_502',['matrix_get_abs_max_elem_in_part_column',['../matrix_8h.html#a8d77cfae4f1da83acac929c1ce13d252',1,'matrix_get_abs_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c'],['../matrix_8c.html#a8d77cfae4f1da83acac929c1ce13d252',1,'matrix_get_abs_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fcolumn_5fvec_503',['matrix_get_column_vec',['../matrix_8h.html#a3ae0b9f73f82716f3427a523a3412864',1,'matrix_get_column_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num, matrix_t col_vec[m]): matrix.c'],['../matrix_8c.html#a3ae0b9f73f82716f3427a523a3412864',1,'matrix_get_column_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num, matrix_t col_vec[m]): matrix.c']]], + ['matrix_5fget_5fdiag_5fmat_504',['matrix_get_diag_mat',['../matrix_8h.html#a18e47742f1653dcc4491badfe2537a0a',1,'matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c'],['../matrix_8c.html#a18e47742f1653dcc4491badfe2537a0a',1,'matrix_get_diag_mat(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c']]], + ['matrix_5fget_5fdiag_5fmat_5fnew_505',['matrix_get_diag_mat_new',['../matrix_8h.html#ae808f007791f060590d39c7668501988',1,'matrix_get_diag_mat_new(uint8_t m, uint8_t n, matrix_t diag_matrix[m][n], uint8_t length, matrix_t vec[]): matrix.c'],['../matrix_8c.html#ae808f007791f060590d39c7668501988',1,'matrix_get_diag_mat_new(uint8_t m, uint8_t n, matrix_t diag_matrix[m][n], uint8_t length, matrix_t vec[]): matrix.c']]], + ['matrix_5fget_5ffrob_5fnorm_506',['matrix_get_frob_norm',['../matrix_8h.html#aaf85a32b8562c91d2d1889819580375e',1,'matrix_get_frob_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c'],['../matrix_8c.html#aaf85a32b8562c91d2d1889819580375e',1,'matrix_get_frob_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c']]], + ['matrix_5fget_5finv_5flow_5ftriang_507',['matrix_get_inv_low_triang',['../matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48',1,'matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m]): matrix.c'],['../matrix_8c.html#ae8e87640fa1a2d259ee4dc98c955cb48',1,'matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m]): matrix.c']]], + ['matrix_5fget_5finv_5fupp_5ftriang_508',['matrix_get_inv_upp_triang',['../matrix_8h.html#ab166871472924745f70e2bb6e17498c8',1,'matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m]): matrix.c'],['../matrix_8c.html#ab166871472924745f70e2bb6e17498c8',1,'matrix_get_inv_upp_triang(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t inv_U[][m]): matrix.c']]], + ['matrix_5fget_5flow_5ftriang_509',['matrix_get_low_triang',['../matrix_8h.html#adfd93dda9be9b2e8df5805af7fee7845',1,'matrix_get_low_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_low_A[][n]): matrix.c'],['../matrix_8c.html#adfd93dda9be9b2e8df5805af7fee7845',1,'matrix_get_low_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_low_A[][n]): matrix.c']]], + ['matrix_5fget_5fmax_5felem_5fin_5fcolumn_510',['matrix_get_max_elem_in_column',['../matrix_8h.html#aef8d1508ad101227ab255a714ab22b94',1,'matrix_get_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c'],['../matrix_8c.html#aef8d1508ad101227ab255a714ab22b94',1,'matrix_get_max_elem_in_column(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fmax_5felem_5fin_5fpart_5fcolumn_511',['matrix_get_max_elem_in_part_column',['../matrix_8h.html#ad2cecc467ac6480ef0f3423f962b39bc',1,'matrix_get_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c'],['../matrix_8c.html#ad2cecc467ac6480ef0f3423f962b39bc',1,'matrix_get_max_elem_in_part_column(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t row_num, uint8_t col_num): matrix.c']]], + ['matrix_5fget_5fpart_5fcolumn_5fvec_512',['matrix_get_part_column_vec',['../matrix_8h.html#ac20399f6a8de13b1f392a1e3f7c0fbf4',1,'matrix_get_part_column_vec(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t col_num, uint8_t offset, matrix_t col_vec[max_m - offset]): matrix.c'],['../matrix_8c.html#ac20399f6a8de13b1f392a1e3f7c0fbf4',1,'matrix_get_part_column_vec(uint8_t max_m, uint8_t max_n, matrix_t matrix[max_m][max_n], uint8_t col_num, uint8_t offset, matrix_t col_vec[max_m - offset]): matrix.c']]], + ['matrix_5fget_5frank_513',['matrix_get_rank',['../matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd',1,'matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length): matrix.c'],['../matrix_8c.html#a53879e7c4cfbc96725aef9f8234be7dd',1,'matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length): matrix.c']]], + ['matrix_5fget_5ftwo_5fnorm_514',['matrix_get_two_norm',['../matrix_8h.html#aec03481d950677386122e3c8ba6a5cd0',1,'matrix_get_two_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c'],['../matrix_8c.html#aec03481d950677386122e3c8ba6a5cd0',1,'matrix_get_two_norm(uint8_t m, uint8_t n, matrix_t A[][n]): matrix.c']]], + ['matrix_5fget_5fupp_5ftriang_515',['matrix_get_upp_triang',['../matrix_8h.html#abbaf8f39b2b7bb4bd2987f99674c1213',1,'matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n]): matrix.c'],['../matrix_8c.html#abbaf8f39b2b7bb4bd2987f99674c1213',1,'matrix_get_upp_triang(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t tr_up_A[][n]): matrix.c']]], + ['matrix_5fin_5fplace_5ftranspose_516',['matrix_in_place_transpose',['../matrix_8h.html#a48b36217faeda15438f4e07c54d0ef9e',1,'matrix_in_place_transpose(uint8_t m, matrix_t matrix[][m]): matrix.c'],['../matrix_8c.html#a48b36217faeda15438f4e07c54d0ef9e',1,'matrix_in_place_transpose(uint8_t m, matrix_t matrix[][m]): matrix.c']]], + ['matrix_5finit_517',['matrix_init',['../matrix_8h.html#acfd2bbc4a90915e57a4555694e842312',1,'matrix_init(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t value): matrix.c'],['../matrix_8c.html#acfd2bbc4a90915e57a4555694e842312',1,'matrix_init(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t value): matrix.c']]], + ['matrix_5fmul_518',['matrix_mul',['../matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a',1,'matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num]): matrix.c'],['../matrix_8c.html#a550aa0d5a3212e35ad0af134895fd20a',1,'matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num]): matrix.c']]], + ['matrix_5fmul_5fcol_5fvec_5frow_5fvec_519',['matrix_mul_col_vec_row_vec',['../matrix_8h.html#acfd7c6f021f4fbcd393fe849c82f34de',1,'matrix_mul_col_vec_row_vec(uint8_t m, matrix_t col_vec[m], uint8_t n, matrix_t row_vec[n], uint8_t max_n, matrix_t res_mat[][max_n]): matrix.c'],['../matrix_8c.html#acfd7c6f021f4fbcd393fe849c82f34de',1,'matrix_mul_col_vec_row_vec(uint8_t m, matrix_t col_vec[m], uint8_t n, matrix_t row_vec[n], uint8_t max_n, matrix_t res_mat[][max_n]): matrix.c']]], + ['matrix_5fmul_5fscalar_520',['matrix_mul_scalar',['../matrix_8h.html#a51139e6c87b602e5e0ebfbc406fda35d',1,'matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n]): matrix.c'],['../matrix_8c.html#a51139e6c87b602e5e0ebfbc406fda35d',1,'matrix_mul_scalar(uint8_t m, uint8_t n, matrix_t mat_src[m][n], matrix_t value, matrix_t mat_dest[m][n]): matrix.c']]], + ['matrix_5fmul_5fscalar_5fvec_5fmatr_521',['matrix_mul_scalar_vec_matr',['../matrix_8h.html#ac735d13efe5b76ecf60ac13ec79da8e3',1,'matrix_mul_scalar_vec_matr(uint8_t m, uint8_t n, matrix_t scalar, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c'],['../matrix_8c.html#ac735d13efe5b76ecf60ac13ec79da8e3',1,'matrix_mul_scalar_vec_matr(uint8_t m, uint8_t n, matrix_t scalar, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c']]], + ['matrix_5fmul_5fvec_522',['matrix_mul_vec',['../matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb',1,'matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m]): matrix.c'],['../matrix_8c.html#ad610bcce232c69ca302550f57b1ad9fb',1,'matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m]): matrix.c']]], + ['matrix_5fpart_5fcopy_523',['matrix_part_copy',['../matrix_8h.html#a56513a88eff05b0683320c532fadf945',1,'matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num]): matrix.c'],['../matrix_8c.html#a56513a88eff05b0683320c532fadf945',1,'matrix_part_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind, uint8_t dest_row_num, uint8_t dest_col_num, matrix_t dest_matrix[][dest_col_num]): matrix.c']]], + ['matrix_5fpart_5fmul_524',['matrix_part_mul',['../matrix_8h.html#a3763252ca00e4c8522ae1bfd5ef40f0a',1,'matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size]): matrix.c'],['../matrix_8c.html#a3763252ca00e4c8522ae1bfd5ef40f0a',1,'matrix_part_mul(uint8_t a_col_num_max, matrix_t a_matrix[][a_col_num_max], uint8_t b_col_num_max, matrix_t b_matrix[][b_col_num_max], uint8_t a_start_row_ind, uint8_t a_end_row_ind, uint8_t a_start_col_ind, uint8_t a_end_col_ind, uint8_t b_start_row_ind, uint8_t b_end_row_ind, uint8_t b_start_col_ind, uint8_t b_end_col_ind, uint8_t dest_col_size, matrix_t dest_matrix[][dest_col_size]): matrix.c']]], + ['matrix_5fpart_5fmul_5fscalar_5fvec_5fmatr_525',['matrix_part_mul_scalar_vec_matr',['../matrix_8h.html#a06f75ae4924e3f0dfd0b6a25313dc731',1,'matrix_part_mul_scalar_vec_matr(uint8_t max_m, uint8_t max_n, matrix_t scalar, matrix_t vec[max_m], matrix_t matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, matrix_t dst_arr[max_n - begin_row]): matrix.c'],['../matrix_8c.html#a06f75ae4924e3f0dfd0b6a25313dc731',1,'matrix_part_mul_scalar_vec_matr(uint8_t max_m, uint8_t max_n, matrix_t scalar, matrix_t vec[max_m], matrix_t matrix[max_m][max_n], uint8_t begin_row, uint8_t begin_column, matrix_t dst_arr[max_n - begin_row]): matrix.c']]], + ['matrix_5fpart_5fprint_526',['matrix_part_print',['../matrix_8h.html#a72073ccd483f9cc438425d3d8ffd3029',1,'matrix_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind): matrix.c'],['../matrix_8c.html#a72073ccd483f9cc438425d3d8ffd3029',1,'matrix_part_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t start_row_ind, uint8_t end_row_ind, uint8_t start_col_ind, uint8_t end_col_ind): matrix.c']]], + ['matrix_5fpart_5fswap_5frows_527',['matrix_part_swap_rows',['../matrix_8h.html#a3570c016691507c003dd7a54cb37e7e2',1,'matrix_part_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end): matrix.c'],['../matrix_8c.html#a3570c016691507c003dd7a54cb37e7e2',1,'matrix_part_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j, uint8_t col_begin, uint8_t col_end): matrix.c']]], + ['matrix_5fprint_528',['matrix_print',['../matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a',1,'matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c'],['../matrix_8c.html#a32ab12965ec43c2acf65cf9dd510353a',1,'matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n]): matrix.c']]], + ['matrix_5fread_529',['matrix_read',['../matrix_8h.html#a722a0230185fd66f0cecbeae7d50ce1a',1,'matrix_read(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j): matrix.c'],['../matrix_8c.html#a722a0230185fd66f0cecbeae7d50ce1a',1,'matrix_read(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j): matrix.c']]], + ['matrix_5fset_5fdiag_5felements_530',['matrix_set_diag_elements',['../matrix_8h.html#a49aa70a7d6ad76388ea08acfe43b7374',1,'matrix_set_diag_elements(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c'],['../matrix_8c.html#a49aa70a7d6ad76388ea08acfe43b7374',1,'matrix_set_diag_elements(uint8_t m, uint8_t n, matrix_t value, matrix_t diag_matrix[m][n]): matrix.c']]], + ['matrix_5fsub_531',['matrix_sub',['../matrix_8h.html#aed6fab1ffa40243eeb08117215082be3',1,'matrix_sub(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_minus_B[m][n]): matrix.c'],['../matrix_8c.html#aed6fab1ffa40243eeb08117215082be3',1,'matrix_sub(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t B[m][n], matrix_t A_minus_B[m][n]): matrix.c']]], + ['matrix_5fswap_5frows_532',['matrix_swap_rows',['../matrix_8h.html#a875d6c55a16ee9f8bf523b8c1c82bc6f',1,'matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j): matrix.c'],['../matrix_8c.html#a875d6c55a16ee9f8bf523b8c1c82bc6f',1,'matrix_swap_rows(uint8_t n, matrix_t matrix[][n], uint8_t i, uint8_t j): matrix.c']]], + ['matrix_5ftest_533',['matrix_test',['../matrix__test_8h.html#aad3d0f4acb79e8a9b61eda59dc3a12b2',1,'matrix_test(void): matrix_test.c'],['../matrix__test_8c.html#aad3d0f4acb79e8a9b61eda59dc3a12b2',1,'matrix_test(void): matrix_test.c']]], + ['matrix_5ftrans_5fmul_5fitself_534',['matrix_trans_mul_itself',['../matrix_8h.html#a0107887a6c40980fa639750be8262f01',1,'matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n]): matrix.c'],['../matrix_8c.html#a0107887a6c40980fa639750be8262f01',1,'matrix_trans_mul_itself(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t AT_mul_A[n][n]): matrix.c']]], + ['matrix_5ftrans_5fmul_5fvec_535',['matrix_trans_mul_vec',['../matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7',1,'matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n]): matrix.c'],['../matrix_8c.html#a53b0a1829b2085414fb66a9e9bd6c7b7',1,'matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n]): matrix.c']]], + ['matrix_5ftranspose_536',['matrix_transpose',['../matrix_8h.html#ad7c9a682a3cc4ca33c030afa8798241a',1,'matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m]): matrix.c'],['../matrix_8c.html#ad7c9a682a3cc4ca33c030afa8798241a',1,'matrix_transpose(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[n][m]): matrix.c']]], + ['matrix_5fvec_5fmul_5fmatr_537',['matrix_vec_mul_matr',['../matrix_8h.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887',1,'matrix_vec_mul_matr(uint8_t m, uint8_t n, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c'],['../matrix_8c.html#a3cf18a2c5c6ad62a4e0a0c00d27e2887',1,'matrix_vec_mul_matr(uint8_t m, uint8_t n, matrix_t vec[m], matrix_t matrix[m][n], matrix_t dst_arr[n]): matrix.c']]], + ['matrix_5fwrite_538',['matrix_write',['../matrix_8h.html#a90b6eafa665d34d7330581c32564d632',1,'matrix_write(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j, matrix_t val): matrix.c'],['../matrix_8c.html#a90b6eafa665d34d7330581c32564d632',1,'matrix_write(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i, uint8_t j, matrix_t val): matrix.c']]], + ['modified_5fgauss_5fnewton_539',['modified_gauss_newton',['../modified__gauss__newton_8h.html#a7376799043ad2c27fac02371624051bc',1,'modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): modified_gauss_newton.c'],['../modified__gauss__newton_8c.html#a7376799043ad2c27fac02371624051bc',1,'modified_gauss_newton(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): modified_gauss_newton.c']]], + ['moore_5fpenrose_5fget_5fpinv_540',['moore_penrose_get_pinv',['../moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce',1,'moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m]): moore_penrose_pseudo_inverse.c'],['../moore__penrose__pseudo__inverse_8c.html#a0ddd46446f074a0d38c04157686f5fce',1,'moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m]): moore_penrose_pseudo_inverse.c']]], + ['moore_5fpenrose_5fpinv_5fcompute_5fprint_541',['moore_penrose_pinv_compute_print',['../moore__penrose__pseudo__inverse_8h.html#ada5b18da23c06c1a6f2449bbfe97a7c9',1,'moore_penrose_pinv_compute_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i): moore_penrose_pseudo_inverse.c'],['../moore__penrose__pseudo__inverse_8c.html#ada5b18da23c06c1a6f2449bbfe97a7c9',1,'moore_penrose_pinv_compute_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t i): moore_penrose_pseudo_inverse.c']]], + ['moore_5fpenrose_5fpinv_5ftest_542',['moore_penrose_pinv_test',['../moore__penrose__pinv__test_8h.html#a71ea6881aeb228d371528527d1974014',1,'moore_penrose_pinv_test(void): moore_penrose_pinv_test.c'],['../moore__penrose__pinv__test_8c.html#a71ea6881aeb228d371528527d1974014',1,'moore_penrose_pinv_test(void): moore_penrose_pinv_test.c']]], + ['multipath_5falgo_5fown_5fnorm_5fdistr_5ftest_543',['multipath_algo_own_norm_distr_test',['../multipath__algo__own__norm__distr__test_8h.html#a557f81ea2791d07f6341dc44b0f169dd',1,'multipath_algo_own_norm_distr_test(void): multipath_algo_own_norm_distr_test.c'],['../multipath__algo__own__norm__distr__test_8c.html#a557f81ea2791d07f6341dc44b0f169dd',1,'multipath_algo_own_norm_distr_test(void): multipath_algo_own_norm_distr_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_8.html b/doc/doxygen/html/search/functions_8.html new file mode 100644 index 0000000000000000000000000000000000000000..75fc0bea7be8157128b16060deca6ef6f4987cc1 --- /dev/null +++ b/doc/doxygen/html/search/functions_8.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_8.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_8.js b/doc/doxygen/html/search/functions_8.js new file mode 100644 index 0000000000000000000000000000000000000000..66570ec24ce6b3e7a6bb2d42a4dc21b5701b5e3f --- /dev/null +++ b/doc/doxygen/html/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['newton_5fraphson_544',['newton_raphson',['../newton__raphson_8h.html#ac6837f695990867bd72cf23ee93961cc',1,'newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): newton_raphson.c'],['../newton__raphson_8c.html#ac6837f695990867bd72cf23ee93961cc',1,'newton_raphson(uint8_t f_length, uint8_t n, vector_t x0_arr[], double eps, uint8_t max_it_num, vector_t est_x_arr[], void(*get_non_lin_sys)(vector_t x_arr[], vector_t f_vec[]), void(*get_jacobian)(vector_t x_arr[], matrix_t J[][n])): newton_raphson.c']]] +]; diff --git a/doc/doxygen/html/search/functions_9.html b/doc/doxygen/html/search/functions_9.html new file mode 100644 index 0000000000000000000000000000000000000000..7541c9e3e689bfa58b79bab29ae0d1bbed75d875 --- /dev/null +++ b/doc/doxygen/html/search/functions_9.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_9.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_9.js b/doc/doxygen/html/search/functions_9.js new file mode 100644 index 0000000000000000000000000000000000000000..b8410013689f911b18786d3a69bcbb1a1159466e --- /dev/null +++ b/doc/doxygen/html/search/functions_9.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['opt_5flevenberg_5fmarquardt_545',['opt_levenberg_marquardt',['../levenberg__marquardt_8h.html#a2a72b2b6be15a9998b61a9c0097e3d5f',1,'opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): levenberg_marquardt.c'],['../levenberg__marquardt_8c.html#a2a72b2b6be15a9998b61a9c0097e3d5f',1,'opt_levenberg_marquardt(uint8_t f_length, uint8_t n, vector_t x0_vec[n], vector_t data_vec[f_length], matrix_t eps, matrix_t tau, matrix_t beta0, matrix_t beta1, uint8_t max_iter_num, vector_t est_x_vec[n], void(*get_f_error)(vector_t x0_vec[], vector_t data_vec[], vector_t f_vec[]), void(*get_jacobian)(vector_t x0_vec[], matrix_t J[][n])): levenberg_marquardt.c']]], + ['opt_5flevenberg_5fmarquardt_5fcorrection_546',['opt_levenberg_marquardt_correction',['../levenberg__marquardt_8c.html#a741182c4bc201af44ac010bc4474b826',1,'levenberg_marquardt.c']]], + ['opt_5flevenberg_5fmarquardt_5fget_5fmu0_547',['opt_levenberg_marquardt_get_mu0',['../levenberg__marquardt_8h.html#a46fb5a9d6d185ff7f98c9cf34b56e34f',1,'opt_levenberg_marquardt_get_mu0(uint8_t n, matrix_t tau, matrix_t JTJ[][n]): levenberg_marquardt.c'],['../levenberg__marquardt_8c.html#a46fb5a9d6d185ff7f98c9cf34b56e34f',1,'opt_levenberg_marquardt_get_mu0(uint8_t n, matrix_t tau, matrix_t JTJ[][n]): levenberg_marquardt.c']]], + ['optimization_5fexponential_5fdata_5ftest_548',['optimization_exponential_data_test',['../optimization__test_8h.html#a5f1f1ed377535a6d4c5758c38174fcb9',1,'optimization_exponential_data_test(void): optimization_test.c'],['../optimization__test_8c.html#a5f1f1ed377535a6d4c5758c38174fcb9',1,'optimization_exponential_data_test(void): optimization_test.c']]], + ['optimization_5fget_5fexp_5ff_549',['optimization_get_exp_f',['../optimization__test_8c.html#ac11e842f01767e97924c100df684476d',1,'optimization_test.c']]], + ['optimization_5fget_5fexp_5fjacobian_550',['optimization_get_exp_Jacobian',['../optimization__test_8c.html#a98fdeac6ec9a38cb63f48e7c0f0085f0',1,'optimization_test.c']]], + ['optimization_5fget_5ff_5ferror_551',['optimization_get_f_error',['../optimization__test_8c.html#a610651298b8018db96cf21ee31740d3b',1,'optimization_test.c']]], + ['optimization_5fget_5fj_552',['optimization_get_J',['../optimization__test_8c.html#ac7361316d224b72baa4a681297d9f51c',1,'optimization_test.c']]], + ['optimization_5fget_5fsin_5ff_553',['optimization_get_sin_f',['../optimization__test_8c.html#a1daefb42bf903899e7e1d5237ba62c0b',1,'optimization_test.c']]], + ['optimization_5fget_5fsin_5fjacobian_554',['optimization_get_sin_Jacobian',['../optimization__test_8c.html#acb161b62c37921a9edd0cb7aeb76342a',1,'optimization_test.c']]], + ['optimization_5fsinusoidal_5fdata_5ftest_555',['optimization_sinusoidal_data_test',['../optimization__test_8h.html#a5f89a9747d6a7bec1ad0a80ba31647b9',1,'optimization_sinusoidal_data_test(void): optimization_test.c'],['../optimization__test_8c.html#a5f89a9747d6a7bec1ad0a80ba31647b9',1,'optimization_sinusoidal_data_test(void): optimization_test.c']]], + ['optimization_5ftest_556',['optimization_test',['../optimization__test_8h.html#a1062ae4598fabcf957ec0b855737db20',1,'optimization_test(void): optimization_test.c'],['../optimization__test_8c.html#a1062ae4598fabcf957ec0b855737db20',1,'optimization_test(void): optimization_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_a.html b/doc/doxygen/html/search/functions_a.html new file mode 100644 index 0000000000000000000000000000000000000000..5a5be6300abb8a46e9d75fd8851097547ed3fe46 --- /dev/null +++ b/doc/doxygen/html/search/functions_a.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_a.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_a.js b/doc/doxygen/html/search/functions_a.js new file mode 100644 index 0000000000000000000000000000000000000000..df07fc83e5b2ee87663364038b3a3628af5758aa --- /dev/null +++ b/doc/doxygen/html/search/functions_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pos_5falgos_5fcommon_5ftest_557',['pos_algos_common_test',['../pos__algos__common__test_8h.html#ad7c3809ba4d66f929854a4127784be8c',1,'pos_algos_common_test(void): pos_algos_common_test.c'],['../pos__algos__common__test_8c.html#ad7c3809ba4d66f929854a4127784be8c',1,'pos_algos_common_test(void): pos_algos_common_test.c']]], + ['position_5foptimization_5ftest_558',['position_optimization_test',['../position__optimization__test_8h.html#adf2ebfc668717eeac312234ac2b24166',1,'position_optimization_test(void): position_optimization_test.c'],['../position__optimization__test_8c.html#adf2ebfc668717eeac312234ac2b24166',1,'position_optimization_test(void): position_optimization_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_b.html b/doc/doxygen/html/search/functions_b.html new file mode 100644 index 0000000000000000000000000000000000000000..fc2d5aa4e7aabafb5e8ee43e0417d55fb43f622b --- /dev/null +++ b/doc/doxygen/html/search/functions_b.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_b.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_b.js b/doc/doxygen/html/search/functions_b.js new file mode 100644 index 0000000000000000000000000000000000000000..2b83a2297425742483c10b3c56b54919e5c72564 --- /dev/null +++ b/doc/doxygen/html/search/functions_b.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['qr_5fcommon_5fbackward_5fsubst_559',['qr_common_backward_subst',['../qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112',1,'qr_common_backward_subst(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t b[m], matrix_t x_sol[m]): qr_common.c'],['../qr__common_8c.html#adad26253c0e08a0d9fe2dfe0f6d64112',1,'qr_common_backward_subst(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t b[m], matrix_t x_sol[m]): qr_common.c']]], + ['qr_5fcommon_5fget_5freduced_5fqr_560',['qr_common_get_reduced_QR',['../qr__common_8h.html#a3144f99da14a69ec80bf9ded23714612',1,'qr_common_get_reduced_QR(uint8_t m, uint8_t n, matrix_t Q[m][m], matrix_t R[m][n], matrix_t red_Q[m][n], matrix_t red_R[n][n]): qr_common.c'],['../qr__common_8c.html#a47e88b1e236d3637717ea144811cdc1b',1,'qr_common_get_reduced_QR(uint8_t m, uint8_t n, matrix_t Q[m][m], matrix_t R[m][n], matrix_t reduc_Q[m][n], matrix_t reduc_R[n][n]): qr_common.c']]], + ['qr_5fget_5fpinv_561',['qr_get_pinv',['../qr__pseudo__inverse_8h.html#a9fb1ebdfe21c5a66cd322f00bf886d8d',1,'qr_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m], enum QR_ALGORITHM algo): qr_pseudo_inverse.c'],['../qr__pseudo__inverse_8c.html#a9fb1ebdfe21c5a66cd322f00bf886d8d',1,'qr_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m], enum QR_ALGORITHM algo): qr_pseudo_inverse.c']]], + ['qr_5fgivens_5fdecomp_562',['qr_givens_decomp',['../qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc',1,'qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_givens.c'],['../qr__givens_8c.html#a07adca97c58afc057a5cff738f6473cc',1,'qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_givens.c']]], + ['qr_5fgivens_5fget_5fparams_563',['qr_givens_get_params',['../qr__givens_8h.html#a53f748fbc6f8a129deb6a048d423d644',1,'qr_givens_get_params(matrix_t xjj, matrix_t xij, matrix_t c_s_t_r_vec[]): qr_givens.c'],['../qr__givens_8c.html#a53f748fbc6f8a129deb6a048d423d644',1,'qr_givens_get_params(matrix_t xjj, matrix_t xij, matrix_t c_s_t_r_vec[]): qr_givens.c']]], + ['qr_5fhouseholder_5fdecomp_564',['qr_householder_decomp',['../qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f',1,'qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_householder.c'],['../qr__householder_8c.html#a926e8bce91b658f64837d5c93b0bc74f',1,'qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced): qr_householder.c']]], + ['qr_5fpinv_5ftest_565',['qr_pinv_test',['../qr__pinv__test_8h.html#a292d2351f35310e579dd0741ab4857db',1,'qr_pinv_test(void): qr_pinv_test.c'],['../qr__pinv__test_8c.html#a292d2351f35310e579dd0741ab4857db',1,'qr_pinv_test(void): qr_pinv_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_c.html b/doc/doxygen/html/search/functions_c.html new file mode 100644 index 0000000000000000000000000000000000000000..a1a1437814804066290c820b833b635b6a405466 --- /dev/null +++ b/doc/doxygen/html/search/functions_c.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_c.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_c.js b/doc/doxygen/html/search/functions_c.js new file mode 100644 index 0000000000000000000000000000000000000000..0b97cf1ab70bf4226dfbd312f0f9a47c43d1b2a4 --- /dev/null +++ b/doc/doxygen/html/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['recog_5fmitigate_5fmultipath_566',['recog_mitigate_multipath',['../multipath__dist__detection__mitigation_8h.html#a2840a12d90b5b26b59d50f449f754fbd',1,'recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_Matrix[m][3], matrix_t r_noised_vec[m], uint8_t anchors_optimal[k], matrix_t start_optimal[3]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a8cce1ff9263404ca1e58d67910f38d47',1,'recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_matrix[m][3], matrix_t noised_r_vec[m], uint8_t anchors_optimal_combi[k], matrix_t start_optimal_pos[3]): multipath_dist_detection_mitigation.c']]] +]; diff --git a/doc/doxygen/html/search/functions_d.html b/doc/doxygen/html/search/functions_d.html new file mode 100644 index 0000000000000000000000000000000000000000..4375535f35dcb342b0fea0f7a83a8f810ed6f869 --- /dev/null +++ b/doc/doxygen/html/search/functions_d.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_d.js b/doc/doxygen/html/search/functions_d.js new file mode 100644 index 0000000000000000000000000000000000000000..b04cb91c52e471e4847cbb3675910247a8065afc --- /dev/null +++ b/doc/doxygen/html/search/functions_d.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['shell_5fsort_567',['shell_sort',['../shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6',1,'shell_sort(vector_t *arr, uint8_t length): shell_sort.c'],['../shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6',1,'shell_sort(vector_t *arr, uint8_t length): shell_sort.c']]], + ['sim_5fuwb_5fdist_568',['sim_UWB_dist',['../multipath__dist__detection__mitigation_8h.html#a2776d1c18727f8feb5f0a83a6963e957',1,'sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[]): multipath_dist_detection_mitigation.c'],['../multipath__dist__detection__mitigation_8c.html#a2776d1c18727f8feb5f0a83a6963e957',1,'sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[]): multipath_dist_detection_mitigation.c']]], + ['solve_569',['solve',['../solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1',1,'solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo): solve.c'],['../solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1',1,'solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo): solve.c']]], + ['solve_5fbig_5fmatrix_5ftest_570',['solve_big_matrix_test',['../solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371',1,'solve_big_matrix_test(void): solve_test.c'],['../solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371',1,'solve_big_matrix_test(void): solve_test.c']]], + ['solve_5fgivens_571',['solve_givens',['../solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88',1,'solve_givens(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c'],['../solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88',1,'solve_givens(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c']]], + ['solve_5fhouseholder_572',['solve_householder',['../solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd',1,'solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c'],['../solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd',1,'solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c']]], + ['solve_5flu_5fdecomp_573',['solve_lu_decomp',['../solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634',1,'solve_lu_decomp(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c'],['../solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634',1,'solve_lu_decomp(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n]): solve.c']]], + ['solve_5ftest_574',['solve_test',['../solve__test_8h.html#a468b4492daa139d24a18624526001220',1,'solve_test(void): solve_test.c'],['../solve__test_8c.html#a468b4492daa139d24a18624526001220',1,'solve_test(void): solve_test.c']]], + ['svd_575',['svd',['../svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e',1,'svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[]): svd.c'],['../svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e',1,'svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[]): svd.c']]], + ['svd_5fcompute_5fprint_5fu_5fs_5fv_5fs_576',['svd_compute_print_U_S_V_s',['../svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595',1,'svd_compute_print_U_S_V_s(uint8_t m, uint8_t n, matrix_t matrix_arr[m][n], uint8_t i): svd.c'],['../svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595',1,'svd_compute_print_U_S_V_s(uint8_t m, uint8_t n, matrix_t matrix_arr[m][n], uint8_t i): svd.c']]], + ['svd_5fget_5freciproc_5fsingular_5fvalues_577',['svd_get_reciproc_singular_values',['../svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb',1,'svd_get_reciproc_singular_values(uint8_t m, uint8_t n, uint8_t length, matrix_t singl_values_arr[], matrix_t recip_singl_values_arr[]): svd.c'],['../svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb',1,'svd_get_reciproc_singular_values(uint8_t m, uint8_t n, uint8_t length, matrix_t singl_values_arr[], matrix_t recip_singl_values_arr[]): svd.c']]], + ['svd_5fget_5fs_5fdim_578',['svd_get_S_dim',['../svd_8h.html#aeb7ac3eac076a0f52c729849599808a6',1,'svd_get_S_dim(uint8_t m, uint8_t n, matrix_dim_t *s_dim): svd.c'],['../svd_8c.html#aeb7ac3eac076a0f52c729849599808a6',1,'svd_get_S_dim(uint8_t m, uint8_t n, matrix_dim_t *s_dim): svd.c']]], + ['svd_5fget_5fsingle_5fvalues_5fnum_579',['svd_get_single_values_num',['../svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e',1,'svd_get_single_values_num(uint8_t m, uint8_t n): svd.c'],['../svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e',1,'svd_get_single_values_num(uint8_t m, uint8_t n): svd.c']]], + ['svd_5fget_5fu_5fdim_580',['svd_get_U_dim',['../svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8',1,'svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim): svd.c'],['../svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8',1,'svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim): svd.c']]], + ['svd_5fget_5fv_5fdim_581',['svd_get_V_dim',['../svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07',1,'svd_get_V_dim(uint8_t m, uint8_t n, matrix_dim_t *v_dim): svd.c'],['../svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07',1,'svd_get_V_dim(uint8_t m, uint8_t n, matrix_dim_t *v_dim): svd.c']]], + ['svd_5ftest_582',['svd_test',['../svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077',1,'svd_test(void): svd_test.c'],['../svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077',1,'svd_test(void): svd_test.c']]] +]; diff --git a/doc/doxygen/html/search/functions_e.html b/doc/doxygen/html/search/functions_e.html new file mode 100644 index 0000000000000000000000000000000000000000..0f2054469ca7d3d85942f2a9cce954ac4482decf --- /dev/null +++ b/doc/doxygen/html/search/functions_e.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_e.js b/doc/doxygen/html/search/functions_e.js new file mode 100644 index 0000000000000000000000000000000000000000..3048c8f292961c8c7b76c25810d53435acc98e8d --- /dev/null +++ b/doc/doxygen/html/search/functions_e.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['triangular_5fmatrices_5ftest_583',['triangular_matrices_test',['../matrix__test_8h.html#af3bd1663337eb8dbe0fbcb49b517621f',1,'triangular_matrices_test(void): matrix_test.c'],['../matrix__test_8c.html#af3bd1663337eb8dbe0fbcb49b517621f',1,'triangular_matrices_test(void): matrix_test.c']]], + ['trilateration1_584',['trilateration1',['../trilateration_8h.html#a95fc45efcb10019be21704539eeedefb',1,'trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c'],['../trilateration_8c.html#a95fc45efcb10019be21704539eeedefb',1,'trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c']]], + ['trilateration2_585',['trilateration2',['../trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea',1,'trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c'],['../trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea',1,'trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c']]], + ['trilateration_5fget_5fa_5fmatrix_586',['trilateration_get_A_matrix',['../trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832',1,'trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4]): trilateration.c'],['../trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832',1,'trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4]): trilateration.c']]], + ['trilateration_5fget_5fb_5fvector_587',['trilateration_get_b_vector',['../trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082',1,'trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[], matrix_t anchor_pos_matrix[anchor_num][3], matrix_t b_vec[]): trilateration.c'],['../trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082',1,'trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[], matrix_t anchor_pos_matrix[anchor_num][3], matrix_t b_vec[]): trilateration.c']]], + ['trilateration_5fget_5fparticular_5fsolution_588',['trilateration_get_particular_solution',['../trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358',1,'trilateration_get_particular_solution(uint8_t m, uint8_t n, matrix_t anchor_pos_mat[m][n], matrix_t dist_arr[], matrix_t Xp[]): trilateration.c'],['../trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358',1,'trilateration_get_particular_solution(uint8_t m, uint8_t n, matrix_t anchor_pos_mat[m][n], matrix_t dist_arr[], matrix_t Xp[]): trilateration.c']]], + ['trilateration_5fget_5fquadratic_5fequation_5fsolution_589',['trilateration_get_quadratic_equation_solution',['../trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe',1,'trilateration_get_quadratic_equation_solution(matrix_t particular_solu_arr[], matrix_t homogeneous_solution_arr[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c'],['../trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e',1,'trilateration_get_quadratic_equation_solution(matrix_t Xp[], matrix_t Xh[], matrix_t solution_x1[], matrix_t solution_x2[]): trilateration.c']]], + ['trilateration_5fget_5frank_5fand_5fhomogeneous_5fsolution_590',['trilateration_get_rank_and_homogeneous_solution',['../trilateration_8h.html#ab5f06e68df75b4708d722c268932578c',1,'trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t Xh[]): trilateration.c'],['../trilateration_8c.html#ab5f06e68df75b4708d722c268932578c',1,'trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t Xh[]): trilateration.c']]], + ['trilateration_5fpreprocessed_5fget_5fparticular_5fsolution_591',['trilateration_preprocessed_get_particular_solution',['../trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758',1,'trilateration_preprocessed_get_particular_solution(matrix_t pseudo_inv_matrix[4][3], matrix_t b_arr[], matrix_t particular_solu_arr[]): trilateration.c'],['../trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758',1,'trilateration_preprocessed_get_particular_solution(matrix_t pseudo_inv_matrix[4][3], matrix_t b_arr[], matrix_t particular_solu_arr[]): trilateration.c']]], + ['trilateration_5fsolve_5flinear_5fequation_592',['trilateration_solve_linear_equation',['../trilateration_8h.html#a4270371ead754327c478d19d57bfafba',1,'trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num, matrix_t pseudo_inv_matrix[line_num][col_num], matrix_t b_vec[], matrix_t sol_vec[]): trilateration.c'],['../trilateration_8c.html#a4270371ead754327c478d19d57bfafba',1,'trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num, matrix_t pseudo_inv_matrix[line_num][col_num], matrix_t b_vec[], matrix_t sol_vec[]): trilateration.c']]] +]; diff --git a/doc/doxygen/html/search/functions_f.html b/doc/doxygen/html/search/functions_f.html new file mode 100644 index 0000000000000000000000000000000000000000..0dc9f86c77a0faddaff753ba3a44d0d5ba631c9f --- /dev/null +++ b/doc/doxygen/html/search/functions_f.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_f.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/functions_f.js b/doc/doxygen/html/search/functions_f.js new file mode 100644 index 0000000000000000000000000000000000000000..b28f1916e39f571031c063ff38168fcaf9cb137d --- /dev/null +++ b/doc/doxygen/html/search/functions_f.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['utils_5fget_5fmedian_593',['utils_get_median',['../utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee',1,'utils_get_median(vector_t arr[], uint8_t length): utils.c'],['../utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee',1,'utils_get_median(vector_t arr[], uint8_t length): utils.c']]], + ['utils_5fget_5fsave_5fsquare_5froot_594',['utils_get_save_square_root',['../utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8',1,'utils_get_save_square_root(double x, double y): utils.c'],['../utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8',1,'utils_get_save_square_root(double x, double y): utils.c']]], + ['utils_5fmax_595',['utils_max',['../utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5',1,'utils_max(double a, double b): utils.c'],['../utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5',1,'utils_max(double a, double b): utils.c']]], + ['utils_5fmean_596',['utils_mean',['../utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6',1,'utils_mean(uint8_t arr_size, vector_t in_arr[]): utils.c'],['../utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6',1,'utils_mean(uint8_t arr_size, vector_t in_arr[]): utils.c']]], + ['utils_5fmin_597',['utils_min',['../utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d',1,'utils_min(double a, double b): utils.c'],['../utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d',1,'utils_min(double a, double b): utils.c']]], + ['utils_5fmoving_5faverage_598',['utils_moving_average',['../utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1',1,'utils_moving_average(uint8_t arr_size, vector_t in_arr[], uint8_t window_size, vector_t out_arr[]): utils.c'],['../utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1',1,'utils_moving_average(uint8_t arr_size, vector_t in_arr[], uint8_t window_size, vector_t out_arr[]): utils.c']]], + ['utils_5fprintf_599',['utils_printf',['../utils_8h.html#a335d8d6c4b945638261228cd116cccd6',1,'utils_printf(char *format_str,...): utils.c'],['../utils_8c.html#a335d8d6c4b945638261228cd116cccd6',1,'utils_printf(char *format_str,...): utils.c']]], + ['utils_5fsind_600',['utils_sind',['../utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf',1,'utils_sind(double deg_angle): utils.c'],['../utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf',1,'utils_sind(double deg_angle): utils.c']]], + ['utils_5fswap_601',['utils_swap',['../utils_8h.html#ad21f654c48115ba2419ca98644a44ae9',1,'utils_swap(uint8_t *a, uint8_t *b): utils.c'],['../utils_8c.html#ad21f654c48115ba2419ca98644a44ae9',1,'utils_swap(uint8_t *a, uint8_t *b): utils.c']]], + ['utils_5ftest_602',['utils_test',['../utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7',1,'utils_test(void): utils_test.c'],['../utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7',1,'utils_test(void): utils_test.c']]], + ['utils_5fto_5fradian_603',['utils_to_radian',['../utils_8h.html#a689d2d3db40d341609423404abc5a23a',1,'utils_to_radian(double deg_angle): utils.c'],['../utils_8c.html#a689d2d3db40d341609423404abc5a23a',1,'utils_to_radian(double deg_angle): utils.c']]], + ['utils_5fu8_5fmax_604',['utils_u8_max',['../utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5',1,'utils_u8_max(uint8_t a, uint8_t b): utils.c'],['../utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5',1,'utils_u8_max(uint8_t a, uint8_t b): utils.c']]], + ['utils_5fu8_5fmin_605',['utils_u8_min',['../utils_8h.html#a81dabd4841ab656130497f0600979850',1,'utils_u8_min(uint8_t a, uint8_t b): utils.c'],['../utils_8c.html#a81dabd4841ab656130497f0600979850',1,'utils_u8_min(uint8_t a, uint8_t b): utils.c']]] +]; diff --git a/doc/doxygen/html/search/groups_0.html b/doc/doxygen/html/search/groups_0.html new file mode 100644 index 0000000000000000000000000000000000000000..49412e82c95280c5a61458015a8efdcac055d064 --- /dev/null +++ b/doc/doxygen/html/search/groups_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_0.js b/doc/doxygen/html/search/groups_0.js new file mode 100644 index 0000000000000000000000000000000000000000..59da88e2ca4da8355e4089720778fe7afe01d4ee --- /dev/null +++ b/doc/doxygen/html/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['basic_5foperations_670',['BASIC_OPERATIONS',['../group__basic__operations.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_1.html b/doc/doxygen/html/search/groups_1.html new file mode 100644 index 0000000000000000000000000000000000000000..8e3ac96142885055ffdca478ab61dba073a72165 --- /dev/null +++ b/doc/doxygen/html/search/groups_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_1.js b/doc/doxygen/html/search/groups_1.js new file mode 100644 index 0000000000000000000000000000000000000000..94106a3a3de963d0454e9c8a8f9e1dd01812218b --- /dev/null +++ b/doc/doxygen/html/search/groups_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['distance_5fbased_671',['DISTANCE_BASED',['../group__distance__based.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_2.html b/doc/doxygen/html/search/groups_2.html new file mode 100644 index 0000000000000000000000000000000000000000..9c467003b174f2dfed19217b9438d60b45504ed2 --- /dev/null +++ b/doc/doxygen/html/search/groups_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_2.js b/doc/doxygen/html/search/groups_2.js new file mode 100644 index 0000000000000000000000000000000000000000..06e13c6bb9cf9d66cb56bfa53003043ee3924987 --- /dev/null +++ b/doc/doxygen/html/search/groups_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['examples_672',['EXAMPLES',['../group__examples.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_3.html b/doc/doxygen/html/search/groups_3.html new file mode 100644 index 0000000000000000000000000000000000000000..8eb56c9d54294b75fa6f0ac7d70e403115ef948f --- /dev/null +++ b/doc/doxygen/html/search/groups_3.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_3.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_3.js b/doc/doxygen/html/search/groups_3.js new file mode 100644 index 0000000000000000000000000000000000000000..4006d1aa81d25480925845a773d2c3e9eec05ddb --- /dev/null +++ b/doc/doxygen/html/search/groups_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['linear_5falgebra_673',['LINEAR_ALGEBRA',['../group__linear__algebra.html',1,'']]], + ['localization_674',['LOCALIZATION',['../group__localization.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_4.html b/doc/doxygen/html/search/groups_4.html new file mode 100644 index 0000000000000000000000000000000000000000..42b55679adfed3471a98d62688c67d13f862caba --- /dev/null +++ b/doc/doxygen/html/search/groups_4.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_4.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_4.js b/doc/doxygen/html/search/groups_4.js new file mode 100644 index 0000000000000000000000000000000000000000..5d2e0add4011105f563bf6a4503f3854d8881e4b --- /dev/null +++ b/doc/doxygen/html/search/groups_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['magnetic_5fbased_675',['MAGNETIC_BASED',['../group__magnetic__based.html',1,'']]], + ['matrix_5fdecompositions_676',['MATRIX_DECOMPOSITIONS',['../group__matrix__decompositions.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_5.html b/doc/doxygen/html/search/groups_5.html new file mode 100644 index 0000000000000000000000000000000000000000..8d01ff108f2f1991c0e4bb25a320f56c83e7d0c8 --- /dev/null +++ b/doc/doxygen/html/search/groups_5.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_5.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_5.js b/doc/doxygen/html/search/groups_5.js new file mode 100644 index 0000000000000000000000000000000000000000..33b02429a51678aa18624c7ec08da849b46191f7 --- /dev/null +++ b/doc/doxygen/html/search/groups_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['non_5flinear_5falgebra_677',['NON_LINEAR_ALGEBRA',['../group__non__linear__algebra.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_6.html b/doc/doxygen/html/search/groups_6.html new file mode 100644 index 0000000000000000000000000000000000000000..4989cbcb1d51f2a556c5223db31dd15f70486835 --- /dev/null +++ b/doc/doxygen/html/search/groups_6.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_6.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_6.js b/doc/doxygen/html/search/groups_6.js new file mode 100644 index 0000000000000000000000000000000000000000..918d8e7a01ca418d4592d3682fb72376449e6231 --- /dev/null +++ b/doc/doxygen/html/search/groups_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['optimization_678',['OPTIMIZATION',['../group__optimization.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_7.html b/doc/doxygen/html/search/groups_7.html new file mode 100644 index 0000000000000000000000000000000000000000..c51bb3d7205e2eb8ae16951a225e564bcd4d6efb --- /dev/null +++ b/doc/doxygen/html/search/groups_7.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_7.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_7.js b/doc/doxygen/html/search/groups_7.js new file mode 100644 index 0000000000000000000000000000000000000000..cfdfa7e37e4555decf8a7a3f9be146660eadb159 --- /dev/null +++ b/doc/doxygen/html/search/groups_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['pos_5falgos_5fcommon_679',['POS_ALGOS_COMMON',['../group__pos__algos__common.html',1,'']]], + ['position_5falgos_680',['POSITION_ALGOS',['../group__position__algos.html',1,'']]], + ['position_5foptimization_681',['POSITION_OPTIMIZATION',['../group__position__optimization.html',1,'']]], + ['pseudo_5finverse_682',['PSEUDO_INVERSE',['../group__pseudo__inverse.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_8.html b/doc/doxygen/html/search/groups_8.html new file mode 100644 index 0000000000000000000000000000000000000000..a533f144c3944a4fb48175236b6bf8e65d62675b --- /dev/null +++ b/doc/doxygen/html/search/groups_8.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_8.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_8.js b/doc/doxygen/html/search/groups_8.js new file mode 100644 index 0000000000000000000000000000000000000000..00fd373ae38c420488542f7e09355b11f2be3508 --- /dev/null +++ b/doc/doxygen/html/search/groups_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['solve_5flinear_5fequations_683',['SOLVE_LINEAR_EQUATIONS',['../group__solve__linear__equations.html',1,'']]], + ['solve_5fnon_5flinear_5fequations_684',['SOLVE_NON_LINEAR_EQUATIONS',['../group__solve__non__linear__equations.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/groups_9.html b/doc/doxygen/html/search/groups_9.html new file mode 100644 index 0000000000000000000000000000000000000000..464b748082cd3e97cf802da9723cf542b77d517c --- /dev/null +++ b/doc/doxygen/html/search/groups_9.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="groups_9.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/groups_9.js b/doc/doxygen/html/search/groups_9.js new file mode 100644 index 0000000000000000000000000000000000000000..31793a2db341a2500f50c6f094643f959a15bc57 --- /dev/null +++ b/doc/doxygen/html/search/groups_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['utilities_685',['UTILITIES',['../group__utilities.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/mag_sel.png b/doc/doxygen/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..39c0ed52a25dd9d080ee0d42ae6c6042bdfa04d7 Binary files /dev/null and b/doc/doxygen/html/search/mag_sel.png differ diff --git a/doc/doxygen/html/search/nomatches.html b/doc/doxygen/html/search/nomatches.html new file mode 100644 index 0000000000000000000000000000000000000000..4377320895b9a5b98e140ebf2f76ec09158d1156 --- /dev/null +++ b/doc/doxygen/html/search/nomatches.html @@ -0,0 +1,12 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="NoMatches">No Matches</div> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/pages_0.html b/doc/doxygen/html/search/pages_0.html new file mode 100644 index 0000000000000000000000000000000000000000..32cbf49809b0cf3e1badc0a12c5a321752458982 --- /dev/null +++ b/doc/doxygen/html/search/pages_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="pages_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/pages_0.js b/doc/doxygen/html/search/pages_0.js new file mode 100644 index 0000000000000000000000000000000000000000..851b3ad55d720ed8d0aa687a2ee7b092d5374c3b --- /dev/null +++ b/doc/doxygen/html/search/pages_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['creating_20an_20application_686',['Creating an application',['../creating-an-application.html',1,'']]], + ['creating_20modules_687',['Creating modules',['../creating-modules.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/pages_1.html b/doc/doxygen/html/search/pages_1.html new file mode 100644 index 0000000000000000000000000000000000000000..86c9cd3a296922f96a010fe40dbbed466dae3ca3 --- /dev/null +++ b/doc/doxygen/html/search/pages_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="pages_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/pages_1.js b/doc/doxygen/html/search/pages_1.js new file mode 100644 index 0000000000000000000000000000000000000000..c09e8c46f507359f6df26ee5dc79baec45e8aeaa --- /dev/null +++ b/doc/doxygen/html/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['getting_20started_688',['Getting started',['../getting-started.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/pages_2.html b/doc/doxygen/html/search/pages_2.html new file mode 100644 index 0000000000000000000000000000000000000000..0c8adf594399ead1f6e31cce0a97431a5e8a1ee0 --- /dev/null +++ b/doc/doxygen/html/search/pages_2.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="pages_2.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/pages_2.js b/doc/doxygen/html/search/pages_2.js new file mode 100644 index 0000000000000000000000000000000000000000..3c5de3c0d739adb0d05d3a2681aa6356eb956efe --- /dev/null +++ b/doc/doxygen/html/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rcdmathlib_20documentation_689',['RcdMathLib Documentation',['../index.html',1,'']]] +]; diff --git a/doc/doxygen/html/search/search.css b/doc/doxygen/html/search/search.css new file mode 100644 index 0000000000000000000000000000000000000000..3cf9df94a419c3175edbf2ca1719a2deb7a497dd --- /dev/null +++ b/doc/doxygen/html/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + float: none; + margin-top: 8px; + right: 0px; + width: 170px; + height: 24px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:115px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:8px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/doc/doxygen/html/search/search.js b/doc/doxygen/html/search/search.js new file mode 100644 index 0000000000000000000000000000000000000000..a554ab9cb5265ccf73adf8a7d278827ff8b2fbdd --- /dev/null +++ b/doc/doxygen/html/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i<search.length;i++) + { + var c = search.charAt(i); + var cn = c.charCodeAt(0); + if (c.match(/[a-z0-9\u0080-\uFFFF]/)) + { + result+=c; + } + else if (cn<16) + { + result+="_0"+cn.toString(16); + } + else + { + result+="_"+cn.toString(16); + } + } + return result; +} + +function getXPos(item) +{ + var x = 0; + if (item.offsetWidth) + { + while (item && item!=document.body) + { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; +} + +function getYPos(item) +{ + var y = 0; + if (item.offsetWidth) + { + while (item && item!=document.body) + { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; +} + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, inFrame, label) +{ + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.insideFrame = inFrame; + this.searchLabel = label; + + // ----------- DOM Elements + + this.DOMSearchField = function() + { return document.getElementById("MSearchField"); } + + this.DOMSearchSelect = function() + { return document.getElementById("MSearchSelect"); } + + this.DOMSearchSelectWindow = function() + { return document.getElementById("MSearchSelectWindow"); } + + this.DOMPopupSearchResults = function() + { return document.getElementById("MSearchResults"); } + + this.DOMPopupSearchResultsWindow = function() + { return document.getElementById("MSearchResultsWindow"); } + + this.DOMSearchClose = function() + { return document.getElementById("MSearchClose"); } + + this.DOMSearchBox = function() + { return document.getElementById("MSearchBox"); } + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) + { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() + { + var searchSelectWindow = this.DOMSearchSelectWindow(); + var searchField = this.DOMSearchSelect(); + + if (this.insideFrame) + { + var left = getXPos(searchField); + var top = getYPos(searchField); + left += searchField.offsetWidth + 6; + top += searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + left -= searchSelectWindow.offsetWidth; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + } + else + { + var left = getXPos(searchField); + var top = getYPos(searchField); + top += searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + } + + // stop selection hide timer + if (this.hideTimeout) + { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() + { + this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()", + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) + { + if (this.keyTimeout) // kill running timer + { + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) + { + if (e.shiftKey==1) + { + this.OnSearchSelectShow(); + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + child.focus(); + return; + } + } + return; + } + else if (window.frames.MSearchResults.searchResults) + { + var elem = window.frames.MSearchResults.searchResults.NavNext(0); + if (elem) elem.focus(); + } + } + else if (e.keyCode==27) // Escape out of the search field + { + this.DOMSearchField().blur(); + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.lastSearchValue = ''; + this.Activate(false); + return; + } + + // strip whitespaces + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != this.lastSearchValue) // search value has changed + { + if (searchValue != "") // non-empty search + { + // set timer for search update + this.keyTimeout = setTimeout(this.name + '.Search()', + this.keyTimeoutLength); + } + else // empty search field + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.lastSearchValue = ''; + } + } + } + + this.SelectItemCount = function(id) + { + var count=0; + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + count++; + } + } + return count; + } + + this.SelectItemSet = function(id) + { + var i,j=0; + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + var node = child.firstChild; + if (j==id) + { + node.innerHTML='•'; + } + else + { + node.innerHTML=' '; + } + j++; + } + } + } + + // Called when an search filter selection is made. + // set item with index id as the active item + this.OnSelectItem = function(id) + { + this.searchIndex = id; + this.SelectItemSet(id); + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + if (searchValue!="" && this.searchActive) // something was found -> do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down + { + this.searchIndex++; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==38 && this.searchIndex>0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of <Search()>. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e<searchData.length; e++) + { + var id = searchData[e][0]; + var srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + var srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + var srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+e); + setKeyActions(srLink,'return searchResults.Nav(event,'+e+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = searchData[e][1][0]; + srEntry.appendChild(srLink); + if (searchData[e][1].length==2) // single result + { + srLink.setAttribute('href',searchData[e][1][1][0]); + if (searchData[e][1][1][1]) + { + srLink.setAttribute('target','_parent'); + } + var srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = searchData[e][1][1][2]; + srEntry.appendChild(srScope); + } + else // multiple results + { + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + var srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (var c=0; c<searchData[e][1].length-1; c++) + { + var srChild = document.createElement('a'); + srChild.setAttribute('id','Item'+e+'_c'+c); + setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')'); + setClassAttr(srChild,'SRScope'); + srChild.setAttribute('href',searchData[e][1][c+1][0]); + if (searchData[e][1][c+1][1]) + { + srChild.setAttribute('target','_parent'); + } + srChild.innerHTML = searchData[e][1][c+1][2]; + srChildren.appendChild(srChild); + } + srEntry.appendChild(srChildren); + } + srResult.appendChild(srEntry); + results.appendChild(srResult); + } +} + +function init_search() +{ + var results = document.getElementById("MSearchSelectWindow"); + for (var key in indexSectionLabels) + { + var link = document.createElement('a'); + link.setAttribute('class','SelectItem'); + link.setAttribute('onclick','searchBox.OnSelectItem('+key+')'); + link.href='javascript:void(0)'; + link.innerHTML='<span class="SelectionMark"> </span>'+indexSectionLabels[key]; + results.appendChild(link); + } + searchBox.OnSelectItem(0); +} +/* @license-end */ diff --git a/doc/doxygen/html/search/search_l.png b/doc/doxygen/html/search/search_l.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5f7daa41a4c79b4ae9bea5aa7bdfb94e14084b Binary files /dev/null and b/doc/doxygen/html/search/search_l.png differ diff --git a/doc/doxygen/html/search/search_m.png b/doc/doxygen/html/search/search_m.png new file mode 100644 index 0000000000000000000000000000000000000000..b429a16ba641960da1e52e5da85dc80fd82635c8 Binary files /dev/null and b/doc/doxygen/html/search/search_m.png differ diff --git a/doc/doxygen/html/search/search_r.png b/doc/doxygen/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 Binary files /dev/null and b/doc/doxygen/html/search/search_r.png differ diff --git a/doc/doxygen/html/search/searchdata.js b/doc/doxygen/html/search/searchdata.js new file mode 100644 index 0000000000000000000000000000000000000000..4e9857cf5e0bb028bfffa405244427cff4011feb --- /dev/null +++ b/doc/doxygen/html/search/searchdata.js @@ -0,0 +1,42 @@ +var indexSectionsWithContent = +{ + 0: "abcdefghiklmnopqrstuv", + 1: "m", + 2: "cdfghlmnopqstuv", + 3: "cdfghilmnopqrstuv", + 4: "cr", + 5: "anq", + 6: "dghmn", + 7: "acikmnprsv", + 8: "bdelmnopsu", + 9: "cgr" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "enums", + 6: "enumvalues", + 7: "defines", + 8: "groups", + 9: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Data Structures", + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Enumerations", + 6: "Enumerator", + 7: "Macros", + 8: "Modules", + 9: "Pages" +}; + diff --git a/doc/doxygen/html/search/variables_0.html b/doc/doxygen/html/search/variables_0.html new file mode 100644 index 0000000000000000000000000000000000000000..a2a3ae625671ac46bc9c0ea2858aa9947ee85c74 --- /dev/null +++ b/doc/doxygen/html/search/variables_0.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="variables_0.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/variables_0.js b/doc/doxygen/html/search/variables_0.js new file mode 100644 index 0000000000000000000000000000000000000000..719aa4e0583da6b60805b3077326e086f66081c3 --- /dev/null +++ b/doc/doxygen/html/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['col_5fnum_631',['col_num',['../structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab',1,'matrix_dim_t']]] +]; diff --git a/doc/doxygen/html/search/variables_1.html b/doc/doxygen/html/search/variables_1.html new file mode 100644 index 0000000000000000000000000000000000000000..b243c423774bbbedbc72f1eed817d35daf852e4e --- /dev/null +++ b/doc/doxygen/html/search/variables_1.html @@ -0,0 +1,30 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen 1.8.16"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="variables_1.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +createResults(); +/* @license-end */ +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +/* @license-end */ +--></script> +</div> +</body> +</html> diff --git a/doc/doxygen/html/search/variables_1.js b/doc/doxygen/html/search/variables_1.js new file mode 100644 index 0000000000000000000000000000000000000000..1535f5b1d440ad56fff0b1a7c4c3956e9945dc53 --- /dev/null +++ b/doc/doxygen/html/search/variables_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['row_5fnum_632',['row_num',['../structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721',1,'matrix_dim_t']]] +]; diff --git a/doc/doxygen/html/shell__sort_8c.html b/doc/doxygen/html/shell__sort_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..ae6e31df653fa0e9214dfb1906e0c065763e8c89 --- /dev/null +++ b/doc/doxygen/html/shell__sort_8c.html @@ -0,0 +1,214 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: shell_sort.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('shell__sort_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">shell_sort.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Shell sort algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="shell__sort_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a92bc0e3a993e78dfab795f5ccc3e227e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e">int_shell_sort</a> (int *array, int length)</td></tr> +<tr class="memdesc:a92bc0e3a993e78dfab795f5ccc3e227e"><td class="mdescLeft"> </td><td class="mdescRight">Sort a data set of integers by using the Shell sort algorithm. <a href="shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e">More...</a><br /></td></tr> +<tr class="separator:a92bc0e3a993e78dfab795f5ccc3e227e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a569649d96b2e8f453793ea166d3e96a6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> *arr, uint8_t length)</td></tr> +<tr class="memdesc:a569649d96b2e8f453793ea166d3e96a6"><td class="mdescLeft"> </td><td class="mdescRight">Sort a data set of type utils_t by using the Shell sort algorithm. <a href="shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6">More...</a><br /></td></tr> +<tr class="separator:a569649d96b2e8f453793ea166d3e96a6"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Shell sort algorithm. </p> +<p>The Shell sort algorithm is more convenient for devices with limited storage capacity.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="shell__sort_8c_source.html">shell_sort.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a92bc0e3a993e78dfab795f5ccc3e227e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a92bc0e3a993e78dfab795f5ccc3e227e">◆ </a></span>int_shell_sort()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void int_shell_sort </td> + <td>(</td> + <td class="paramtype">int * </td> + <td class="paramname"><em>array</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort a data set of integers by using the Shell sort algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">array[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the data set. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="shell__sort_8c_source.html#l00028">28</a> of file <a class="el" href="shell__sort_8c_source.html">shell_sort.c</a>.</p> + +</div> +</div> +<a id="a569649d96b2e8f453793ea166d3e96a6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a569649d96b2e8f453793ea166d3e96a6">◆ </a></span>shell_sort()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void shell_sort </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> * </td> + <td class="paramname"><em>arr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort a data set of type utils_t by using the Shell sort algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the data set. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="shell__sort_8c_source.html#l00049">49</a> of file <a class="el" href="shell__sort_8c_source.html">shell_sort.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, and <a class="el" href="utils_8c_source.html#l00152">utils_get_median()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="shell__sort_8c.html">shell_sort.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/shell__sort_8c.js b/doc/doxygen/html/shell__sort_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..9715433803010082ef33c065f54df86ec884a189 --- /dev/null +++ b/doc/doxygen/html/shell__sort_8c.js @@ -0,0 +1,5 @@ +var shell__sort_8c = +[ + [ "int_shell_sort", "shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e", null ], + [ "shell_sort", "shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/shell__sort_8c_source.html b/doc/doxygen/html/shell__sort_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..7d74e26c42fc0d475a6baa6e828de8daf1682301 --- /dev/null +++ b/doc/doxygen/html/shell__sort_8c_source.html @@ -0,0 +1,160 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: shell_sort.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('shell__sort_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">shell_sort.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="shell__sort_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/* Shell Sort Program */</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e"> 28</a></span> <span class="keywordtype">void</span> <a class="code" href="shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e">int_shell_sort</a>(<span class="keywordtype">int</span> *array, <span class="keywordtype">int</span> length)</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordtype">int</span> n = length;</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordtype">int</span> i, j, gap, temp;</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordflow">for</span> (gap = n / 2; gap > 0; gap /= 2) {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordflow">for</span> (i = gap; i < n; i++) {</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  temp = array[i];</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">for</span> (j = i; j >= gap; j -= gap) {</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">if</span> (temp < array[j - gap]) {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  array[j] = array[j - gap];</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  }</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  array[j] = temp;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6"> 49</a></span> <span class="keywordtype">void</span> <a class="code" href="shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> *arr, uint8_t length)</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  int32_t j, k;</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> temp;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">for</span> (int32_t i = length / 2; i > 0; i = i / 2) {</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">for</span> (j = i; j < length; j++) {</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  temp = arr[j];</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">for</span> (k = j - 1; k >= 0 && arr[k] > temp; k--) {</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  arr[k + 1] = arr[k];</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  arr[k + 1] = temp;</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="ashell__sort_8c_html_a569649d96b2e8f453793ea166d3e96a6"><div class="ttname"><a href="shell__sort_8c.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a></div><div class="ttdeci">void shell_sort(vector_t *arr, uint8_t length)</div><div class="ttdoc">Sort a data set of type utils_t by using the Shell sort algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="shell__sort_8c_source.html#l00049">shell_sort.c:49</a></div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="ashell__sort_8c_html_a92bc0e3a993e78dfab795f5ccc3e227e"><div class="ttname"><a href="shell__sort_8c.html#a92bc0e3a993e78dfab795f5ccc3e227e">int_shell_sort</a></div><div class="ttdeci">void int_shell_sort(int *array, int length)</div><div class="ttdoc">Sort a data set of integers by using the Shell sort algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="shell__sort_8c_source.html#l00028">shell_sort.c:28</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="shell__sort_8c.html">shell_sort.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/shell__sort_8h.html b/doc/doxygen/html/shell__sort_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..c327cefd773952079d15d5dad1ec949967b17264 --- /dev/null +++ b/doc/doxygen/html/shell__sort_8h.html @@ -0,0 +1,213 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: shell_sort.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('shell__sort_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">shell_sort.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__utilities.html">UTILITIES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the Shell sort algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdint.h></code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="shell__sort_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a92bc0e3a993e78dfab795f5ccc3e227e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e">int_shell_sort</a> (int *array, int length)</td></tr> +<tr class="memdesc:a92bc0e3a993e78dfab795f5ccc3e227e"><td class="mdescLeft"> </td><td class="mdescRight">Sort a data set of integers by using the Shell sort algorithm. <a href="shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e">More...</a><br /></td></tr> +<tr class="separator:a92bc0e3a993e78dfab795f5ccc3e227e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a569649d96b2e8f453793ea166d3e96a6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> *arr, uint8_t length)</td></tr> +<tr class="memdesc:a569649d96b2e8f453793ea166d3e96a6"><td class="mdescLeft"> </td><td class="mdescRight">Sort a data set of type utils_t by using the Shell sort algorithm. <a href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">More...</a><br /></td></tr> +<tr class="separator:a569649d96b2e8f453793ea166d3e96a6"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the Shell sort algorithm. </p> +<p>The Shell sort algorithm is more convenient for devices with limited storage capacity.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="shell__sort_8h_source.html">shell_sort.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a92bc0e3a993e78dfab795f5ccc3e227e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a92bc0e3a993e78dfab795f5ccc3e227e">◆ </a></span>int_shell_sort()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void int_shell_sort </td> + <td>(</td> + <td class="paramtype">int * </td> + <td class="paramname"><em>array</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort a data set of integers by using the Shell sort algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">array[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the data set. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="shell__sort_8c_source.html#l00028">28</a> of file <a class="el" href="shell__sort_8c_source.html">shell_sort.c</a>.</p> + +</div> +</div> +<a id="a569649d96b2e8f453793ea166d3e96a6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a569649d96b2e8f453793ea166d3e96a6">◆ </a></span>shell_sort()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void shell_sort </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> * </td> + <td class="paramname"><em>arr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort a data set of type utils_t by using the Shell sort algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the data set. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="shell__sort_8c_source.html#l00049">49</a> of file <a class="el" href="shell__sort_8c_source.html">shell_sort.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, and <a class="el" href="utils_8c_source.html#l00152">utils_get_median()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="shell__sort_8h.html">shell_sort.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/shell__sort_8h.js b/doc/doxygen/html/shell__sort_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..45df5d28e76b0e3a0e82a326c37c05c73570b37b --- /dev/null +++ b/doc/doxygen/html/shell__sort_8h.js @@ -0,0 +1,5 @@ +var shell__sort_8h = +[ + [ "int_shell_sort", "shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e", null ], + [ "shell_sort", "shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/shell__sort_8h_source.html b/doc/doxygen/html/shell__sort_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..2edb573095f37a754c16d665a966e71e94993f7b --- /dev/null +++ b/doc/doxygen/html/shell__sort_8h_source.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: shell_sort.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('shell__sort_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">shell_sort.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="shell__sort_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef SHELL_SORT_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define SHELL_SORT_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">void</span> <a class="code" href="shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e">int_shell_sort</a>(<span class="keywordtype">int</span> *array, <span class="keywordtype">int</span> length);</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">void</span> <a class="code" href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> *arr, uint8_t length);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif </span><span class="comment">/* SHELL_SORT_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="ashell__sort_8h_html_a569649d96b2e8f453793ea166d3e96a6"><div class="ttname"><a href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a></div><div class="ttdeci">void shell_sort(vector_t *arr, uint8_t length)</div><div class="ttdoc">Sort a data set of type utils_t by using the Shell sort algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="shell__sort_8c_source.html#l00049">shell_sort.c:49</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="ashell__sort_8h_html_a92bc0e3a993e78dfab795f5ccc3e227e"><div class="ttname"><a href="shell__sort_8h.html#a92bc0e3a993e78dfab795f5ccc3e227e">int_shell_sort</a></div><div class="ttdeci">void int_shell_sort(int *array, int length)</div><div class="ttdoc">Sort a data set of integers by using the Shell sort algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="shell__sort_8c_source.html#l00028">shell_sort.c:28</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="shell__sort_8h.html">shell_sort.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/soft_architecture_01_09_2019.svg b/doc/doxygen/html/soft_architecture_01_09_2019.svg new file mode 100644 index 0000000000000000000000000000000000000000..ff037a6bb0ba22fa2d0f451871709eba846c3184 --- /dev/null +++ b/doc/doxygen/html/soft_architecture_01_09_2019.svg @@ -0,0 +1,2003 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="svg2" + xml:space="preserve" + width="1186.1445" + height="418.25763" + viewBox="0 0 1186.1445 418.2576" + sodipodi:docname="soft_architecture_01_09_2019.svg" + inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6"><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath24"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path22" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath36"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path34" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path50" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath68"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path66" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath84"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path82" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath98"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path96" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath114"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path112" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath128"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path126" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath144"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path142" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath156"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path154" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath172"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path170" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath188"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path186" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath204"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path202" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath218"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path216" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath234"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path232" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath248"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path246" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath264"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path262" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath276"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path274" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath292"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path290" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath308"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path306" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath320"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path318" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath336"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path334" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath348"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path346" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath364"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path362" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath376"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path374" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath392"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path390" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath404"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path402" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath420"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path418" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath432"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path430" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath448"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path446" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath460"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path458" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath476"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path474" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath488"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path486" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath504"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path502" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath518"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path516" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath534"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path532" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath548"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path546" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath564"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path562" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath576"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path574" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath592"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path590" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath604"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path602" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath620"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path618" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath632"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path630" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath648"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path646" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath662"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path660" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath678"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path676" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath692"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path690" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath708"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path706" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath720"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path718" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath736"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path734" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath748"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path746" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath764"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path762" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath776"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path774" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath792"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path790" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath808"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path806" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath824"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path822" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath836"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path834" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath852"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path850" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath864"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path862" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath880"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path878" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath892"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path890" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath908"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path906" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath920"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path918" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath936"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path934" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath948"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path946" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath964"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path962" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath978"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path976" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath994"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path992" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1008"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1006" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1024"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1022" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1036"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1034" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1052"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1050" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1064"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1062" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1080"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1078" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1092"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1090" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1108"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1106" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1122"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1120" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1138"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1136" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1152"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1150" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1168"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1166" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1180"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1178" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1196"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1194" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1210"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1208" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1226"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1224" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1240"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1238" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1256"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1254" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1268"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1266" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1284"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1282" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1298"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1296" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1314"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1312" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1328"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1326" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1344"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1342" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1356"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1354" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1372"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1370" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1386"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1384" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1402"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1400" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1416"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1414" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1432"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1430" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1444"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1442" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1460"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1458" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1474"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1472" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1490"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1488" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1504"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1502" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1520"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1518" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1532"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1530" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1548"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1546" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1562"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1560" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1578"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1576" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1592"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1590" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1608"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1606" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1620"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1618" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1636"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1634" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1650"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1648" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1666"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1664" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1680"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1678" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1696"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1694" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1708"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1706" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1724"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1722" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1738"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1736" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1754"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1752" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1768"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1766" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1784"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1782" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1796"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1794" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1812"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1810" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1826"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1824" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1842"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1840" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1856"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1854" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1872"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1870" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1884"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1882" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1900"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1898" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1916"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1914" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1932"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1930" + inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1600" + inkscape:window-height="837" + id="namedview4" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.9" + inkscape:cx="302.25914" + inkscape:cy="209.21945" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="g10" /><g + id="g10" + inkscape:groupmode="layer" + inkscape:label="soft_architecture_01_09_2019" + transform="matrix(1.3333333,0,0,1.3333333,-7207.5942,-2541.5378)"><g + id="g12" /><g + id="g14" + transform="matrix(0.07602841,0,0,0.07602841,5405.6958,1906.1534)"><g + id="g16"><g + id="g18"><g + id="g20" + clip-path="url(#clipPath24)"><g + id="g26"><g + id="g28"><g + id="g30"><g + id="g32" + clip-path="url(#clipPath36)"><g + id="g38"><g + id="g40" + transform="scale(1,-1)"><path + d="m -540,1496.973 h 12365.859 v -5892.66 H -540 Z" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path42" + inkscape:connector-curvature="0" /></g></g></g></g></g></g></g></g></g><g + id="g44"><g + id="g46"><g + id="g48" + clip-path="url(#clipPath52)"><g + id="g54"><g + id="g56" + transform="scale(1,-1)"><path + d="M 3237.129,-4112.227 7545.871,-16.156 11693.18,-4112.227 Z" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path58" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g60"><g + id="g62"><g + id="g64" + clip-path="url(#clipPath68)"><g + id="g70"><g + id="g72" + transform="scale(1,-1)"><path + d="m 3683.109,-3688.246 h 7580.789" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path74" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g76"><g + id="g78"><g + id="g80" + clip-path="url(#clipPath84)"><g + id="g86"><path + d="m 5698.039,4036.637 h 480.422 v -272.582 l 8.5,8.5 v 272.582 l -8.5,-8.5 8.5,8.5 h -480.422 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path88" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g90"><g + id="g92"><g + id="g94" + clip-path="url(#clipPath98)"><g + id="g100"><g + id="g102" + transform="scale(1,-1)"><path + d="m 5698.039,-4036.637 h 480.422 v 272.582 l 8.5,-8.5 v -272.582 l -8.5,8.5 8.5,-8.5 h -480.422 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path104" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g106"><g + id="g108"><g + id="g110" + clip-path="url(#clipPath114)"><g + id="g116"><path + d="m 5698.039,3764.055 h 480.422 v 272.582 h -480.422 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path118" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g120"><g + id="g122"><g + id="g124" + clip-path="url(#clipPath128)"><g + id="g130"><g + id="g132" + transform="scale(1,-1)"><path + d="m 5698.039,-3764.055 h 480.422 v -272.582 h -480.422 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path134" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g136"><g + id="g138"><g + id="g140" + clip-path="url(#clipPath144)"><g + id="g146"><g + id="g148"><g + id="g150"><g + id="g152" + clip-path="url(#clipPath156)"><g + id="g158"><text + transform="translate(5755.9699,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text162"><tspan + x="0 128.37306 194.66245 240.52426 286.38611" + y="0" + sodipodi:role="line" + id="tspan160">Utils</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g164"><g + id="g166"><g + id="g168" + clip-path="url(#clipPath172)"><g + id="g174"><g + id="g176" + transform="scale(1,-1)"><path + d="M 5625.23,-1841.996 H 9394.551" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path178" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g180"><g + id="g182"><g + id="g184" + clip-path="url(#clipPath188)"><g + id="g190"><g + id="g192" + transform="scale(1,-1)"><path + d="M 6475.391,-1033.797 H 8576.238" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path194" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g196"><g + id="g198"><g + id="g200" + clip-path="url(#clipPath204)"><g + id="g206"><path + d="M 6940.34,941.895 H 8105.391 V 669.316 l 8.5,8.5 v 272.579 l -8.5,-8.5 8.5,8.5 H 6948.852 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path208" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g210"><g + id="g212"><g + id="g214" + clip-path="url(#clipPath218)"><g + id="g220"><g + id="g222" + transform="scale(1,-1)"><path + d="m 6940.34,-941.895 h 1165.051 v 272.579 l 8.5,-8.5 v -272.579 l -8.5,8.5 8.5,-8.5 H 6948.852 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path224" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g226"><g + id="g228"><g + id="g230" + clip-path="url(#clipPath234)"><g + id="g236"><path + d="M 6940.34,669.316 H 8105.379 V 941.894 H 6940.34 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path238" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g240"><g + id="g242"><g + id="g244" + clip-path="url(#clipPath248)"><g + id="g250"><g + id="g252" + transform="scale(1,-1)"><path + d="M 6940.34,-669.316 H 8105.379 V -941.894 H 6940.34 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path254" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g256"><g + id="g258"><g + id="g260" + clip-path="url(#clipPath264)"><g + id="g266"><g + id="g268"><g + id="g270"><g + id="g272" + clip-path="url(#clipPath276)"><g + id="g278"><text + transform="translate(7023.4698,865.90536)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text282"><tspan + x="0 115.75606 220.297 325.43875 371.30057 417.16241 501.67636 597.00488 663.89502 709.7569 815.29919 920.44092" + y="0" + sodipodi:role="line" + id="tspan280">Applications</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g284"><g + id="g286"><g + id="g288" + clip-path="url(#clipPath292)"><g + id="g294"><g + id="g296" + transform="scale(1,-1)"><path + d="M 3654.988,-3687.023 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path298" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g300"><g + id="g302"><g + id="g304" + clip-path="url(#clipPath308)"><g + id="g310"><g + id="g312"><g + id="g314"><g + id="g316" + clip-path="url(#clipPath320)"><g + id="g322"><text + transform="translate(3.300001,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text326"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 585.38922 630.65021 720.97198 820.50616 904.0188 970.90894 1076.4513 1146.1453 1196.0125 1241.2734 1337.2028 1442.3445 1547.4863 1591.9462 1687.8756 1733.7374 1827.8643 1927.3984 2032.5402 2102.2341 2197.3625 2243.2244 2327.7383 2372.9993 2478.5415 2583.6833 2683.2175 2752.9114 2848.8408 2915.731 2961.5928 3067.135 3171.676" + y="0" + sodipodi:role="line" + id="tspan324">Matrix, vector, and algebraic operations</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g328"><g + id="g330"><g + id="g332" + clip-path="url(#clipPath336)"><g + id="g338"><g + id="g340"><g + id="g342"><g + id="g344" + clip-path="url(#clipPath348)"><g + id="g350"><text + transform="translate(972.04998,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text354"><tspan + x="0 91.923927 197.46622 243.32805 333.64981 379.51166 484.05258 578.1795 623.44049 728.98279 790.06512 834.72534 994.54083 1099.6826 1145.5444 1212.4346 1258.2964 1348.6182 1444.5475 1513.2401 1559.1019 1655.0312 1760.173 1827.0632 1872.3242 1918.186 1963.447 2068.5889 2168.123 2264.0522 2333.7463 2379.0073 2474.9368 2580.0784 2684.6194 2729.8804 2835.0222 2940.5645" + y="0" + sodipodi:role="line" + id="tspan352">Solving of multivariant linear and non</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g356"><g + id="g358"><g + id="g360" + clip-path="url(#clipPath364)"><g + id="g366"><g + id="g368"><g + id="g370"><g + id="g372" + clip-path="url(#clipPath376)"><g + id="g378"><text + transform="translate(4020.2699,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text382"><tspan + x="0" + y="0" + id="tspan380">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g384"><g + id="g386"><g + id="g388" + clip-path="url(#clipPath392)"><g + id="g394"><g + id="g396"><g + id="g398"><g + id="g400" + clip-path="url(#clipPath404)"><g + id="g406"><text + transform="translate(4081.4999,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text410"><tspan + x="0 45.861832 91.723663 196.8654 295.59851 391.52786 461.2218" + y="0" + sodipodi:role="line" + id="tspan408">linear </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g412"><g + id="g414"><g + id="g416" + clip-path="url(#clipPath420)"><g + id="g422"><g + id="g424"><g + id="g426"><g + id="g428" + clip-path="url(#clipPath432)"><g + id="g434"><text + transform="translate(1401.18,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text438"><tspan + x="0 99.534187 204.67593 309.81769 405.74701 472.63721 517.69794 623.24023 728.38196 773.64301 851.94855 942.47064 1019.9751 1086.8652 1186.3994 1346.215 1424.5205 1469.7815 1530.4634 1614.5768 1711.3071 1803.2311 1881.5366 1926.7976 2063.3818 2108.6428" + y="0" + sodipodi:role="line" + id="tspan436">equation systems (LESs & N</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g440"><g + id="g442"><g + id="g444" + clip-path="url(#clipPath448)"><g + id="g450"><g + id="g452"><g + id="g454"><g + id="g456" + clip-path="url(#clipPath460)"><g + id="g462"><text + transform="translate(3640.5799,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text466"><tspan + x="0" + y="0" + id="tspan464">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g468"><g + id="g470"><g + id="g472" + clip-path="url(#clipPath476)"><g + id="g478"><g + id="g480"><g + id="g482"><g + id="g484" + clip-path="url(#clipPath488)"><g + id="g490"><text + transform="translate(3701.7999,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text494"><tspan + x="0 84.113403 181.84515 273.76907 352.07465" + y="0" + sodipodi:role="line" + id="tspan492">LESs)</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g496"><g + id="g498"><g + id="g500" + clip-path="url(#clipPath504)"><g + id="g506"><path + d="m 4987.281,2778.254 h 2588.078 v -272.578 l 8.512,8.5 v 272.578 l -8.512,-8.5 8.512,8.5 h -2588.09 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path508" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g510"><g + id="g512"><g + id="g514" + clip-path="url(#clipPath518)"><g + id="g520"><g + id="g522" + transform="scale(1,-1)"><path + d="m 4987.281,-2778.254 h 2588.078 v 272.578 l 8.512,-8.5 v -272.578 l -8.512,8.5 8.512,-8.5 h -2588.09 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path524" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g526"><g + id="g528"><g + id="g530" + clip-path="url(#clipPath534)"><g + id="g536"><path + d="m 4987.281,2505.676 h 2588.09 v 272.578 h -2588.09 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path538" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g540"><g + id="g542"><g + id="g544" + clip-path="url(#clipPath548)"><g + id="g550"><g + id="g552" + transform="scale(1,-1)"><path + d="m 4987.281,-2505.676 h 2588.09 v -272.578 h -2588.09 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path554" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g556"><g + id="g558"><g + id="g560" + clip-path="url(#clipPath564)"><g + id="g566"><g + id="g568"><g + id="g570"><g + id="g572" + clip-path="url(#clipPath576)"><g + id="g578"><text + transform="translate(4996.2999,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text582"><tspan + x="0 91.923927 197.46622 243.32805 333.64981 432.18265 477.44366 637.25916 742.40088 788.2627 834.12457 924.44629 1019.7748 1089.4688 1135.3306 1231.26 1336.4017 1403.2919 1448.5529 1532.6663 1629.5969 1721.5209 1799.8265 1845.0875 1981.6716 2026.9326" + y="0" + sodipodi:role="line" + id="tspan580">Solve mulivariant LESs & N</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g584"><g + id="g586"><g + id="g588" + clip-path="url(#clipPath592)"><g + id="g594"><g + id="g596"><g + id="g598"><g + id="g600" + clip-path="url(#clipPath604)"><g + id="g606"><text + transform="translate(7154.0498,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text610"><tspan + x="0" + y="0" + id="tspan608">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g612"><g + id="g614"><g + id="g616" + clip-path="url(#clipPath620)"><g + id="g622"><g + id="g624"><g + id="g626"><g + id="g628" + clip-path="url(#clipPath632)"><g + id="g634"><text + transform="translate(7215.2998,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text638"><tspan + x="0 84.113403 181.84515 273.76907" + y="0" + sodipodi:role="line" + id="tspan636">LESs</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g640"><g + id="g642"><g + id="g644" + clip-path="url(#clipPath648)"><g + id="g650"><path + d="m 6087.379,3148.934 h 2877.922 v -272.579 l 8.5,8.512 v 272.578 l -8.5,-8.511 8.5,8.511 H 6095.879 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path652" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g654"><g + id="g656"><g + id="g658" + clip-path="url(#clipPath662)"><g + id="g664"><g + id="g666" + transform="scale(1,-1)"><path + d="m 6087.379,-3148.934 h 2877.922 v 272.579 l 8.5,-8.512 v -272.578 l -8.5,8.511 8.5,-8.511 H 6095.879 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path668" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g670"><g + id="g672"><g + id="g674" + clip-path="url(#clipPath678)"><g + id="g680"><path + d="m 6087.379,2876.355 h 2877.922 v 272.578 H 6087.379 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path682" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g684"><g + id="g686"><g + id="g688" + clip-path="url(#clipPath692)"><g + id="g694"><g + id="g696" + transform="scale(1,-1)"><path + d="m 6087.379,-2876.355 h 2877.922 v -272.578 H 6087.379 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path698" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g700"><g + id="g702"><g + id="g704" + clip-path="url(#clipPath708)"><g + id="g710"><g + id="g712"><g + id="g714"><g + id="g716" + clip-path="url(#clipPath720)"><g + id="g722"><text + transform="translate(6901.4498,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text726"><tspan + x="0 103.33932 181.64488 281.17908 386.32083 490.86176" + y="0" + sodipodi:role="line" + id="tspan724">Pseudo</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g728"><g + id="g730"><g + id="g732" + clip-path="url(#clipPath736)"><g + id="g738"><g + id="g740"><g + id="g742"><g + id="g744" + clip-path="url(#clipPath748)"><g + id="g750"><text + transform="translate(7498.1698,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text754"><tspan + x="0" + y="0" + id="tspan752">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g756"><g + id="g758"><g + id="g760" + clip-path="url(#clipPath764)"><g + id="g766"><g + id="g768"><g + id="g770"><g + id="g772" + clip-path="url(#clipPath776)"><g + id="g778"><text + transform="translate(7559.3998,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text782"><tspan + x="0 50.267769 155.40952 245.73129 344.46439 414.15836 492.46393" + y="0" + sodipodi:role="line" + id="tspan780">Inverse</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g784"><g + id="g786"><g + id="g788" + clip-path="url(#clipPath792)"><g + id="g794"><g + id="g796" + transform="scale(1,-1)"><path + d="M 5625.23,-1841.996 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path798" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g800"><g + id="g802"><g + id="g804" + clip-path="url(#clipPath808)"><g + id="g810"><g + id="g812" + transform="scale(1,-1)"><path + d="M 6475.391,-1033.797 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path814" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g816"><g + id="g818"><g + id="g820" + clip-path="url(#clipPath824)"><g + id="g826"><g + id="g828"><g + id="g830"><g + id="g832" + clip-path="url(#clipPath836)"><g + id="g838"><text + transform="translate(1113.25,2084.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text842"><tspan + x="0 123.16605 222.70024 289.59042 389.1246 458.81857 618.63403 664.49585 768.43597 864.3653 931.25549 977.11731 1082.6597 1187.8014 1232.2614 1337.8036 1398.886 1444.147 1540.0763 1645.218 1690.479 1785.6073 1890.749 1995.8909 2065.5847 2170.5264 2257.2432 2303.105 2462.9204 2558.8499 2625.74 2725.2742 2769.9343 2830.6162 2908.9216 2975.812 3071.7412 3140.8345 3207.7246 3268.4065" + y="0" + sodipodi:role="line" + id="tspan840">Determination of an approximate (start) </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g844"><g + id="g846"><g + id="g848" + clip-path="url(#clipPath852)"><g + id="g854"><g + id="g856"><g + id="g858"><g + id="g860" + clip-path="url(#clipPath864)"><g + id="g866"><text + transform="translate(2420.1699,2324.8053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text870"><tspan + x="0 105.14175 210.68404 288.98959 334.85144 401.74161 447.60345 552.14441" + y="0" + sodipodi:role="line" + id="tspan868">position</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g872"><g + id="g874"><g + id="g876" + clip-path="url(#clipPath880)"><g + id="g882"><g + id="g884"><g + id="g886"><g + id="g888" + clip-path="url(#clipPath892)"><g + id="g894"><text + transform="translate(15.220001,1479.7053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text898"><tspan + x="0 103.33932 208.88161 287.18716 333.04901 399.13812 444.99994 550.54224 655.68396 700.94501 806.4873 911.62903 977.51788 1023.3797 1183.1952 1229.057 1308.1636 1404.093 1470.9832 1516.845 1622.3872 1726.9282" + y="0" + sodipodi:role="line" + id="tspan896">Position optimization:</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g900"><g + id="g902"><g + id="g904" + clip-path="url(#clipPath908)"><g + id="g910"><g + id="g912"><g + id="g914"><g + id="g916" + clip-path="url(#clipPath920)"><g + id="g922"><text + transform="translate(1800.78,3133.9253)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text926"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 580.78302 626.64484 731.78656 822.10834 920.84143 990.5354 1068.8409 1168.3751 1213.6362 1297.5493 1403.0916 1562.9071 1668.0488 1773.1906 1840.0808 1936.0101 2002.9003 2048.7622 2153.303 2258.4448" + y="0" + sodipodi:role="line" + id="tspan924">Matrix inverse computation </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g928"><g + id="g930"><g + id="g932" + clip-path="url(#clipPath936)"><g + id="g938"><g + id="g940"><g + id="g942"><g + id="g944" + clip-path="url(#clipPath948)"><g + id="g950"><text + transform="translate(1671.32,3517.1453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text954"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 580.78302 685.92474 785.45892 869.9729 974.91437 1134.7299 1239.8716 1345.4138 1423.7195 1468.58 1535.4701 1581.3319 1686.8741 1792.016 1870.3215" + y="0" + sodipodi:role="line" + id="tspan952">Matrix decompositions </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g956"><g + id="g958"><g + id="g960" + clip-path="url(#clipPath964)"><g + id="g966"><path + d="m 7147.168,1784.824 h 816.48 v -272.578 l 8.512,8.508 v 272.582 l -8.512,-8.512 8.512,8.512 h -816.492 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path968" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g970"><g + id="g972"><g + id="g974" + clip-path="url(#clipPath978)"><g + id="g980"><g + id="g982" + transform="scale(1,-1)"><path + d="m 7147.168,-1784.824 h 816.48 v 272.578 l 8.512,-8.508 v -272.582 l -8.512,8.512 8.512,-8.512 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path984" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g986"><g + id="g988"><g + id="g990" + clip-path="url(#clipPath994)"><g + id="g996"><path + d="m 7147.168,1512.246 h 816.492 v 272.578 h -816.492 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path998" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1000"><g + id="g1002"><g + id="g1004" + clip-path="url(#clipPath1008)"><g + id="g1010"><g + id="g1012" + transform="scale(1,-1)"><path + d="m 7147.168,-1512.246 h 816.492 v -272.578 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1014" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1016"><g + id="g1018"><g + id="g1020" + clip-path="url(#clipPath1024)"><g + id="g1026"><g + id="g1028"><g + id="g1030"><g + id="g1032" + clip-path="url(#clipPath1036)"><g + id="g1038"><text + transform="translate(7261.8498,1708.9553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1042"><tspan + x="0 171.03058 294.19662 417.36267" + y="0" + sodipodi:role="line" + id="tspan1040">MDDM</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1044"><g + id="g1046"><g + id="g1048" + clip-path="url(#clipPath1052)"><g + id="g1054"><g + id="g1056"><g + id="g1058"><g + id="g1060" + clip-path="url(#clipPath1064)"><g + id="g1066"><text + transform="translate(4048.9699,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1070"><tspan + x="0 132.57874 237.72049 304.61066 349.87167 509.68713 555.54895 634.65564 729.98413 796.87433 842.73615 948.27844 1053.4202 1098.6813 1194.6106 1240.4724 1333.5979 1439.1403 1508.8342 1554.696 1621.5862 1726.7279 1886.5433" + y="0" + sodipodi:role="line" + id="tspan1068">Optimization algorithms</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1072"><g + id="g1074"><g + id="g1076" + clip-path="url(#clipPath1080)"><g + id="g1082"><g + id="g1084"><g + id="g1086"><g + id="g1088" + clip-path="url(#clipPath1092)"><g + id="g1094"><text + transform="translate(2089.6499,1708.9553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1098"><tspan + x="0 171.03058 276.17233 321.43335 388.32352 434.18536 539.32709 635.25641 702.14661 807.28839 851.74829 956.89008 1002.7519 1081.0575 1147.9476 1243.877 1349.0187 1433.5326 1533.0669 1577.7271 1682.8688 1782.403 1849.2932 1948.8274 2032.34 2099.2302 2145.092 2250.6343 2355.7759 2401.0371 2496.9663 2602.1082 2707.2498 2752.511 2911.325 2957.1868 3024.0769 3069.9387 3163.4648 3259.3943 3326.2844 3372.1462 3477.6885" + y="0" + sodipodi:role="line" + id="tspan1096">Multipath distance detection and mitigation</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1100"><g + id="g1102"><g + id="g1104" + clip-path="url(#clipPath1108)"><g + id="g1110"><path + d="m 7021.051,3534.406 h 1066.711 v -272.582 l 8.5,8.512 v 272.578 l -8.5,-8.508 8.5,8.508 H 7029.559 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1112" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1114"><g + id="g1116"><g + id="g1118" + clip-path="url(#clipPath1122)"><g + id="g1124"><g + id="g1126" + transform="scale(1,-1)"><path + d="m 7021.051,-3534.406 h 1066.711 v 272.582 l 8.5,-8.512 v -272.578 l -8.5,8.508 8.5,-8.508 H 7029.559 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1128" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1130"><g + id="g1132"><g + id="g1134" + clip-path="url(#clipPath1138)"><g + id="g1140"><path + d="M 7021.051,3261.824 H 8087.75 v 272.582 H 7021.051 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1142" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1144"><g + id="g1146"><g + id="g1148" + clip-path="url(#clipPath1152)"><g + id="g1154"><g + id="g1156" + transform="scale(1,-1)"><path + d="M 7021.051,-3261.824 H 8087.75 v -272.582 H 7021.051 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1158" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1160"><g + id="g1162"><g + id="g1164" + clip-path="url(#clipPath1168)"><g + id="g1170"><g + id="g1172"><g + id="g1174"><g + id="g1176" + clip-path="url(#clipPath1180)"><g + id="g1182"><text + transform="translate(7033.0498,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1186"><tspan + x="0 124.76821 230.3105 335.45224 413.75781 513.29199 617.63269 723.17499 769.0368 874.17853 973.71271" + y="0" + sodipodi:role="line" + id="tspan1184">Householder</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1188"><g + id="g1190"><g + id="g1192" + clip-path="url(#clipPath1196)"><g + id="g1198"><path + d="m 8465.039,3534.406 h 806.102 v -272.582 l 8.507,8.512 v 272.578 l -8.507,-8.508 8.507,8.508 h -806.097 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1200" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1202"><g + id="g1204"><g + id="g1206" + clip-path="url(#clipPath1210)"><g + id="g1212"><g + id="g1214" + transform="scale(1,-1)"><path + d="m 8465.039,-3534.406 h 806.102 v 272.582 l 8.507,-8.512 v -272.578 l -8.507,8.508 8.507,-8.508 h -806.097 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1216" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1218"><g + id="g1220"><g + id="g1222" + clip-path="url(#clipPath1226)"><g + id="g1228"><path + d="m 8465.039,3261.824 h 806.102 v 272.582 h -806.102 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1230" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1232"><g + id="g1234"><g + id="g1236" + clip-path="url(#clipPath1240)"><g + id="g1242"><g + id="g1244" + transform="scale(1,-1)"><path + d="m 8465.039,-3261.824 h 806.102 v -272.582 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1246" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1248"><g + id="g1250"><g + id="g1252" + clip-path="url(#clipPath1256)"><g + id="g1258"><g + id="g1260"><g + id="g1262"><g + id="g1264" + clip-path="url(#clipPath1268)"><g + id="g1270"><text + transform="translate(8596.0498,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1274"><tspan + x="0 126.1701 172.03194 262.3537 361.88788 467.02963" + y="0" + sodipodi:role="line" + id="tspan1272">Givens</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1276"><g + id="g1278"><g + id="g1280" + clip-path="url(#clipPath1284)"><g + id="g1286"><path + d="m 5837.668,3534.406 h 806.102 v -272.582 l 8.5,8.512 v 272.578 l -8.5,-8.508 8.5,8.508 h -806.102 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1288" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1290"><g + id="g1292"><g + id="g1294" + clip-path="url(#clipPath1298)"><g + id="g1300"><g + id="g1302" + transform="scale(1,-1)"><path + d="m 5837.668,-3534.406 h 806.102 v 272.582 l 8.5,-8.512 v -272.578 l -8.5,8.508 8.5,-8.508 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1304" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1306"><g + id="g1308"><g + id="g1310" + clip-path="url(#clipPath1314)"><g + id="g1316"><path + d="m 5837.668,3261.824 h 806.102 v 272.582 h -806.102 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1318" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1320"><g + id="g1322"><g + id="g1324" + clip-path="url(#clipPath1328)"><g + id="g1330"><g + id="g1332" + transform="scale(1,-1)"><path + d="m 5837.668,-3261.824 h 806.102 v -272.582 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1334" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1336"><g + id="g1338"><g + id="g1340" + clip-path="url(#clipPath1344)"><g + id="g1346"><g + id="g1348"><g + id="g1350"><g + id="g1352" + clip-path="url(#clipPath1356)"><g + id="g1358"><text + transform="translate(6076.9198,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1362"><tspan + x="0 91.923927 205.47702" + y="0" + sodipodi:role="line" + id="tspan1360">SVD</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1364"><g + id="g1366"><g + id="g1368" + clip-path="url(#clipPath1372)"><g + id="g1374"><path + d="M 6592.641,2233.094 H 8518.18 v -272.578 l 8.5,8.5 v 272.578 l -8.5,-8.5 8.5,8.5 H 6601.141 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1376" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1378"><g + id="g1380"><g + id="g1382" + clip-path="url(#clipPath1386)"><g + id="g1388"><g + id="g1390" + transform="scale(1,-1)"><path + d="M 6592.641,-2233.094 H 8518.18 v 272.578 l 8.5,-8.5 v -272.578 l -8.5,8.5 8.5,-8.5 H 6601.141 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1392" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1394"><g + id="g1396"><g + id="g1398" + clip-path="url(#clipPath1402)"><g + id="g1404"><path + d="M 6592.641,1960.516 H 8518.18 v 272.578 H 6592.641 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1406" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1408"><g + id="g1410"><g + id="g1412" + clip-path="url(#clipPath1416)"><g + id="g1418"><g + id="g1420" + transform="scale(1,-1)"><path + d="M 6592.641,-1960.516 H 8518.18 v -272.578 H 6592.641 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1422" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1424"><g + id="g1426"><g + id="g1428" + clip-path="url(#clipPath1432)"><g + id="g1434"><g + id="g1436"><g + id="g1438"><g + id="g1440" + clip-path="url(#clipPath1444)"><g + id="g1446"><text + transform="translate(6609.7998,2157.2753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1450"><tspan + x="0 84.113403 189.65569 273.36856 369.29788 415.1597 461.02155 540.12817 636.0575 702.94769 748.80951 854.35181 958.89276 1004.1537 1119.9098 1165.7716 1259.2977 1364.8401 1434.5341 1480.3959 1547.286 1651.6267 1811.4421" + y="0" + sodipodi:role="line" + id="tspan1448">Localization Algorithms</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1452"><g + id="g1454"><g + id="g1456" + clip-path="url(#clipPath1460)"><g + id="g1462"><path + d="m 7643.891,2778.254 h 2368.8 v -272.578 l 8.5,8.5 v 272.578 l -8.5,-8.5 8.5,8.5 H 7652.398 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1464" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1466"><g + id="g1468"><g + id="g1470" + clip-path="url(#clipPath1474)"><g + id="g1476"><g + id="g1478" + transform="scale(1,-1)"><path + d="m 7643.891,-2778.254 h 2368.8 v 272.578 l 8.5,-8.5 v -272.578 l -8.5,8.5 8.5,-8.5 H 7652.398 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1480" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1482"><g + id="g1484"><g + id="g1486" + clip-path="url(#clipPath1490)"><g + id="g1492"><path + d="m 7643.891,2505.676 h 2368.789 v 272.578 H 7643.891 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1494" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1496"><g + id="g1498"><g + id="g1500" + clip-path="url(#clipPath1504)"><g + id="g1506"><g + id="g1508" + transform="scale(1,-1)"><path + d="m 7643.891,-2505.676 h 2368.789 v -272.578 H 7643.891 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1510" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1512"><g + id="g1514"><g + id="g1516" + clip-path="url(#clipPath1520)"><g + id="g1522"><g + id="g1524"><g + id="g1526"><g + id="g1528" + clip-path="url(#clipPath1532)"><g + id="g1534"><text + transform="translate(7671.5298,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1538"><tspan + x="0 132.57874 237.72049 304.61066 349.87167 509.68713 555.54895 634.65564 729.98413 796.87433 842.73615 948.27844 1053.4202 1098.6813 1235.2654 1280.5264 1386.2689 1491.4106 1561.1046 1651.4264 1750.9606 1796.2217 1887.3445 1933.2063 2000.0964 2066.9866 2112.8484 2217.9902" + y="0" + sodipodi:role="line" + id="tspan1536">Optimization & Curve Fitting</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1540"><g + id="g1542"><g + id="g1544" + clip-path="url(#clipPath1548)"><g + id="g1550"><path + d="m 7680.191,1385.516 h 816.477 v -272.571 l 8.512,8.5 v 272.578 l -8.512,-8.507 8.512,8.507 h -816.489 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1552" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1554"><g + id="g1556"><g + id="g1558" + clip-path="url(#clipPath1562)"><g + id="g1564"><g + id="g1566" + transform="scale(1,-1)"><path + d="m 7680.191,-1385.516 h 816.477 v 272.571 l 8.512,-8.5 v -272.578 l -8.512,8.507 8.512,-8.507 h -816.489 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1568" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1570"><g + id="g1572"><g + id="g1574" + clip-path="url(#clipPath1578)"><g + id="g1580"><path + d="m 7680.191,1112.934 h 816.488 v 272.582 h -816.488 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1582" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1584"><g + id="g1586"><g + id="g1588" + clip-path="url(#clipPath1592)"><g + id="g1594"><g + id="g1596" + transform="scale(1,-1)"><path + d="m 7680.191,-1112.934 h 816.488 v -272.582 h -816.488 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1598" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1600"><g + id="g1602"><g + id="g1604" + clip-path="url(#clipPath1608)"><g + id="g1610"><g + id="g1612"><g + id="g1614"><g + id="g1616" + clip-path="url(#clipPath1620)"><g + id="g1622"><text + transform="translate(7790.2998,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1626"><tspan + x="0 171.03058 297.20068 425.57376" + y="0" + sodipodi:role="line" + id="tspan1624">MGNM</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1628"><g + id="g1630"><g + id="g1632" + clip-path="url(#clipPath1636)"><g + id="g1638"><path + d="m 6580.238,1385.516 h 816.481 v -272.571 l 8.511,8.5 v 272.578 l -8.511,-8.507 8.511,8.507 h -816.492 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1640" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1642"><g + id="g1644"><g + id="g1646" + clip-path="url(#clipPath1650)"><g + id="g1652"><g + id="g1654" + transform="scale(1,-1)"><path + d="m 6580.238,-1385.516 h 816.481 v 272.571 l 8.511,-8.5 v -272.578 l -8.511,8.507 8.511,-8.507 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1656" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1658"><g + id="g1660"><g + id="g1662" + clip-path="url(#clipPath1666)"><g + id="g1668"><path + d="m 6580.238,1112.934 h 816.492 v 272.582 h -816.492 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1670" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1672"><g + id="g1674"><g + id="g1676" + clip-path="url(#clipPath1680)"><g + id="g1682"><g + id="g1684" + transform="scale(1,-1)"><path + d="m 6580.238,-1112.934 h 816.492 v -272.582 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1686" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1688"><g + id="g1690"><g + id="g1692" + clip-path="url(#clipPath1696)"><g + id="g1698"><g + id="g1700"><g + id="g1702"><g + id="g1704" + clip-path="url(#clipPath1708)"><g + id="g1710"><text + transform="translate(6804.6498,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1714"><tspan + x="0 84.113403 197.66649" + y="0" + sodipodi:role="line" + id="tspan1712">LVM</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1716"><g + id="g1718"><g + id="g1720" + clip-path="url(#clipPath1724)"><g + id="g1726"><path + d="m 7197.039,4036.637 h 613.941 v -272.582 l 8.508,8.5 v 272.582 l -8.508,-8.5 8.508,8.5 h -613.949 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1728" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1730"><g + id="g1732"><g + id="g1734" + clip-path="url(#clipPath1738)"><g + id="g1740"><g + id="g1742" + transform="scale(1,-1)"><path + d="m 7197.039,-4036.637 h 613.941 v 272.582 l 8.508,-8.5 v -272.582 l -8.508,8.5 8.508,-8.5 h -613.949 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1744" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1746"><g + id="g1748"><g + id="g1750" + clip-path="url(#clipPath1754)"><g + id="g1756"><path + d="m 7197.039,3764.055 h 613.941 v 272.582 h -613.941 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1758" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1760"><g + id="g1762"><g + id="g1764" + clip-path="url(#clipPath1768)"><g + id="g1770"><g + id="g1772" + transform="scale(1,-1)"><path + d="m 7197.039,-3764.055 h 613.941 v -272.582 h -613.941 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1774" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1776"><g + id="g1778"><g + id="g1780" + clip-path="url(#clipPath1784)"><g + id="g1786"><g + id="g1788"><g + id="g1790"><g + id="g1792" + clip-path="url(#clipPath1796)"><g + id="g1798"><text + transform="translate(7236.4698,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1802"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505" + y="0" + sodipodi:role="line" + id="tspan1800">Matrix</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1804"><g + id="g1806"><g + id="g1808" + clip-path="url(#clipPath1812)"><g + id="g1814"><path + d="m 8690.031,4036.637 h 613.938 v -272.582 l 8.511,8.5 v 272.582 l -8.511,-8.5 8.511,8.5 h -613.941 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1816" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1818"><g + id="g1820"><g + id="g1822" + clip-path="url(#clipPath1826)"><g + id="g1828"><g + id="g1830" + transform="scale(1,-1)"><path + d="m 8690.031,-4036.637 h 613.938 v 272.582 l 8.511,-8.5 v -272.582 l -8.511,8.5 8.511,-8.5 h -613.941 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1832" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1834"><g + id="g1836"><g + id="g1838" + clip-path="url(#clipPath1842)"><g + id="g1844"><path + d="m 8690.031,3764.055 h 613.938 v 272.582 h -613.938 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1846" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1848"><g + id="g1850"><g + id="g1852" + clip-path="url(#clipPath1856)"><g + id="g1858"><g + id="g1860" + transform="scale(1,-1)"><path + d="m 8690.031,-3764.055 h 613.938 v -272.582 h -613.938 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1862" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1864"><g + id="g1866"><g + id="g1868" + clip-path="url(#clipPath1872)"><g + id="g1874"><g + id="g1876"><g + id="g1878"><g + id="g1880" + clip-path="url(#clipPath1884)"><g + id="g1886"><text + transform="translate(8727.6998,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1890"><tspan + x="0 113.55309 213.08728 297.60123 363.89059 469.43289" + y="0" + sodipodi:role="line" + id="tspan1888">Vector</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1892"><g + id="g1894"><g + id="g1896" + clip-path="url(#clipPath1900)"><g + id="g1902"><g + id="g1904" + transform="scale(1,-1)"><path + d="M 3237.129,-4112.227 H -196.859" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path1906" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1908"><g + id="g1910"><g + id="g1912" + clip-path="url(#clipPath1916)"><g + id="g1918"><g + id="g1920" + transform="scale(1,-1)"><path + d="M 5081.828,-2358.574 H 9917.59" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1922" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1924"><g + id="g1926"><g + id="g1928" + clip-path="url(#clipPath1932)"><g + id="g1934"><g + id="g1936" + transform="scale(1,-1)"><path + d="M 5081.828,-2358.574 H -181.941" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path1938" + inkscape:connector-curvature="0" /></g></g></g></g></g></g></g></svg> \ No newline at end of file diff --git a/doc/doxygen/html/solve_8c.html b/doc/doxygen/html/solve_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..df830502967890c61d7d0c3fddc2d0a2ac3e6fc2 --- /dev/null +++ b/doc/doxygen/html/solve_8c.html @@ -0,0 +1,422 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">solve.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Enables to solve systems of linear equations Ax = b for x. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="solve_8h_source.html">solve.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__givens_8h_source.html">qr_givens.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__common_8h_source.html">qr_common.h</a>"</code><br /> +<code>#include "<a class="el" href="lu__decomp_8h_source.html">lu_decomp.h</a>"</code><br /> +<code>#include "<a class="el" href="qr__householder_8h_source.html">qr_householder.h</a>"</code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +</div> +<p><a href="solve_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a829e66492dc3073c0f7a190cda9b7db1"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n], enum <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo)</td></tr> +<tr class="memdesc:a829e66492dc3073c0f7a190cda9b7db1"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm. <a href="solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1">More...</a><br /></td></tr> +<tr class="separator:a829e66492dc3073c0f7a190cda9b7db1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab6336aff7fbff116a6118b39a0d1e2cd"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</td></tr> +<tr class="memdesc:ab6336aff7fbff116a6118b39a0d1e2cd"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Householder algorithm. <a href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd">More...</a><br /></td></tr> +<tr class="separator:ab6336aff7fbff116a6118b39a0d1e2cd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac728f92ed0a0cba0e8776222acfe1d88"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88">solve_givens</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</td></tr> +<tr class="memdesc:ac728f92ed0a0cba0e8776222acfe1d88"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Givens algorithm. <a href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88">More...</a><br /></td></tr> +<tr class="separator:ac728f92ed0a0cba0e8776222acfe1d88"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a96faf0d4f04f27a12e4ced0bffd0f634"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve_lu_decomp</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</td></tr> +<tr class="memdesc:a96faf0d4f04f27a12e4ced0bffd0f634"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Gaussian Elimination with pivoting algorithm. <a href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634">More...</a><br /></td></tr> +<tr class="separator:a96faf0d4f04f27a12e4ced0bffd0f634"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Enables to solve systems of linear equations Ax = b for x. </p> +<p>The user can select various algorithm such as the Moore–Penrose inverse, the Givens or the Householder algorithm for the QR-decomposition to solve the systems of linear equations.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a829e66492dc3073c0f7a190cda9b7db1"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a829e66492dc3073c0f7a190cda9b7db1">◆ </a></span>solve()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">enum <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> </td> + <td class="paramname"><em>algo</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">algo</td><td>specifies the algorithm to use (e.g. the Householder method).</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00035">35</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="pseudo__inverse_8h_source.html#l00034">Gauss</a>, <a class="el" href="pseudo__inverse_8h_source.html#l00033">Givens</a>, <a class="el" href="pseudo__inverse_8h_source.html#l00032">Householder</a>, <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="pseudo__inverse_8h_source.html#l00031">Moore_Penrose</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, and <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>.</p> + +</div> +</div> +<a id="ac728f92ed0a0cba0e8776222acfe1d88"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac728f92ed0a0cba0e8776222acfe1d88">◆ </a></span>solve_givens()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve_givens </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Givens algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd> +<dd> +-1, if the linear system is not solvable. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00102">102</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="qr__common_8c_source.html#l00028">qr_common_backward_subst()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve_8c_source.html#l00035">solve()</a>.</p> + +</div> +</div> +<a id="ab6336aff7fbff116a6118b39a0d1e2cd"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab6336aff7fbff116a6118b39a0d1e2cd">◆ </a></span>solve_householder()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve_householder </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Householder algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00077">77</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="qr__common_8c_source.html#l00028">qr_common_backward_subst()</a>, and <a class="el" href="qr__householder_8c_source.html#l00033">qr_householder_decomp()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, and <a class="el" href="solve_8c_source.html#l00035">solve()</a>.</p> + +</div> +</div> +<a id="a96faf0d4f04f27a12e4ced0bffd0f634"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a96faf0d4f04f27a12e4ced0bffd0f634">◆ </a></span>solve_lu_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve_lu_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Gaussian Elimination with pivoting algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd> +<dd> +-2, if the linear system is not solvable. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00124">124</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>, <a class="el" href="matrix_8c_source.html#l00817">matrix_get_inv_low_triang()</a>, <a class="el" href="matrix_8c_source.html#l00363">matrix_mul()</a>, <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="qr__common_8c_source.html#l00028">qr_common_backward_subst()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve_8c_source.html#l00035">solve()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_f6d35df7bd2aa2399e29232b65f55b23.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="solve_8c.html">solve.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/solve_8c.js b/doc/doxygen/html/solve_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..9889e1e4c55523569679115b5d0be6c4e0cc3392 --- /dev/null +++ b/doc/doxygen/html/solve_8c.js @@ -0,0 +1,7 @@ +var solve_8c = +[ + [ "solve", "solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1", null ], + [ "solve_givens", "solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88", null ], + [ "solve_householder", "solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd", null ], + [ "solve_lu_decomp", "solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/solve_8c_source.html b/doc/doxygen/html/solve_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..605ec749cc43796c4b5e027d7ec970715831f839 --- /dev/null +++ b/doc/doxygen/html/solve_8c_source.html @@ -0,0 +1,268 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">solve.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="solve_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="solve_8h.html">solve.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="qr__givens_8h.html">qr_givens.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="qr__common_8h.html">qr_common.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="lu__decomp_8h.html">lu_decomp.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="qr__householder_8h.html">qr_householder.h</a>"</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1"> 35</a></span> int8_t <a class="code" href="solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n], <span class="keyword">enum</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo)</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  int8_t status;</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">switch</span> (algo) {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">case</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>:</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">//puts("Moore Penrose !!!!");</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m];</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  status = <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(m, n, A, pinv_A);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(n, m, pinv_A, b, x_sol);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  }</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">case</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>:</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">//puts("Householder !!!!");</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  status = <a class="code" href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a>(m, n, A, b, x_sol);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">case</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>:</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">//puts("Givens !!!");</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  status = <a class="code" href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88">solve_givens</a>(m, n, A, b, x_sol);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">case</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a>:</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">//puts("Gauss !!!");</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  status = <a class="code" href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve_lu_decomp</a>(m, n, A, b, x_sol);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">default</span>:</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">//puts("Default: Moore Penrose");</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinv_A[n][m];</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  status = <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(m, n, A, pinv_A);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(n, m, pinv_A, b, x_sol);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> status;</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> +<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd"> 77</a></span> int8_t <a class="code" href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][n];</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> qt_b[n];</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (m >= n) {</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  int8_t status;</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  status = <a class="code" href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a>(m, n, A, n, Q, <span class="keyword">true</span>);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">/* qt_b = Q'*b --> Rx = Q'b (R is stored in A) */</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(m, n, Q, m, b, qt_b);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a>(n, n, A, qt_b, x_sol);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> status;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  puts(<span class="stringliteral">"[solve_householder]: The equation is not solvable !!!"</span>);</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> -2;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div> +<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88"> 102</a></span> int8_t <a class="code" href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88">solve_givens</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Q[m][n];</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> qt_b[n];</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">if</span> (m >= n) {</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  int8_t status;</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  status = <a class="code" href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a>(m, n, A, n, Q, <span class="keyword">true</span>);</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">/* qt_b = Q'*b --> Rx = Q'b (R is stored in A) */</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a>(m, n, Q, m, b, qt_b);</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a>(n, n, A, qt_b, x_sol);</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">return</span> status;</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  puts(<span class="stringliteral">"[solve_givens]: The equation is not solvable !!!"</span>);</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> -2;</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div> +<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634"> 124</a></span> int8_t <a class="code" href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve_lu_decomp</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (m == n) {</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">//puts("solve_lu_decomp !!!");</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> L[m][m];</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> P[m][m];</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a>(m, A, L, P);</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">/* lu_b = inv(L)*P*b */</span></div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> inv_L[m][m];</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a>(m, m, L, inv_L);</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tmp[m][m];</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a>(m, m, inv_L, m, m, P, tmp);</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> lu_b[m];</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(m, m, tmp, b, lu_b);</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">/* U*x = inv(L)*P*b = lu_b*/</span></div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a>(n, n, A, lu_b, x_sol);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> 1;</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  puts(</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="stringliteral">"[solve_lu_decomp]: Only quadratic linear equation systems are supported !!!"</span>);</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> -1;</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a></div><div class="ttdoc">Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00033">pseudo_inverse.h:33</a></div></div> +<div class="ttc" id="aqr__householder_8h_html_a926e8bce91b658f64837d5c93b0bc74f"><div class="ttname"><a href="qr__householder_8h.html#a926e8bce91b658f64837d5c93b0bc74f">qr_householder_decomp</a></div><div class="ttdeci">int8_t qr_householder_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__householder_8c_source.html#l00033">qr_householder.c:33</a></div></div> +<div class="ttc" id="aqr__householder_8h_html"><div class="ttname"><a href="qr__householder_8h.html">qr_householder.h</a></div><div class="ttdoc">Householder algorithm for the QR-decomposition.</div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a></div><div class="ttdoc">Moore–Penrose algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00031">pseudo_inverse.h:31</a></div></div> +<div class="ttc" id="alu__decomp_8h_html"><div class="ttname"><a href="lu__decomp_8h.html">lu_decomp.h</a></div><div class="ttdoc">Computes the LU decomposition of the matrix.</div></div> +<div class="ttc" id="aqr__common_8h_html_adad26253c0e08a0d9fe2dfe0f6d64112"><div class="ttname"><a href="qr__common_8h.html#adad26253c0e08a0d9fe2dfe0f6d64112">qr_common_backward_subst</a></div><div class="ttdeci">void qr_common_backward_subst(uint8_t m, uint8_t n, matrix_t U[][n], matrix_t b[m], matrix_t x_sol[m])</div><div class="ttdoc">Implements the backward substitution algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__common_8c_source.html#l00028">qr_common.c:28</a></div></div> +<div class="ttc" id="asolve_8c_html_a829e66492dc3073c0f7a190cda9b7db1"><div class="ttname"><a href="solve_8c.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a></div><div class="ttdeci">int8_t solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo)</div><div class="ttdoc">Solve an (m n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm...</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00035">solve.c:35</a></div></div> +<div class="ttc" id="amatrix_8h_html_a53b0a1829b2085414fb66a9e9bd6c7b7"><div class="ttname"><a href="matrix_8h.html#a53b0a1829b2085414fb66a9e9bd6c7b7">matrix_trans_mul_vec</a></div><div class="ttdeci">void matrix_trans_mul_vec(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t b_size, matrix_t b_vec[m], matrix_t c_vec[n])</div><div class="ttdoc">Compute the multiplication of transposed matrix with column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00511">matrix.c:511</a></div></div> +<div class="ttc" id="asolve_8h_html"><div class="ttname"><a href="solve_8h.html">solve.h</a></div><div class="ttdoc">Enables to solve systems of linear equations Ax = b for x.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a></div><div class="ttdoc">Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00032">pseudo_inverse.h:32</a></div></div> +<div class="ttc" id="asolve_8c_html_a96faf0d4f04f27a12e4ced0bffd0f634"><div class="ttname"><a href="solve_8c.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve_lu_decomp</a></div><div class="ttdeci">int8_t solve_lu_decomp(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Gaussian Elimination with pivoting algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00124">solve.c:124</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8e87640fa1a2d259ee4dc98c955cb48"><div class="ttname"><a href="matrix_8h.html#ae8e87640fa1a2d259ee4dc98c955cb48">matrix_get_inv_low_triang</a></div><div class="ttdeci">void matrix_get_inv_low_triang(uint8_t m, uint8_t n, matrix_t L[][n], matrix_t inv_L[][m])</div><div class="ttdoc">Computes the inverse a lower triangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00817">matrix.c:817</a></div></div> +<div class="ttc" id="alu__decomp_8h_html_a8649e9f4b85f17bf35a22b18e7f239d7"><div class="ttname"><a href="lu__decomp_8h.html#a8649e9f4b85f17bf35a22b18e7f239d7">lu_decomp</a></div><div class="ttdeci">uint8_t lu_decomp(uint8_t n, matrix_t A[][n], matrix_t L[][n], matrix_t P[][n])</div><div class="ttdoc">Computes the LU decomposition of the matrix.</div><div class="ttdef"><b>Definition:</b> <a href="lu__decomp_8c_source.html#l00031">lu_decomp.c:31</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a></div><div class="ttdeci">ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00030">pseudo_inverse.h:30</a></div></div> +<div class="ttc" id="aqr__common_8h_html"><div class="ttname"><a href="qr__common_8h.html">qr_common.h</a></div><div class="ttdoc">Common definitions and implementations for the QR-decomposition. Provide necessary methods to constru...</div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a></div><div class="ttdoc">Gaussian elimination with pivoting algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00034">pseudo_inverse.h:34</a></div></div> +<div class="ttc" id="asolve_8c_html_ac728f92ed0a0cba0e8776222acfe1d88"><div class="ttname"><a href="solve_8c.html#ac728f92ed0a0cba0e8776222acfe1d88">solve_givens</a></div><div class="ttdeci">int8_t solve_givens(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00102">solve.c:102</a></div></div> +<div class="ttc" id="aqr__givens_8h_html_a07adca97c58afc057a5cff738f6473cc"><div class="ttname"><a href="qr__givens_8h.html#a07adca97c58afc057a5cff738f6473cc">qr_givens_decomp</a></div><div class="ttdeci">int8_t qr_givens_decomp(uint8_t m, uint8_t n, matrix_t A[][n], uint8_t q_col_num, matrix_t Q[][q_col_num], bool reduced)</div><div class="ttdoc">Computes the QR decomposition of the matrix A by using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="qr__givens_8c_source.html#l00033">qr_givens.c:33</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="asolve_8c_html_ab6336aff7fbff116a6118b39a0d1e2cd"><div class="ttname"><a href="solve_8c.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a></div><div class="ttdeci">int8_t solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00077">solve.c:77</a></div></div> +<div class="ttc" id="aqr__givens_8h_html"><div class="ttname"><a href="qr__givens_8h.html">qr_givens.h</a></div><div class="ttdoc">Givens algorithm for the QR-decomposition. Provide necessary methods to construct Q- and R- matrices ...</div></div> +<div class="ttc" id="amatrix_8h_html_a550aa0d5a3212e35ad0af134895fd20a"><div class="ttname"><a href="matrix_8h.html#a550aa0d5a3212e35ad0af134895fd20a">matrix_mul</a></div><div class="ttdeci">void matrix_mul(uint8_t a_line_num, uint8_t a_col_num, matrix_t a_matrix[a_line_num][a_col_num], uint8_t b_line_num, uint8_t b_col_num, matrix_t b_matrix[b_line_num][b_col_num], matrix_t dest_matrix[a_line_num][b_col_num])</div><div class="ttdoc">Compute the multiplication of two matrices.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00363">matrix.c:363</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_f6d35df7bd2aa2399e29232b65f55b23.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="solve_8c.html">solve.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/solve_8h.html b/doc/doxygen/html/solve_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..10f87fa387bf3672a48a134e96d35a31bb87fd99 --- /dev/null +++ b/doc/doxygen/html/solve_8h.html @@ -0,0 +1,416 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">solve.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__solve__linear__equations.html">SOLVE_LINEAR_EQUATIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Enables to solve systems of linear equations Ax = b for x. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="pseudo__inverse_8h_source.html">pseudo_inverse.h</a>"</code><br /> +</div> +<p><a href="solve_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a829e66492dc3073c0f7a190cda9b7db1"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n], enum <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo)</td></tr> +<tr class="memdesc:a829e66492dc3073c0f7a190cda9b7db1"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm. <a href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">More...</a><br /></td></tr> +<tr class="separator:a829e66492dc3073c0f7a190cda9b7db1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab6336aff7fbff116a6118b39a0d1e2cd"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</td></tr> +<tr class="memdesc:ab6336aff7fbff116a6118b39a0d1e2cd"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Householder algorithm. <a href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">More...</a><br /></td></tr> +<tr class="separator:ab6336aff7fbff116a6118b39a0d1e2cd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac728f92ed0a0cba0e8776222acfe1d88"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88">solve_givens</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</td></tr> +<tr class="memdesc:ac728f92ed0a0cba0e8776222acfe1d88"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Givens algorithm. <a href="solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88">More...</a><br /></td></tr> +<tr class="separator:ac728f92ed0a0cba0e8776222acfe1d88"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a96faf0d4f04f27a12e4ced0bffd0f634"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve_lu_decomp</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n])</td></tr> +<tr class="memdesc:a96faf0d4f04f27a12e4ced0bffd0f634"><td class="mdescLeft"> </td><td class="mdescRight">Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Gaussian Elimination with pivoting algorithm. <a href="solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634">More...</a><br /></td></tr> +<tr class="separator:a96faf0d4f04f27a12e4ced0bffd0f634"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Enables to solve systems of linear equations Ax = b for x. </p> +<p>The user can select various algorithm such as the Moore–Penrose inverse, the Givens or the Householder algorithm for the QR-decomposition. The user can also choose the Gaussian Elimination with pivoting algorithm to solve the systems of linear equations.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="solve_8h_source.html">solve.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a829e66492dc3073c0f7a190cda9b7db1"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a829e66492dc3073c0f7a190cda9b7db1">◆ </a></span>solve()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">enum <a class="el" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> </td> + <td class="paramname"><em>algo</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">algo</td><td>specifies the algorithm to use (e.g. the Householder method).</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00035">35</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="pseudo__inverse_8h_source.html#l00034">Gauss</a>, <a class="el" href="pseudo__inverse_8h_source.html#l00033">Givens</a>, <a class="el" href="pseudo__inverse_8h_source.html#l00032">Householder</a>, <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="pseudo__inverse_8h_source.html#l00031">Moore_Penrose</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="solve_8c_source.html#l00102">solve_givens()</a>, <a class="el" href="solve_8c_source.html#l00077">solve_householder()</a>, and <a class="el" href="solve_8c_source.html#l00124">solve_lu_decomp()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, and <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>.</p> + +</div> +</div> +<a id="ac728f92ed0a0cba0e8776222acfe1d88"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac728f92ed0a0cba0e8776222acfe1d88">◆ </a></span>solve_givens()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve_givens </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Givens algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd> +<dd> +-1, if the linear system is not solvable. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00102">102</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="qr__common_8c_source.html#l00028">qr_common_backward_subst()</a>, and <a class="el" href="qr__givens_8c_source.html#l00033">qr_givens_decomp()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve_8c_source.html#l00035">solve()</a>.</p> + +</div> +</div> +<a id="ab6336aff7fbff116a6118b39a0d1e2cd"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab6336aff7fbff116a6118b39a0d1e2cd">◆ </a></span>solve_householder()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve_householder </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Householder algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00077">77</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8c_source.html#l00511">matrix_trans_mul_vec()</a>, <a class="el" href="qr__common_8c_source.html#l00028">qr_common_backward_subst()</a>, and <a class="el" href="qr__householder_8c_source.html#l00033">qr_householder_decomp()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, and <a class="el" href="solve_8c_source.html#l00035">solve()</a>.</p> + +</div> +</div> +<a id="a96faf0d4f04f27a12e4ced0bffd0f634"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a96faf0d4f04f27a12e4ced0bffd0f634">◆ </a></span>solve_lu_decomp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t solve_lu_decomp </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b</em>[m], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>x_sol</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve an (m <img class="formulaInl" alt="$\times$" src="form_35.png"/> n) linear system Ax = b, using the Gaussian Elimination with pivoting algorithm. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b[]</td><td>pointer to the vector b. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">x_sol[]</td><td>pointer to the solution vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>1, if solving the linear equation system is successful. </dd> +<dd> +-1, if solving the linear equation system is not successful. </dd> +<dd> +-2, if the linear system is not solvable. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="solve_8c_source.html#l00124">124</a> of file <a class="el" href="solve_8c_source.html">solve.c</a>.</p> + +<p class="reference">References <a class="el" href="lu__decomp_8c_source.html#l00031">lu_decomp()</a>, <a class="el" href="matrix_8c_source.html#l00817">matrix_get_inv_low_triang()</a>, <a class="el" href="matrix_8c_source.html#l00363">matrix_mul()</a>, <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, and <a class="el" href="qr__common_8c_source.html#l00028">qr_common_backward_subst()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="solve_8c_source.html#l00035">solve()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_f6d35df7bd2aa2399e29232b65f55b23.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html">include</a></li><li class="navelem"><a class="el" href="solve_8h.html">solve.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/solve_8h.js b/doc/doxygen/html/solve_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..1197435b1b83b7965278a359908b428d27af48f6 --- /dev/null +++ b/doc/doxygen/html/solve_8h.js @@ -0,0 +1,7 @@ +var solve_8h = +[ + [ "solve", "solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1", null ], + [ "solve_givens", "solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88", null ], + [ "solve_householder", "solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd", null ], + [ "solve_lu_decomp", "solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/solve_8h_source.html b/doc/doxygen/html/solve_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..0c7ba5d88ecdaf93d60c6d8a1bc0865cbad9bd3f --- /dev/null +++ b/doc/doxygen/html/solve_8h_source.html @@ -0,0 +1,141 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">solve.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="solve_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef SOLVE_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#define SOLVE_H_</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="pseudo__inverse_8h.html">pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> int8_t <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n], <span class="keyword">enum</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo);</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> int8_t <a class="code" href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n],</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n]);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> int8_t <a class="code" href="solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88">solve_givens</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n]);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> int8_t <a class="code" href="solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve_lu_decomp</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m],</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x_sol[n]);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#endif </span><span class="comment">/* SOLVE_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="asolve_8h_html_ac728f92ed0a0cba0e8776222acfe1d88"><div class="ttname"><a href="solve_8h.html#ac728f92ed0a0cba0e8776222acfe1d88">solve_givens</a></div><div class="ttdeci">int8_t solve_givens(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00102">solve.c:102</a></div></div> +<div class="ttc" id="asolve_8h_html_a96faf0d4f04f27a12e4ced0bffd0f634"><div class="ttname"><a href="solve_8h.html#a96faf0d4f04f27a12e4ced0bffd0f634">solve_lu_decomp</a></div><div class="ttdeci">int8_t solve_lu_decomp(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Gaussian Elimination with pivoting algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00124">solve.c:124</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html"><div class="ttname"><a href="pseudo__inverse_8h.html">pseudo_inverse.h</a></div><div class="ttdoc">Compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="asolve_8h_html_ab6336aff7fbff116a6118b39a0d1e2cd"><div class="ttname"><a href="solve_8h.html#ab6336aff7fbff116a6118b39a0d1e2cd">solve_householder</a></div><div class="ttdeci">int8_t solve_householder(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n])</div><div class="ttdoc">Solve an (m n) linear system Ax = b, using the Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00077">solve.c:77</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a></div><div class="ttdeci">ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00030">pseudo_inverse.h:30</a></div></div> +<div class="ttc" id="asolve_8h_html_a829e66492dc3073c0f7a190cda9b7db1"><div class="ttname"><a href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a></div><div class="ttdeci">int8_t solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo)</div><div class="ttdoc">Solve an (m n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm...</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00035">solve.c:35</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_f6d35df7bd2aa2399e29232b65f55b23.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="dir_7e2fea8632e67e4b5ff2ab6ffb8e1870.html">include</a></li><li class="navelem"><a class="el" href="solve_8h.html">solve.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/solve__test_8c.html b/doc/doxygen/html/solve__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..3a493bcbbbd5dc6fe06da5b0f51fcc626c4f3fe0 --- /dev/null +++ b/doc/doxygen/html/solve__test_8c.html @@ -0,0 +1,134 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">solve_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of solving linear equation systems. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="solve_8h_source.html">solve.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="solve__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a468b4492daa139d24a18624526001220"><td class="memItemLeft" align="right" valign="top"><a id="a468b4492daa139d24a18624526001220"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="solve__test_8c.html#a468b4492daa139d24a18624526001220">solve_test</a> (void)</td></tr> +<tr class="memdesc:a468b4492daa139d24a18624526001220"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving linear equation systems. <br /></td></tr> +<tr class="separator:a468b4492daa139d24a18624526001220"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acb6c59801ca040ac66f436b8f332a371"><td class="memItemLeft" align="right" valign="top"><a id="acb6c59801ca040ac66f436b8f332a371"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371">solve_big_matrix_test</a> (void)</td></tr> +<tr class="memdesc:acb6c59801ca040ac66f436b8f332a371"><td class="mdescLeft"> </td><td class="mdescRight">Example of solving an (10,5) linear equation system. <br /></td></tr> +<tr class="separator:acb6c59801ca040ac66f436b8f332a371"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of solving linear equation systems. </p> +<p>Solving linear equation systems examples (see <a class="el" href="solve_8h.html">solve</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="solve__test_8c_source.html">solve_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c00c1b9b31ec8172d0e33f1bbb777699.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="solve__test_8c.html">solve_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/solve__test_8c.js b/doc/doxygen/html/solve__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..775146471ac46835624cb17f24e04e10d7acd0c6 --- /dev/null +++ b/doc/doxygen/html/solve__test_8c.js @@ -0,0 +1,5 @@ +var solve__test_8c = +[ + [ "solve_big_matrix_test", "solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371", null ], + [ "solve_test", "solve__test_8c.html#a468b4492daa139d24a18624526001220", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/solve__test_8c_source.html b/doc/doxygen/html/solve__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..fb22c8ad95196c9ab6df423aa02096c67e14325d --- /dev/null +++ b/doc/doxygen/html/solve__test_8c_source.html @@ -0,0 +1,382 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">solve_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="solve__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="solve_8h.html">solve.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="solve__test_8c.html#a468b4492daa139d24a18624526001220"> 29</a></span> <span class="keywordtype">void</span> <a class="code" href="solve__test_8c.html#a468b4492daa139d24a18624526001220">solve_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  int8_t error_no;</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  puts(<span class="stringliteral">"############ Solve Linear Algebra Module ############"</span>);</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  puts(<span class="stringliteral">"******* Determined system *******"</span>);</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  uint8_t m = 3;</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  uint8_t n = m;</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">enum</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>;</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A1[3][3] = { { 2, 1, 1 },</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { -1, 1, -1 },</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  { 1, 2, 3 } };</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A1[m][n];</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b1[3] = { 2, 3, -10 };</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x[3];</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  printf(<span class="stringliteral">"A1 = "</span>);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, A1, 3, 1);</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  puts(<span class="stringliteral">"Moore Penrose: "</span>);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A1, copy_A1);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A1, b1, x, algo);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  printf(<span class="stringliteral">"x1 = "</span>);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 1);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  puts(<span class="stringliteral">"Householder: "</span>);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A1, copy_A1);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A1, b1, x, algo);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  printf(<span class="stringliteral">"x1 = "</span>);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 1);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  puts(<span class="stringliteral">"Givens: "</span>);</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>;</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A1, copy_A1);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A1, b1, x, algo);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  printf(<span class="stringliteral">"x1 = "</span>);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 1);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  puts(<span class="stringliteral">"Gauss: "</span>);</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a>;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A1, copy_A1);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A1, b1, x, algo);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  printf(<span class="stringliteral">"x1 = "</span>);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 1);</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  puts(<span class="stringliteral">"******* Overdetermined system *******"</span>);</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  m = 4;</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  n = 3;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A2[4][3] = { { 25, 5, 1 },</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  { 64, 8, 1 },</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  { 100, 10, 1 },</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  { 144, 12, 1 }, };</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A2[m][n];</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b2[4] = { 106.8, 177.2, 232.6, 279.2 };</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  printf(<span class="stringliteral">"A2 = "</span>);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, A2, 3, 1);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  puts(<span class="stringliteral">"Moore Penrose: "</span>);</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>;</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A2, copy_A2);</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A2, b2, x, algo);</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  printf(<span class="stringliteral">"x2 = "</span>);</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  puts(<span class="stringliteral">"Householder: "</span>);</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>;</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A2, copy_A2);</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A2, b2, x, algo);</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  printf(<span class="stringliteral">"x2 = "</span>);</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  puts(<span class="stringliteral">"Givens: "</span>);</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>;</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A2, copy_A2);</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A2, b2, x, algo);</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  printf(<span class="stringliteral">"x2 = "</span>);</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  puts(<span class="stringliteral">"******* Underdetermined system *******"</span>);</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  m = 3;</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  n = 4;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A3[3][4] = { { 2, -4, 2, -14 },</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  { -1, 2, -2, 11 },</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  { -1, 2, -1, 7 } };</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A3[m][n];</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b3[3] = { 10, -6, -5 };</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  printf(<span class="stringliteral">"A3 = "</span>);</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, A3, 3, 1);</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  puts(<span class="stringliteral">"Moore Penrose: "</span>);</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>;</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A3, copy_A3);</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, A3, b3, x, algo);</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  printf(<span class="stringliteral">"x3 = "</span>);</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  puts(<span class="stringliteral">"Householder: "</span>);</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>;</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A3, copy_A3);</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A3, b3, x, algo);</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  printf(<span class="stringliteral">"x3 = "</span>);</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  puts(<span class="stringliteral">"Givens: "</span>);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>;</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A3, copy_A3);</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A3, b3, x, algo);</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  printf(<span class="stringliteral">"x3 = "</span>);</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  }</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  puts(<span class="stringliteral">"*** Test: Solve with LU decomposition ***"</span>);</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a>;</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A4[5][5] = {</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  { 0.1712, 0.0971, 0.0344, 0.1869, 0.7547 },</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  { 0.7060, 0.8235, 0.4387, 0.4898, 0.2760 },</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  { 0.0318, 0.6948, 0.3816, 0.4456, 0.6797 },</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  { 0.2769, 0.3171, 0.7655, 0.6463, 0.6551 },</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  { 0.0462, 0.9502, 0.7952, 0.7094, 0.1626 }</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  };</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x4[5];</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b4[5] = { 0.1190, 0.4984, 0.9597, 0.3404, 0.5853 };</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  m = 5;</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  n = 5;</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A4[m][m];</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A4, copy_A4);</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A4, b4, x4, algo);</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  printf(<span class="stringliteral">"x4 = "</span>);</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x4, 3, 4);</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  </div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dot_b4[5];</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(m, m, A4, x4, dot_b4);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  printf(<span class="stringliteral">"dot_b4 = "</span>);</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, dot_b4, 3, 4);</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> }</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div> +<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371"> 216</a></span> <span class="keywordtype">void</span> <a class="code" href="solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371">solve_big_matrix_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> {</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[10][5] = { { 0.8147, 0.1576, 0.6557, 0.7060, 0.4387 },</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  { 0.9058, 0.9706, 0.0357, 0.0318, 0.3816 },</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  { 0.1270, 0.9572, 0.8491, 0.2769, 0.7655 },</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  { 0.9134, 0.4854, 0.9340, 0.0462, 0.7952 },</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  { 0.6324, 0.8003, 0.6787, 0.0971, 0.1869 },</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  { 0.0975, 0.1419, 0.7577, 0.8235, 0.4898 },</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  { 0.2785, 0.4218, 0.7431, 0.6948, 0.4456 },</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  { 0.5469, 0.9157, 0.3922, 0.3171, 0.6463 },</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  { 0.9575, 0.7922, 0.6555, 0.9502, 0.7094 },</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  { 0.9649, 0.9595, 0.1712, 0.0344, 0.7547 } };</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  uint8_t m = 10, n = 5;</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  int8_t error_no;</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">enum</span> <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a> algo;</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> copy_A[m][n];</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[10] = { 1.2902, 0.8819, 0.9721, 1.2347, 0.9185, 0.9844, 1.0627,</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  1.0280, 1.7283, 1.0618 };</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> x[n];</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  printf(<span class="stringliteral">"A = "</span>);</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a>(m, n, A, 3, 4);</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  puts(<span class="stringliteral">"Moore Penrose: "</span>);</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a>;</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A, b, x, algo);</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  puts(<span class="stringliteral">"Householder: "</span>);</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a>;</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A, b, x, algo);</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  puts(<span class="stringliteral">"Givens: "</span>);</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  algo = <a class="code" href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a>;</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a>(m, n, A, copy_A);</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  error_no = <a class="code" href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a>(m, n, copy_A, b, x, algo);</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (error_no > 0) {</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  printf(<span class="stringliteral">"x = "</span>);</div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(n, x, 3, 4);</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991">Givens</a></div><div class="ttdoc">Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00033">pseudo_inverse.h:33</a></div></div> +<div class="ttc" id="asolve__test_8c_html_acb6c59801ca040ac66f436b8f332a371"><div class="ttname"><a href="solve__test_8c.html#acb6c59801ca040ac66f436b8f332a371">solve_big_matrix_test</a></div><div class="ttdeci">void solve_big_matrix_test(void)</div><div class="ttdoc">Example of solving an (10,5) linear equation system.</div><div class="ttdef"><b>Definition:</b> <a href="solve__test_8c_source.html#l00216">solve_test.c:216</a></div></div> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06">Moore_Penrose</a></div><div class="ttdoc">Moore–Penrose algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00031">pseudo_inverse.h:31</a></div></div> +<div class="ttc" id="asolve_8h_html"><div class="ttname"><a href="solve_8h.html">solve.h</a></div><div class="ttdoc">Enables to solve systems of linear equations Ax = b for x.</div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amatrix_8h_html_a82f374a9b8b215f0ef53d35401eae524"><div class="ttname"><a href="matrix_8h.html#a82f374a9b8b215f0ef53d35401eae524">matrix_flex_print</a></div><div class="ttdeci">void matrix_flex_print(uint8_t m, uint8_t n, matrix_t matrix[m][n], uint8_t before_dec, uint8_t after_dec)</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00220">matrix.c:220</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04">Householder</a></div><div class="ttdoc">Householder algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00032">pseudo_inverse.h:32</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3">ALGORITHM</a></div><div class="ttdeci">ALGORITHM</div><div class="ttdoc">Possible algorithms to compute the pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00030">pseudo_inverse.h:30</a></div></div> +<div class="ttc" id="asolve_8h_html_a829e66492dc3073c0f7a190cda9b7db1"><div class="ttname"><a href="solve_8h.html#a829e66492dc3073c0f7a190cda9b7db1">solve</a></div><div class="ttdeci">int8_t solve(uint8_t m, uint8_t n, matrix_t A[][n], matrix_t b[m], matrix_t x_sol[n], enum ALGORITHM algo)</div><div class="ttdoc">Solve an (m n) linear system Ax = b by using the Moore–Penrose, Householder, or the Givens algorithm...</div><div class="ttdef"><b>Definition:</b> <a href="solve_8c_source.html#l00035">solve.c:35</a></div></div> +<div class="ttc" id="apseudo__inverse_8h_html_aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220"><div class="ttname"><a href="pseudo__inverse_8h.html#aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220">Gauss</a></div><div class="ttdoc">Gaussian elimination with pivoting algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="pseudo__inverse_8h_source.html#l00034">pseudo_inverse.h:34</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae8d8daa117e9f96a5e29fe6c76c4998c"><div class="ttname"><a href="matrix_8h.html#ae8d8daa117e9f96a5e29fe6c76c4998c">matrix_copy</a></div><div class="ttdeci">void matrix_copy(uint8_t m, uint8_t n, matrix_t src_matrix[m][n], matrix_t dest_matrix[m][n])</div><div class="ttdoc">Copy the elements of a matrix to another matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00083">matrix.c:83</a></div></div> +<div class="ttc" id="asolve__test_8c_html_a468b4492daa139d24a18624526001220"><div class="ttname"><a href="solve__test_8c.html#a468b4492daa139d24a18624526001220">solve_test</a></div><div class="ttdeci">void solve_test(void)</div><div class="ttdoc">Examples of solving linear equation systems.</div><div class="ttdef"><b>Definition:</b> <a href="solve__test_8c_source.html#l00029">solve_test.c:29</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</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_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c00c1b9b31ec8172d0e33f1bbb777699.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="solve__test_8c.html">solve_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/solve__test_8h.html b/doc/doxygen/html/solve__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..582fb43a33c204a2957d9c06270c8999da547869 --- /dev/null +++ b/doc/doxygen/html/solve__test_8h.html @@ -0,0 +1,130 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">solve_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of solving linear equation systems. +<a href="#details">More...</a></p> + +<p><a href="solve__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a468b4492daa139d24a18624526001220"><td class="memItemLeft" align="right" valign="top"><a id="a468b4492daa139d24a18624526001220"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="solve__test_8h.html#a468b4492daa139d24a18624526001220">solve_test</a> (void)</td></tr> +<tr class="memdesc:a468b4492daa139d24a18624526001220"><td class="mdescLeft"> </td><td class="mdescRight">Examples of solving linear equation systems. <br /></td></tr> +<tr class="separator:a468b4492daa139d24a18624526001220"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acb6c59801ca040ac66f436b8f332a371"><td class="memItemLeft" align="right" valign="top"><a id="acb6c59801ca040ac66f436b8f332a371"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371">solve_big_matrix_test</a> (void)</td></tr> +<tr class="memdesc:acb6c59801ca040ac66f436b8f332a371"><td class="mdescLeft"> </td><td class="mdescRight">Example of solving an (10,5) linear equation system. <br /></td></tr> +<tr class="separator:acb6c59801ca040ac66f436b8f332a371"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of solving linear equation systems. </p> +<p>Solving linear equation systems examples (see <a class="el" href="solve_8h.html">solve</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="solve__test_8h_source.html">solve_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c00c1b9b31ec8172d0e33f1bbb777699.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="dir_920b8470fa3846349f110139d8392508.html">include</a></li><li class="navelem"><a class="el" href="solve__test_8h.html">solve_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/solve__test_8h.js b/doc/doxygen/html/solve__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..5f4e2c578658290294055b3379047c0a1454d860 --- /dev/null +++ b/doc/doxygen/html/solve__test_8h.js @@ -0,0 +1,5 @@ +var solve__test_8h = +[ + [ "solve_big_matrix_test", "solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371", null ], + [ "solve_test", "solve__test_8h.html#a468b4492daa139d24a18624526001220", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/solve__test_8h_source.html b/doc/doxygen/html/solve__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..fe01ae193cfe698f14b0045f53aa1ea2d83915f1 --- /dev/null +++ b/doc/doxygen/html/solve__test_8h_source.html @@ -0,0 +1,124 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: solve_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('solve__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">solve_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="solve__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef SOLVE_TEST_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define SOLVE_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code" href="solve__test_8h.html#a468b4492daa139d24a18624526001220">solve_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">void</span> <a class="code" href="solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371">solve_big_matrix_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif </span><span class="comment">/* SOLVE_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="asolve__test_8h_html_acb6c59801ca040ac66f436b8f332a371"><div class="ttname"><a href="solve__test_8h.html#acb6c59801ca040ac66f436b8f332a371">solve_big_matrix_test</a></div><div class="ttdeci">void solve_big_matrix_test(void)</div><div class="ttdoc">Example of solving an (10,5) linear equation system.</div><div class="ttdef"><b>Definition:</b> <a href="solve__test_8c_source.html#l00216">solve_test.c:216</a></div></div> +<div class="ttc" id="asolve__test_8h_html_a468b4492daa139d24a18624526001220"><div class="ttname"><a href="solve__test_8h.html#a468b4492daa139d24a18624526001220">solve_test</a></div><div class="ttdeci">void solve_test(void)</div><div class="ttdoc">Examples of solving linear equation systems.</div><div class="ttdef"><b>Definition:</b> <a href="solve__test_8c_source.html#l00029">solve_test.c:29</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c00c1b9b31ec8172d0e33f1bbb777699.html">solve_linear_equations</a></li><li class="navelem"><a class="el" href="dir_920b8470fa3846349f110139d8392508.html">include</a></li><li class="navelem"><a class="el" href="solve__test_8h.html">solve_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/splitbar.png b/doc/doxygen/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e Binary files /dev/null and b/doc/doxygen/html/splitbar.png differ diff --git a/doc/doxygen/html/structmatrix__dim__t.html b/doc/doxygen/html/structmatrix__dim__t.html new file mode 100644 index 0000000000000000000000000000000000000000..d3a0729d30dfff98e6b3aaebb17fe8d80d551c5d --- /dev/null +++ b/doc/doxygen/html/structmatrix__dim__t.html @@ -0,0 +1,131 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: matrix_dim_t Struct 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('structmatrix__dim__t.html','');}); +/* @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="#pub-attribs">Data Fields</a> </div> + <div class="headertitle"> +<div class="title">matrix_dim_t Struct Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>A structure to define the row and column number of a matrix. + <a href="structmatrix__dim__t.html#details">More...</a></p> + +<p><code>#include <<a class="el" href="matrix_8h_source.html">matrix.h</a>></code></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a> +Data Fields</h2></td></tr> +<tr class="memitem:a853244a0562d43bfdcdcb704ed707721"><td class="memItemLeft" align="right" valign="top"><a id="a853244a0562d43bfdcdcb704ed707721"></a> +uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a></td></tr> +<tr class="memdesc:a853244a0562d43bfdcdcb704ed707721"><td class="mdescLeft"> </td><td class="mdescRight">the row number <br /></td></tr> +<tr class="separator:a853244a0562d43bfdcdcb704ed707721"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aac6b6ff205184047714d5c22019bdbab"><td class="memItemLeft" align="right" valign="top"><a id="aac6b6ff205184047714d5c22019bdbab"></a> +uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a></td></tr> +<tr class="memdesc:aac6b6ff205184047714d5c22019bdbab"><td class="mdescLeft"> </td><td class="mdescRight">the column number <br /></td></tr> +<tr class="separator:aac6b6ff205184047714d5c22019bdbab"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>A structure to define the row and column number of a matrix. </p> + +<p class="definition">Definition at line <a class="el" href="matrix_8h_source.html#l00060">60</a> of file <a class="el" href="matrix_8h_source.html">matrix.h</a>.</p> +</div><hr/>The documentation for this struct was generated from the following file:<ul> +<li><a class="el" href="matrix_8h_source.html">matrix.h</a></li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/structmatrix__dim__t.js b/doc/doxygen/html/structmatrix__dim__t.js new file mode 100644 index 0000000000000000000000000000000000000000..e864235eef8dbe8bb8fa92778119f398c334ae60 --- /dev/null +++ b/doc/doxygen/html/structmatrix__dim__t.js @@ -0,0 +1,5 @@ +var structmatrix__dim__t = +[ + [ "col_num", "structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab", null ], + [ "row_num", "structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/svd_8c.html b/doc/doxygen/html/svd_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..48216d9296c6d1e88816e435c15df7c70d457bb2 --- /dev/null +++ b/doc/doxygen/html/svd_8c.html @@ -0,0 +1,557 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">svd.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Algorithm for the Singular Value Decomposition (SVD). Provide necessary methods to compute the compact SVD of a matrix. A = U*S*V, where U is a (m x l) orthogonal matrix, S is a (l x l) diagonal matrix, V is a (l x n) orthogonal matrix, and l = min(m,n). The SVD is computed by using the Golub–Kahan–Reinsch algorithm that works in two phases: bidiagonalization and a reduction to the diagonal form phase. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdbool.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="svd_8h_source.html">svd.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="svd_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a8194826f85cc3105c4d8d4f342ca8df8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a> (uint8_t m, uint8_t n, <a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> *u_dim)</td></tr> +<tr class="memdesc:a8194826f85cc3105c4d8d4f342ca8df8"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the dimension of the matrix U. <a href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8">More...</a><br /></td></tr> +<tr class="separator:a8194826f85cc3105c4d8d4f342ca8df8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aeb7ac3eac076a0f52c729849599808a6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html#aeb7ac3eac076a0f52c729849599808a6">svd_get_S_dim</a> (uint8_t m, uint8_t n, <a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> *s_dim)</td></tr> +<tr class="memdesc:aeb7ac3eac076a0f52c729849599808a6"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the dimension of the matrix S. <a href="svd_8c.html#aeb7ac3eac076a0f52c729849599808a6">More...</a><br /></td></tr> +<tr class="separator:aeb7ac3eac076a0f52c729849599808a6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa65fbd187ce13d0da98cecb40cfa3b07"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd_get_V_dim</a> (uint8_t m, uint8_t n, <a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> *v_dim)</td></tr> +<tr class="memdesc:aa65fbd187ce13d0da98cecb40cfa3b07"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the dimension of the matrix V. <a href="svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07">More...</a><br /></td></tr> +<tr class="separator:aa65fbd187ce13d0da98cecb40cfa3b07"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a91b85e542b1fc44d3500ba52aecb8e0e"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a> (uint8_t m, uint8_t n)</td></tr> +<tr class="memdesc:a91b85e542b1fc44d3500ba52aecb8e0e"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the number of the singular values. <a href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e">More...</a><br /></td></tr> +<tr class="separator:a91b85e542b1fc44d3500ba52aecb8e0e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acdccfce5b7732e6334ca5a521c57e63e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], uint8_t u_m, uint8_t u_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_m][u_n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_n][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n], uint8_t sing_vec_length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_vec[])</td></tr> +<tr class="memdesc:acdccfce5b7732e6334ca5a521c57e63e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Singular-Value Decomposition (SVD) of a matrix. <a href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">More...</a><br /></td></tr> +<tr class="separator:acdccfce5b7732e6334ca5a521c57e63e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae92d53fe415ccfd63a21bb36936294cb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a> (uint8_t m, uint8_t n, uint8_t length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> recip_singl_values_arr[])</td></tr> +<tr class="memdesc:ae92d53fe415ccfd63a21bb36936294cb"><td class="mdescLeft"> </td><td class="mdescRight">Compute the reciprocal singular values. <a href="svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb">More...</a><br /></td></tr> +<tr class="separator:ae92d53fe415ccfd63a21bb36936294cb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a55b4a07eb7dbd09f7fa1d15debd44595"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_arr[m][n], uint8_t i)</td></tr> +<tr class="memdesc:a55b4a07eb7dbd09f7fa1d15debd44595"><td class="mdescLeft"> </td><td class="mdescRight">Compute and print the SVD of a matrix. <a href="svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595">More...</a><br /></td></tr> +<tr class="separator:a55b4a07eb7dbd09f7fa1d15debd44595"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Algorithm for the Singular Value Decomposition (SVD). Provide necessary methods to compute the compact SVD of a matrix. A = U*S*V, where U is a (m x l) orthogonal matrix, S is a (l x l) diagonal matrix, V is a (l x n) orthogonal matrix, and l = min(m,n). The SVD is computed by using the Golub–Kahan–Reinsch algorithm that works in two phases: bidiagonalization and a reduction to the diagonal form phase. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="acdccfce5b7732e6334ca5a521c57e63e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acdccfce5b7732e6334ca5a521c57e63e">◆ </a></span>svd()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>u_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>u_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>U</em>[u_m][u_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>S</em>[u_n][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>V</em>[n][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>sing_vec_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>singl_values_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Singular-Value Decomposition (SVD) of a matrix. </p> +<p>Matrix A is transformed to A = U*S*V, where U and V are unitary matrices, and S is a diagonal matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">u_m</td><td>row number of the matrix U. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">u_n</td><td>column number of the matrix U. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">U[][]</td><td>pointer to the matrix U. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">S[][]</td><td>pointer to the matrix S. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">V[][]</td><td>pointer to the matrix V. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">sing_vec_length</td><td>length of the singular vector. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">singl_values_vec[]</td><td>pointer to the vector saving the singular values. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00119">119</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="a55b4a07eb7dbd09f7fa1d15debd44595"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a55b4a07eb7dbd09f7fa1d15debd44595">◆ </a></span>svd_compute_print_U_S_V_s()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_compute_print_U_S_V_s </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix_arr</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute and print the SVD of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix_arr[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>label. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00766">766</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8c_source.html#l00141">matrix_print()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00119">svd()</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, and <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="svd__test_8c_source.html#l00032">svd_test()</a>.</p> + +</div> +</div> +<a id="ae92d53fe415ccfd63a21bb36936294cb"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae92d53fe415ccfd63a21bb36936294cb">◆ </a></span>svd_get_reciproc_singular_values()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_reciproc_singular_values </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>singl_values_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>recip_singl_values_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the reciprocal singular values. </p> +<p>This method is based on the singular values.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>length of the array of single values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">singl_values_arr</td><td>pointer to the array of single values. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">recip_singl_values_arr</td><td>pointer to the array of the reciprocal singular values. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00747">747</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="aeb7ac3eac076a0f52c729849599808a6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aeb7ac3eac076a0f52c729849599808a6">◆ </a></span>svd_get_S_dim()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_S_dim </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> * </td> + <td class="paramname"><em>s_dim</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the dimension of the matrix S. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">s_dim</td><td>pointer to the dimension struct. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00102">102</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>.</p> + +</div> +</div> +<a id="a91b85e542b1fc44d3500ba52aecb8e0e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a91b85e542b1fc44d3500ba52aecb8e0e">◆ </a></span>svd_get_single_values_num()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t svd_get_single_values_num </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the number of the singular values. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the number of the singular values. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00114">114</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="a8194826f85cc3105c4d8d4f342ca8df8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8194826f85cc3105c4d8d4f342ca8df8">◆ </a></span>svd_get_U_dim()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_U_dim </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> * </td> + <td class="paramname"><em>u_dim</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the dimension of the matrix U. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">u_dim</td><td>pointer to the dimension struct. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00096">96</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, and <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="aa65fbd187ce13d0da98cecb40cfa3b07"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa65fbd187ce13d0da98cecb40cfa3b07">◆ </a></span>svd_get_V_dim()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_V_dim </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> * </td> + <td class="paramname"><em>v_dim</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the dimension of the matrix V. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">v_dim</td><td>pointer to the dimension struct. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00108">108</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, and <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="svd_8c.html">svd.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/svd_8c.js b/doc/doxygen/html/svd_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..1c6e52106d6a8e14b37df85919eecba7b7dd78a5 --- /dev/null +++ b/doc/doxygen/html/svd_8c.js @@ -0,0 +1,10 @@ +var svd_8c = +[ + [ "svd", "svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e", null ], + [ "svd_compute_print_U_S_V_s", "svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595", null ], + [ "svd_get_reciproc_singular_values", "svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb", null ], + [ "svd_get_S_dim", "svd_8c.html#aeb7ac3eac076a0f52c729849599808a6", null ], + [ "svd_get_single_values_num", "svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e", null ], + [ "svd_get_U_dim", "svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8", null ], + [ "svd_get_V_dim", "svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/svd_8c_source.html b/doc/doxygen/html/svd_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..28354c1adb549a7d5b4fc07a11367820531bd2d4 --- /dev/null +++ b/doc/doxygen/html/svd_8c_source.html @@ -0,0 +1,839 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">svd.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="svd_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="svd_8h.html">svd.h</a>"</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_bidiagonal_trans_and_store_diag_elem(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  uint8_t u_m, uint8_t u_n,</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U0[u_m][u_n],</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V0[n][n],</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sup_diag_elem_vec[],</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_elem_vec[]</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  );</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_setup_bi_diagonal_matrix(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  uint8_t u_n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U1[m][u_n],</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V1[n][n],</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sup_diag_elem_vec[],</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_elem_vec[]</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  );</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_compute_singular_values_U_V(uint8_t m, uint8_t n, uint8_t u_n,</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[m][u_n],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n],</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sup_diag_elem_vec[],</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_elem_vec[]);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_generate_S(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[n][n],</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  uint8_t sing_vec_length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_vec[]);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">static</span> int32_t min(int32_t a, int32_t b)</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">if</span> (a < b) {</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">static</span> int32_t max(int32_t a, int32_t b)</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> {</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (a > b) {</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">static</span> <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> get_abs_max(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> arr[], uint8_t length)</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> {</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  uint8_t i;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> max = fabs(arr[0]);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">for</span> (i = 1; i < length; i++) {</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (fabs(arr[i]) > max) {</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  max = fabs(arr[i]);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> max;</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8"> 96</a></span> <span class="keywordtype">void</span> <a class="code" href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(uint8_t m, uint8_t n, <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> *u_dim)</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  u_dim-><a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a> = m;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  u_dim-><a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a> = min(m, n);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div> +<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="svd_8c.html#aeb7ac3eac076a0f52c729849599808a6"> 102</a></span> <span class="keywordtype">void</span> <a class="code" href="svd_8c.html#aeb7ac3eac076a0f52c729849599808a6">svd_get_S_dim</a>(uint8_t m, uint8_t n, <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> *s_dim)</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> {</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  s_dim-><a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a> = min(m, n);</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  s_dim-><a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a> = n;</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div> +<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07"> 108</a></span> <span class="keywordtype">void</span> <a class="code" href="svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd_get_V_dim</a>(uint8_t m, uint8_t n, <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> *v_dim)</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  v_dim-><a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a> = m;</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  v_dim-><a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a> = n;</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e"> 114</a></span> uint8_t <a class="code" href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(uint8_t m, uint8_t n)</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> {</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">return</span> min(m + 1, n);</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> }</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div> +<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e"> 119</a></span> <span class="keywordtype">void</span> <a class="code" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  uint8_t u_m, uint8_t u_n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_m][u_n],</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_n][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n],</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  uint8_t sing_vec_length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_vec[])</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> {</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  int8_t u_n_min = min(m, n);</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sup_diag_elem_vec[n];</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(m, u_n_min, U);</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(n, n, S);</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a>(n, n, V);</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  memset(singl_values_vec, 0, <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>) * sing_vec_length);</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  svd_bidiagonal_trans_and_store_diag_elem(m, n, A, u_m, u_n, U, V,</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  sup_diag_elem_vec, singl_values_vec);</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  svd_setup_bi_diagonal_matrix(m, n, A, u_n, U, V, sup_diag_elem_vec,</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  singl_values_vec);</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  svd_compute_singular_values_U_V(m, n, u_n, U, V, sup_diag_elem_vec,</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  singl_values_vec);</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  svd_generate_S(u_n, n, S, sing_vec_length, singl_values_vec);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_bidiagonal_trans_and_store_diag_elem(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  uint8_t u_m, uint8_t u_n,</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U0[u_m][u_n],</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V0[n][n],</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sup_diag_elem_vec[],</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_elem_vec[])</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> {</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordtype">int</span> col_trans_num = min(m - 1, n);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordtype">int</span> row_trans_num = max(0, min(n - 2, m));</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">int</span> upper_lim = max(col_trans_num, row_trans_num);</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> index = 0; index < upper_lim; index++) {</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (index < col_trans_num) {</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  diag_elem_vec[index] = 0;</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row_num = index; row_num < m; row_num++) {</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  diag_elem_vec[index] = hypot(</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  diag_elem_vec[index],</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  A[row_num][index]);</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">if</span> (diag_elem_vec[index] != 0.0) {</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">if</span> (A[index][index] < 0.0) {</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  diag_elem_vec[index] =</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  -diag_elem_vec[index];</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row_num = index; row_num < m;</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  row_num++) {</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  A[row_num][index] /=</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  diag_elem_vec[index];</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  A[index][index] += 1.0;</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  diag_elem_vec[index] = -diag_elem_vec[index];</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> col_num = index + 1; col_num < n; col_num++) {</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span> ((index < col_trans_num)</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  & (diag_elem_vec[index] != 0.0)) {</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  </div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">/* Transformation */</span></div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> transf_val = 0;</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index; i < m; i++) {</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  transf_val += A[i][index]</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  * A[i][col_num];</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  transf_val = -transf_val / A[index][index];</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index; i < m; i++) {</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  A[i][col_num] += transf_val</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  * A[i][index];</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  sup_diag_elem_vec[col_num] = A[index][col_num];</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (index < col_trans_num) {</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">/* Place a part of the bi-diagonal transformation in U0 */</span></div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row_num = index; row_num < m; row_num++) {</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  U0[row_num][index] = A[row_num][index];</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (index < row_trans_num) {</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  sup_diag_elem_vec[index] = 0;</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index + 1; i < n; i++) {</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  sup_diag_elem_vec[index] = hypot(</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  sup_diag_elem_vec[index],</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  sup_diag_elem_vec[i]);</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">if</span> (sup_diag_elem_vec[index] != 0.0) {</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (sup_diag_elem_vec[index + 1] < 0.0) {</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  sup_diag_elem_vec[index] =</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  -sup_diag_elem_vec[index];</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index + 1; i < n; i++) {</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  sup_diag_elem_vec[i] /=</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  sup_diag_elem_vec[index];</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  sup_diag_elem_vec[index + 1] += 1.0;</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  sup_diag_elem_vec[index] = -sup_diag_elem_vec[index];</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">if</span> ((index + 1 < m)</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  & (sup_diag_elem_vec[index] != 0.0)) {</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> transf_vec[m];</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">/* Compute the transformation vector */</span></div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index + 1; i < m; i++) {</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  transf_vec[i] = 0.0;</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = index + 1; j < n; j++) {</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = index + 1; i < m; i++) {</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  transf_vec[i] +=</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  sup_diag_elem_vec[j]</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  * A[i][j];</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="comment">/* Reduce the matrix */</span></div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> col_num = index + 1; col_num < n;</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  col_num++) {</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> t =</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  -sup_diag_elem_vec[col_num]</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  / sup_diag_elem_vec[index</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  + 1];</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row_num = index + 1;</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  row_num < m;</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  row_num++) {</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  A[row_num][col_num] +=</div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  t</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  * transf_vec[row_num];</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  </div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">/* Place a part of the bi-diagonal transformation in V0 */</span></div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row_num = index + 1; row_num < n; row_num++) {</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  V0[row_num][index] = sup_diag_elem_vec[row_num];</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> }</div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_setup_bi_diagonal_matrix(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  uint8_t u_n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U1[m][u_n],</div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V1[n][n],</div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sup_diag_elem_vec[],</div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_elem_vec[])</div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> {</div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordtype">int</span> col_trans_num = min(m - 1, n);</div> +<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordtype">int</span> row_trans_num = max(0, min(n - 2, m));</div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  int8_t upp_col_num = min(m, n);</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordtype">int</span> p_index = min(n, m + 1);</div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (col_trans_num < n) {</div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  diag_elem_vec[col_trans_num] = A[col_trans_num][col_trans_num];</div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">if</span> (m < p_index) {</div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  diag_elem_vec[p_index - 1] = 0.0;</div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">if</span> (row_trans_num + 1 < p_index) {</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  sup_diag_elem_vec[row_trans_num] =</div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  A[row_trans_num][p_index - 1];</div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  sup_diag_elem_vec[p_index - 1] = 0.0;</div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  </div> +<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="comment">/* Generate the matrix U1 */</span></div> +<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = col_trans_num; j < upp_col_num; j++) {</div> +<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  U1[i][j] = 0.0;</div> +<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div> +<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  U1[j][j] = 1.0;</div> +<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div> +<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = col_trans_num - 1; k >= 0; k--) {</div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">if</span> (diag_elem_vec[k] != 0.0) {</div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = k + 1; j < upp_col_num; j++) {</div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> factor_t = 0;</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k; i < m; i++) {</div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  factor_t += U1[i][k] * U1[i][j];</div> +<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  factor_t = -factor_t / U1[k][k];</div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k; i < m; i++) {</div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  U1[i][j] += factor_t * U1[i][k];</div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div> +<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div> +<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k; i < m; i++) {</div> +<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  U1[i][k] = -U1[i][k];</div> +<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div> +<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  U1[k][k] += 1.0;</div> +<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < k - 1; i++) {</div> +<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  U1[i][k] = 0.0;</div> +<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div> +<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div> +<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  U1[i][k] = 0.0;</div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div> +<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  U1[k][k] = 1.0;</div> +<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div> +<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">/* Generate the matrix V1 */</span></div> +<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = n - 1; k >= 0; k--) {</div> +<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">if</span> ((k < row_trans_num) & (sup_diag_elem_vec[k] != 0.0)) {</div> +<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = k + 1; j < n; j++) {</div> +<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> t = 0;</div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k + 1; i < n; i++) {</div> +<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  t += V1[i][k] * V1[i][j];</div> +<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  }</div> +<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  t = -t / V1[k + 1][k];</div> +<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = k + 1; i < n; i++) {</div> +<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  V1[i][j] += t * V1[i][k];</div> +<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div> +<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div> +<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div> +<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  V1[i][k] = 0.0;</div> +<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div> +<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  V1[k][k] = 1.0;</div> +<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  }</div> +<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> }</div> +<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  </div> +<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_compute_singular_values_U_V(uint8_t m, uint8_t n, uint8_t u_n,</div> +<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[m][u_n],</div> +<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n],</div> +<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sup_diag_elem_vec[],</div> +<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> diag_elem_vec[])</div> +<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> {</div> +<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordtype">int</span> p_index = min(n, m + 1);</div> +<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordtype">int</span> max_k = p_index - 1;</div> +<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordtype">int</span> iter_num = 0;</div> +<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = pow(2.0, -52.0);</div> +<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tol = pow(2.0, -966.0);</div> +<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  </div> +<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">while</span> (p_index > 0) {</div> +<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordtype">int</span> k_index, case_num;</div> +<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  </div> +<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">for</span> (k_index = p_index - 2; k_index >= -1; k_index--) {</div> +<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">if</span> (k_index == -1) {</div> +<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div> +<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">if</span> (fabs(sup_diag_elem_vec[k_index])</div> +<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <=</div> +<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  tol</div> +<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  + eps</div> +<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  * (fabs(</div> +<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  diag_elem_vec[k_index])</div> +<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  + fabs(</div> +<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  diag_elem_vec[k_index</div> +<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  + 1]))) {</div> +<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  sup_diag_elem_vec[k_index] = 0.0;</div> +<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div> +<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  }</div> +<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (k_index == p_index - 2) {</div> +<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  case_num = <a class="code" href="svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a">SVD_ORDER_ABSOLUTE_SING_VALUES</a>; <span class="comment">//4</span></div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordtype">int</span> ks_index;</div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">for</span> (ks_index = p_index - 1; ks_index >= k_index;</div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  ks_index--) {</div> +<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">if</span> (ks_index == k_index) {</div> +<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div> +<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> t =</div> +<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  (ks_index != p_index ?</div> +<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  fabs(</div> +<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  sup_diag_elem_vec[ks_index]) :</div> +<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  0.)</div> +<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  +</div> +<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  (ks_index</div> +<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  != k_index</div> +<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  + 1 ?</div> +<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  fabs(</div> +<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  sup_diag_elem_vec[ks_index</div> +<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  - 1]) :</div> +<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  0.);</div> +<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">if</span> (fabs(diag_elem_vec[ks_index])</div> +<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <= tol + eps * t) {</div> +<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  diag_elem_vec[ks_index] = 0.0;</div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  }</div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">if</span> (ks_index == k_index) {</div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  case_num = <a class="code" href="svd_8h.html#af9e7db6685a0631312bfb93cc58dd756">SVD_QR_STEP</a>; <span class="comment">//3</span></div> +<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  }</div> +<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ks_index == p_index - 1) {</div> +<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  case_num = <a class="code" href="svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5">SVD_COMPUTE_NEGLIGIBLE_VALUES</a>; <span class="comment">//1</span></div> +<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div> +<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  case_num = <a class="code" href="svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4">SVD_SPLIT_AT_NEGLIGIBLE_VALUES</a>; <span class="comment">//2</span></div> +<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  k_index = ks_index;</div> +<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  }</div> +<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div> +<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  k_index++;</div> +<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  </div> +<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">switch</span> (case_num) {</div> +<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  </div> +<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">/* Compute negligible values */</span></div> +<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">case</span> <a class="code" href="svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5">SVD_COMPUTE_NEGLIGIBLE_VALUES</a>: {</div> +<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_val = sup_diag_elem_vec[p_index - 2];</div> +<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  sup_diag_elem_vec[p_index - 2] = 0.0;</div> +<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = p_index - 2; j >= k_index; j--) {</div> +<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> t_val = hypot(diag_elem_vec[j], f_val);</div> +<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> split_cs_fac = diag_elem_vec[j]</div> +<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  / t_val;</div> +<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> split_sn_fac = f_val / t_val;</div> +<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  diag_elem_vec[j] = t_val;</div> +<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span> (j != k_index) {</div> +<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  f_val = -split_sn_fac</div> +<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  * sup_diag_elem_vec[j</div> +<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  - 1];</div> +<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  sup_diag_elem_vec[j - 1] = split_cs_fac</div> +<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  * sup_diag_elem_vec[j</div> +<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  - 1];</div> +<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div> +<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">/* Compute the V matrix */</span></div> +<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  t_val =</div> +<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  split_cs_fac * V[i][j]</div> +<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  + split_sn_fac</div> +<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  * V[i][p_index</div> +<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  - 1];</div> +<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  V[i][p_index - 1] =</div> +<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  -split_sn_fac * V[i][j]</div> +<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  + split_cs_fac</div> +<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  * V[i][p_index</div> +<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  - 1];</div> +<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  V[i][j] = t_val;</div> +<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div> +<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  }</div> +<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  }</div> +<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  </div> +<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="comment">/* Split at negligible values sup_diag_elem_vec(k) */</span></div> +<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">case</span> <a class="code" href="svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4">SVD_SPLIT_AT_NEGLIGIBLE_VALUES</a>: {</div> +<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_val = sup_diag_elem_vec[k_index - 1];</div> +<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  sup_diag_elem_vec[k_index - 1] = 0.0;</div> +<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = k_index; j < p_index; j++) {</div> +<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> t_val = hypot(diag_elem_vec[j], f_val);</div> +<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> split_cs_fac = diag_elem_vec[j]</div> +<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  / t_val;</div> +<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> split_sn_fac = f_val / t_val;</div> +<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  diag_elem_vec[j] = t_val;</div> +<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  f_val = -split_sn_fac * sup_diag_elem_vec[j];</div> +<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  sup_diag_elem_vec[j] = split_cs_fac</div> +<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  * sup_diag_elem_vec[j];</div> +<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  </div> +<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="comment">/* Compute the U matrix */</span></div> +<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  t_val =</div> +<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  split_cs_fac * U[i][j]</div> +<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  + split_sn_fac</div> +<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  * U[i][k_index</div> +<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  - 1];</div> +<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  U[i][k_index - 1] =</div> +<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  -split_sn_fac * U[i][j]</div> +<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  + split_cs_fac</div> +<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  * U[i][k_index</div> +<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  - 1];</div> +<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  U[i][j] = t_val;</div> +<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div> +<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  }</div> +<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div> +<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  </div> +<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="comment">/* The QR Step */</span></div> +<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">case</span> <a class="code" href="svd_8h.html#af9e7db6685a0631312bfb93cc58dd756">SVD_QR_STEP</a>: {</div> +<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  </div> +<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> buff[5] = { diag_elem_vec[p_index - 1],</div> +<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  diag_elem_vec[p_index - 2],</div> +<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  sup_diag_elem_vec[p_index - 2],</div> +<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  diag_elem_vec[k_index],</div> +<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  sup_diag_elem_vec[k_index] };</div> +<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> scale = get_abs_max(buff, 5);</div> +<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  </div> +<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> p_diag_elem = diag_elem_vec[p_index - 1]</div> +<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  / scale;</div> +<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> p_minus_diag_elem = diag_elem_vec[p_index - 2]</div> +<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  / scale;</div> +<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> p_minus_sup_diag_elem =</div> +<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  sup_diag_elem_vec[p_index - 2] / scale;</div> +<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k_diag_elem = diag_elem_vec[k_index] / scale;</div> +<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k_sup_diag_elem = sup_diag_elem_vec[k_index]</div> +<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  / scale;</div> +<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> d_val = ((p_minus_diag_elem + p_diag_elem)</div> +<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  * (p_minus_diag_elem - p_diag_elem)</div> +<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  + p_minus_sup_diag_elem</div> +<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  * p_minus_sup_diag_elem)</div> +<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  / 2.0;</div> +<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> e_val = (p_diag_elem * p_minus_sup_diag_elem)</div> +<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  * (p_diag_elem * p_minus_sup_diag_elem);</div> +<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> wilkinson_shift = 0.0;</div> +<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keywordflow">if</span> ((d_val != 0.0) | (e_val != 0.0)) {</div> +<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  wilkinson_shift = sqrt(d_val * d_val + e_val);</div> +<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">if</span> (d_val < 0.0) {</div> +<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  wilkinson_shift = -wilkinson_shift;</div> +<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  }</div> +<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  wilkinson_shift = e_val</div> +<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  / (d_val + wilkinson_shift);</div> +<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  }</div> +<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> f_val = (k_diag_elem + p_diag_elem)</div> +<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  * (k_diag_elem - p_diag_elem)</div> +<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  + wilkinson_shift;</div> +<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> g_val = k_diag_elem * k_sup_diag_elem;</div> +<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  </div> +<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = k_index; j < p_index - 1; j++) {</div> +<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> t = hypot(f_val, g_val);</div> +<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> split_cs_fac = f_val / t;</div> +<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> split_sn_fac = g_val / t;</div> +<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">if</span> (j != k_index) {</div> +<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  sup_diag_elem_vec[j - 1] = t;</div> +<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  }</div> +<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  f_val =</div> +<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  split_cs_fac * diag_elem_vec[j]</div> +<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  + split_sn_fac</div> +<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  * sup_diag_elem_vec[j];</div> +<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  sup_diag_elem_vec[j] =</div> +<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  split_cs_fac</div> +<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  * sup_diag_elem_vec[j]</div> +<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  - split_sn_fac</div> +<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  * diag_elem_vec[j];</div> +<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  g_val = split_sn_fac * diag_elem_vec[j + 1];</div> +<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  diag_elem_vec[j + 1] = split_cs_fac</div> +<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  * diag_elem_vec[j + 1];</div> +<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div> +<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">/* Compute the V matrix */</span></div> +<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  t =</div> +<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  split_cs_fac * V[i][j]</div> +<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  + split_sn_fac</div> +<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  * V[i][j</div> +<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  + 1];</div> +<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  V[i][j + 1] =</div> +<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  -split_sn_fac * V[i][j]</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  + split_cs_fac</div> +<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  * V[i][j</div> +<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  + 1];</div> +<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  V[i][j] = t;</div> +<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div> +<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  </div> +<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  t = hypot(f_val, g_val);</div> +<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  split_cs_fac = f_val / t;</div> +<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  split_sn_fac = g_val / t;</div> +<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  diag_elem_vec[j] = t;</div> +<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  f_val =</div> +<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  split_cs_fac</div> +<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  * sup_diag_elem_vec[j]</div> +<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  + split_sn_fac</div> +<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  * diag_elem_vec[j</div> +<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  + 1];</div> +<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  diag_elem_vec[j + 1] =</div> +<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  -split_sn_fac</div> +<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  * sup_diag_elem_vec[j]</div> +<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  + split_cs_fac</div> +<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  * diag_elem_vec[j</div> +<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  + 1];</div> +<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  g_val = split_sn_fac * sup_diag_elem_vec[j + 1];</div> +<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  sup_diag_elem_vec[j + 1] = split_cs_fac</div> +<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  * sup_diag_elem_vec[j + 1];</div> +<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">if</span> (j < m - 1) {</div> +<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  t =</div> +<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  split_cs_fac</div> +<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  * U[i][j]</div> +<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  + split_sn_fac</div> +<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  * U[i][j</div> +<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  + 1];</div> +<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  U[i][j + 1] =</div> +<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  -split_sn_fac</div> +<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  * U[i][j]</div> +<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  + split_cs_fac</div> +<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  * U[i][j</div> +<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  + 1];</div> +<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  U[i][j] = t;</div> +<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  }</div> +<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  }</div> +<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  }</div> +<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  sup_diag_elem_vec[p_index - 2] = f_val;</div> +<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  iter_num++;</div> +<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div> +<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  </div> +<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="comment">/* Order the absolute singular values */</span></div> +<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">case</span> <a class="code" href="svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a">SVD_ORDER_ABSOLUTE_SING_VALUES</a>: {</div> +<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  </div> +<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">if</span> (diag_elem_vec[k_index] <= 0.0) {</div> +<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  diag_elem_vec[k_index] =</div> +<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  (diag_elem_vec[k_index] < 0.0 ?</div> +<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  -diag_elem_vec[k_index] :</div> +<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  0.0);</div> +<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  </div> +<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  V[i][k_index] = -V[i][k_index];</div> +<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div> +<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  }</div> +<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  </div> +<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">while</span> (k_index < max_k) {</div> +<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">if</span> (diag_elem_vec[k_index]</div> +<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  >= diag_elem_vec[k_index + 1]) {</div> +<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div> +<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> k_diag_elem = diag_elem_vec[k_index];</div> +<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  diag_elem_vec[k_index] = diag_elem_vec[k_index</div> +<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  + 1];</div> +<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  diag_elem_vec[k_index + 1] = k_diag_elem;</div> +<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">if</span> (k_index < n - 1) {</div> +<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  k_diag_elem = V[i][k_index + 1];</div> +<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  V[i][k_index + 1] =</div> +<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  V[i][k_index];</div> +<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  V[i][k_index] = k_diag_elem;</div> +<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div> +<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  }</div> +<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">if</span> (k_index < m - 1) {</div> +<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < m; i++) {</div> +<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  k_diag_elem = U[i][k_index + 1];</div> +<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  U[i][k_index + 1] =</div> +<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  U[i][k_index];</div> +<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  U[i][k_index] = k_diag_elem;</div> +<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  }</div> +<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  }</div> +<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  k_index++;</div> +<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  }</div> +<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  iter_num = 0;</div> +<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  p_index--;</div> +<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  }</div> +<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  }</div> +<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  }</div> +<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> }</div> +<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  </div> +<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="keyword">static</span> <span class="keywordtype">void</span> svd_generate_S(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[n][n],</div> +<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  uint8_t sing_vec_length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_vec[])</div> +<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> {</div> +<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  uint8_t i;</div> +<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  </div> +<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">for</span> (uint8_t j = 0; j < n; j++) {</div> +<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  S[i][j] = 0.0;</div> +<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div> +<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">if</span> (i < sing_vec_length) {</div> +<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  S[i][i] = singl_values_vec[i];</div> +<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div> +<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div> +<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> }</div> +<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  </div> +<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb"> 747</a></span> <span class="keywordtype">void</span> <a class="code" href="svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a>(uint8_t m, uint8_t n, uint8_t length,</div> +<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[],</div> +<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> recip_singl_values_arr[]</div> +<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  )</div> +<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> {</div> +<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  uint8_t i;</div> +<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> eps = pow(2.0, -52.0);</div> +<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> tol = max(m, n) * singl_values_arr[0] * eps;</div> +<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  </div> +<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">if</span> (fabs(singl_values_arr[i]) >= tol) {</div> +<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  recip_singl_values_arr[i] = 1.0 / singl_values_arr[i];</div> +<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div> +<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  recip_singl_values_arr[i] = 0;</div> +<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  }</div> +<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div> +<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> }</div> +<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  </div> +<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595"> 766</a></span> <span class="keywordtype">void</span> <a class="code" href="svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_arr[m][n],</div> +<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  uint8_t i)</div> +<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> {</div> +<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  printf(</div> +<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="stringliteral">"########################## Test %d ##########################\n"</span>,</div> +<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  i);</div> +<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> u_dim;</div> +<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(m, n, &u_dim);</div> +<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>][u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>];</div> +<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>][n];</div> +<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n];</div> +<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  uint8_t s_length = <a class="code" href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(m, n);</div> +<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  </div> +<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  printf(<span class="stringliteral">"matrix%d =\n"</span>, i);</div> +<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(m, n, matrix_arr);</div> +<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[s_length];</div> +<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <a class="code" href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a>(m, n, matrix_arr, u_dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U, S, V, s_length,</div> +<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  s);</div> +<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  </div> +<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  printf(<span class="stringliteral">"U%d =\n"</span>, i);</div> +<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(u_dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U);</div> +<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  </div> +<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  printf(<span class="stringliteral">"S%d =\n"</span>, i);</div> +<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, n, S);</div> +<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  </div> +<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  printf(<span class="stringliteral">"V%d =\n"</span>, i);</div> +<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <a class="code" href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a>(n, n, V);</div> +<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  </div> +<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  printf(<span class="stringliteral">"s%d = "</span>, i);</div> +<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < s_length; i++) {</div> +<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  printf(<span class="stringliteral">"%5.4f "</span>, s[i]);</div> +<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keywordflow">if</span> (i < s_length - 1) {</div> +<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  }</div> +<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  }</div> +<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  </div> +<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="asvd_8c_html_a55b4a07eb7dbd09f7fa1d15debd44595"><div class="ttname"><a href="svd_8c.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a></div><div class="ttdeci">void svd_compute_print_U_S_V_s(uint8_t m, uint8_t n, matrix_t matrix_arr[m][n], uint8_t i)</div><div class="ttdoc">Compute and print the SVD of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00766">svd.c:766</a></div></div> +<div class="ttc" id="asvd_8c_html_ae92d53fe415ccfd63a21bb36936294cb"><div class="ttname"><a href="svd_8c.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a></div><div class="ttdeci">void svd_get_reciproc_singular_values(uint8_t m, uint8_t n, uint8_t length, matrix_t singl_values_arr[], matrix_t recip_singl_values_arr[])</div><div class="ttdoc">Compute the reciprocal singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00747">svd.c:747</a></div></div> +<div class="ttc" id="amatrix_8h_html_a0e06b2cfb86340e88be7b1219bef0ce3"><div class="ttname"><a href="matrix_8h.html#a0e06b2cfb86340e88be7b1219bef0ce3">matrix_clear</a></div><div class="ttdeci">void matrix_clear(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00046">matrix.c:46</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_a853244a0562d43bfdcdcb704ed707721"><div class="ttname"><a href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t::row_num</a></div><div class="ttdeci">uint8_t row_num</div><div class="ttdoc">the row number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00061">matrix.h:61</a></div></div> +<div class="ttc" id="asvd_8h_html_a70d46444b7291fdb50510447bb1ab9a4"><div class="ttname"><a href="svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4">SVD_SPLIT_AT_NEGLIGIBLE_VALUES</a></div><div class="ttdeci">#define SVD_SPLIT_AT_NEGLIGIBLE_VALUES</div><div class="ttdoc">The case of splitting at negligible values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8h_source.html#l00043">svd.h:43</a></div></div> +<div class="ttc" id="asvd_8h_html_af9e7db6685a0631312bfb93cc58dd756"><div class="ttname"><a href="svd_8h.html#af9e7db6685a0631312bfb93cc58dd756">SVD_QR_STEP</a></div><div class="ttdeci">#define SVD_QR_STEP</div><div class="ttdoc">The case of the QR-step.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8h_source.html#l00048">svd.h:48</a></div></div> +<div class="ttc" id="asvd_8h_html_aa2f21266e1086a3971dfd02ee4b48ce5"><div class="ttname"><a href="svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5">SVD_COMPUTE_NEGLIGIBLE_VALUES</a></div><div class="ttdeci">#define SVD_COMPUTE_NEGLIGIBLE_VALUES</div><div class="ttdoc">The case of computing negligible values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8h_source.html#l00038">svd.h:38</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="astructmatrix__dim__t_html"><div class="ttname"><a href="structmatrix__dim__t.html">matrix_dim_t</a></div><div class="ttdoc">A structure to define the row and column number of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00060">matrix.h:60</a></div></div> +<div class="ttc" id="asvd_8c_html_aa65fbd187ce13d0da98cecb40cfa3b07"><div class="ttname"><a href="svd_8c.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd_get_V_dim</a></div><div class="ttdeci">void svd_get_V_dim(uint8_t m, uint8_t n, matrix_dim_t *v_dim)</div><div class="ttdoc">Calculate the dimension of the matrix V.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00108">svd.c:108</a></div></div> +<div class="ttc" id="asvd_8h_html"><div class="ttname"><a href="svd_8h.html">svd.h</a></div><div class="ttdoc">Algorithm for the Singular Value Decomposition (SVD).</div></div> +<div class="ttc" id="asvd_8c_html_acdccfce5b7732e6334ca5a521c57e63e"><div class="ttname"><a href="svd_8c.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a></div><div class="ttdeci">void svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[])</div><div class="ttdoc">Compute the Singular-Value Decomposition (SVD) of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00119">svd.c:119</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="asvd_8c_html_a91b85e542b1fc44d3500ba52aecb8e0e"><div class="ttname"><a href="svd_8c.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a></div><div class="ttdeci">uint8_t svd_get_single_values_num(uint8_t m, uint8_t n)</div><div class="ttdoc">Calculate the number of the singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00114">svd.c:114</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="asvd_8c_html_aeb7ac3eac076a0f52c729849599808a6"><div class="ttname"><a href="svd_8c.html#aeb7ac3eac076a0f52c729849599808a6">svd_get_S_dim</a></div><div class="ttdeci">void svd_get_S_dim(uint8_t m, uint8_t n, matrix_dim_t *s_dim)</div><div class="ttdoc">Calculate the dimension of the matrix S.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00102">svd.c:102</a></div></div> +<div class="ttc" id="asvd_8c_html_a8194826f85cc3105c4d8d4f342ca8df8"><div class="ttname"><a href="svd_8c.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a></div><div class="ttdeci">void svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim)</div><div class="ttdoc">Calculate the dimension of the matrix U.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00096">svd.c:96</a></div></div> +<div class="ttc" id="amatrix_8h_html_a32ab12965ec43c2acf65cf9dd510353a"><div class="ttname"><a href="matrix_8h.html#a32ab12965ec43c2acf65cf9dd510353a">matrix_print</a></div><div class="ttdeci">void matrix_print(uint8_t m, uint8_t n, matrix_t matrix[m][n])</div><div class="ttdoc">Display the values of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00141">matrix.c:141</a></div></div> +<div class="ttc" id="asvd_8h_html_acdb2d1d5cfdead81a1c247037b06823a"><div class="ttname"><a href="svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a">SVD_ORDER_ABSOLUTE_SING_VALUES</a></div><div class="ttdeci">#define SVD_ORDER_ABSOLUTE_SING_VALUES</div><div class="ttdoc">The case of the order of absolute singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8h_source.html#l00053">svd.h:53</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_aac6b6ff205184047714d5c22019bdbab"><div class="ttname"><a href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t::col_num</a></div><div class="ttdeci">uint8_t col_num</div><div class="ttdoc">the column number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00062">matrix.h:62</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="svd_8c.html">svd.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/svd_8h.html b/doc/doxygen/html/svd_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..fb4add16f7c0364030717813e573c20b6e7cadfb --- /dev/null +++ b/doc/doxygen/html/svd_8h.html @@ -0,0 +1,571 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd_8h.html','');}); +/* @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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">svd.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__matrix__decompositions.html">MATRIX_DECOMPOSITIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Algorithm for the Singular Value Decomposition (SVD). +<a href="#details">More...</a></p> +<div class="textblock"><code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="svd_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:aa2f21266e1086a3971dfd02ee4b48ce5"><td class="memItemLeft" align="right" valign="top"><a id="aa2f21266e1086a3971dfd02ee4b48ce5"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5">SVD_COMPUTE_NEGLIGIBLE_VALUES</a>   1</td></tr> +<tr class="memdesc:aa2f21266e1086a3971dfd02ee4b48ce5"><td class="mdescLeft"> </td><td class="mdescRight">The case of computing negligible values. <br /></td></tr> +<tr class="separator:aa2f21266e1086a3971dfd02ee4b48ce5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a70d46444b7291fdb50510447bb1ab9a4"><td class="memItemLeft" align="right" valign="top"><a id="a70d46444b7291fdb50510447bb1ab9a4"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4">SVD_SPLIT_AT_NEGLIGIBLE_VALUES</a>   2</td></tr> +<tr class="memdesc:a70d46444b7291fdb50510447bb1ab9a4"><td class="mdescLeft"> </td><td class="mdescRight">The case of splitting at negligible values. <br /></td></tr> +<tr class="separator:a70d46444b7291fdb50510447bb1ab9a4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af9e7db6685a0631312bfb93cc58dd756"><td class="memItemLeft" align="right" valign="top"><a id="af9e7db6685a0631312bfb93cc58dd756"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#af9e7db6685a0631312bfb93cc58dd756">SVD_QR_STEP</a>   3</td></tr> +<tr class="memdesc:af9e7db6685a0631312bfb93cc58dd756"><td class="mdescLeft"> </td><td class="mdescRight">The case of the QR-step. <br /></td></tr> +<tr class="separator:af9e7db6685a0631312bfb93cc58dd756"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acdb2d1d5cfdead81a1c247037b06823a"><td class="memItemLeft" align="right" valign="top"><a id="acdb2d1d5cfdead81a1c247037b06823a"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a">SVD_ORDER_ABSOLUTE_SING_VALUES</a>   4</td></tr> +<tr class="memdesc:acdb2d1d5cfdead81a1c247037b06823a"><td class="mdescLeft"> </td><td class="mdescRight">The case of the order of absolute singular values. <br /></td></tr> +<tr class="separator:acdb2d1d5cfdead81a1c247037b06823a"><td class="memSeparator" colspan="2"> </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:acdccfce5b7732e6334ca5a521c57e63e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n], uint8_t u_m, uint8_t u_n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_m][u_n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_n][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n], uint8_t sing_vec_length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_vec[])</td></tr> +<tr class="memdesc:acdccfce5b7732e6334ca5a521c57e63e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Singular-Value Decomposition (SVD) of a matrix. <a href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">More...</a><br /></td></tr> +<tr class="separator:acdccfce5b7732e6334ca5a521c57e63e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8194826f85cc3105c4d8d4f342ca8df8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a> (uint8_t m, uint8_t n, <a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> *u_dim)</td></tr> +<tr class="memdesc:a8194826f85cc3105c4d8d4f342ca8df8"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the dimension of the matrix U. <a href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">More...</a><br /></td></tr> +<tr class="separator:a8194826f85cc3105c4d8d4f342ca8df8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aeb7ac3eac076a0f52c729849599808a6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#aeb7ac3eac076a0f52c729849599808a6">svd_get_S_dim</a> (uint8_t m, uint8_t n, <a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> *s_dim)</td></tr> +<tr class="memdesc:aeb7ac3eac076a0f52c729849599808a6"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the dimension of the matrix S. <a href="svd_8h.html#aeb7ac3eac076a0f52c729849599808a6">More...</a><br /></td></tr> +<tr class="separator:aeb7ac3eac076a0f52c729849599808a6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa65fbd187ce13d0da98cecb40cfa3b07"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd_get_V_dim</a> (uint8_t m, uint8_t n, <a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> *v_dim)</td></tr> +<tr class="memdesc:aa65fbd187ce13d0da98cecb40cfa3b07"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the dimension of the matrix V. <a href="svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07">More...</a><br /></td></tr> +<tr class="separator:aa65fbd187ce13d0da98cecb40cfa3b07"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a91b85e542b1fc44d3500ba52aecb8e0e"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a> (uint8_t m, uint8_t n)</td></tr> +<tr class="memdesc:a91b85e542b1fc44d3500ba52aecb8e0e"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the number of the singular values. <a href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">More...</a><br /></td></tr> +<tr class="separator:a91b85e542b1fc44d3500ba52aecb8e0e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae92d53fe415ccfd63a21bb36936294cb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a> (uint8_t m, uint8_t n, uint8_t length, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> recip_singl_values_arr[])</td></tr> +<tr class="memdesc:ae92d53fe415ccfd63a21bb36936294cb"><td class="mdescLeft"> </td><td class="mdescRight">Compute the reciprocal singular values. <a href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">More...</a><br /></td></tr> +<tr class="separator:ae92d53fe415ccfd63a21bb36936294cb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a55b4a07eb7dbd09f7fa1d15debd44595"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_arr[m][n], uint8_t i)</td></tr> +<tr class="memdesc:a55b4a07eb7dbd09f7fa1d15debd44595"><td class="mdescLeft"> </td><td class="mdescRight">Compute and print the SVD of a matrix. <a href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">More...</a><br /></td></tr> +<tr class="separator:a55b4a07eb7dbd09f7fa1d15debd44595"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Algorithm for the Singular Value Decomposition (SVD). </p> +<p>Provide necessary methods to compute the compact SVD of a matrix. A = U*S*V, where U is a (m x l) orthogonal matrix, S is a (l x l) diagonal matrix, V is a (l x n) orthogonal matrix, and l = min(m,n). The SVD is computed by using the Golub–Kahan–Reinsch algorithm that works in two phases: bidiagonalization and a reduction to the diagonal form phase.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="svd_8h_source.html">svd.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="acdccfce5b7732e6334ca5a521c57e63e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acdccfce5b7732e6334ca5a521c57e63e">◆ </a></span>svd()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>u_m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>u_n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>U</em>[u_m][u_n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>S</em>[u_n][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>V</em>[n][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>sing_vec_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>singl_values_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Singular-Value Decomposition (SVD) of a matrix. </p> +<p>Matrix A is transformed to A = U*S*V, where U and V are unitary matrices, and S is a diagonal matrix.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix A. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A[][]</td><td>pointer to the matrix A. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">u_m</td><td>row number of the matrix U. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">u_n</td><td>column number of the matrix U. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">U[][]</td><td>pointer to the matrix U. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">S[][]</td><td>pointer to the matrix S. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">V[][]</td><td>pointer to the matrix V. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">sing_vec_length</td><td>length of the singular vector. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">singl_values_vec[]</td><td>pointer to the vector saving the singular values. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00119">119</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="a55b4a07eb7dbd09f7fa1d15debd44595"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a55b4a07eb7dbd09f7fa1d15debd44595">◆ </a></span>svd_compute_print_U_S_V_s()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_compute_print_U_S_V_s </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>matrix_arr</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>i</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute and print the SVD of a matrix. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">matrix_arr[][]</td><td>pointer to the matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>label. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00766">766</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8c_source.html#l00141">matrix_print()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00119">svd()</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, and <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="svd__test_8c_source.html#l00032">svd_test()</a>.</p> + +</div> +</div> +<a id="ae92d53fe415ccfd63a21bb36936294cb"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae92d53fe415ccfd63a21bb36936294cb">◆ </a></span>svd_get_reciproc_singular_values()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_reciproc_singular_values </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>singl_values_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>recip_singl_values_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the reciprocal singular values. </p> +<p>This method is based on the singular values.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to transform in SVD. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>length of the array of single values. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">singl_values_arr</td><td>pointer to the array of single values. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">recip_singl_values_arr</td><td>pointer to the array of the reciprocal singular values. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00747">747</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +</div> +</div> +<a id="aeb7ac3eac076a0f52c729849599808a6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aeb7ac3eac076a0f52c729849599808a6">◆ </a></span>svd_get_S_dim()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_S_dim </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> * </td> + <td class="paramname"><em>s_dim</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the dimension of the matrix S. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">s_dim</td><td>pointer to the dimension struct. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00102">102</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>.</p> + +</div> +</div> +<a id="a91b85e542b1fc44d3500ba52aecb8e0e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a91b85e542b1fc44d3500ba52aecb8e0e">◆ </a></span>svd_get_single_values_num()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t svd_get_single_values_num </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the number of the singular values. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the number of the singular values. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00114">114</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="a8194826f85cc3105c4d8d4f342ca8df8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8194826f85cc3105c4d8d4f342ca8df8">◆ </a></span>svd_get_U_dim()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_U_dim </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> * </td> + <td class="paramname"><em>u_dim</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the dimension of the matrix U. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">u_dim</td><td>pointer to the dimension struct. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00096">96</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, and <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00752">matrix_get_two_norm()</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="svd_8c_source.html#l00766">svd_compute_print_U_S_V_s()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="aa65fbd187ce13d0da98cecb40cfa3b07"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aa65fbd187ce13d0da98cecb40cfa3b07">◆ </a></span>svd_get_V_dim()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void svd_get_V_dim </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structmatrix__dim__t.html">matrix_dim_t</a> * </td> + <td class="paramname"><em>v_dim</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the dimension of the matrix V. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>row number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the matrix to decompose. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">v_dim</td><td>pointer to the dimension struct. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="svd_8c_source.html#l00108">108</a> of file <a class="el" href="svd_8c_source.html">svd.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, and <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="svd_8h.html">svd.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/svd_8h.js b/doc/doxygen/html/svd_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..f8e8645e5f617d4525da0b570feb30baa0f8bfc0 --- /dev/null +++ b/doc/doxygen/html/svd_8h.js @@ -0,0 +1,14 @@ +var svd_8h = +[ + [ "SVD_COMPUTE_NEGLIGIBLE_VALUES", "svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5", null ], + [ "SVD_ORDER_ABSOLUTE_SING_VALUES", "svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a", null ], + [ "SVD_QR_STEP", "svd_8h.html#af9e7db6685a0631312bfb93cc58dd756", null ], + [ "SVD_SPLIT_AT_NEGLIGIBLE_VALUES", "svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4", null ], + [ "svd", "svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e", null ], + [ "svd_compute_print_U_S_V_s", "svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595", null ], + [ "svd_get_reciproc_singular_values", "svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb", null ], + [ "svd_get_S_dim", "svd_8h.html#aeb7ac3eac076a0f52c729849599808a6", null ], + [ "svd_get_single_values_num", "svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e", null ], + [ "svd_get_U_dim", "svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8", null ], + [ "svd_get_V_dim", "svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/svd_8h_source.html b/doc/doxygen/html/svd_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..1a47122545986ab004c118edf8f89f91d6eadd05 --- /dev/null +++ b/doc/doxygen/html/svd_8h_source.html @@ -0,0 +1,160 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">svd.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="svd_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef SVD_H_</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define SVD_H_</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">/* Define the cases of the Golub-Reinsch Algorithm */</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="svd_8h.html#aa2f21266e1086a3971dfd02ee4b48ce5"> 38</a></span> <span class="preprocessor">#define SVD_COMPUTE_NEGLIGIBLE_VALUES 1</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="svd_8h.html#a70d46444b7291fdb50510447bb1ab9a4"> 43</a></span> <span class="preprocessor">#define SVD_SPLIT_AT_NEGLIGIBLE_VALUES 2</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="svd_8h.html#af9e7db6685a0631312bfb93cc58dd756"> 48</a></span> <span class="preprocessor">#define SVD_QR_STEP 3</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="svd_8h.html#acdb2d1d5cfdead81a1c247037b06823a"> 53</a></span> <span class="preprocessor">#define SVD_ORDER_ABSOLUTE_SING_VALUES 4</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">void</span> <a class="code" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][n],</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  uint8_t u_m, uint8_t u_n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_m][u_n],</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_n][n], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n],</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  uint8_t sing_vec_length, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_vec[]);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">void</span> <a class="code" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(uint8_t m, uint8_t n, <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> *u_dim);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">void</span> <a class="code" href="svd_8h.html#aeb7ac3eac076a0f52c729849599808a6">svd_get_S_dim</a>(uint8_t m, uint8_t n, <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> *s_dim);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">void</span> <a class="code" href="svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd_get_V_dim</a>(uint8_t m, uint8_t n, <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> *v_dim);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> uint8_t <a class="code" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(uint8_t m, uint8_t n);</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">void</span> <a class="code" href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a>(uint8_t m, uint8_t n, uint8_t length,</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> singl_values_arr[],</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> recip_singl_values_arr[]</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  );</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keywordtype">void</span> <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(uint8_t m, uint8_t n, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix_arr[m][n],</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  uint8_t i);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#endif </span><span class="comment">/* SVD_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="asvd_8h_html_aa65fbd187ce13d0da98cecb40cfa3b07"><div class="ttname"><a href="svd_8h.html#aa65fbd187ce13d0da98cecb40cfa3b07">svd_get_V_dim</a></div><div class="ttdeci">void svd_get_V_dim(uint8_t m, uint8_t n, matrix_dim_t *v_dim)</div><div class="ttdoc">Calculate the dimension of the matrix V.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00108">svd.c:108</a></div></div> +<div class="ttc" id="asvd_8h_html_acdccfce5b7732e6334ca5a521c57e63e"><div class="ttname"><a href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a></div><div class="ttdeci">void svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[])</div><div class="ttdoc">Compute the Singular-Value Decomposition (SVD) of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00119">svd.c:119</a></div></div> +<div class="ttc" id="asvd_8h_html_aeb7ac3eac076a0f52c729849599808a6"><div class="ttname"><a href="svd_8h.html#aeb7ac3eac076a0f52c729849599808a6">svd_get_S_dim</a></div><div class="ttdeci">void svd_get_S_dim(uint8_t m, uint8_t n, matrix_dim_t *s_dim)</div><div class="ttdoc">Calculate the dimension of the matrix S.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00102">svd.c:102</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="asvd_8h_html_a55b4a07eb7dbd09f7fa1d15debd44595"><div class="ttname"><a href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a></div><div class="ttdeci">void svd_compute_print_U_S_V_s(uint8_t m, uint8_t n, matrix_t matrix_arr[m][n], uint8_t i)</div><div class="ttdoc">Compute and print the SVD of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00766">svd.c:766</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html"><div class="ttname"><a href="structmatrix__dim__t.html">matrix_dim_t</a></div><div class="ttdoc">A structure to define the row and column number of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00060">matrix.h:60</a></div></div> +<div class="ttc" id="asvd_8h_html_a91b85e542b1fc44d3500ba52aecb8e0e"><div class="ttname"><a href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a></div><div class="ttdeci">uint8_t svd_get_single_values_num(uint8_t m, uint8_t n)</div><div class="ttdoc">Calculate the number of the singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00114">svd.c:114</a></div></div> +<div class="ttc" id="asvd_8h_html_ae92d53fe415ccfd63a21bb36936294cb"><div class="ttname"><a href="svd_8h.html#ae92d53fe415ccfd63a21bb36936294cb">svd_get_reciproc_singular_values</a></div><div class="ttdeci">void svd_get_reciproc_singular_values(uint8_t m, uint8_t n, uint8_t length, matrix_t singl_values_arr[], matrix_t recip_singl_values_arr[])</div><div class="ttdoc">Compute the reciprocal singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00747">svd.c:747</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="asvd_8h_html_a8194826f85cc3105c4d8d4f342ca8df8"><div class="ttname"><a href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a></div><div class="ttdeci">void svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim)</div><div class="ttdoc">Calculate the dimension of the matrix U.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00096">svd.c:96</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_997ac76a3d72a25dec85442c5f6c585d.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_f9311e7dae5ba7dbc6ad9f75e6d9537e.html">include</a></li><li class="navelem"><a class="el" href="svd_8h.html">svd.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/svd__test_8c.html b/doc/doxygen/html/svd__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..0bda3ae94bb24688e93a76c2bcc5ab59516bfb04 --- /dev/null +++ b/doc/doxygen/html/svd__test_8c.html @@ -0,0 +1,131 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">svd_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the SVD algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="svd_8h_source.html">svd.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="svd__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a5b3fa4be9f289d4078fdd009719a4077"><td class="memItemLeft" align="right" valign="top"><a id="a5b3fa4be9f289d4078fdd009719a4077"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test</a> (void)</td></tr> +<tr class="memdesc:a5b3fa4be9f289d4078fdd009719a4077"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Givens algorithm. <br /></td></tr> +<tr class="separator:a5b3fa4be9f289d4078fdd009719a4077"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the SVD algorithm. </p> +<p>SVD algorithm examples (see the <a class="el" href="svd_8h.html">Singular Value Decomposition (SVD)</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="svd__test_8c_source.html">svd_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="svd__test_8c.html">svd_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/svd__test_8c.js b/doc/doxygen/html/svd__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..4b5fbd4d93acf94345ef296eff49131a3e0002b3 --- /dev/null +++ b/doc/doxygen/html/svd__test_8c.js @@ -0,0 +1,4 @@ +var svd__test_8c = +[ + [ "svd_test", "svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/svd__test_8c_source.html b/doc/doxygen/html/svd__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..f61db6db6ae23e5eb08d43a7ffc0ac1b492e9161 --- /dev/null +++ b/doc/doxygen/html/svd__test_8c_source.html @@ -0,0 +1,256 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">svd_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="svd__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="svd_8h.html">svd.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077"> 32</a></span> <span class="keywordtype">void</span> <a class="code" href="svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  uint8_t m, n;</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  uint8_t i = 0;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="comment">//m<n</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix1_arr[3][4] = { { 1.0000, -3.6000, -1.2000, -2.8400 },</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  { 1.0000, -7.2400, -7.1800, -2.2400 },</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  { 1.0000, -12.0600, -1.3400, -3.6600 } };</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  m = 3;</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  n = 4;</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix2_arr[3][4] = {</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  { 1, -22, 30, -20 },</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  { 1, -26, -42, -10 },</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  { 1, 18, -30, -14 }</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  };</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix1_arr, ++i);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix2_arr, ++i);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  printf(</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m < n : (2,3) ########\n"</span>,</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  ++i);</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix3_arr[2][3] = {</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  { 3, 1, 1 },</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  { -1, 3, 1 }</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  };</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  m = 2;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  n = 3;</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix3_arr, i);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  printf(</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m > n : (3,2) ########\n"</span>,</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  ++i);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix4_arr[3][2] = {</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  { 1, 2 },</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  { 2, 2 },</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  { 2, 1 }</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  };</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  m = 3;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  n = 2;</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix4_arr, i);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  printf(</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m = n : (4,4) ########\n"</span>,</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  ++i);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix5_arr[4][4] = {</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  { 6, 0, 0, 6 },</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  { 2, 5, 0, 4 },</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  { 0, 6, 2, 3 },</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  { 0, 1, 5, 5 }</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  };</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  m = 4;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  n = 4;</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix5_arr, i);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  printf(</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m < n : (4,7) ########\n"</span>,</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  ++i);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix6_arr[4][7] = {</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  { 2, 5, 4, 6, 3, 2, 1 },</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  { 1, 2, 4, 6, 0, 0, 6 },</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  { 2, 1, 1, 5, 4, 6, 3 },</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  { 3, 3, 1, 0, 4, 5, 0 }</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  };</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  m = 4;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  n = 7;</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix6_arr, i);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  printf(</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m = n : (3,3) ########\n"</span>,</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  ++i);</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix7_arr[3][3] = {</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  { 1., 2., 3 },</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  { 4., 5., 6. },</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  { 7., 8., 10. }</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  };</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  m = 3;</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  n = 3;</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix7_arr, i);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  printf(</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m < n : (5,7) ########\n"</span>,</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  ++i);</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix8_arr[5][7] = {</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  { 6, 2, 7, 3, 6, 0, 1 },</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  { 7, 1, 6, 3, 6, 4, 0 },</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  { 3, 5, 1, 1, 0, 2, 3 },</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  { 5, 5, 7, 3, 1, 3, 0 },</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  { 6, 5, 4, 1, 2, 7, 1 }</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  };</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  m = 5;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  n = 7;</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix8_arr, i);</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">//m>n</span></div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  printf(</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m > n : (7,5) ########\n"</span>,</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  ++i);</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix9_arr[7][5] = {</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  { 6.395, 2.897, 7.333, 3.777, 6.543 },</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  { 7.635, 1.235, 6.301, 3.356, 6.777 },</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  { 3.595, 5.901, 1.408, 1.697, 0.539 },</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  { 5.501, 5.562, 7.271, 3.907, 1.651 },</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  { 6.198, 5.069, 4.238, 1.388, 2.855 },</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  { 0.000, 1.999, 4.103, 0.561, 2.908 },</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  { 3.834, 3.172, 0.009, 7.069, 1.075 }</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  };</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  m = 7;</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  n = 5;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix9_arr, i);</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  printf(</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="stringliteral">"######## Test %d: Singular Value Decomposition m > n : (5,7) ########\n"</span>,</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  ++i);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> matrix10_arr[5][7] = {</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  { 6.395, 2.897, 7.333, 3.777, 6.543, 0.000, 1.999 },</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  { 7.635, 1.235, 6.301, 3.356, 6.777, 4.103, 0.561 },</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  { 3.595, 5.901, 1.408, 1.697, 0.539, 2.908, 3.834 },</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  { 5.501, 5.562, 7.271, 3.907, 1.651, 3.172, 0.009 },</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  { 6.198, 5.069, 4.238, 1.388, 2.855, 7.069, 1.075 }</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  };</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  m = 5;</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  n = 7;</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a>(m, n, matrix10_arr, i);</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="asvd_8h_html_a55b4a07eb7dbd09f7fa1d15debd44595"><div class="ttname"><a href="svd_8h.html#a55b4a07eb7dbd09f7fa1d15debd44595">svd_compute_print_U_S_V_s</a></div><div class="ttdeci">void svd_compute_print_U_S_V_s(uint8_t m, uint8_t n, matrix_t matrix_arr[m][n], uint8_t i)</div><div class="ttdoc">Compute and print the SVD of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00766">svd.c:766</a></div></div> +<div class="ttc" id="asvd_8h_html"><div class="ttname"><a href="svd_8h.html">svd.h</a></div><div class="ttdoc">Algorithm for the Singular Value Decomposition (SVD).</div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="asvd__test_8c_html_a5b3fa4be9f289d4078fdd009719a4077"><div class="ttname"><a href="svd__test_8c.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test</a></div><div class="ttdeci">void svd_test(void)</div><div class="ttdoc">Examples of the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="svd__test_8c_source.html#l00032">svd_test.c:32</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="svd__test_8c.html">svd_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/svd__test_8h.html b/doc/doxygen/html/svd__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..f8a1937cba3638628f8d1b473c6720dac0885844 --- /dev/null +++ b/doc/doxygen/html/svd__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">svd_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the SVD algorithm. +<a href="#details">More...</a></p> + +<p><a href="svd__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a5b3fa4be9f289d4078fdd009719a4077"><td class="memItemLeft" align="right" valign="top"><a id="a5b3fa4be9f289d4078fdd009719a4077"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test</a> (void)</td></tr> +<tr class="memdesc:a5b3fa4be9f289d4078fdd009719a4077"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the Givens algorithm. <br /></td></tr> +<tr class="separator:a5b3fa4be9f289d4078fdd009719a4077"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the SVD algorithm. </p> +<p>SVD algorithm examples (see the <a class="el" href="svd_8h.html">Singular Value Decomposition (SVD)</a> approach).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="svd__test_8h_source.html">svd_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="svd__test_8h.html">svd_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/svd__test_8h.js b/doc/doxygen/html/svd__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..d494eaa1b5dfc5b6f86c752187de04fb4daefa0f --- /dev/null +++ b/doc/doxygen/html/svd__test_8h.js @@ -0,0 +1,4 @@ +var svd__test_8h = +[ + [ "svd_test", "svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/svd__test_8h_source.html b/doc/doxygen/html/svd__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..469ffcec29d81be25cf109b3f2d378a8f696ac38 --- /dev/null +++ b/doc/doxygen/html/svd__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: svd_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('svd__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">svd_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="svd__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef SVD_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define SVD_TEST_H_</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keywordtype">void</span> <a class="code" href="svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif </span><span class="comment">/* SVD_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="asvd__test_8h_html_a5b3fa4be9f289d4078fdd009719a4077"><div class="ttname"><a href="svd__test_8h.html#a5b3fa4be9f289d4078fdd009719a4077">svd_test</a></div><div class="ttdeci">void svd_test(void)</div><div class="ttdoc">Examples of the Givens algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="svd__test_8c_source.html#l00032">svd_test.c:32</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_7288dc322cfbdfeb7861adfdccb1ddcd.html">matrix_decompositions</a></li><li class="navelem"><a class="el" href="dir_5a43f5722226146f4ac0b20a7710cb0d.html">include</a></li><li class="navelem"><a class="el" href="svd__test_8h.html">svd_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/sync_off.png b/doc/doxygen/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc Binary files /dev/null and b/doc/doxygen/html/sync_off.png differ diff --git a/doc/doxygen/html/sync_on.png b/doc/doxygen/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 Binary files /dev/null and b/doc/doxygen/html/sync_on.png differ diff --git a/doc/doxygen/html/tab_a.png b/doc/doxygen/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 Binary files /dev/null and b/doc/doxygen/html/tab_a.png differ diff --git a/doc/doxygen/html/tab_b.png b/doc/doxygen/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 Binary files /dev/null and b/doc/doxygen/html/tab_b.png differ diff --git a/doc/doxygen/html/tab_h.png b/doc/doxygen/html/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5cb705488e60fcf30f56fcc951dee74f3b095b Binary files /dev/null and b/doc/doxygen/html/tab_h.png differ diff --git a/doc/doxygen/html/tab_s.png b/doc/doxygen/html/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 Binary files /dev/null and b/doc/doxygen/html/tab_s.png differ diff --git a/doc/doxygen/html/tabs.css b/doc/doxygen/html/tabs.css new file mode 100644 index 0000000000000000000000000000000000000000..85a0cd5b5857b5fc94039256cd05e133b7e3bd9d --- /dev/null +++ b/doc/doxygen/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/doc/doxygen/html/trilateration_8c.html b/doc/doxygen/html/trilateration_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..190b12a4e32c5ae3dd0d97922a20a94bfd80cfda --- /dev/null +++ b/doc/doxygen/html/trilateration_8c.html @@ -0,0 +1,695 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: trilateration.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('trilateration_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">trilateration.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the trilateration algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include "<a class="el" href="moore__penrose__pseudo__inverse_8h_source.html">moore_penrose_pseudo_inverse.h</a>"</code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +<code>#include "<a class="el" href="svd_8h_source.html">svd.h</a>"</code><br /> +<code>#include "<a class="el" href="trilateration_8h_source.html">trilateration.h</a>"</code><br /> +</div> +<p><a href="trilateration_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a95fc45efcb10019be21704539eeedefb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:a95fc45efcb10019be21704539eeedefb"><td class="mdescLeft"> </td><td class="mdescRight">Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix. <a href="trilateration_8c.html#a95fc45efcb10019be21704539eeedefb">More...</a><br /></td></tr> +<tr class="separator:a95fc45efcb10019be21704539eeedefb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adf749802a4d86c2a97a6bac50d17bfea"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:adf749802a4d86c2a97a6bac50d17bfea"><td class="mdescLeft"> </td><td class="mdescRight">Implement the trilateration algorithm. <a href="trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea">More...</a><br /></td></tr> +<tr class="separator:adf749802a4d86c2a97a6bac50d17bfea"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aadf622c7ec43dce57988a9aef1533758"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758">trilateration_preprocessed_get_particular_solution</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> particular_solu_arr[])</td></tr> +<tr class="memdesc:aadf622c7ec43dce57988a9aef1533758"><td class="mdescLeft"> </td><td class="mdescRight">Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0}$" src="form_49.png"/>. <a href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758">More...</a><br /></td></tr> +<tr class="separator:aadf622c7ec43dce57988a9aef1533758"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab5f06e68df75b4708d722c268932578c"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c">trilateration_get_rank_and_homogeneous_solution</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xh[])</td></tr> +<tr class="memdesc:ab5f06e68df75b4708d722c268932578c"><td class="mdescLeft"> </td><td class="mdescRight">Compute the rank and the solution of the homogeneous system <img class="formulaInl" alt="$ A \vec{x_0} = 0 $" src="form_51.png"/>. <a href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c">More...</a><br /></td></tr> +<tr class="separator:ab5f06e68df75b4708d722c268932578c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a76695d4831cf7c08b468fe56f117b358"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358">trilateration_get_particular_solution</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_mat[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xp[])</td></tr> +<tr class="memdesc:a76695d4831cf7c08b468fe56f117b358"><td class="mdescLeft"> </td><td class="mdescRight">Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0} $" src="form_50.png"/>. <a href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358">More...</a><br /></td></tr> +<tr class="separator:a76695d4831cf7c08b468fe56f117b358"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a45883b7c5af43c478bb488b536faa56e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">trilateration_get_quadratic_equation_solution</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xp[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xh[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:a45883b7c5af43c478bb488b536faa56e"><td class="mdescLeft"> </td><td class="mdescRight">Solve a quadratic equation. <a href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">More...</a><br /></td></tr> +<tr class="separator:a45883b7c5af43c478bb488b536faa56e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3c9dfccb08c7e4cdb5533cd6bc8b5832"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_matrix[m][4])</td></tr> +<tr class="memdesc:a3c9dfccb08c7e4cdb5533cd6bc8b5832"><td class="mdescLeft"> </td><td class="mdescRight">Computes the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. <a href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">More...</a><br /></td></tr> +<tr class="separator:a3c9dfccb08c7e4cdb5533cd6bc8b5832"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abe0c5c3a77d41a6a94aceb8069ec2082"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[])</td></tr> +<tr class="memdesc:abe0c5c3a77d41a6a94aceb8069ec2082"><td class="mdescLeft"> </td><td class="mdescRight">Computes the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. <a href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">More...</a><br /></td></tr> +<tr class="separator:abe0c5c3a77d41a6a94aceb8069ec2082"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4270371ead754327c478d19d57bfafba"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a> (uint8_t line_num, uint8_t col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[line_num][col_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sol_vec[])</td></tr> +<tr class="memdesc:a4270371ead754327c478d19d57bfafba"><td class="mdescLeft"> </td><td class="mdescRight">Solve a linear equation. <a href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">More...</a><br /></td></tr> +<tr class="separator:a4270371ead754327c478d19d57bfafba"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the trilateration algorithm. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a95fc45efcb10019be21704539eeedefb"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a95fc45efcb10019be21704539eeedefb">◆ </a></span>trilateration1()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration1 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[4][anchor_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>homog_sol_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix. </p> +<dl class="section note"><dt>Note</dt><dd>This function should be initialized with the pre-processed pseudo-inverse matrix of the equation system: <img class="formulaInl" alt="$ A \vec{x} = 0 $" src="form_42.png"/>. Caution!: The <code>solution_x1</code> and the <code>solution_x2</code> vectors have a length of 3 or 4 in the case of two-dimensional or three-dimensional space. The first element <img class="formulaInl" alt="$(x_0)$" src="form_43.png"/> of the <code>solution_x1</code>[] and the <code>solution_x2</code>[] vectors is a measure of the solvability of the multilateration problem. For example, in the three-dimensional space: <img class="formulaInl" alt="$ d = x_0 - \left( x_1^{2} + x_2^{2} + x_3^{2} \right)$" src="form_44.png"/>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">homog_sol_arr[]</td><td>the homogeneous solution. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>includes the first solution. It has the length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>includes the second solution. It has length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00032">32</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="trilateration_8c_source.html#l00275">trilateration_get_b_vector()</a>, <a class="el" href="trilateration_8c_source.html#l00193">trilateration_get_quadratic_equation_solution()</a>, <a class="el" href="trilateration_8c_source.html#l00121">trilateration_preprocessed_get_particular_solution()</a>, and <a class="el" href="trilateration_8c_source.html#l00291">trilateration_solve_linear_equation()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__position_8c_source.html#l00188">magnetic_based_preprocessing_get_position()</a>.</p> + +</div> +</div> +<a id="adf749802a4d86c2a97a6bac50d17bfea"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adf749802a4d86c2a97a6bac50d17bfea">◆ </a></span>trilateration2()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration2 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implement the trilateration algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>The pre-processed pseudo-inverse matrix of the equation system: <img class="formulaInl" alt="$ A \vec{x} = 0 $" src="form_42.png"/> is computed on the mobile station. Caution!: The <code>solution_x1</code> and the <code>solution_x2</code> vectors have a length of 3 or 4 in the case of two-dimensional or three-dimensional space. The first element <img class="formulaInl" alt="$(x_0)$" src="form_43.png"/> of the <code>solution_x1</code>[] and the <code>solution_x2</code>[] vectors is a measure of the solvability of the multilateration problem. For example, in the three-dimensional space: <img class="formulaInl" alt="$ d = x_0 - \left( x_1^{2} + x_2^{2} + x_3^{2} \right)$" src="form_44.png"/>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>includes the first solution. It has the length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>includes the second solution. It has the length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00069">69</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="trilateration_8c_source.html#l00256">trilateration_get_A_matrix()</a>, <a class="el" href="trilateration_8c_source.html#l00275">trilateration_get_b_vector()</a>, <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>, <a class="el" href="trilateration_8c_source.html#l00193">trilateration_get_quadratic_equation_solution()</a>, <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>, and <a class="el" href="trilateration_8c_source.html#l00291">trilateration_solve_linear_equation()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="distance__based__test_8c_source.html#l00032">distance_based_test()</a>, <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a3c9dfccb08c7e4cdb5533cd6bc8b5832"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3c9dfccb08c7e4cdb5533cd6bc8b5832">◆ </a></span>trilateration_get_A_matrix()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_A_matrix </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A_matrix</em>[m][4] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A_matrix[][]</td><td>pointer to the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00256">256</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="abe0c5c3a77d41a6a94aceb8069ec2082"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abe0c5c3a77d41a6a94aceb8069ec2082">◆ </a></span>trilateration_get_b_vector()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_b_vector </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">b_vec[]</td><td>pointer to the vector <img class="formulaInl" alt="$ vec{b} $" src="form_48.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00275">275</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, and <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>.</p> + +</div> +</div> +<a id="a76695d4831cf7c08b468fe56f117b358"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a76695d4831cf7c08b468fe56f117b358">◆ </a></span>trilateration_get_particular_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_particular_solution </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_mat</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Xp</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0} $" src="form_50.png"/>. </p> +<dl class="section note"><dt>Note</dt><dd>The particular solution is calculated in the case of three reference stations. The particular solution is computed on the mobile station.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the reference stations matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_mat[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">Xp[]</td><td>includes the particular solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00179">179</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="trilateration_8c_source.html#l00256">trilateration_get_A_matrix()</a>, and <a class="el" href="trilateration_8c_source.html#l00275">trilateration_get_b_vector()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +<a id="a45883b7c5af43c478bb488b536faa56e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a45883b7c5af43c478bb488b536faa56e">◆ </a></span>trilateration_get_quadratic_equation_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_quadratic_equation_solution </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>particular_solu_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>homogeneous_solution_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve a quadratic equation. </p> +<p>The quotients of the quadratic equation are derived from the particular and homogeneous solution.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">particular_solu_arr[]</td><td>pointer to the particular solution. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">homogeneous_solution_arr[]</td><td>pointer to the homogeneous solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>presents the first solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>presents the second solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00193">193</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>, and <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +<a id="ab5f06e68df75b4708d722c268932578c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab5f06e68df75b4708d722c268932578c">◆ </a></span>trilateration_get_rank_and_homogeneous_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t trilateration_get_rank_and_homogeneous_solution </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Xh</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the rank and the solution of the homogeneous system <img class="formulaInl" alt="$ A \vec{x_0} = 0 $" src="form_51.png"/>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">Xh[]</td><td>includes the homogeneous solution.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the rank of the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/>. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00149">149</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8c_source.html#l00312">matrix_get_rank()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00119">svd()</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>, and <a class="el" href="trilateration_8c_source.html#l00256">trilateration_get_A_matrix()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +<a id="aadf622c7ec43dce57988a9aef1533758"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aadf622c7ec43dce57988a9aef1533758">◆ </a></span>trilateration_preprocessed_get_particular_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_preprocessed_get_particular_solution </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[4][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>particular_solu_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0}$" src="form_49.png"/>. </p> +<dl class="section note"><dt>Note</dt><dd>The particular solution is calculated in the case of three reference stations. The particular solution is computed using the pre-processed pseudo-inverse matrix.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_arr[]</td><td>pointer the vector <img class="formulaInl" alt="$ vec{b} $" src="form_48.png"/>. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">particular_solu_arr[]</td><td>includes the particular solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00121">121</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>.</p> + +</div> +</div> +<a id="a4270371ead754327c478d19d57bfafba"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4270371ead754327c478d19d57bfafba">◆ </a></span>trilateration_solve_linear_equation()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_solve_linear_equation </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>line_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[line_num][col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>sol_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve a linear equation. </p> +<p>The linear equation is solved by using the pre-processed pseudo-inverse matrix and the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">line_num</td><td>row number of the pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/>. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">sol_vec[]</td><td>solution vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00291">291</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>, and <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="trilateration_8c.html">trilateration.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/trilateration_8c.js b/doc/doxygen/html/trilateration_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..b506cf3ee22bbeac6c1cb10aeeadd36542fc84fb --- /dev/null +++ b/doc/doxygen/html/trilateration_8c.js @@ -0,0 +1,12 @@ +var trilateration_8c = +[ + [ "trilateration1", "trilateration_8c.html#a95fc45efcb10019be21704539eeedefb", null ], + [ "trilateration2", "trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea", null ], + [ "trilateration_get_A_matrix", "trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832", null ], + [ "trilateration_get_b_vector", "trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082", null ], + [ "trilateration_get_particular_solution", "trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358", null ], + [ "trilateration_get_quadratic_equation_solution", "trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e", null ], + [ "trilateration_get_rank_and_homogeneous_solution", "trilateration_8c.html#ab5f06e68df75b4708d722c268932578c", null ], + [ "trilateration_preprocessed_get_particular_solution", "trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758", null ], + [ "trilateration_solve_linear_equation", "trilateration_8c.html#a4270371ead754327c478d19d57bfafba", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/trilateration_8c_source.html b/doc/doxygen/html/trilateration_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..ce086ab109f95e044eb198a25ef0c77cb197b447 --- /dev/null +++ b/doc/doxygen/html/trilateration_8c_source.html @@ -0,0 +1,419 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: trilateration.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('trilateration_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">trilateration.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="trilateration_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="svd_8h.html">svd.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="trilateration_8h.html">trilateration.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="trilateration_8c.html#a95fc45efcb10019be21704539eeedefb"> 32</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num],</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[],</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[],</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[]</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  )</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_arr[anchor_num];</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> particular_solution_arr[4];</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">if</span> (anchor_num == 3) {</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a>(anchor_num, dist_arr,</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  anchor_pos_matrix, b_arr);</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758">trilateration_preprocessed_get_particular_solution</a>(</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  pseudo_inv_matrix, b_arr,</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  particular_solution_arr);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">trilateration_get_quadratic_equation_solution</a>(</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  particular_solution_arr,</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  homog_sol_arr, solution_x1, solution_x2);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (anchor_num > 3) {</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a>(anchor_num, dist_arr,</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  anchor_pos_matrix, b_arr);</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">//compute the solution</span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a>(anchor_num, anchor_num,</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  pseudo_inv_matrix, b_arr,</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  solution_x1);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">//On MCU Processing</span></div> +<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea"> 69</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[],</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> {</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_arr[anchor_num];</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_matrix[anchor_num][4];</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num];</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  uint8_t rank = 0;</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (anchor_num == 3) {</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">//2nd compute the particular solution</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xp[4];</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358">trilateration_get_particular_solution</a>(anchor_num, anchor_num,</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  anchor_pos_matrix, dist_arr, Xp);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">//3th compute the homogeneous solution</span></div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xh[4];</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  rank = <a class="code" href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c">trilateration_get_rank_and_homogeneous_solution</a>(</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  anchor_num, anchor_pos_matrix, Xh);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">//solve the quadratic equation</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (rank == 3) {</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">trilateration_get_quadratic_equation_solution</a>(Xp, Xh,</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  solution_x1,</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  solution_x2);</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  puts(<span class="stringliteral">"rank!=3, the equation system is not solvable."</span>);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (anchor_num > 3) {</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">//compute A-matrix and b_vector</span></div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a>(anchor_num, anchor_pos_matrix,</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  A_matrix);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a>(anchor_num, dist_arr,</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  anchor_pos_matrix, b_arr);</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">//compute the pseudo inverse</span></div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(anchor_num, 4, A_matrix,</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  pseudo_inv_matrix);</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">//compute the solution</span></div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a>(4, anchor_num,</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  pseudo_inv_matrix, b_arr,</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  solution_x1);</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> +<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758"> 121</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758">trilateration_preprocessed_get_particular_solution</a>(</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][3],</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_arr[],</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> particular_solu_arr[])</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> {</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">int</span> i = 0;</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordtype">int</span> j = 0;</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  memset(particular_solu_arr, 0.0, 4 * <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>));</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">for</span> (; i < 4; i++) {</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span> (; j < 3; j++) {</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  particular_solu_arr[i] += pseudo_inv_matrix[i][j]</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  * b_arr[j];</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">//DEBUGF("pseudo_inv_matrix[%d][%d] = %f\n b_arr[%d] = %f\n", i, j, (double) pseudo_inv_matrix[i][j], j, (double) b_arr[j]);</span></div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">//printf("pseudo_inv_matrix[%d][%d] = %f\n b_arr[%d] = %f\n", i, j, (double) pseudo_inv_matrix[i][j], j, (double) b_arr[j]);</span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  j = 0;</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#ifdef DEBUG_ENABLED</span></div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  i = 0;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">for</span> (; i < 4; i++) {</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  DEBUGF(<span class="stringliteral">"particular_solution_arr[%d] = %f\n"</span>, i,</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  (<span class="keywordtype">double</span>)particular_solu_arr[i]);</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div> +<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c"> 149</a></span> uint8_t <a class="code" href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c">trilateration_get_rank_and_homogeneous_solution</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xh[])</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  uint8_t rank = 0;</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[anchor_num][4];</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  uint8_t m = anchor_num;</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  uint8_t n = 4;</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  uint8_t s_length = <a class="code" href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a>(m, n);</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> s[s_length];</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="structmatrix__dim__t.html">matrix_dim_t</a> u_dim;</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a>(m, n, &u_dim);</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> U[u_dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>][u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>];</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> S[u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>][n];</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> V[n][n];</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a>(anchor_num, anchor_pos_matrix, A);</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a>(m, n, A, u_dim.<a class="code" href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">row_num</a>, u_dim.<a class="code" href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">col_num</a>, U, S, V, s_length, s);</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">//the forth column of the V matix</span></div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  Xh[i] = V[i][3];</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  rank = <a class="code" href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a>(m, n, s, s_length);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> rank;</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div> +<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358"> 179</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358">trilateration_get_particular_solution</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_mat[m][n],</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xp[])</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A[m][4];</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pinvA[4][m];</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b[m];</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a>(m, dist_arr, anchor_pos_mat, b);</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a>(m, anchor_pos_mat, A);</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a>(m, 4, A, pinvA);</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a>(4, m, pinvA, b, Xp);</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> }</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div> +<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e"> 193</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">trilateration_get_quadratic_equation_solution</a>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xp[],</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xh[],</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> a = 0, b = 0, c = 0, t1 = 0, t2 = 0, delta = 0;</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">int</span> i = 0;</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">//compute polynomial coefficients: a*t^2 + b*t^+ c</span></div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  a = pow(Xh[1], 2)</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  + pow(Xh[2], 2)</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  + pow(Xh[3], 2);</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  b = 2</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  * (Xh[1] * Xp[1]</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  + Xh[2] * Xp[2]</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  + Xh[3] * Xp[3])</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  - Xh[0];</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  c = pow(Xp[1], 2) + pow(Xp[2], 2)</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  + pow(Xp[3], 2) - Xp[0];</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">//compute the quadratic equation a*t^2 + b*t+ c</span></div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  delta = b * b - 4 * a * c;</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">if</span> ((delta > 0) && (a != 0)) {</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">if</span> (solution_x1 != NULL) {</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  t1 = (-b + sqrt(delta)) / (2 * a);</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span> (solution_x2 != NULL) {</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  t2 = (-b - sqrt(delta)) / (2 * a);</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((delta == 0) && (a != 0)) {</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (solution_x1 != NULL) {</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  t1 = -b / (2 * a);</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (solution_x2 != NULL) {</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  t2 = t1;</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (delta < 0) { <span class="comment">// take only a real part</span></div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">if</span> (solution_x1 != NULL) {</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  t1 = -b / (2 * a);</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">if</span> (solution_x2 != NULL) {</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  t2 = -b / (2 * a);</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">for</span> (; i < 4; i++) {</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span> (solution_x1 != NULL) {</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  solution_x1[i] = Xp[i]</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  + t1 * Xh[i];</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">if</span> (solution_x2 != NULL) {</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  solution_x2[i] = Xp[i]</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  + t2 * Xh[i];</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  </div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="comment">//DEBUGF("a=%f, b=%f, c=%f, t1=%f, t2=%f\n", (double)a, (double)b, (double)c, (double)t1, (double)t2);</span></div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div> +<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832"> 256</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[m][3],</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_matrix[m][4])</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordtype">int</span> i, j;</div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="comment">//the first column is equal 1</span></div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  A_matrix[i][0] = 1;</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="comment">//the second, third and firth columns are equal: -2x, -2y, -2z respectively</span></div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">for</span> (i = 0; i < m; i++) {</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">for</span> (j = 1; j < 4; j++) {</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  A_matrix[i][j] = -2 * anchor_pos_matrix[i][j - 1];</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> }</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div> +<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082"> 275</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a>(uint8_t anchor_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[],</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[])</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> {</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  uint8_t i, j;</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">for</span> (i = 0; i < anchor_num; i++) {</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  b_vec[i] = dist_arr[i] * dist_arr[i];</div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">for</span> (j = 0; j < 3; j++) {</div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  b_vec[i] -= anchor_pos_matrix[i][j]</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  * anchor_pos_matrix[i][j];</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> }</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div> +<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba"> 291</a></span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a>(uint8_t line_num, uint8_t col_num,</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[line_num][col_num],</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sol_vec[])</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> {</div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordtype">int</span> i, j;</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  memset(sol_vec, 0, col_num * <span class="keyword">sizeof</span>(<a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a>));</div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">for</span> (i = 0; i < line_num; i++) {</div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">for</span> (j = 0; j < col_num; j++) {</div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  sol_vec[i] += pseudo_inv_matrix[i][j] * b_vec[j];</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html_a0ddd46446f074a0d38c04157686f5fce"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html#a0ddd46446f074a0d38c04157686f5fce">moore_penrose_get_pinv</a></div><div class="ttdeci">int8_t moore_penrose_get_pinv(uint8_t m, uint8_t n, matrix_t A[m][n], matrix_t pinv_A[n][m])</div><div class="ttdoc">Calculate the Moore–Penrose inverse of a rectangular matrix.</div><div class="ttdef"><b>Definition:</b> <a href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_pseudo_inverse.c:38</a></div></div> +<div class="ttc" id="atrilateration_8c_html_a45883b7c5af43c478bb488b536faa56e"><div class="ttname"><a href="trilateration_8c.html#a45883b7c5af43c478bb488b536faa56e">trilateration_get_quadratic_equation_solution</a></div><div class="ttdeci">void trilateration_get_quadratic_equation_solution(matrix_t Xp[], matrix_t Xh[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Solve a quadratic equation.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00193">trilateration.c:193</a></div></div> +<div class="ttc" id="atrilateration_8c_html_abe0c5c3a77d41a6a94aceb8069ec2082"><div class="ttname"><a href="trilateration_8c.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a></div><div class="ttdeci">void trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[], matrix_t anchor_pos_matrix[anchor_num][3], matrix_t b_vec[])</div><div class="ttdoc">Computes the vector of the equation system: .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00275">trilateration.c:275</a></div></div> +<div class="ttc" id="amatrix_8h_html_ad610bcce232c69ca302550f57b1ad9fb"><div class="ttname"><a href="matrix_8h.html#ad610bcce232c69ca302550f57b1ad9fb">matrix_mul_vec</a></div><div class="ttdeci">void matrix_mul_vec(uint8_t m, uint8_t n, matrix_t matrix[m][n], matrix_t vec[n], matrix_t dst_arr[m])</div><div class="ttdoc">Compute the multiplication of a matrix with a column vector.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00434">matrix.c:434</a></div></div> +<div class="ttc" id="atrilateration_8c_html_a95fc45efcb10019be21704539eeedefb"><div class="ttname"><a href="trilateration_8c.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a></div><div class="ttdeci">void trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00032">trilateration.c:32</a></div></div> +<div class="ttc" id="atrilateration_8h_html"><div class="ttname"><a href="trilateration_8h.html">trilateration.h</a></div><div class="ttdoc">Implement the trilateration algorithm.</div></div> +<div class="ttc" id="astructmatrix__dim__t_html_a853244a0562d43bfdcdcb704ed707721"><div class="ttname"><a href="structmatrix__dim__t.html#a853244a0562d43bfdcdcb704ed707721">matrix_dim_t::row_num</a></div><div class="ttdeci">uint8_t row_num</div><div class="ttdoc">the row number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00061">matrix.h:61</a></div></div> +<div class="ttc" id="asvd_8h_html_acdccfce5b7732e6334ca5a521c57e63e"><div class="ttname"><a href="svd_8h.html#acdccfce5b7732e6334ca5a521c57e63e">svd</a></div><div class="ttdeci">void svd(uint8_t m, uint8_t n, matrix_t A[m][n], uint8_t u_m, uint8_t u_n, matrix_t U[u_m][u_n], matrix_t S[u_n][n], matrix_t V[n][n], uint8_t sing_vec_length, matrix_t singl_values_vec[])</div><div class="ttdoc">Compute the Singular-Value Decomposition (SVD) of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00119">svd.c:119</a></div></div> +<div class="ttc" id="amatrix_8h_html_a53879e7c4cfbc96725aef9f8234be7dd"><div class="ttname"><a href="matrix_8h.html#a53879e7c4cfbc96725aef9f8234be7dd">matrix_get_rank</a></div><div class="ttdeci">uint8_t matrix_get_rank(uint8_t m, uint8_t n, matrix_t singl_values_arr[], uint8_t length)</div><div class="ttdoc">Compute the rank of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8c_source.html#l00312">matrix.c:312</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="amoore__penrose__pseudo__inverse_8h_html"><div class="ttname"><a href="moore__penrose__pseudo__inverse_8h.html">moore_penrose_pseudo_inverse.h</a></div><div class="ttdoc">Moore–Penrose algorithm to compute the pseudo-inverse of a matrix.</div></div> +<div class="ttc" id="atrilateration_8c_html_ab5f06e68df75b4708d722c268932578c"><div class="ttname"><a href="trilateration_8c.html#ab5f06e68df75b4708d722c268932578c">trilateration_get_rank_and_homogeneous_solution</a></div><div class="ttdeci">uint8_t trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t Xh[])</div><div class="ttdoc">Compute the rank and the solution of the homogeneous system .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00149">trilateration.c:149</a></div></div> +<div class="ttc" id="atrilateration_8c_html_a4270371ead754327c478d19d57bfafba"><div class="ttname"><a href="trilateration_8c.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a></div><div class="ttdeci">void trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num, matrix_t pseudo_inv_matrix[line_num][col_num], matrix_t b_vec[], matrix_t sol_vec[])</div><div class="ttdoc">Solve a linear equation.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00291">trilateration.c:291</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html"><div class="ttname"><a href="structmatrix__dim__t.html">matrix_dim_t</a></div><div class="ttdoc">A structure to define the row and column number of a matrix.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00060">matrix.h:60</a></div></div> +<div class="ttc" id="asvd_8h_html"><div class="ttname"><a href="svd_8h.html">svd.h</a></div><div class="ttdoc">Algorithm for the Singular Value Decomposition (SVD).</div></div> +<div class="ttc" id="asvd_8h_html_a91b85e542b1fc44d3500ba52aecb8e0e"><div class="ttname"><a href="svd_8h.html#a91b85e542b1fc44d3500ba52aecb8e0e">svd_get_single_values_num</a></div><div class="ttdeci">uint8_t svd_get_single_values_num(uint8_t m, uint8_t n)</div><div class="ttdoc">Calculate the number of the singular values.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00114">svd.c:114</a></div></div> +<div class="ttc" id="atrilateration_8c_html_aadf622c7ec43dce57988a9aef1533758"><div class="ttname"><a href="trilateration_8c.html#aadf622c7ec43dce57988a9aef1533758">trilateration_preprocessed_get_particular_solution</a></div><div class="ttdeci">void trilateration_preprocessed_get_particular_solution(matrix_t pseudo_inv_matrix[4][3], matrix_t b_arr[], matrix_t particular_solu_arr[])</div><div class="ttdoc">Compute the particular solution, which is the general solution of .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00121">trilateration.c:121</a></div></div> +<div class="ttc" id="atrilateration_8c_html_a3c9dfccb08c7e4cdb5533cd6bc8b5832"><div class="ttname"><a href="trilateration_8c.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a></div><div class="ttdeci">void trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4])</div><div class="ttdoc">Computes the matrix of the equation system: .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00256">trilateration.c:256</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="atrilateration_8c_html_a76695d4831cf7c08b468fe56f117b358"><div class="ttname"><a href="trilateration_8c.html#a76695d4831cf7c08b468fe56f117b358">trilateration_get_particular_solution</a></div><div class="ttdeci">void trilateration_get_particular_solution(uint8_t m, uint8_t n, matrix_t anchor_pos_mat[m][n], matrix_t dist_arr[], matrix_t Xp[])</div><div class="ttdoc">Compute the particular solution, which is the general solution of .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00179">trilateration.c:179</a></div></div> +<div class="ttc" id="atrilateration_8c_html_adf749802a4d86c2a97a6bac50d17bfea"><div class="ttname"><a href="trilateration_8c.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a></div><div class="ttdeci">void trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00069">trilateration.c:69</a></div></div> +<div class="ttc" id="asvd_8h_html_a8194826f85cc3105c4d8d4f342ca8df8"><div class="ttname"><a href="svd_8h.html#a8194826f85cc3105c4d8d4f342ca8df8">svd_get_U_dim</a></div><div class="ttdeci">void svd_get_U_dim(uint8_t m, uint8_t n, matrix_dim_t *u_dim)</div><div class="ttdoc">Calculate the dimension of the matrix U.</div><div class="ttdef"><b>Definition:</b> <a href="svd_8c_source.html#l00096">svd.c:96</a></div></div> +<div class="ttc" id="astructmatrix__dim__t_html_aac6b6ff205184047714d5c22019bdbab"><div class="ttname"><a href="structmatrix__dim__t.html#aac6b6ff205184047714d5c22019bdbab">matrix_dim_t::col_num</a></div><div class="ttdeci">uint8_t col_num</div><div class="ttdoc">the column number</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00062">matrix.h:62</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="trilateration_8c.html">trilateration.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/trilateration_8h.html b/doc/doxygen/html/trilateration_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..9124dd57d815993dd10ddff4079899cb43f9ee1f --- /dev/null +++ b/doc/doxygen/html/trilateration_8h.html @@ -0,0 +1,690 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: trilateration.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('trilateration_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">trilateration.h File Reference<div class="ingroups"><a class="el" href="group__localization.html">LOCALIZATION</a> » <a class="el" href="group__position__algos.html">POSITION_ALGOS</a> » <a class="el" href="group__pos__algos__common.html">POS_ALGOS_COMMON</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Implement the trilateration algorithm. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="matrix_8h_source.html">matrix.h</a>"</code><br /> +</div> +<p><a href="trilateration_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a95fc45efcb10019be21704539eeedefb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:a95fc45efcb10019be21704539eeedefb"><td class="mdescLeft"> </td><td class="mdescRight">Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix. <a href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">More...</a><br /></td></tr> +<tr class="separator:a95fc45efcb10019be21704539eeedefb"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adf749802a4d86c2a97a6bac50d17bfea"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:adf749802a4d86c2a97a6bac50d17bfea"><td class="mdescLeft"> </td><td class="mdescRight">Implement the trilateration algorithm. <a href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">More...</a><br /></td></tr> +<tr class="separator:adf749802a4d86c2a97a6bac50d17bfea"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3c9dfccb08c7e4cdb5533cd6bc8b5832"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a> (uint8_t m, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[m][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_matrix[m][4])</td></tr> +<tr class="memdesc:a3c9dfccb08c7e4cdb5533cd6bc8b5832"><td class="mdescLeft"> </td><td class="mdescRight">Computes the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. <a href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">More...</a><br /></td></tr> +<tr class="separator:a3c9dfccb08c7e4cdb5533cd6bc8b5832"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abe0c5c3a77d41a6a94aceb8069ec2082"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[])</td></tr> +<tr class="memdesc:abe0c5c3a77d41a6a94aceb8069ec2082"><td class="mdescLeft"> </td><td class="mdescRight">Computes the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. <a href="trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082">More...</a><br /></td></tr> +<tr class="separator:abe0c5c3a77d41a6a94aceb8069ec2082"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aadf622c7ec43dce57988a9aef1533758"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758">trilateration_preprocessed_get_particular_solution</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> particular_solu_arr[])</td></tr> +<tr class="memdesc:aadf622c7ec43dce57988a9aef1533758"><td class="mdescLeft"> </td><td class="mdescRight">Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0}$" src="form_49.png"/>. <a href="trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758">More...</a><br /></td></tr> +<tr class="separator:aadf622c7ec43dce57988a9aef1533758"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a76695d4831cf7c08b468fe56f117b358"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358">trilateration_get_particular_solution</a> (uint8_t m, uint8_t n, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_mat[m][n], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xp[])</td></tr> +<tr class="memdesc:a76695d4831cf7c08b468fe56f117b358"><td class="mdescLeft"> </td><td class="mdescRight">Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0} $" src="form_50.png"/>. <a href="trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358">More...</a><br /></td></tr> +<tr class="separator:a76695d4831cf7c08b468fe56f117b358"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab5f06e68df75b4708d722c268932578c"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#ab5f06e68df75b4708d722c268932578c">trilateration_get_rank_and_homogeneous_solution</a> (uint8_t anchor_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xh[])</td></tr> +<tr class="memdesc:ab5f06e68df75b4708d722c268932578c"><td class="mdescLeft"> </td><td class="mdescRight">Compute the rank and the solution of the homogeneous system <img class="formulaInl" alt="$ A \vec{x_0} = 0 $" src="form_51.png"/>. <a href="trilateration_8h.html#ab5f06e68df75b4708d722c268932578c">More...</a><br /></td></tr> +<tr class="separator:ab5f06e68df75b4708d722c268932578c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a821d668be2cee0fa1881c05ab99e05fe"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe">trilateration_get_quadratic_equation_solution</a> (<a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> particular_solu_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homogeneous_solution_arr[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[])</td></tr> +<tr class="memdesc:a821d668be2cee0fa1881c05ab99e05fe"><td class="mdescLeft"> </td><td class="mdescRight">Solve a quadratic equation. <a href="trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe">More...</a><br /></td></tr> +<tr class="separator:a821d668be2cee0fa1881c05ab99e05fe"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4270371ead754327c478d19d57bfafba"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="trilateration_8h.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a> (uint8_t line_num, uint8_t col_num, <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[line_num][col_num], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[], <a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sol_vec[])</td></tr> +<tr class="memdesc:a4270371ead754327c478d19d57bfafba"><td class="mdescLeft"> </td><td class="mdescRight">Solve a linear equation. <a href="trilateration_8h.html#a4270371ead754327c478d19d57bfafba">More...</a><br /></td></tr> +<tr class="separator:a4270371ead754327c478d19d57bfafba"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Implement the trilateration algorithm. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd> +<dd> +Abdelmoumen Norrdine <a href="#" onclick="location.href='mai'+'lto:'+'a.n'+'or'+'rdi'+'ne'+'@go'+'og'+'lem'+'ai'+'l.c'+'om'; return false;">a.nor<span style="display: none;">.nosp@m.</span>rdin<span style="display: none;">.nosp@m.</span>e@goo<span style="display: none;">.nosp@m.</span>glem<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="trilateration_8h_source.html">trilateration.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a95fc45efcb10019be21704539eeedefb"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a95fc45efcb10019be21704539eeedefb">◆ </a></span>trilateration1()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration1 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[4][anchor_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>homog_sol_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix. </p> +<dl class="section note"><dt>Note</dt><dd>This function should be initialized with the pre-processed pseudo-inverse matrix of the equation system: <img class="formulaInl" alt="$ A \vec{x} = 0 $" src="form_42.png"/>. Caution!: The <code>solution_x1</code> and the <code>solution_x2</code> vectors have a length of 3 or 4 in the case of two-dimensional or three-dimensional space. The first element <img class="formulaInl" alt="$(x_0)$" src="form_43.png"/> of the <code>solution_x1</code>[] and the <code>solution_x2</code>[] vectors is a measure of the solvability of the multilateration problem. For example, in the three-dimensional space: <img class="formulaInl" alt="$ d = x_0 - \left( x_1^{2} + x_2^{2} + x_3^{2} \right)$" src="form_44.png"/>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">homog_sol_arr[]</td><td>the homogeneous solution. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>includes the first solution. It has the length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>includes the second solution. It has length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00032">32</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="trilateration_8c_source.html#l00275">trilateration_get_b_vector()</a>, <a class="el" href="trilateration_8c_source.html#l00193">trilateration_get_quadratic_equation_solution()</a>, <a class="el" href="trilateration_8c_source.html#l00121">trilateration_preprocessed_get_particular_solution()</a>, and <a class="el" href="trilateration_8c_source.html#l00291">trilateration_solve_linear_equation()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__position_8c_source.html#l00188">magnetic_based_preprocessing_get_position()</a>.</p> + +</div> +</div> +<a id="adf749802a4d86c2a97a6bac50d17bfea"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adf749802a4d86c2a97a6bac50d17bfea">◆ </a></span>trilateration2()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration2 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Implement the trilateration algorithm. </p> +<dl class="section note"><dt>Note</dt><dd>The pre-processed pseudo-inverse matrix of the equation system: <img class="formulaInl" alt="$ A \vec{x} = 0 $" src="form_42.png"/> is computed on the mobile station. Caution!: The <code>solution_x1</code> and the <code>solution_x2</code> vectors have a length of 3 or 4 in the case of two-dimensional or three-dimensional space. The first element <img class="formulaInl" alt="$(x_0)$" src="form_43.png"/> of the <code>solution_x1</code>[] and the <code>solution_x2</code>[] vectors is a measure of the solvability of the multilateration problem. For example, in the three-dimensional space: <img class="formulaInl" alt="$ d = x_0 - \left( x_1^{2} + x_2^{2} + x_3^{2} \right)$" src="form_44.png"/>.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>includes the first solution. It has the length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>includes the second solution. It has the length of 3 or 4 in the case of two-dimensional or three-dimensional space. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00069">69</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="trilateration_8c_source.html#l00256">trilateration_get_A_matrix()</a>, <a class="el" href="trilateration_8c_source.html#l00275">trilateration_get_b_vector()</a>, <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>, <a class="el" href="trilateration_8c_source.html#l00193">trilateration_get_quadratic_equation_solution()</a>, <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>, and <a class="el" href="trilateration_8c_source.html#l00291">trilateration_solve_linear_equation()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="distance__based__test_8c_source.html#l00032">distance_based_test()</a>, <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>, and <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a3c9dfccb08c7e4cdb5533cd6bc8b5832"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3c9dfccb08c7e4cdb5533cd6bc8b5832">◆ </a></span>trilateration_get_A_matrix()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_A_matrix </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[m][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>A_matrix</em>[m][4] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">A_matrix[][]</td><td>pointer to the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00256">256</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="pos__algos__common__test_8c_source.html#l00030">pos_algos_common_test()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>, and <a class="el" href="trilateration_8c_source.html#l00149">trilateration_get_rank_and_homogeneous_solution()</a>.</p> + +</div> +</div> +<a id="abe0c5c3a77d41a6a94aceb8069ec2082"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abe0c5c3a77d41a6a94aceb8069ec2082">◆ </a></span>trilateration_get_b_vector()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_b_vector </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Computes the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/> of the equation system: <img class="formulaInl" alt="$ A \vec{x} = \vec{b}$" src="form_46.png"/>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">b_vec[]</td><td>pointer to the vector <img class="formulaInl" alt="$ vec{b} $" src="form_48.png"/>. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00275">275</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>, <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>, and <a class="el" href="trilateration_8c_source.html#l00179">trilateration_get_particular_solution()</a>.</p> + +</div> +</div> +<a id="a76695d4831cf7c08b468fe56f117b358"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a76695d4831cf7c08b468fe56f117b358">◆ </a></span>trilateration_get_particular_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_particular_solution </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>m</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_mat</em>[m][n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>dist_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Xp</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0} $" src="form_50.png"/>. </p> +<dl class="section note"><dt>Note</dt><dd>The particular solution is calculated in the case of three reference stations. The particular solution is computed on the mobile station.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>column number of the reference stations matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_mat[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dist_arr[]</td><td>distances to the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">Xp[]</td><td>includes the particular solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00179">179</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8c_source.html#l00434">matrix_mul_vec()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="moore__penrose__pseudo__inverse_8c_source.html#l00038">moore_penrose_get_pinv()</a>, <a class="el" href="trilateration_8c_source.html#l00256">trilateration_get_A_matrix()</a>, and <a class="el" href="trilateration_8c_source.html#l00275">trilateration_get_b_vector()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +<a id="a821d668be2cee0fa1881c05ab99e05fe"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a821d668be2cee0fa1881c05ab99e05fe">◆ </a></span>trilateration_get_quadratic_equation_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_get_quadratic_equation_solution </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>particular_solu_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>homogeneous_solution_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>solution_x2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve a quadratic equation. </p> +<p>The quotients of the quadratic equation are derived from the particular and homogeneous solution.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">particular_solu_arr[]</td><td>pointer to the particular solution. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">homogeneous_solution_arr[]</td><td>pointer to the homogeneous solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x1[]</td><td>presents the first solution. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">solution_x2[]</td><td>presents the second solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00193">193</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>, and <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +<a id="ab5f06e68df75b4708d722c268932578c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab5f06e68df75b4708d722c268932578c">◆ </a></span>trilateration_get_rank_and_homogeneous_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t trilateration_get_rank_and_homogeneous_solution </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>anchor_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>anchor_pos_matrix</em>[anchor_num][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>Xh</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the rank and the solution of the homogeneous system <img class="formulaInl" alt="$ A \vec{x_0} = 0 $" src="form_51.png"/>. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_num</td><td>number of the reference stations. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">anchor_pos_matrix[][]</td><td>three-dimensional coordinates of the reference stations. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">Xh[]</td><td>includes the homogeneous solution.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the rank of the matrix <img class="formulaInl" alt="$ A $" src="form_45.png"/>. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00149">149</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00062">matrix_dim_t::col_num</a>, <a class="el" href="matrix_8c_source.html#l00312">matrix_get_rank()</a>, <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>, <a class="el" href="matrix_8h_source.html#l00061">matrix_dim_t::row_num</a>, <a class="el" href="svd_8c_source.html#l00119">svd()</a>, <a class="el" href="svd_8c_source.html#l00114">svd_get_single_values_num()</a>, <a class="el" href="svd_8c_source.html#l00096">svd_get_U_dim()</a>, and <a class="el" href="trilateration_8c_source.html#l00256">trilateration_get_A_matrix()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +<a id="aadf622c7ec43dce57988a9aef1533758"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aadf622c7ec43dce57988a9aef1533758">◆ </a></span>trilateration_preprocessed_get_particular_solution()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_preprocessed_get_particular_solution </td> + <td>(</td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[4][3], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>particular_solu_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the particular solution, which is the general solution of <img class="formulaInl" alt="$ A \vec{x_0} = \vec{b_0}$" src="form_49.png"/>. </p> +<dl class="section note"><dt>Note</dt><dd>The particular solution is calculated in the case of three reference stations. The particular solution is computed using the pre-processed pseudo-inverse matrix.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_arr[]</td><td>pointer the vector <img class="formulaInl" alt="$ vec{b} $" src="form_48.png"/>. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">particular_solu_arr[]</td><td>includes the particular solution. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00121">121</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>.</p> + +</div> +</div> +<a id="a4270371ead754327c478d19d57bfafba"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4270371ead754327c478d19d57bfafba">◆ </a></span>trilateration_solve_linear_equation()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void trilateration_solve_linear_equation </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>line_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>col_num</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>pseudo_inv_matrix</em>[line_num][col_num], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>b_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> </td> + <td class="paramname"><em>sol_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Solve a linear equation. </p> +<p>The linear equation is solved by using the pre-processed pseudo-inverse matrix and the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/></p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">line_num</td><td>row number of the pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">col_num</td><td>column number of the pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">pseudo_inv_matrix[][]</td><td>pointer to the pre-processed pseudo-inverse matrix. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the vector <img class="formulaInl" alt="$ \vec{b} $" src="form_47.png"/>. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">sol_vec[]</td><td>solution vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="trilateration_8c_source.html#l00291">291</a> of file <a class="el" href="trilateration_8c_source.html">trilateration.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00038">matrix_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="trilateration_8c_source.html#l00032">trilateration1()</a>, and <a class="el" href="trilateration_8c_source.html#l00069">trilateration2()</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_321173b8d48684d54b5d9118730b6e4e.html">include</a></li><li class="navelem"><a class="el" href="trilateration_8h.html">trilateration.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/trilateration_8h.js b/doc/doxygen/html/trilateration_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..7d61815b8519414e3ee0f7354f6212e7039c5784 --- /dev/null +++ b/doc/doxygen/html/trilateration_8h.js @@ -0,0 +1,12 @@ +var trilateration_8h = +[ + [ "trilateration1", "trilateration_8h.html#a95fc45efcb10019be21704539eeedefb", null ], + [ "trilateration2", "trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea", null ], + [ "trilateration_get_A_matrix", "trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832", null ], + [ "trilateration_get_b_vector", "trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082", null ], + [ "trilateration_get_particular_solution", "trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358", null ], + [ "trilateration_get_quadratic_equation_solution", "trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe", null ], + [ "trilateration_get_rank_and_homogeneous_solution", "trilateration_8h.html#ab5f06e68df75b4708d722c268932578c", null ], + [ "trilateration_preprocessed_get_particular_solution", "trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758", null ], + [ "trilateration_solve_linear_equation", "trilateration_8h.html#a4270371ead754327c478d19d57bfafba", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/trilateration_8h_source.html b/doc/doxygen/html/trilateration_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..807a593241ec06f6cfadc854ac4eafd47d94a82d --- /dev/null +++ b/doc/doxygen/html/trilateration_8h_source.html @@ -0,0 +1,176 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: trilateration.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('trilateration_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">trilateration.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="trilateration_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef TRILATERATION_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define TRILATERATION_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="matrix_8h.html">matrix.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][anchor_num],</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homog_sol_arr[],</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[],</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[]</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  );</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[],</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[]);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a>(uint8_t m, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[m][3],</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> A_matrix[m][4]);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a>(uint8_t anchor_num, <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[],</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[]);</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758">trilateration_preprocessed_get_particular_solution</a>(</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[4][3],</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_arr[],</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> particular_solu_arr[]);</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358">trilateration_get_particular_solution</a>(uint8_t m, uint8_t n,</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_mat[m][n],</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> dist_arr[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xp[]);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> uint8_t <a class="code" href="trilateration_8h.html#ab5f06e68df75b4708d722c268932578c">trilateration_get_rank_and_homogeneous_solution</a>(uint8_t anchor_num,</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> anchor_pos_matrix[anchor_num][3],</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> Xh[]);</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe">trilateration_get_quadratic_equation_solution</a>(</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> particular_solu_arr[],</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> homogeneous_solution_arr[],</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x1[],</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> solution_x2[]);</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keywordtype">void</span> <a class="code" href="trilateration_8h.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a>(uint8_t line_num, uint8_t col_num,</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> pseudo_inv_matrix[line_num][col_num],</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> b_vec[], <a class="code" href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a> sol_vec[]);</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#endif </span><span class="comment">/* TRILATERATION_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="atrilateration_8h_html_a3c9dfccb08c7e4cdb5533cd6bc8b5832"><div class="ttname"><a href="trilateration_8h.html#a3c9dfccb08c7e4cdb5533cd6bc8b5832">trilateration_get_A_matrix</a></div><div class="ttdeci">void trilateration_get_A_matrix(uint8_t m, matrix_t anchor_pos_matrix[m][3], matrix_t A_matrix[m][4])</div><div class="ttdoc">Computes the matrix of the equation system: .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00256">trilateration.c:256</a></div></div> +<div class="ttc" id="atrilateration_8h_html_abe0c5c3a77d41a6a94aceb8069ec2082"><div class="ttname"><a href="trilateration_8h.html#abe0c5c3a77d41a6a94aceb8069ec2082">trilateration_get_b_vector</a></div><div class="ttdeci">void trilateration_get_b_vector(uint8_t anchor_num, matrix_t dist_arr[], matrix_t anchor_pos_matrix[anchor_num][3], matrix_t b_vec[])</div><div class="ttdoc">Computes the vector of the equation system: .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00275">trilateration.c:275</a></div></div> +<div class="ttc" id="atrilateration_8h_html_a821d668be2cee0fa1881c05ab99e05fe"><div class="ttname"><a href="trilateration_8h.html#a821d668be2cee0fa1881c05ab99e05fe">trilateration_get_quadratic_equation_solution</a></div><div class="ttdeci">void trilateration_get_quadratic_equation_solution(matrix_t particular_solu_arr[], matrix_t homogeneous_solution_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Solve a quadratic equation.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00193">trilateration.c:193</a></div></div> +<div class="ttc" id="amatrix_8h_html"><div class="ttname"><a href="matrix_8h.html">matrix.h</a></div><div class="ttdoc">Matrix computations.</div></div> +<div class="ttc" id="atrilateration_8h_html_aadf622c7ec43dce57988a9aef1533758"><div class="ttname"><a href="trilateration_8h.html#aadf622c7ec43dce57988a9aef1533758">trilateration_preprocessed_get_particular_solution</a></div><div class="ttdeci">void trilateration_preprocessed_get_particular_solution(matrix_t pseudo_inv_matrix[4][3], matrix_t b_arr[], matrix_t particular_solu_arr[])</div><div class="ttdoc">Compute the particular solution, which is the general solution of .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00121">trilateration.c:121</a></div></div> +<div class="ttc" id="atrilateration_8h_html_a4270371ead754327c478d19d57bfafba"><div class="ttname"><a href="trilateration_8h.html#a4270371ead754327c478d19d57bfafba">trilateration_solve_linear_equation</a></div><div class="ttdeci">void trilateration_solve_linear_equation(uint8_t line_num, uint8_t col_num, matrix_t pseudo_inv_matrix[line_num][col_num], matrix_t b_vec[], matrix_t sol_vec[])</div><div class="ttdoc">Solve a linear equation.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00291">trilateration.c:291</a></div></div> +<div class="ttc" id="atrilateration_8h_html_ab5f06e68df75b4708d722c268932578c"><div class="ttname"><a href="trilateration_8h.html#ab5f06e68df75b4708d722c268932578c">trilateration_get_rank_and_homogeneous_solution</a></div><div class="ttdeci">uint8_t trilateration_get_rank_and_homogeneous_solution(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t Xh[])</div><div class="ttdoc">Compute the rank and the solution of the homogeneous system .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00149">trilateration.c:149</a></div></div> +<div class="ttc" id="atrilateration_8h_html_adf749802a4d86c2a97a6bac50d17bfea"><div class="ttname"><a href="trilateration_8h.html#adf749802a4d86c2a97a6bac50d17bfea">trilateration2</a></div><div class="ttdeci">void trilateration2(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00069">trilateration.c:69</a></div></div> +<div class="ttc" id="atrilateration_8h_html_a76695d4831cf7c08b468fe56f117b358"><div class="ttname"><a href="trilateration_8h.html#a76695d4831cf7c08b468fe56f117b358">trilateration_get_particular_solution</a></div><div class="ttdeci">void trilateration_get_particular_solution(uint8_t m, uint8_t n, matrix_t anchor_pos_mat[m][n], matrix_t dist_arr[], matrix_t Xp[])</div><div class="ttdoc">Compute the particular solution, which is the general solution of .</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00179">trilateration.c:179</a></div></div> +<div class="ttc" id="amatrix_8h_html_af38ac6b76d645fea9abd6caeb4d9dd31"><div class="ttname"><a href="matrix_8h.html#af38ac6b76d645fea9abd6caeb4d9dd31">matrix_t</a></div><div class="ttdeci">#define matrix_t</div><div class="ttdoc">Define the data type of the matrix elements.</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00038">matrix.h:38</a></div></div> +<div class="ttc" id="atrilateration_8h_html_a95fc45efcb10019be21704539eeedefb"><div class="ttname"><a href="trilateration_8h.html#a95fc45efcb10019be21704539eeedefb">trilateration1</a></div><div class="ttdeci">void trilateration1(uint8_t anchor_num, matrix_t anchor_pos_matrix[anchor_num][3], matrix_t pseudo_inv_matrix[4][anchor_num], matrix_t homog_sol_arr[], matrix_t dist_arr[], matrix_t solution_x1[], matrix_t solution_x2[])</div><div class="ttdoc">Implement the trilateration algorithm using the pre-processed pseudo-inverse matrix.</div><div class="ttdef"><b>Definition:</b> <a href="trilateration_8c_source.html#l00032">trilateration.c:32</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_ca7b3fe3a5c68321cdadecc73cd5d1a0.html">localization</a></li><li class="navelem"><a class="el" href="dir_fdc176930829c278cabf5fddd85dbef8.html">position_algos</a></li><li class="navelem"><a class="el" href="dir_8b81d7492c96188faba0bade87ee2c10.html">pos_algos_common</a></li><li class="navelem"><a class="el" href="dir_321173b8d48684d54b5d9118730b6e4e.html">include</a></li><li class="navelem"><a class="el" href="trilateration_8h.html">trilateration.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils_8c.html b/doc/doxygen/html/utils_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..e97f47e9699def76202af05da6d45e9ba5adca55 --- /dev/null +++ b/doc/doxygen/html/utils_8c.html @@ -0,0 +1,653 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">utils.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Utilities for linear algebra. Utility-functions are needed by the linear algebra-module as well as other modules such as the position algorithm-module. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <math.h></code><br /> +<code>#include <stdarg.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="shell__sort_8h_source.html">shell_sort.h</a>"</code><br /> +</div> +<p><a href="utils_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a689d2d3db40d341609423404abc5a23a"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a> (double deg_angle)</td></tr> +<tr class="memdesc:a689d2d3db40d341609423404abc5a23a"><td class="mdescLeft"> </td><td class="mdescRight">Convert the angle from degrees to radians. <a href="utils_8c.html#a689d2d3db40d341609423404abc5a23a">More...</a><br /></td></tr> +<tr class="separator:a689d2d3db40d341609423404abc5a23a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aad6440ba12fa7e2e1fae5ba6dc99cabf"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a> (double deg_angle)</td></tr> +<tr class="memdesc:aad6440ba12fa7e2e1fae5ba6dc99cabf"><td class="mdescLeft"> </td><td class="mdescRight">Compute the sine of a variable in degrees. <a href="utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">More...</a><br /></td></tr> +<tr class="separator:aad6440ba12fa7e2e1fae5ba6dc99cabf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad21f654c48115ba2419ca98644a44ae9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a> (uint8_t *a, uint8_t *b)</td></tr> +<tr class="memdesc:ad21f654c48115ba2419ca98644a44ae9"><td class="mdescLeft"> </td><td class="mdescRight">Interchange the values of two variables of type uint8_t. <a href="utils_8c.html#ad21f654c48115ba2419ca98644a44ae9">More...</a><br /></td></tr> +<tr class="separator:ad21f654c48115ba2419ca98644a44ae9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0ae8ea233ea6c519cd0434f8c5bde5e5"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a> (double a, double b)</td></tr> +<tr class="memdesc:a0ae8ea233ea6c519cd0434f8c5bde5e5"><td class="mdescLeft"> </td><td class="mdescRight">Returns the greater of two real numbers. <a href="utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">More...</a><br /></td></tr> +<tr class="separator:a0ae8ea233ea6c519cd0434f8c5bde5e5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab734a543e5543adb2bd98e1bf279a23d"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a> (double a, double b)</td></tr> +<tr class="memdesc:ab734a543e5543adb2bd98e1bf279a23d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the smaller of two real numbers. <a href="utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d">More...</a><br /></td></tr> +<tr class="separator:ab734a543e5543adb2bd98e1bf279a23d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8163bb6a1c9742b9607fd87c6b3df5c5"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils_u8_max</a> (uint8_t a, uint8_t b)</td></tr> +<tr class="memdesc:a8163bb6a1c9742b9607fd87c6b3df5c5"><td class="mdescLeft"> </td><td class="mdescRight">Returns the greater of two numbers from type uint8_t. <a href="utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5">More...</a><br /></td></tr> +<tr class="separator:a8163bb6a1c9742b9607fd87c6b3df5c5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a81dabd4841ab656130497f0600979850"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a81dabd4841ab656130497f0600979850">utils_u8_min</a> (uint8_t a, uint8_t b)</td></tr> +<tr class="memdesc:a81dabd4841ab656130497f0600979850"><td class="mdescLeft"> </td><td class="mdescRight">Returns the smaller of two numbers from type uint8_t. <a href="utils_8c.html#a81dabd4841ab656130497f0600979850">More...</a><br /></td></tr> +<tr class="separator:a81dabd4841ab656130497f0600979850"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a335d8d6c4b945638261228cd116cccd6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a> (char *format_str,...)</td></tr> +<tr class="memdesc:a335d8d6c4b945638261228cd116cccd6"><td class="mdescLeft"> </td><td class="mdescRight">Print by using variable format string as well as argument lists. <a href="utils_8c.html#a335d8d6c4b945638261228cd116cccd6">More...</a><br /></td></tr> +<tr class="separator:a335d8d6c4b945638261228cd116cccd6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acda1e3a1b76af6e0e57b507472986ad6"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a> (uint8_t arr_size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[])</td></tr> +<tr class="memdesc:acda1e3a1b76af6e0e57b507472986ad6"><td class="mdescLeft"> </td><td class="mdescRight">Compute the mean value of a data set. <a href="utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6">More...</a><br /></td></tr> +<tr class="separator:acda1e3a1b76af6e0e57b507472986ad6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a535a04a4bff82c88599e4648dfa7cfe1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a> (uint8_t arr_size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[], uint8_t window_size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> out_arr[])</td></tr> +<tr class="memdesc:a535a04a4bff82c88599e4648dfa7cfe1"><td class="mdescLeft"> </td><td class="mdescRight">Compute the moving average of a data set. <a href="utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1">More...</a><br /></td></tr> +<tr class="separator:a535a04a4bff82c88599e4648dfa7cfe1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a971d455baef2d25c61e94c4bc4ac13ee"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t length)</td></tr> +<tr class="memdesc:a971d455baef2d25c61e94c4bc4ac13ee"><td class="mdescLeft"> </td><td class="mdescRight">Compute the median of a finite array of numbers. <a href="utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee">More...</a><br /></td></tr> +<tr class="separator:a971d455baef2d25c61e94c4bc4ac13ee"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8cda5a6c15e99e2b76abfb04316301d8"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a> (double x, double y)</td></tr> +<tr class="memdesc:a8cda5a6c15e99e2b76abfb04316301d8"><td class="mdescLeft"> </td><td class="mdescRight">sqrt(a^2 + b^2) without under/overflow. <a href="utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8">More...</a><br /></td></tr> +<tr class="separator:a8cda5a6c15e99e2b76abfb04316301d8"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Utilities for linear algebra. Utility-functions are needed by the linear algebra-module as well as other modules such as the position algorithm-module. </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a971d455baef2d25c61e94c4bc4ac13ee"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a971d455baef2d25c61e94c4bc4ac13ee">◆ </a></span>utils_get_median()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_get_median </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the median of a finite array of numbers. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the data set.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the median value of the data set. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00152">152</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">References <a class="el" href="shell__sort_8c_source.html#l00049">shell_sort()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a8cda5a6c15e99e2b76abfb04316301d8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8cda5a6c15e99e2b76abfb04316301d8">◆ </a></span>utils_get_save_square_root()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_get_save_square_root </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>y</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>sqrt(a^2 + b^2) without under/overflow. </p> +<p>Compute the square root without under/overflow. </p> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00168">168</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__householder_8c_source.html#l00033">qr_householder_decomp()</a>.</p> + +</div> +</div> +<a id="a0ae8ea233ea6c519cd0434f8c5bde5e5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0ae8ea233ea6c519cd0434f8c5bde5e5">◆ </a></span>utils_max()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_max </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the greater of two real numbers. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the greater of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00055">55</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, and <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="acda1e3a1b76af6e0e57b507472986ad6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acda1e3a1b76af6e0e57b507472986ad6">◆ </a></span>utils_mean()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_mean </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>arr_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>in_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the mean value of a data set. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr_size</td><td>size of the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">in_arr[]</td><td>pointer to the data set.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the mean value of the data set. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00105">105</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="ab734a543e5543adb2bd98e1bf279a23d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab734a543e5543adb2bd98e1bf279a23d">◆ </a></span>utils_min()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_min </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the smaller of two real numbers. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the smaller of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00065">65</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a535a04a4bff82c88599e4648dfa7cfe1"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a535a04a4bff82c88599e4648dfa7cfe1">◆ </a></span>utils_moving_average()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void utils_moving_average </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>arr_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>in_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>window_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>out_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the moving average of a data set. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr_size</td><td>size of the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">in_arr[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">window_size</td><td>window size. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">out_arr</td><td>pointer to the values of the moving average. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00121">121</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a335d8d6c4b945638261228cd116cccd6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a335d8d6c4b945638261228cd116cccd6">◆ </a></span>utils_printf()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void utils_printf </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"><em>format_str</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"> </td> + <td class="paramname"><em>...</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Print by using variable format string as well as argument lists. </p> +<p>This function enables to print data by using a variable format string as well as argument list. Furthermore, it avoids the error: "format not a string literal", if printf is used.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">*format_str</td><td>format string. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>argument list. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00096">96</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00247">matrix_flex_part_print()</a>, <a class="el" href="matrix_8c_source.html#l00220">matrix_flex_print()</a>, and <a class="el" href="vector_8c_source.html#l00284">vector_flex_print()</a>.</p> + +</div> +</div> +<a id="aad6440ba12fa7e2e1fae5ba6dc99cabf"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aad6440ba12fa7e2e1fae5ba6dc99cabf">◆ </a></span>utils_sind()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_sind </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>deg_angle</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the sine of a variable in degrees. </p> +<p>Calculate the sine of the variable deg_angle, which is expressed in degrees.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">deg_angle</td><td>angle in degrees.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>sine value. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00039">39</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00054">M_PI</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="ad21f654c48115ba2419ca98644a44ae9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad21f654c48115ba2419ca98644a44ae9">◆ </a></span>utils_swap()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void utils_swap </td> + <td>(</td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Interchange the values of two variables of type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">*a</td><td>pointer to first variable. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">*b</td><td>pointer to second variable. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00046">46</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a689d2d3db40d341609423404abc5a23a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a689d2d3db40d341609423404abc5a23a">◆ </a></span>utils_to_radian()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_to_radian </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>deg_angle</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Convert the angle from degrees to radians. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">deg_angle</td><td>angle in degrees.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>angle in radians. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00031">31</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00054">M_PI</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>, and <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a8163bb6a1c9742b9607fd87c6b3df5c5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8163bb6a1c9742b9607fd87c6b3df5c5">◆ </a></span>utils_u8_max()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t utils_u8_max </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the greater of two numbers from type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the greater of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00075">75</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +</div> +</div> +<a id="a81dabd4841ab656130497f0600979850"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a81dabd4841ab656130497f0600979850">◆ </a></span>utils_u8_min()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t utils_u8_min </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the smaller of two numbers from type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the smaller of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00085">85</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="utils_8c.html">utils.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils_8c.js b/doc/doxygen/html/utils_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..60c631f672ad548171f6779ea714c989cd001cf1 --- /dev/null +++ b/doc/doxygen/html/utils_8c.js @@ -0,0 +1,15 @@ +var utils_8c = +[ + [ "utils_get_median", "utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee", null ], + [ "utils_get_save_square_root", "utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8", null ], + [ "utils_max", "utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5", null ], + [ "utils_mean", "utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6", null ], + [ "utils_min", "utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d", null ], + [ "utils_moving_average", "utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1", null ], + [ "utils_printf", "utils_8c.html#a335d8d6c4b945638261228cd116cccd6", null ], + [ "utils_sind", "utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf", null ], + [ "utils_swap", "utils_8c.html#ad21f654c48115ba2419ca98644a44ae9", null ], + [ "utils_to_radian", "utils_8c.html#a689d2d3db40d341609423404abc5a23a", null ], + [ "utils_u8_max", "utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5", null ], + [ "utils_u8_min", "utils_8c.html#a81dabd4841ab656130497f0600979850", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/utils_8c_source.html b/doc/doxygen/html/utils_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..d90c15bfdcb97a046159689c961beb538c2797ef --- /dev/null +++ b/doc/doxygen/html/utils_8c_source.html @@ -0,0 +1,293 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">utils.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="utils_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdarg.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="shell__sort_8h.html">shell_sort.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// from degree to radian</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="utils_8c.html#a689d2d3db40d341609423404abc5a23a"> 31</a></span> <span class="keywordtype">double</span> <a class="code" href="utils_8c.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a>(<span class="keywordtype">double</span> deg_angle)</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordtype">double</span> radians_angle = deg_angle * <a class="code" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a> / 180.0;</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">return</span> radians_angle;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> }</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">//Sine of argument in degrees</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf"> 39</a></span> <span class="keywordtype">double</span> <a class="code" href="utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a>(<span class="keywordtype">double</span> deg_angle)</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordtype">double</span> radians_angle = deg_angle * <a class="code" href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a> / 180.0;</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">return</span> sin(radians_angle);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div> +<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="utils_8c.html#ad21f654c48115ba2419ca98644a44ae9"> 46</a></span> <span class="keywordtype">void</span> <a class="code" href="utils_8c.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a>(uint8_t *a, uint8_t *b)</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  uint8_t tmp;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  tmp = *a;</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  *a = *b;</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  *b = tmp;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5"> 55</a></span> <span class="keywordtype">double</span> <a class="code" href="utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a>(<span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b)</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">if</span> (a < b) {</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div> +<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d"> 65</a></span> <span class="keywordtype">double</span> <a class="code" href="utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a>(<span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b)</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (a < b) {</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5"> 75</a></span> uint8_t <a class="code" href="utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils_u8_max</a>(uint8_t a, uint8_t b)</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (a < b) {</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="utils_8c.html#a81dabd4841ab656130497f0600979850"> 85</a></span> uint8_t <a class="code" href="utils_8c.html#a81dabd4841ab656130497f0600979850">utils_u8_min</a>(uint8_t a, uint8_t b)</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (a < b) {</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> a;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> b;</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// Enables to use variable format strings as well as argument lists</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="utils_8c.html#a335d8d6c4b945638261228cd116cccd6"> 96</a></span> <span class="keywordtype">void</span> <a class="code" href="utils_8c.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(<span class="keywordtype">char</span> *format_str, ...)</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  va_list args;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  va_start(args, format_str);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  vprintf(format_str, args);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  va_end(args);</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div> +<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6"> 105</a></span> <span class="keywordtype">double</span> <a class="code" href="utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a>(uint8_t arr_size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[])</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">double</span> mean = 0.0;</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">if</span> (arr_size <= 0) {</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  puts(<span class="stringliteral">"Not valid input array size !!!"</span>);</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">return</span> mean;</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < arr_size; i++) {</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  mean += in_arr[i];</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> mean / arr_size;</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> +<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1"> 121</a></span> <span class="keywordtype">void</span> <a class="code" href="utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a>(uint8_t arr_size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[],</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  uint8_t window_size,</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> out_arr[])</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">double</span> sum = 0.0;</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">double</span> trail_value = 0;</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  uint8_t pos = 0;</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">if</span> (arr_size <= 0) {</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  puts(<span class="stringliteral">"Not valid input array size !!!"</span>);</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span>;</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (window_size <= 0) {</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  puts(<span class="stringliteral">"Not valid window size !!!"</span>);</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span>;</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < arr_size; i++) {</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  sum = sum - trail_value + in_arr[i];</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  out_arr[i] = sum / window_size;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  pos++;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span> (pos >= window_size) {</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  trail_value = in_arr[pos - window_size];</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div> +<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee"> 152</a></span> <span class="keywordtype">double</span> <a class="code" href="utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t length)</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> {</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordtype">int</span> middle = length / 2;</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a>(arr, length);</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (length % 2 == 1) {</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> arr[middle];</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> (arr[middle - 1] + arr[middle]) / 2.0;</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div> +<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8"> 168</a></span> <span class="keywordtype">double</span> <a class="code" href="utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y)</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> {</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">double</span> sqr_root;</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span> (fabs(x) > fabs(y)) {</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  sqr_root = y / x;</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  sqr_root = fabs(x) * sqrt(1 + sqr_root * sqr_root);</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (y != 0) {</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  sqr_root = x / y;</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  sqr_root = fabs(y) * sqrt(1 + sqr_root * sqr_root);</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  sqr_root = 0.0;</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> sqr_root;</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="ashell__sort_8h_html_a569649d96b2e8f453793ea166d3e96a6"><div class="ttname"><a href="shell__sort_8h.html#a569649d96b2e8f453793ea166d3e96a6">shell_sort</a></div><div class="ttdeci">void shell_sort(vector_t *arr, uint8_t length)</div><div class="ttdoc">Sort a data set of type utils_t by using the Shell sort algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="shell__sort_8c_source.html#l00049">shell_sort.c:49</a></div></div> +<div class="ttc" id="autils_8c_html_a8163bb6a1c9742b9607fd87c6b3df5c5"><div class="ttname"><a href="utils_8c.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils_u8_max</a></div><div class="ttdeci">uint8_t utils_u8_max(uint8_t a, uint8_t b)</div><div class="ttdoc">Returns the greater of two numbers from type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00075">utils.c:75</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="autils_8c_html_ad21f654c48115ba2419ca98644a44ae9"><div class="ttname"><a href="utils_8c.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a></div><div class="ttdeci">void utils_swap(uint8_t *a, uint8_t *b)</div><div class="ttdoc">Interchange the values of two variables of type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00046">utils.c:46</a></div></div> +<div class="ttc" id="autils_8c_html_aad6440ba12fa7e2e1fae5ba6dc99cabf"><div class="ttname"><a href="utils_8c.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a></div><div class="ttdeci">double utils_sind(double deg_angle)</div><div class="ttdoc">Compute the sine of a variable in degrees.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00039">utils.c:39</a></div></div> +<div class="ttc" id="autils_8c_html_a689d2d3db40d341609423404abc5a23a"><div class="ttname"><a href="utils_8c.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a></div><div class="ttdeci">double utils_to_radian(double deg_angle)</div><div class="ttdoc">Convert the angle from degrees to radians.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00031">utils.c:31</a></div></div> +<div class="ttc" id="autils_8c_html_a971d455baef2d25c61e94c4bc4ac13ee"><div class="ttname"><a href="utils_8c.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a></div><div class="ttdeci">double utils_get_median(vector_t arr[], uint8_t length)</div><div class="ttdoc">Compute the median of a finite array of numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00152">utils.c:152</a></div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="autils_8c_html_a81dabd4841ab656130497f0600979850"><div class="ttname"><a href="utils_8c.html#a81dabd4841ab656130497f0600979850">utils_u8_min</a></div><div class="ttdeci">uint8_t utils_u8_min(uint8_t a, uint8_t b)</div><div class="ttdoc">Returns the smaller of two numbers from type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00085">utils.c:85</a></div></div> +<div class="ttc" id="amatrix_8h_html_ae71449b1cc6e6250b91f539153a7a0d3"><div class="ttname"><a href="matrix_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a></div><div class="ttdeci">#define M_PI</div><div class="ttdef"><b>Definition:</b> <a href="matrix_8h_source.html#l00054">matrix.h:54</a></div></div> +<div class="ttc" id="autils_8c_html_a535a04a4bff82c88599e4648dfa7cfe1"><div class="ttname"><a href="utils_8c.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a></div><div class="ttdeci">void utils_moving_average(uint8_t arr_size, vector_t in_arr[], uint8_t window_size, vector_t out_arr[])</div><div class="ttdoc">Compute the moving average of a data set.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00121">utils.c:121</a></div></div> +<div class="ttc" id="autils_8c_html_ab734a543e5543adb2bd98e1bf279a23d"><div class="ttname"><a href="utils_8c.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a></div><div class="ttdeci">double utils_min(double a, double b)</div><div class="ttdoc">Returns the smaller of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00065">utils.c:65</a></div></div> +<div class="ttc" id="autils_8c_html_a8cda5a6c15e99e2b76abfb04316301d8"><div class="ttname"><a href="utils_8c.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a></div><div class="ttdeci">double utils_get_save_square_root(double x, double y)</div><div class="ttdoc">sqrt(a^2 + b^2) without under/overflow.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00168">utils.c:168</a></div></div> +<div class="ttc" id="ashell__sort_8h_html"><div class="ttname"><a href="shell__sort_8h.html">shell_sort.h</a></div><div class="ttdoc">Implement the Shell sort algorithm.</div></div> +<div class="ttc" id="autils_8c_html_acda1e3a1b76af6e0e57b507472986ad6"><div class="ttname"><a href="utils_8c.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a></div><div class="ttdeci">double utils_mean(uint8_t arr_size, vector_t in_arr[])</div><div class="ttdoc">Compute the mean value of a data set.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00105">utils.c:105</a></div></div> +<div class="ttc" id="autils_8c_html_a0ae8ea233ea6c519cd0434f8c5bde5e5"><div class="ttname"><a href="utils_8c.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a></div><div class="ttdeci">double utils_max(double a, double b)</div><div class="ttdoc">Returns the greater of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00055">utils.c:55</a></div></div> +<div class="ttc" id="autils_8c_html_a335d8d6c4b945638261228cd116cccd6"><div class="ttname"><a href="utils_8c.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a></div><div class="ttdeci">void utils_printf(char *format_str,...)</div><div class="ttdoc">Print by using variable format string as well as argument lists.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00096">utils.c:96</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="utils_8c.html">utils.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils_8h.html b/doc/doxygen/html/utils_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..fa310f690a7f3b88aa477232f85ef64131a025f2 --- /dev/null +++ b/doc/doxygen/html/utils_8h.html @@ -0,0 +1,667 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils_8h.html','');}); +/* @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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">utils.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__utilities.html">UTILITIES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Utilities for linear algebra. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="utils_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:ae71449b1cc6e6250b91f539153a7a0d3"><td class="memItemLeft" align="right" valign="top"><a id="ae71449b1cc6e6250b91f539153a7a0d3"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a>   3.14159265358979323846</td></tr> +<tr class="memdesc:ae71449b1cc6e6250b91f539153a7a0d3"><td class="mdescLeft"> </td><td class="mdescRight">Define the pi-constant. <br /></td></tr> +<tr class="separator:ae71449b1cc6e6250b91f539153a7a0d3"><td class="memSeparator" colspan="2"> </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:a689d2d3db40d341609423404abc5a23a"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a> (double deg_angle)</td></tr> +<tr class="memdesc:a689d2d3db40d341609423404abc5a23a"><td class="mdescLeft"> </td><td class="mdescRight">Convert the angle from degrees to radians. <a href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">More...</a><br /></td></tr> +<tr class="separator:a689d2d3db40d341609423404abc5a23a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aad6440ba12fa7e2e1fae5ba6dc99cabf"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a> (double deg_angle)</td></tr> +<tr class="memdesc:aad6440ba12fa7e2e1fae5ba6dc99cabf"><td class="mdescLeft"> </td><td class="mdescRight">Compute the sine of a variable in degrees. <a href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">More...</a><br /></td></tr> +<tr class="separator:aad6440ba12fa7e2e1fae5ba6dc99cabf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad21f654c48115ba2419ca98644a44ae9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a> (uint8_t *a, uint8_t *b)</td></tr> +<tr class="memdesc:ad21f654c48115ba2419ca98644a44ae9"><td class="mdescLeft"> </td><td class="mdescRight">Interchange the values of two variables of type uint8_t. <a href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">More...</a><br /></td></tr> +<tr class="separator:ad21f654c48115ba2419ca98644a44ae9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0ae8ea233ea6c519cd0434f8c5bde5e5"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a> (double a, double b)</td></tr> +<tr class="memdesc:a0ae8ea233ea6c519cd0434f8c5bde5e5"><td class="mdescLeft"> </td><td class="mdescRight">Returns the greater of two real numbers. <a href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">More...</a><br /></td></tr> +<tr class="separator:a0ae8ea233ea6c519cd0434f8c5bde5e5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab734a543e5543adb2bd98e1bf279a23d"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a> (double a, double b)</td></tr> +<tr class="memdesc:ab734a543e5543adb2bd98e1bf279a23d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the smaller of two real numbers. <a href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">More...</a><br /></td></tr> +<tr class="separator:ab734a543e5543adb2bd98e1bf279a23d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8163bb6a1c9742b9607fd87c6b3df5c5"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils_u8_max</a> (uint8_t a, uint8_t b)</td></tr> +<tr class="memdesc:a8163bb6a1c9742b9607fd87c6b3df5c5"><td class="mdescLeft"> </td><td class="mdescRight">Returns the greater of two numbers from type uint8_t. <a href="utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5">More...</a><br /></td></tr> +<tr class="separator:a8163bb6a1c9742b9607fd87c6b3df5c5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a81dabd4841ab656130497f0600979850"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a81dabd4841ab656130497f0600979850">utils_u8_min</a> (uint8_t a, uint8_t b)</td></tr> +<tr class="memdesc:a81dabd4841ab656130497f0600979850"><td class="mdescLeft"> </td><td class="mdescRight">Returns the smaller of two numbers from type uint8_t. <a href="utils_8h.html#a81dabd4841ab656130497f0600979850">More...</a><br /></td></tr> +<tr class="separator:a81dabd4841ab656130497f0600979850"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a335d8d6c4b945638261228cd116cccd6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a> (char *format_str,...)</td></tr> +<tr class="memdesc:a335d8d6c4b945638261228cd116cccd6"><td class="mdescLeft"> </td><td class="mdescRight">Print by using variable format string as well as argument lists. <a href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">More...</a><br /></td></tr> +<tr class="separator:a335d8d6c4b945638261228cd116cccd6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:acda1e3a1b76af6e0e57b507472986ad6"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a> (uint8_t arr_size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[])</td></tr> +<tr class="memdesc:acda1e3a1b76af6e0e57b507472986ad6"><td class="mdescLeft"> </td><td class="mdescRight">Compute the mean value of a data set. <a href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">More...</a><br /></td></tr> +<tr class="separator:acda1e3a1b76af6e0e57b507472986ad6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a535a04a4bff82c88599e4648dfa7cfe1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a> (uint8_t arr_size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[], uint8_t window_size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> out_arr[])</td></tr> +<tr class="memdesc:a535a04a4bff82c88599e4648dfa7cfe1"><td class="mdescLeft"> </td><td class="mdescRight">Compute the moving average of a data set. <a href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">More...</a><br /></td></tr> +<tr class="separator:a535a04a4bff82c88599e4648dfa7cfe1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a971d455baef2d25c61e94c4bc4ac13ee"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t length)</td></tr> +<tr class="memdesc:a971d455baef2d25c61e94c4bc4ac13ee"><td class="mdescLeft"> </td><td class="mdescRight">Compute the median of a finite array of numbers. <a href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">More...</a><br /></td></tr> +<tr class="separator:a971d455baef2d25c61e94c4bc4ac13ee"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8cda5a6c15e99e2b76abfb04316301d8"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a> (double x, double y)</td></tr> +<tr class="memdesc:a8cda5a6c15e99e2b76abfb04316301d8"><td class="mdescLeft"> </td><td class="mdescRight">Compute the square root without under/overflow. <a href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">More...</a><br /></td></tr> +<tr class="separator:a8cda5a6c15e99e2b76abfb04316301d8"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Utilities for linear algebra. </p> +<p>Utility-functions are needed by linear algebra-module as well as other modules such as the position algorithm-module.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="utils_8h_source.html">utils.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a971d455baef2d25c61e94c4bc4ac13ee"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a971d455baef2d25c61e94c4bc4ac13ee">◆ </a></span>utils_get_median()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_get_median </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the median of a finite array of numbers. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the data set.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the median value of the data set. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00152">152</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">References <a class="el" href="shell__sort_8c_source.html#l00049">shell_sort()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a8cda5a6c15e99e2b76abfb04316301d8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8cda5a6c15e99e2b76abfb04316301d8">◆ </a></span>utils_get_save_square_root()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_get_save_square_root </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>y</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the square root without under/overflow. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>first value. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>second value.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>save square root.</dd></dl> +<p>Compute the square root without under/overflow. </p> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00168">168</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="qr__householder_8c_source.html#l00033">qr_householder_decomp()</a>.</p> + +</div> +</div> +<a id="a0ae8ea233ea6c519cd0434f8c5bde5e5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a0ae8ea233ea6c519cd0434f8c5bde5e5">◆ </a></span>utils_max()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_max </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the greater of two real numbers. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the greater of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00055">55</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, and <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="acda1e3a1b76af6e0e57b507472986ad6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#acda1e3a1b76af6e0e57b507472986ad6">◆ </a></span>utils_mean()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_mean </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>arr_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>in_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the mean value of a data set. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr_size</td><td>size of the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">in_arr[]</td><td>pointer to the data set.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the mean value of the data set. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00105">105</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="ab734a543e5543adb2bd98e1bf279a23d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab734a543e5543adb2bd98e1bf279a23d">◆ </a></span>utils_min()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_min </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the smaller of two real numbers. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the smaller of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00065">65</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a535a04a4bff82c88599e4648dfa7cfe1"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a535a04a4bff82c88599e4648dfa7cfe1">◆ </a></span>utils_moving_average()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void utils_moving_average </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>arr_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>in_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>window_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>out_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the moving average of a data set. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">arr_size</td><td>size of the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">in_arr[]</td><td>pointer to the data set. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">window_size</td><td>window size. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">out_arr</td><td>pointer to the values of the moving average. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00121">121</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a335d8d6c4b945638261228cd116cccd6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a335d8d6c4b945638261228cd116cccd6">◆ </a></span>utils_printf()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void utils_printf </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"><em>format_str</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"> </td> + <td class="paramname"><em>...</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Print by using variable format string as well as argument lists. </p> +<p>This function enables to print data by using a variable format string as well as argument list. Furthermore, it avoids the error: "format not a string literal", if printf is used.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">*format_str</td><td>format string. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>argument list. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00096">96</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="matrix_8c_source.html#l00247">matrix_flex_part_print()</a>, <a class="el" href="matrix_8c_source.html#l00220">matrix_flex_print()</a>, and <a class="el" href="vector_8c_source.html#l00284">vector_flex_print()</a>.</p> + +</div> +</div> +<a id="aad6440ba12fa7e2e1fae5ba6dc99cabf"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aad6440ba12fa7e2e1fae5ba6dc99cabf">◆ </a></span>utils_sind()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_sind </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>deg_angle</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the sine of a variable in degrees. </p> +<p>Calculate the sine of the variable deg_angle, which is expressed in degrees.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">deg_angle</td><td>angle in degrees.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>sine value. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00039">39</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00054">M_PI</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="ad21f654c48115ba2419ca98644a44ae9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ad21f654c48115ba2419ca98644a44ae9">◆ </a></span>utils_swap()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void utils_swap </td> + <td>(</td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Interchange the values of two variables of type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">*a</td><td>pointer to first variable. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">*b</td><td>pointer to second variable. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00046">46</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a689d2d3db40d341609423404abc5a23a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a689d2d3db40d341609423404abc5a23a">◆ </a></span>utils_to_radian()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">double utils_to_radian </td> + <td>(</td> + <td class="paramtype">double </td> + <td class="paramname"><em>deg_angle</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Convert the angle from degrees to radians. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">deg_angle</td><td>angle in degrees.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>angle in radians. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00031">31</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +<p class="reference">References <a class="el" href="matrix_8h_source.html#l00054">M_PI</a>.</p> + +<p class="reference">Referenced by <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>, and <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>.</p> + +</div> +</div> +<a id="a8163bb6a1c9742b9607fd87c6b3df5c5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8163bb6a1c9742b9607fd87c6b3df5c5">◆ </a></span>utils_u8_max()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t utils_u8_max </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the greater of two numbers from type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the greater of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00075">75</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +</div> +</div> +<a id="a81dabd4841ab656130497f0600979850"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a81dabd4841ab656130497f0600979850">◆ </a></span>utils_u8_min()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t utils_u8_min </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>a</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Returns the smaller of two numbers from type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the first value to compare. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>the second value to compare.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the smaller of a and b. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="utils_8c_source.html#l00085">85</a> of file <a class="el" href="utils_8c_source.html">utils.c</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="utils_8h.html">utils.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils_8h.js b/doc/doxygen/html/utils_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..0028c93b6a92869866ba07fd8a6bc94931c216d1 --- /dev/null +++ b/doc/doxygen/html/utils_8h.js @@ -0,0 +1,16 @@ +var utils_8h = +[ + [ "M_PI", "utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3", null ], + [ "utils_get_median", "utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee", null ], + [ "utils_get_save_square_root", "utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8", null ], + [ "utils_max", "utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5", null ], + [ "utils_mean", "utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6", null ], + [ "utils_min", "utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d", null ], + [ "utils_moving_average", "utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1", null ], + [ "utils_printf", "utils_8h.html#a335d8d6c4b945638261228cd116cccd6", null ], + [ "utils_sind", "utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf", null ], + [ "utils_swap", "utils_8h.html#ad21f654c48115ba2419ca98644a44ae9", null ], + [ "utils_to_radian", "utils_8h.html#a689d2d3db40d341609423404abc5a23a", null ], + [ "utils_u8_max", "utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5", null ], + [ "utils_u8_min", "utils_8h.html#a81dabd4841ab656130497f0600979850", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/utils_8h_source.html b/doc/doxygen/html/utils_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..fd4d4533de5f14f012087792c752c488af7fd31f --- /dev/null +++ b/doc/doxygen/html/utils_8h_source.html @@ -0,0 +1,168 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">utils.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef UTILS_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define UTILS_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef M_PI</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="utils_8h.html#ae71449b1cc6e6250b91f539153a7a0d3"> 32</a></span> <span class="preprocessor">#define M_PI 3.14159265358979323846</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a>(<span class="keywordtype">double</span> deg_angle);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a>(<span class="keywordtype">double</span> deg_angle);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a>(uint8_t *a, uint8_t *b);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a>(<span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a>(<span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> uint8_t <a class="code" href="utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils_u8_max</a>(uint8_t a, uint8_t b);</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> uint8_t <a class="code" href="utils_8h.html#a81dabd4841ab656130497f0600979850">utils_u8_min</a>(uint8_t a, uint8_t b);</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// Enables to use variable format string as well as argument lists</span></div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// Fixing error: format not a string literal.</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(<span class="keywordtype">char</span> *format_str, ...);</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a>(uint8_t arr_size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[]);</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a>(uint8_t arr_size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> in_arr[],</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  uint8_t window_size,</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> out_arr[]);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t length);</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y);</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#endif </span><span class="comment">/* UTILS_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="autils_8h_html_a689d2d3db40d341609423404abc5a23a"><div class="ttname"><a href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a></div><div class="ttdeci">double utils_to_radian(double deg_angle)</div><div class="ttdoc">Convert the angle from degrees to radians.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00031">utils.c:31</a></div></div> +<div class="ttc" id="autils_8h_html_a81dabd4841ab656130497f0600979850"><div class="ttname"><a href="utils_8h.html#a81dabd4841ab656130497f0600979850">utils_u8_min</a></div><div class="ttdeci">uint8_t utils_u8_min(uint8_t a, uint8_t b)</div><div class="ttdoc">Returns the smaller of two numbers from type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00085">utils.c:85</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="autils_8h_html_ab734a543e5543adb2bd98e1bf279a23d"><div class="ttname"><a href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a></div><div class="ttdeci">double utils_min(double a, double b)</div><div class="ttdoc">Returns the smaller of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00065">utils.c:65</a></div></div> +<div class="ttc" id="autils_8h_html_a8163bb6a1c9742b9607fd87c6b3df5c5"><div class="ttname"><a href="utils_8h.html#a8163bb6a1c9742b9607fd87c6b3df5c5">utils_u8_max</a></div><div class="ttdeci">uint8_t utils_u8_max(uint8_t a, uint8_t b)</div><div class="ttdoc">Returns the greater of two numbers from type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00075">utils.c:75</a></div></div> +<div class="ttc" id="autils_8h_html_a0ae8ea233ea6c519cd0434f8c5bde5e5"><div class="ttname"><a href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a></div><div class="ttdeci">double utils_max(double a, double b)</div><div class="ttdoc">Returns the greater of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00055">utils.c:55</a></div></div> +<div class="ttc" id="autils_8h_html_a335d8d6c4b945638261228cd116cccd6"><div class="ttname"><a href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a></div><div class="ttdeci">void utils_printf(char *format_str,...)</div><div class="ttdoc">Print by using variable format string as well as argument lists.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00096">utils.c:96</a></div></div> +<div class="ttc" id="autils_8h_html_aad6440ba12fa7e2e1fae5ba6dc99cabf"><div class="ttname"><a href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a></div><div class="ttdeci">double utils_sind(double deg_angle)</div><div class="ttdoc">Compute the sine of a variable in degrees.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00039">utils.c:39</a></div></div> +<div class="ttc" id="autils_8h_html_acda1e3a1b76af6e0e57b507472986ad6"><div class="ttname"><a href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a></div><div class="ttdeci">double utils_mean(uint8_t arr_size, vector_t in_arr[])</div><div class="ttdoc">Compute the mean value of a data set.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00105">utils.c:105</a></div></div> +<div class="ttc" id="autils_8h_html_a971d455baef2d25c61e94c4bc4ac13ee"><div class="ttname"><a href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a></div><div class="ttdeci">double utils_get_median(vector_t arr[], uint8_t length)</div><div class="ttdoc">Compute the median of a finite array of numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00152">utils.c:152</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="autils_8h_html_ad21f654c48115ba2419ca98644a44ae9"><div class="ttname"><a href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a></div><div class="ttdeci">void utils_swap(uint8_t *a, uint8_t *b)</div><div class="ttdoc">Interchange the values of two variables of type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00046">utils.c:46</a></div></div> +<div class="ttc" id="autils_8h_html_a535a04a4bff82c88599e4648dfa7cfe1"><div class="ttname"><a href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a></div><div class="ttdeci">void utils_moving_average(uint8_t arr_size, vector_t in_arr[], uint8_t window_size, vector_t out_arr[])</div><div class="ttdoc">Compute the moving average of a data set.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00121">utils.c:121</a></div></div> +<div class="ttc" id="autils_8h_html_a8cda5a6c15e99e2b76abfb04316301d8"><div class="ttname"><a href="utils_8h.html#a8cda5a6c15e99e2b76abfb04316301d8">utils_get_save_square_root</a></div><div class="ttdeci">double utils_get_save_square_root(double x, double y)</div><div class="ttdoc">Compute the square root without under/overflow.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00168">utils.c:168</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_08749d3fb0d5743bfaf3c7bce248dc40.html">utilities</a></li><li class="navelem"><a class="el" href="dir_d5f52845b1ed776b4ff9f3c6f4225d4b.html">include</a></li><li class="navelem"><a class="el" href="utils_8h.html">utils.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils__test_8c.html b/doc/doxygen/html/utils__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..7b7d4ad3f31e48fe23dc892ebe624863e0f17778 --- /dev/null +++ b/doc/doxygen/html/utils__test_8c.html @@ -0,0 +1,129 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">utils_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the utility functions. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="utils__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a91c61f3d2a5985466b46f5b15ad0faf7"><td class="memItemLeft" align="right" valign="top"><a id="a91c61f3d2a5985466b46f5b15ad0faf7"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test</a> (void)</td></tr> +<tr class="memdesc:a91c61f3d2a5985466b46f5b15ad0faf7"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the utility functions. <br /></td></tr> +<tr class="separator:a91c61f3d2a5985466b46f5b15ad0faf7"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the utility functions. </p> +<p>Utility examples (see <a class="el" href="utils_8h.html">utilities</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="utils__test_8c_source.html">utils_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_8e5c3f26a7da9560da5fd7be1ee471fe.html">utilities</a></li><li class="navelem"><a class="el" href="utils__test_8c.html">utils_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils__test_8c.js b/doc/doxygen/html/utils__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..0f1ea3ace931142e63232694bed356cb1b8fedc9 --- /dev/null +++ b/doc/doxygen/html/utils__test_8c.js @@ -0,0 +1,4 @@ +var utils__test_8c = +[ + [ "utils_test", "utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/utils__test_8c_source.html b/doc/doxygen/html/utils__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..8f9b2a509a13bfc320815fd720b1a1e6103b5633 --- /dev/null +++ b/doc/doxygen/html/utils__test_8c_source.html @@ -0,0 +1,197 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">utils_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="utils__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7"> 28</a></span> <span class="keywordtype">void</span> <a class="code" href="utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  puts(<span class="stringliteral">"############ Test Utils ###############"</span>);</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordtype">double</span> deg_ang = 45;</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">double</span> rad_ang = <a class="code" href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a>(deg_ang);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  printf(<span class="stringliteral">"rad_ang = %.4f\n"</span>, rad_ang);</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordtype">float</span> f1 = 4.78;</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">float</span> f2 = 11.77;</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">float</span> f_max = (float)<a class="code" href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a>(f1, f2);</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  printf(<span class="stringliteral">"f_max = %.4f\n"</span>, f_max);</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">float</span> f_min = (float)<a class="code" href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a>(f1, f2);</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  printf(<span class="stringliteral">"f_min = %.4f\n"</span>, f_min);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  uint8_t a1 = 9;</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  uint8_t b1 = 13;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a>(&a1, &b1);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  printf(<span class="stringliteral">"a1 = %u, b1 = %u\n"</span>, a1, b1);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  printf(<span class="stringliteral">"sind(45) = %.4f\n"</span>, <a class="code" href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a>(deg_ang));</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[10] = { 4, 8, 6, -1, -2, -3, -1, 3, 4, 5 };</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> mv_aver_arr[10];</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  uint8_t win_size = 5;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">double</span> mean = 0.0;</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  printf(<span class="stringliteral">"arr = "</span>);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(10, arr, 3, 0);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  printf(<span class="stringliteral">"win_size = %u\n"</span>, win_size);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a>(10, arr, win_size, mv_aver_arr);</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  printf(<span class="stringliteral">"mv_av_arr = "</span>);</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(10, mv_aver_arr, 3, 4);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  mean = <a class="code" href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a>(10, arr);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  printf(<span class="stringliteral">"mean = %3.4f\n"</span>, mean);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  puts(<span class="stringliteral">"!!! Median algorithm !!!"</span>);</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr1[9] = { 100, 91, 92, 85, 40, 77, 92, 91, 94 };</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> median_val = 0.0;</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  printf(<span class="stringliteral">"arr1 = "</span>);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(9, arr1, 3, 0);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  median_val = <a class="code" href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a>(arr1, 9);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  printf(<span class="stringliteral">"median1 = %3.4f\n"</span>, median_val);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr2[13] = { 0.4854, 0.8003, 0.1419, 0.4218, 0.9157, 0.7922,</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  0.9595, 0.6557, 0.0357, 0.8491, 0.9340, 0.6787,</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  0.7577 };</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  printf(<span class="stringliteral">"arr2 = "</span>);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(13, arr2, 3, 4);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  median_val = <a class="code" href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a>(arr2, 13);</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  printf(<span class="stringliteral">"median2 = %3.4f\n"</span>, median_val);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr3[12] = { 0.9502, 0.0344, -0.4387, 0.3816, 0.7655, 0.7952,</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  0.1869, 0.4898, 0.4456, 0.6463, -0.7094, 0.7547 };</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  printf(<span class="stringliteral">"arr3 = "</span>);</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(12, arr3, 3, 4);</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  median_val = <a class="code" href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a>(arr3, 12);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  printf(<span class="stringliteral">"median3 = %3.4f\n"</span>, median_val);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="autils_8h_html_a689d2d3db40d341609423404abc5a23a"><div class="ttname"><a href="utils_8h.html#a689d2d3db40d341609423404abc5a23a">utils_to_radian</a></div><div class="ttdeci">double utils_to_radian(double deg_angle)</div><div class="ttdoc">Convert the angle from degrees to radians.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00031">utils.c:31</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="autils_8h_html_ab734a543e5543adb2bd98e1bf279a23d"><div class="ttname"><a href="utils_8h.html#ab734a543e5543adb2bd98e1bf279a23d">utils_min</a></div><div class="ttdeci">double utils_min(double a, double b)</div><div class="ttdoc">Returns the smaller of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00065">utils.c:65</a></div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="autils_8h_html_a0ae8ea233ea6c519cd0434f8c5bde5e5"><div class="ttname"><a href="utils_8h.html#a0ae8ea233ea6c519cd0434f8c5bde5e5">utils_max</a></div><div class="ttdeci">double utils_max(double a, double b)</div><div class="ttdoc">Returns the greater of two real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00055">utils.c:55</a></div></div> +<div class="ttc" id="autils_8h_html_aad6440ba12fa7e2e1fae5ba6dc99cabf"><div class="ttname"><a href="utils_8h.html#aad6440ba12fa7e2e1fae5ba6dc99cabf">utils_sind</a></div><div class="ttdeci">double utils_sind(double deg_angle)</div><div class="ttdoc">Compute the sine of a variable in degrees.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00039">utils.c:39</a></div></div> +<div class="ttc" id="autils_8h_html_acda1e3a1b76af6e0e57b507472986ad6"><div class="ttname"><a href="utils_8h.html#acda1e3a1b76af6e0e57b507472986ad6">utils_mean</a></div><div class="ttdeci">double utils_mean(uint8_t arr_size, vector_t in_arr[])</div><div class="ttdoc">Compute the mean value of a data set.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00105">utils.c:105</a></div></div> +<div class="ttc" id="autils__test_8c_html_a91c61f3d2a5985466b46f5b15ad0faf7"><div class="ttname"><a href="utils__test_8c.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test</a></div><div class="ttdeci">void utils_test(void)</div><div class="ttdoc">Examples of the utility functions.</div><div class="ttdef"><b>Definition:</b> <a href="utils__test_8c_source.html#l00028">utils_test.c:28</a></div></div> +<div class="ttc" id="autils_8h_html_a971d455baef2d25c61e94c4bc4ac13ee"><div class="ttname"><a href="utils_8h.html#a971d455baef2d25c61e94c4bc4ac13ee">utils_get_median</a></div><div class="ttdeci">double utils_get_median(vector_t arr[], uint8_t length)</div><div class="ttdoc">Compute the median of a finite array of numbers.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00152">utils.c:152</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="autils_8h_html_ad21f654c48115ba2419ca98644a44ae9"><div class="ttname"><a href="utils_8h.html#ad21f654c48115ba2419ca98644a44ae9">utils_swap</a></div><div class="ttdeci">void utils_swap(uint8_t *a, uint8_t *b)</div><div class="ttdoc">Interchange the values of two variables of type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00046">utils.c:46</a></div></div> +<div class="ttc" id="autils_8h_html_a535a04a4bff82c88599e4648dfa7cfe1"><div class="ttname"><a href="utils_8h.html#a535a04a4bff82c88599e4648dfa7cfe1">utils_moving_average</a></div><div class="ttdeci">void utils_moving_average(uint8_t arr_size, vector_t in_arr[], uint8_t window_size, vector_t out_arr[])</div><div class="ttdoc">Compute the moving average of a data set.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00121">utils.c:121</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_8e5c3f26a7da9560da5fd7be1ee471fe.html">utilities</a></li><li class="navelem"><a class="el" href="utils__test_8c.html">utils_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils__test_8h.html b/doc/doxygen/html/utils__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..6ad27c42b58d1b0631e8b81a63a95b9789c1ce49 --- /dev/null +++ b/doc/doxygen/html/utils__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">utils_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of the utility functions. +<a href="#details">More...</a></p> + +<p><a href="utils__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a91c61f3d2a5985466b46f5b15ad0faf7"><td class="memItemLeft" align="right" valign="top"><a id="a91c61f3d2a5985466b46f5b15ad0faf7"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test</a> (void)</td></tr> +<tr class="memdesc:a91c61f3d2a5985466b46f5b15ad0faf7"><td class="mdescLeft"> </td><td class="mdescRight">Examples of the utility functions. <br /></td></tr> +<tr class="separator:a91c61f3d2a5985466b46f5b15ad0faf7"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of the utility functions. </p> +<p>Utility examples (see <a class="el" href="utils_8h.html">utilities</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="utils__test_8h_source.html">utils_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_8e5c3f26a7da9560da5fd7be1ee471fe.html">utilities</a></li><li class="navelem"><a class="el" href="dir_482d4625c499ea39e333dde09ca074c3.html">include</a></li><li class="navelem"><a class="el" href="utils__test_8h.html">utils_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/utils__test_8h.js b/doc/doxygen/html/utils__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..431ae928dcf0f7eeba88453927fcdbf86a0c3319 --- /dev/null +++ b/doc/doxygen/html/utils__test_8h.js @@ -0,0 +1,4 @@ +var utils__test_8h = +[ + [ "utils_test", "utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/utils__test_8h_source.html b/doc/doxygen/html/utils__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..e3e5cab8c6f2a547101d89fe6a438c75090eb81e --- /dev/null +++ b/doc/doxygen/html/utils__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: utils_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('utils__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">utils_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="utils__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef UTILS_TEST_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define UTILS_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code" href="utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif </span><span class="comment">/* UTILS_TEST_H_*/</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="autils__test_8h_html_a91c61f3d2a5985466b46f5b15ad0faf7"><div class="ttname"><a href="utils__test_8h.html#a91c61f3d2a5985466b46f5b15ad0faf7">utils_test</a></div><div class="ttdeci">void utils_test(void)</div><div class="ttdoc">Examples of the utility functions.</div><div class="ttdef"><b>Definition:</b> <a href="utils__test_8c_source.html#l00028">utils_test.c:28</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_8e5c3f26a7da9560da5fd7be1ee471fe.html">utilities</a></li><li class="navelem"><a class="el" href="dir_482d4625c499ea39e333dde09ca074c3.html">include</a></li><li class="navelem"><a class="el" href="utils__test_8h.html">utils_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector_8c.html b/doc/doxygen/html/vector_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..2ca368da83f34e15da49142b53838fe926a083e6 --- /dev/null +++ b/doc/doxygen/html/vector_8c.html @@ -0,0 +1,1393 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">vector.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Vector computations. Vector computations include operations such as addition, subtraction, and inner product (dot product). +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include <stdio.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include <stdbool.h></code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +<code>#include "<a class="el" href="utils_8h_source.html">utils.h</a>"</code><br /> +</div> +<p><a href="vector_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ac4b023769faf53e06c2ed1f2fd928d14"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14">vector_clear</a> (uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:ac4b023769faf53e06c2ed1f2fd928d14"><td class="mdescLeft"> </td><td class="mdescRight">Clear all the elements of the vector. <a href="vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14">More...</a><br /></td></tr> +<tr class="separator:ac4b023769faf53e06c2ed1f2fd928d14"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae9d3378f23ba835c727245b434b8a7f6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_arr[])</td></tr> +<tr class="memdesc:ae9d3378f23ba835c727245b434b8a7f6"><td class="mdescLeft"> </td><td class="mdescRight">Copy the elements of the source vector to the destination vector. <a href="vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6">More...</a><br /></td></tr> +<tr class="separator:ae9d3378f23ba835c727245b434b8a7f6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4cfc452fdff3e32a601ccff140cd9ae6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:a4cfc452fdff3e32a601ccff140cd9ae6"><td class="mdescLeft"> </td><td class="mdescRight">Compute the 2-norm norm of a vector. <a href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">More...</a><br /></td></tr> +<tr class="separator:a4cfc452fdff3e32a601ccff140cd9ae6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aab9d7950d4ba03b0e1a23de5b7fae6a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:aab9d7950d4ba03b0e1a23de5b7fae6a6"><td class="mdescLeft"> </td><td class="mdescRight">Compute the squared 2-norm norm of a vector . <a href="vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">More...</a><br /></td></tr> +<tr class="separator:aab9d7950d4ba03b0e1a23de5b7fae6a6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af1767c4decdd472ed81035a19cf2152b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:af1767c4decdd472ed81035a19cf2152b"><td class="mdescLeft"> </td><td class="mdescRight">Compute the sum of the elements of a vector. <a href="vector_8c.html#af1767c4decdd472ed81035a19cf2152b">More...</a><br /></td></tr> +<tr class="separator:af1767c4decdd472ed81035a19cf2152b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4a8fae4c69677390016c116123d9eff8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:a4a8fae4c69677390016c116123d9eff8"><td class="mdescLeft"> </td><td class="mdescRight">Compute the average or mean value of a vector. <a href="vector_8c.html#a4a8fae4c69677390016c116123d9eff8">More...</a><br /></td></tr> +<tr class="separator:a4a8fae4c69677390016c116123d9eff8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3bbd999b10064c2ede2bd427aa040b63"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_minus_b[])</td></tr> +<tr class="memdesc:a3bbd999b10064c2ede2bd427aa040b63"><td class="mdescLeft"> </td><td class="mdescRight">Compute the subtraction of two vectors. <a href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">More...</a><br /></td></tr> +<tr class="separator:a3bbd999b10064c2ede2bd427aa040b63"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a92917951880002814392c2367896d7a0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a92917951880002814392c2367896d7a0">vector_add</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_plus_b_vec[size])</td></tr> +<tr class="memdesc:a92917951880002814392c2367896d7a0"><td class="mdescLeft"> </td><td class="mdescRight">Compute the addition of two vectors. <a href="vector_8c.html#a92917951880002814392c2367896d7a0">More...</a><br /></td></tr> +<tr class="separator:a92917951880002814392c2367896d7a0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a099aa56dd0f260c77afaf8b62b56b2c5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_mul_b_vec[size])</td></tr> +<tr class="memdesc:a099aa56dd0f260c77afaf8b62b56b2c5"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of two vectors. <a href="vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5">More...</a><br /></td></tr> +<tr class="separator:a099aa56dd0f260c77afaf8b62b56b2c5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:afc68fab0b07c974faf5a457d20b01c58"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a> (uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> square_vec[n])</td></tr> +<tr class="memdesc:afc68fab0b07c974faf5a457d20b01c58"><td class="mdescLeft"> </td><td class="mdescRight">Compute the square of a vector. <a href="vector_8c.html#afc68fab0b07c974faf5a457d20b01c58">More...</a><br /></td></tr> +<tr class="separator:afc68fab0b07c974faf5a457d20b01c58"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a90a92f618957807f90ab1d8a8d9150d4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl)</td></tr> +<tr class="memdesc:a90a92f618957807f90ab1d8a8d9150d4"><td class="mdescLeft"> </td><td class="mdescRight">Compute the product of a vector with a real number. <a href="vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4">More...</a><br /></td></tr> +<tr class="separator:a90a92f618957807f90ab1d8a8d9150d4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3c0bdd0e463fb34757a71470c55af845"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_vec[])</td></tr> +<tr class="memdesc:a3c0bdd0e463fb34757a71470c55af845"><td class="mdescLeft"> </td><td class="mdescRight">Compute the product of a vector with a real number. <a href="vector_8c.html#a3c0bdd0e463fb34757a71470c55af845">More...</a><br /></td></tr> +<tr class="separator:a3c0bdd0e463fb34757a71470c55af845"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae41fee7d298da0645c37ed6af7acea0b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b">vector_scalar_div</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl)</td></tr> +<tr class="memdesc:ae41fee7d298da0645c37ed6af7acea0b"><td class="mdescLeft"> </td><td class="mdescRight">Compute the division of a vector with a real number. <a href="vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b">More...</a><br /></td></tr> +<tr class="separator:ae41fee7d298da0645c37ed6af7acea0b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abbb6bf046e47a8634c15c43a508cacb9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[])</td></tr> +<tr class="memdesc:abbb6bf046e47a8634c15c43a508cacb9"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Euclidean distance between two vectors. <a href="vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9">More...</a><br /></td></tr> +<tr class="separator:abbb6bf046e47a8634c15c43a508cacb9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a982bc2f9e4755461eac46c6322b4562d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a982bc2f9e4755461eac46c6322b4562d">vector_get_max_and_index</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[], uint8_t *index)</td></tr> +<tr class="memdesc:a982bc2f9e4755461eac46c6322b4562d"><td class="mdescLeft"> </td><td class="mdescRight">Compute the maximal value and its index of a vector. <a href="vector_8c.html#a982bc2f9e4755461eac46c6322b4562d">More...</a><br /></td></tr> +<tr class="separator:a982bc2f9e4755461eac46c6322b4562d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f4b706c07b9b0f7a4983d80fba99e4e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a> (uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[n])</td></tr> +<tr class="memdesc:a5f4b706c07b9b0f7a4983d80fba99e4e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the dot product of two vectors. <a href="vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e">More...</a><br /></td></tr> +<tr class="separator:a5f4b706c07b9b0f7a4983d80fba99e4e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af98f2e3896ce7b96d598b11033ac1795"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a> (uint16_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_1[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_2[])</td></tr> +<tr class="memdesc:af98f2e3896ce7b96d598b11033ac1795"><td class="mdescLeft"> </td><td class="mdescRight">Determine the equality of two vectors. <a href="vector_8c.html#af98f2e3896ce7b96d598b11033ac1795">More...</a><br /></td></tr> +<tr class="separator:af98f2e3896ce7b96d598b11033ac1795"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a45dfc0cdad1f1a542df4029b498766ba"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a> (uint8_t k, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> unsorted_vector[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> sorted_vector[n], uint8_t index_vector[n])</td></tr> +<tr class="memdesc:a45dfc0cdad1f1a542df4029b498766ba"><td class="mdescLeft"> </td><td class="mdescRight">Determine the index of the vector elements before sorting. <a href="vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba">More...</a><br /></td></tr> +<tr class="separator:a45dfc0cdad1f1a542df4029b498766ba"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1fcbe913017a3b6802d5f66c8ef699ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[])</td></tr> +<tr class="memdesc:a1fcbe913017a3b6802d5f66c8ef699ac"><td class="mdescLeft"> </td><td class="mdescRight">Compute the residual of two vectors. <a href="vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac">More...</a><br /></td></tr> +<tr class="separator:a1fcbe913017a3b6802d5f66c8ef699ac"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1348a041e323e7b333482242b51a7674"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[], uint8_t k, uint8_t index_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dst_vec[])</td></tr> +<tr class="memdesc:a1348a041e323e7b333482242b51a7674"><td class="mdescLeft"> </td><td class="mdescRight">Get the elements of the vector by an index vector. <a href="vector_8c.html#a1348a041e323e7b333482242b51a7674">More...</a><br /></td></tr> +<tr class="separator:a1348a041e323e7b333482242b51a7674"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a421f989647bf55af29c0f55b7f33d35a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a421f989647bf55af29c0f55b7f33d35a">vector_uint32_is_equal</a> (uint32_t length, uint32_t vec_1[], uint32_t vec_2[])</td></tr> +<tr class="memdesc:a421f989647bf55af29c0f55b7f33d35a"><td class="mdescLeft"> </td><td class="mdescRight">Determine the equality of two vectors of type uint32_t. <a href="vector_8c.html#a421f989647bf55af29c0f55b7f33d35a">More...</a><br /></td></tr> +<tr class="separator:a421f989647bf55af29c0f55b7f33d35a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8f24286db94dba6ab181edcdfe296262"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a8f24286db94dba6ab181edcdfe296262">vector_print</a> (uint32_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:a8f24286db94dba6ab181edcdfe296262"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the vector's elements. <a href="vector_8c.html#a8f24286db94dba6ab181edcdfe296262">More...</a><br /></td></tr> +<tr class="separator:a8f24286db94dba6ab181edcdfe296262"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8ec75dc585746d950ab517e9929f31fe"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#a8ec75dc585746d950ab517e9929f31fe">vector_print_u8_array</a> (uint32_t length, uint8_t arr[])</td></tr> +<tr class="memdesc:a8ec75dc585746d950ab517e9929f31fe"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the vector's elements of type uint8_t. <a href="vector_8c.html#a8ec75dc585746d950ab517e9929f31fe">More...</a><br /></td></tr> +<tr class="separator:a8ec75dc585746d950ab517e9929f31fe"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab2827264910e858f238868695a92db4b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8c.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a> (uint32_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t before_dot, uint8_t after_dot)</td></tr> +<tr class="memdesc:ab2827264910e858f238868695a92db4b"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the vector's elements. <a href="vector_8c.html#ab2827264910e858f238868695a92db4b">More...</a><br /></td></tr> +<tr class="separator:ab2827264910e858f238868695a92db4b"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Vector computations. Vector computations include operations such as addition, subtraction, and inner product (dot product). </p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a92917951880002814392c2367896d7a0"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a92917951880002814392c2367896d7a0">◆ </a></span>vector_add()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_add </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_plus_b_vec</em>[size] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the addition of two vectors. </p> +<p>Add b_vec to a_vec and return the result in a_plus_b.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to subtract. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">a_plus_b_vec[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00104">104</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="ac4b023769faf53e06c2ed1f2fd928d14"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ac4b023769faf53e06c2ed1f2fd928d14">◆ </a></span>vector_clear()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_clear </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Clear all the elements of the vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00032">32</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian_get_JTf()</a>, <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>, <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="ae9d3378f23ba835c727245b434b8a7f6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae9d3378f23ba835c727245b434b8a7f6">◆ </a></span>vector_copy()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_copy </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>src_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>dest_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Copy the elements of the source vector to the destination vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to copy. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_arr[]</td><td>pointer to the source vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_arr[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00037">37</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="ab2827264910e858f238868695a92db4b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab2827264910e858f238868695a92db4b">◆ </a></span>vector_flex_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_flex_print </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>before_dot</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>after_dot</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the vector's elements. </p> +<p>This function allows the user to determine the precision as well as the with of the numbers to display.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector to display. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>pointer to the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">before_dot</td><td>the number of digits to be printed before the decimal point. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">after_dot</td><td>the number of digits to be printed after the decimal point. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00284">284</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="utils_8c_source.html#l00096">utils_printf()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="distance__based__test_8c_source.html#l00032">distance_based_test()</a>, <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>, <a class="el" href="magnetic__based__position_8c_source.html#l00062">magnetic_based_get_magnetic_field()</a>, <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>, <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>, <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>, <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a1348a041e323e7b333482242b51a7674"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1348a041e323e7b333482242b51a7674">◆ </a></span>vector_get_elements()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_get_elements </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>src_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>index_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>dst_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the elements of the vector by an index vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">src_vec[]</td><td>pointer to source vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the index vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">index_vec[]</td><td>pointer to the index vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_vec[]</td><td>pointer to the destination vector </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00235">235</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +<a id="abbb6bf046e47a8634c15c43a508cacb9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abbb6bf046e47a8634c15c43a508cacb9">◆ </a></span>vector_get_euclidean_distance()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_euclidean_distance </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Euclidean distance between two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the Euclidean distance. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00163">163</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a45dfc0cdad1f1a542df4029b498766ba"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a45dfc0cdad1f1a542df4029b498766ba">◆ </a></span>vector_get_index_vector()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_get_index_vector </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>unsorted_vector</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>sorted_vector</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>index_vector</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine the index of the vector elements before sorting. </p> +<p>Determine the index of the elements of a sorted vector. These indices correspond to the positions of the elements in the unsorted vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the unsorted vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the sorted vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">unsorted_vector[]</td><td>pointer to the unsorted vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">sorted_vector[]</td><td>pointer to the sorted vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">index_vector[]</td><td>pointer to the index vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00214">214</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a982bc2f9e4755461eac46c6322b4562d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a982bc2f9e4755461eac46c6322b4562d">◆ </a></span>vector_get_max_and_index()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_max_and_index </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>index</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the maximal value and its index of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>vector size. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>pointer to the index.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximal value of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00175">175</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="a4a8fae4c69677390016c116123d9eff8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4a8fae4c69677390016c116123d9eff8">◆ </a></span>vector_get_mean_value()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_mean_value </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the average or mean value of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the mean value of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00078">78</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a4cfc452fdff3e32a601ccff140cd9ae6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4cfc452fdff3e32a601ccff140cd9ae6">◆ </a></span>vector_get_norm2()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_norm2 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the 2-norm norm of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the 2-norm of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00042">42</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="dist__based__position_8c_source.html#l00045">dist_based_get_distance_to_anchor()</a>, <a class="el" href="damped__newton__raphson_8c_source.html#l00104">get_damped_norm()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="magnetic__based__position_8c_source.html#l00050">magnetic_based_get_distances_to_anchors()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00227">vector_get_residual()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a1fcbe913017a3b6802d5f66c8ef699ac"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1fcbe913017a3b6802d5f66c8ef699ac">◆ </a></span>vector_get_residual()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_residual </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the residual of two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>vector size. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the residual of the two vectors. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00227">227</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="a5f4b706c07b9b0f7a4983d80fba99e4e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f4b706c07b9b0f7a4983d80fba99e4e">◆ </a></span>vector_get_scalar_product()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_scalar_product </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec1</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec2</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the dot product of two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the vectors. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the scalar product of two vectors. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00190">190</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="aab9d7950d4ba03b0e1a23de5b7fae6a6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aab9d7950d4ba03b0e1a23de5b7fae6a6">◆ </a></span>vector_get_square_norm2()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_square_norm2 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the squared 2-norm norm of a vector . </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the squared 2-norm of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00054">54</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="af1767c4decdd472ed81035a19cf2152b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af1767c4decdd472ed81035a19cf2152b">◆ </a></span>vector_get_sum()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_sum </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the sum of the elements of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the sum of the elements of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00066">66</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a90a92f618957807f90ab1d8a8d9150d4"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a90a92f618957807f90ab1d8a8d9150d4">◆ </a></span>vector_in_place_scalar_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_in_place_scalar_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>scl</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the product of a vector with a real number. </p> +<p>Multiple the elements of a vector with a scalar and return the result in the vector itself.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to multiply with a scalar. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">a_vec[]</td><td>pointer to the source/destination vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scl</td><td>a scalar. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00131">131</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>.</p> + +</div> +</div> +<a id="af98f2e3896ce7b96d598b11033ac1795"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af98f2e3896ce7b96d598b11033ac1795">◆ </a></span>vector_is_equal()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool vector_is_equal </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec_1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec_2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine the equality of two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if the two vectors are equal. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00202">202</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a099aa56dd0f260c77afaf8b62b56b2c5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a099aa56dd0f260c77afaf8b62b56b2c5">◆ </a></span>vector_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_mul_b_vec</em>[size] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of two vectors. </p> +<p>Multiple vectors a_vec and b_vec element by element and return the result in a_mul_b.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">a_mul_b_vec[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00114">114</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a8f24286db94dba6ab181edcdfe296262"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8f24286db94dba6ab181edcdfe296262">◆ </a></span>vector_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_print </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the vector's elements. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector to display. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>pointer to the vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00255">255</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +<a id="a8ec75dc585746d950ab517e9929f31fe"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8ec75dc585746d950ab517e9929f31fe">◆ </a></span>vector_print_u8_array()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_print_u8_array </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the vector's elements of type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector to display. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>pointer to the vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00269">269</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +<a id="ae41fee7d298da0645c37ed6af7acea0b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae41fee7d298da0645c37ed6af7acea0b">◆ </a></span>vector_scalar_div()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_scalar_div </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>scl</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the division of a vector with a real number. </p> +<p>Divide the elements of a vector with a scalar and return the result in the vector itself.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to divide with a scalar. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">a_vec[]</td><td>pointer to the source/destination vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scl</td><td>a scalar. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00151">151</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +<a id="a3c0bdd0e463fb34757a71470c55af845"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3c0bdd0e463fb34757a71470c55af845">◆ </a></span>vector_scalar_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_scalar_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>src_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>scl</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>dest_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the product of a vector with a real number. </p> +<p>Multiple the elements of a vector with a scalar and return the result in other vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to multiply with a scalar. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_vec[]</td><td>pointer to the source vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scl</td><td>a scalar. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_vec</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00141">141</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>.</p> + +</div> +</div> +<a id="afc68fab0b07c974faf5a457d20b01c58"></a> +<h2 class="memtitle"><span class="permalink"><a href="#afc68fab0b07c974faf5a457d20b01c58">◆ </a></span>vector_square()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_square </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>square_vec</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the square of a vector. </p> +<p>Square the elements of vector vec and return the result in square_vec.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>number of elements to square. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the source vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">square_vec[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00124">124</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a3bbd999b10064c2ede2bd427aa040b63"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3bbd999b10064c2ede2bd427aa040b63">◆ </a></span>vector_sub()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_sub </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_minus_b</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the subtraction of two vectors. </p> +<p>Substact b_vec from a_vec and return the result in a_minus_b.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to subtract. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">a_minus_b[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00094">94</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__position_8c_source.html#l00045">dist_based_get_distance_to_anchor()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="magnetic__based__position_8c_source.html#l00050">magnetic_based_get_distances_to_anchors()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00227">vector_get_residual()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a421f989647bf55af29c0f55b7f33d35a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a421f989647bf55af29c0f55b7f33d35a">◆ </a></span>vector_uint32_is_equal()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool vector_uint32_is_equal </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>vec_1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>vec_2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine the equality of two vectors of type uint32_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if the two vectors are equal. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00243">243</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="vector_8c.html">vector.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector_8c.js b/doc/doxygen/html/vector_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..fb01614da0b424015912f1cc7920d5f7f3e93ef4 --- /dev/null +++ b/doc/doxygen/html/vector_8c.js @@ -0,0 +1,27 @@ +var vector_8c = +[ + [ "vector_add", "vector_8c.html#a92917951880002814392c2367896d7a0", null ], + [ "vector_clear", "vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14", null ], + [ "vector_copy", "vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6", null ], + [ "vector_flex_print", "vector_8c.html#ab2827264910e858f238868695a92db4b", null ], + [ "vector_get_elements", "vector_8c.html#a1348a041e323e7b333482242b51a7674", null ], + [ "vector_get_euclidean_distance", "vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9", null ], + [ "vector_get_index_vector", "vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba", null ], + [ "vector_get_max_and_index", "vector_8c.html#a982bc2f9e4755461eac46c6322b4562d", null ], + [ "vector_get_mean_value", "vector_8c.html#a4a8fae4c69677390016c116123d9eff8", null ], + [ "vector_get_norm2", "vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6", null ], + [ "vector_get_residual", "vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac", null ], + [ "vector_get_scalar_product", "vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e", null ], + [ "vector_get_square_norm2", "vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6", null ], + [ "vector_get_sum", "vector_8c.html#af1767c4decdd472ed81035a19cf2152b", null ], + [ "vector_in_place_scalar_mul", "vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4", null ], + [ "vector_is_equal", "vector_8c.html#af98f2e3896ce7b96d598b11033ac1795", null ], + [ "vector_mul", "vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5", null ], + [ "vector_print", "vector_8c.html#a8f24286db94dba6ab181edcdfe296262", null ], + [ "vector_print_u8_array", "vector_8c.html#a8ec75dc585746d950ab517e9929f31fe", null ], + [ "vector_scalar_div", "vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b", null ], + [ "vector_scalar_mul", "vector_8c.html#a3c0bdd0e463fb34757a71470c55af845", null ], + [ "vector_square", "vector_8c.html#afc68fab0b07c974faf5a457d20b01c58", null ], + [ "vector_sub", "vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63", null ], + [ "vector_uint32_is_equal", "vector_8c.html#a421f989647bf55af29c0f55b7f33d35a", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/vector_8c_source.html b/doc/doxygen/html/vector_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..2522467ceddd382ad40565ea65a439e552de1137 --- /dev/null +++ b/doc/doxygen/html/vector_8c_source.html @@ -0,0 +1,421 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">vector.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="vector_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="utils_8h.html">utils.h</a>"</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div> +<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14"> 32</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14">vector_clear</a>(uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  memset(arr, 0, <span class="keyword">sizeof</span>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a>) * n);</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> }</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div> +<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6"> 37</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_arr[])</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  memcpy(dest_arr, src_arr, size * <span class="keyword">sizeof</span>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a>));</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> }</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div> +<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6"> 42</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> square_norm = 0.0;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  uint8_t i = 0;</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">for</span> (; i < length; i++) {</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  square_norm += arr[i] * arr[i];</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> sqrt(square_norm);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div> +<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6"> 54</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> square_norm = 0.0;</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  uint8_t i = 0;</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">for</span> (; i < length; i++) {</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  square_norm += arr[i] * arr[i];</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> square_norm;</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  </div> +<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="vector_8c.html#af1767c4decdd472ed81035a19cf2152b"> 66</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> sum = 0.0;</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  uint8_t i;</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  sum += arr[i];</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> sum;</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="vector_8c.html#a4a8fae4c69677390016c116123d9eff8"> 78</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> mean = 0.0;</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  uint8_t i;</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  mean += arr[i];</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (length != 0) {</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  mean /= length;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> mean;</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div> +<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63"> 94</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[],</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_minus_b[])</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  uint8_t i;</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">for</span> (i = 0; i < size; i++) {</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  a_minus_b[i] = a_vec[i] - b_vec[i];</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div> +<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="vector_8c.html#a92917951880002814392c2367896d7a0"> 104</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a92917951880002814392c2367896d7a0">vector_add</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size],</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_plus_b_vec[size])</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  uint8_t i;</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span> (i = 0; i < size; i++) {</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  a_plus_b_vec[i] = a_vec[i] + b_vec[i];</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div> +<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5"> 114</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size],</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_mul_b_vec[size])</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  uint8_t i;</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">for</span> (i = 0; i < size; i++) {</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  a_mul_b_vec[i] = a_vec[i] * b_vec[i];</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div> +<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="vector_8c.html#afc68fab0b07c974faf5a457d20b01c58"> 124</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a>(uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[n], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> square_vec[n])</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> {</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  square_vec[i] = vec[i] * vec[i];</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div> +<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4"> 131</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size],</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl)</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> {</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  uint8_t i;</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">for</span> (i = 0; i < size; i++) {</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  a_vec[i] = scl * a_vec[i];</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="vector_8c.html#a3c0bdd0e463fb34757a71470c55af845"> 141</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl,</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_vec[])</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  uint8_t i;</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">for</span> (i = 0; i < size; i++) {</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  dest_vec[i] = scl * src_vec[i];</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> }</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div> +<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b"> 151</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b">vector_scalar_div</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl)</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  uint8_t i;</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span> (scl != 0) {</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">for</span> (i = 0; i < size; i++) {</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  a_vec[i] = a_vec[i] / scl;</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">//Euclidean distance: d = sum((x-y).^2).^0.5</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9"> 163</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[],</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[])</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> {</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> d = 0.0;</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> diff_vec[length];</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(length, vec1, vec2, diff_vec);</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  d = <a class="code" href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(length, diff_vec);</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> d;</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> }</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div> +<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="vector_8c.html#a982bc2f9e4755461eac46c6322b4562d"> 175</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#a982bc2f9e4755461eac46c6322b4562d">vector_get_max_and_index</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[],</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  uint8_t *index)</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> {</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> max = vec[0];</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  *index = 0;</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">for</span> (uint8_t i = 1; i < length; i++) {</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span> (vec[i] > max) {</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  max = vec[i];</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  *index = *index + 1;</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> max;</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div> +<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e"> 190</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[n],</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[n])</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> {</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> r = 0;</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < n; i++) {</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  r = r + (vec1[i] * vec2[i]);</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> r;</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> }</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div> +<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="vector_8c.html#af98f2e3896ce7b96d598b11033ac1795"> 202</a></span> <span class="keywordtype">bool</span> <a class="code" href="vector_8c.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a>(uint16_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_1[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_2[])</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> {</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">for</span> (uint16_t i = 0; i < length; i++) {</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">if</span> (vec_1[i] != vec_2[i]) {</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> }</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div> +<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba"> 214</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a>(uint8_t k, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> unsorted_vector[n],</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> sorted_vector[n], uint8_t index_vector[n])</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> {</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < k; i++) {</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j < n; j++) {</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span> (unsorted_vector[j] == sorted_vector[i]) {</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  index_vector[i] = j;</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> }</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div> +<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac"> 227</a></span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[])</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> {</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> diff_vec[length];</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(length, a_vec, b_vec, diff_vec);</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> <a class="code" href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(length, diff_vec);</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> }</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div> +<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="vector_8c.html#a1348a041e323e7b333482242b51a7674"> 235</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[], uint8_t k, uint8_t index_vec[],</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dst_vec[])</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> {</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i < k; i++) {</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  dst_vec[i] = src_vec[index_vec[i]];</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> }</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div> +<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="vector_8c.html#a421f989647bf55af29c0f55b7f33d35a"> 243</a></span> <span class="keywordtype">bool</span> <a class="code" href="vector_8c.html#a421f989647bf55af29c0f55b7f33d35a">vector_uint32_is_equal</a>(uint32_t length, uint32_t vec_1[], uint32_t vec_2[])</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> {</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">for</span> (uint32_t i = 0; i < length; i++) {</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">if</span> (vec_1[i] != vec_2[i]) {</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> }</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  </div> +<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="vector_8c.html#a8f24286db94dba6ab181edcdfe296262"> 255</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a8f24286db94dba6ab181edcdfe296262">vector_print</a>(uint32_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> {</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  uint16_t i;</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  </div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  printf(<span class="stringliteral">"%5.4f"</span>, arr[i]);</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span> (i < length - 1) {</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> }</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  </div> +<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="vector_8c.html#a8ec75dc585746d950ab517e9929f31fe"> 269</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#a8ec75dc585746d950ab517e9929f31fe">vector_print_u8_array</a>(uint32_t length, uint8_t arr[])</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  uint32_t i;</div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  printf(<span class="stringliteral">"%u"</span>, arr[i]);</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (i < length - 1) {</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> }</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  </div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// This function is more memory-consuming than vector_print</span></div> +<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="vector_8c.html#ab2827264910e858f238868695a92db4b"> 284</a></span> <span class="keywordtype">void</span> <a class="code" href="vector_8c.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(uint32_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t before_dot,</div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  uint8_t after_dot)</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> {</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  uint32_t i;</div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordtype">char</span> format_str_buff[13];</div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  </div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  sprintf(format_str_buff, <span class="stringliteral">"%%%u.%uf"</span>, before_dot, after_dot);</div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  printf(<span class="stringliteral">"{"</span>);</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">for</span> (i = 0; i < length; i++) {</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">//printf(format_str_buff, arr[i]);</span></div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a>(format_str_buff, arr[i]);</div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (i < length - 1) {</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  printf(<span class="stringliteral">", "</span>);</div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  printf(<span class="stringliteral">"}"</span>);</div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="comment">//puts("");</span></div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8c_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8c.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="avector_8c_html_a5f4b706c07b9b0f7a4983d80fba99e4e"><div class="ttname"><a href="vector_8c.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a></div><div class="ttdeci">vector_t vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n])</div><div class="ttdoc">Compute the dot product of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00190">vector.c:190</a></div></div> +<div class="ttc" id="avector_8c_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8c.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="avector_8c_html_af98f2e3896ce7b96d598b11033ac1795"><div class="ttname"><a href="vector_8c.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a></div><div class="ttdeci">bool vector_is_equal(uint16_t length, vector_t vec_1[], vector_t vec_2[])</div><div class="ttdoc">Determine the equality of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00202">vector.c:202</a></div></div> +<div class="ttc" id="avector_8c_html_ac4b023769faf53e06c2ed1f2fd928d14"><div class="ttname"><a href="vector_8c.html#ac4b023769faf53e06c2ed1f2fd928d14">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t n, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="avector_8c_html_a8f24286db94dba6ab181edcdfe296262"><div class="ttname"><a href="vector_8c.html#a8f24286db94dba6ab181edcdfe296262">vector_print</a></div><div class="ttdeci">void vector_print(uint32_t length, vector_t arr[])</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00255">vector.c:255</a></div></div> +<div class="ttc" id="avector_8c_html_a45dfc0cdad1f1a542df4029b498766ba"><div class="ttname"><a href="vector_8c.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a></div><div class="ttdeci">void vector_get_index_vector(uint8_t k, uint8_t n, vector_t unsorted_vector[n], vector_t sorted_vector[n], uint8_t index_vector[n])</div><div class="ttdoc">Determine the index of the vector elements before sorting.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00214">vector.c:214</a></div></div> +<div class="ttc" id="avector_8c_html_aab9d7950d4ba03b0e1a23de5b7fae6a6"><div class="ttname"><a href="vector_8c.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a></div><div class="ttdeci">vector_t vector_get_square_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the squared 2-norm norm of a vector .</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00054">vector.c:54</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="avector_8c_html_a90a92f618957807f90ab1d8a8d9150d4"><div class="ttname"><a href="vector_8c.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a></div><div class="ttdeci">void vector_in_place_scalar_mul(uint8_t size, vector_t a_vec[size], vector_t scl)</div><div class="ttdoc">Compute the product of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00131">vector.c:131</a></div></div> +<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Utilities for linear algebra.</div></div> +<div class="ttc" id="avector_8c_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8c.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<div class="ttc" id="avector_8c_html_a982bc2f9e4755461eac46c6322b4562d"><div class="ttname"><a href="vector_8c.html#a982bc2f9e4755461eac46c6322b4562d">vector_get_max_and_index</a></div><div class="ttdeci">vector_t vector_get_max_and_index(uint8_t length, vector_t vec[], uint8_t *index)</div><div class="ttdoc">Compute the maximal value and its index of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00175">vector.c:175</a></div></div> +<div class="ttc" id="avector_8c_html_a3c0bdd0e463fb34757a71470c55af845"><div class="ttname"><a href="vector_8c.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a></div><div class="ttdeci">void vector_scalar_mul(uint8_t size, vector_t src_vec[size], vector_t scl, vector_t dest_vec[])</div><div class="ttdoc">Compute the product of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00141">vector.c:141</a></div></div> +<div class="ttc" id="avector_8c_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8c.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="avector_8c_html_a1348a041e323e7b333482242b51a7674"><div class="ttname"><a href="vector_8c.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a></div><div class="ttdeci">void vector_get_elements(vector_t src_vec[], uint8_t k, uint8_t index_vec[], vector_t dst_vec[])</div><div class="ttdoc">Get the elements of the vector by an index vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00235">vector.c:235</a></div></div> +<div class="ttc" id="autils_8h_html_a335d8d6c4b945638261228cd116cccd6"><div class="ttname"><a href="utils_8h.html#a335d8d6c4b945638261228cd116cccd6">utils_printf</a></div><div class="ttdeci">void utils_printf(char *format_str,...)</div><div class="ttdoc">Print by using variable format string as well as argument lists.</div><div class="ttdef"><b>Definition:</b> <a href="utils_8c_source.html#l00096">utils.c:96</a></div></div> +<div class="ttc" id="avector_8c_html_ae41fee7d298da0645c37ed6af7acea0b"><div class="ttname"><a href="vector_8c.html#ae41fee7d298da0645c37ed6af7acea0b">vector_scalar_div</a></div><div class="ttdeci">void vector_scalar_div(uint8_t size, vector_t a_vec[size], vector_t scl)</div><div class="ttdoc">Compute the division of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00151">vector.c:151</a></div></div> +<div class="ttc" id="avector_8c_html_a92917951880002814392c2367896d7a0"><div class="ttname"><a href="vector_8c.html#a92917951880002814392c2367896d7a0">vector_add</a></div><div class="ttdeci">void vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size])</div><div class="ttdoc">Compute the addition of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00104">vector.c:104</a></div></div> +<div class="ttc" id="avector_8c_html_a1fcbe913017a3b6802d5f66c8ef699ac"><div class="ttname"><a href="vector_8c.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a></div><div class="ttdeci">vector_t vector_get_residual(uint8_t length, vector_t a_vec[], vector_t b_vec[])</div><div class="ttdoc">Compute the residual of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00227">vector.c:227</a></div></div> +<div class="ttc" id="avector_8c_html_a4a8fae4c69677390016c116123d9eff8"><div class="ttname"><a href="vector_8c.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a></div><div class="ttdeci">vector_t vector_get_mean_value(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the average or mean value of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00078">vector.c:78</a></div></div> +<div class="ttc" id="avector_8c_html_a8ec75dc585746d950ab517e9929f31fe"><div class="ttname"><a href="vector_8c.html#a8ec75dc585746d950ab517e9929f31fe">vector_print_u8_array</a></div><div class="ttdeci">void vector_print_u8_array(uint32_t length, uint8_t arr[])</div><div class="ttdoc">Display the values of the vector's elements of type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00269">vector.c:269</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="avector_8c_html_a099aa56dd0f260c77afaf8b62b56b2c5"><div class="ttname"><a href="vector_8c.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a></div><div class="ttdeci">void vector_mul(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_mul_b_vec[size])</div><div class="ttdoc">Compute the multiplication of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00114">vector.c:114</a></div></div> +<div class="ttc" id="avector_8c_html_afc68fab0b07c974faf5a457d20b01c58"><div class="ttname"><a href="vector_8c.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a></div><div class="ttdeci">void vector_square(uint8_t n, vector_t vec[n], vector_t square_vec[n])</div><div class="ttdoc">Compute the square of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00124">vector.c:124</a></div></div> +<div class="ttc" id="avector_8c_html_af1767c4decdd472ed81035a19cf2152b"><div class="ttname"><a href="vector_8c.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a></div><div class="ttdeci">vector_t vector_get_sum(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the sum of the elements of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00066">vector.c:66</a></div></div> +<div class="ttc" id="avector_8c_html_a421f989647bf55af29c0f55b7f33d35a"><div class="ttname"><a href="vector_8c.html#a421f989647bf55af29c0f55b7f33d35a">vector_uint32_is_equal</a></div><div class="ttdeci">bool vector_uint32_is_equal(uint32_t length, uint32_t vec_1[], uint32_t vec_2[])</div><div class="ttdoc">Determine the equality of two vectors of type uint32_t.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00243">vector.c:243</a></div></div> +<div class="ttc" id="avector_8c_html_abbb6bf046e47a8634c15c43a508cacb9"><div class="ttname"><a href="vector_8c.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a></div><div class="ttdeci">vector_t vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[])</div><div class="ttdoc">Compute the Euclidean distance between two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00163">vector.c:163</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="vector_8c.html">vector.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector_8h.html b/doc/doxygen/html/vector_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..8d13278f70b5b91deaab10ba5e421273b56b6baa --- /dev/null +++ b/doc/doxygen/html/vector_8h.html @@ -0,0 +1,1397 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector_8h.html','');}); +/* @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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">vector.h File Reference<div class="ingroups"><a class="el" href="group__linear__algebra.html">LINEAR_ALGEBRA</a> » <a class="el" href="group__basic__operations.html">BASIC_OPERATIONS</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Vector computations. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <inttypes.h></code><br /> +<code>#include <stdbool.h></code><br /> +</div> +<p><a href="vector_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:acb41430bc5720dda7d1c45d91a0b0221"><td class="memItemLeft" align="right" valign="top"><a id="acb41430bc5720dda7d1c45d91a0b0221"></a> +#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a>   double</td></tr> +<tr class="memdesc:acb41430bc5720dda7d1c45d91a0b0221"><td class="mdescLeft"> </td><td class="mdescRight">Define the data type of the vector elements. <br /></td></tr> +<tr class="separator:acb41430bc5720dda7d1c45d91a0b0221"><td class="memSeparator" colspan="2"> </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:a758d38ad9623aa8c385bce765a3b7d17"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:a758d38ad9623aa8c385bce765a3b7d17"><td class="mdescLeft"> </td><td class="mdescRight">Clear all the elements of the vector. <a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">More...</a><br /></td></tr> +<tr class="separator:a758d38ad9623aa8c385bce765a3b7d17"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae9d3378f23ba835c727245b434b8a7f6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_arr[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_arr[])</td></tr> +<tr class="memdesc:ae9d3378f23ba835c727245b434b8a7f6"><td class="mdescLeft"> </td><td class="mdescRight">Copy the elements of the source vector to the destination vector. <a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">More...</a><br /></td></tr> +<tr class="separator:ae9d3378f23ba835c727245b434b8a7f6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4cfc452fdff3e32a601ccff140cd9ae6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:a4cfc452fdff3e32a601ccff140cd9ae6"><td class="mdescLeft"> </td><td class="mdescRight">Compute the 2-norm norm of a vector. <a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">More...</a><br /></td></tr> +<tr class="separator:a4cfc452fdff3e32a601ccff140cd9ae6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aab9d7950d4ba03b0e1a23de5b7fae6a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:aab9d7950d4ba03b0e1a23de5b7fae6a6"><td class="mdescLeft"> </td><td class="mdescRight">Compute the squared 2-norm norm of a vector . <a href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">More...</a><br /></td></tr> +<tr class="separator:aab9d7950d4ba03b0e1a23de5b7fae6a6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af1767c4decdd472ed81035a19cf2152b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:af1767c4decdd472ed81035a19cf2152b"><td class="mdescLeft"> </td><td class="mdescRight">Compute the sum of the elements of a vector. <a href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">More...</a><br /></td></tr> +<tr class="separator:af1767c4decdd472ed81035a19cf2152b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4a8fae4c69677390016c116123d9eff8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:a4a8fae4c69677390016c116123d9eff8"><td class="mdescLeft"> </td><td class="mdescRight">Compute the average or mean value of a vector. <a href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">More...</a><br /></td></tr> +<tr class="separator:a4a8fae4c69677390016c116123d9eff8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3bbd999b10064c2ede2bd427aa040b63"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_minus_b[])</td></tr> +<tr class="memdesc:a3bbd999b10064c2ede2bd427aa040b63"><td class="mdescLeft"> </td><td class="mdescRight">Compute the subtraction of two vectors. <a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">More...</a><br /></td></tr> +<tr class="separator:a3bbd999b10064c2ede2bd427aa040b63"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a92917951880002814392c2367896d7a0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_plus_b_vec[size])</td></tr> +<tr class="memdesc:a92917951880002814392c2367896d7a0"><td class="mdescLeft"> </td><td class="mdescRight">Compute the addition of two vectors. <a href="vector_8h.html#a92917951880002814392c2367896d7a0">More...</a><br /></td></tr> +<tr class="separator:a92917951880002814392c2367896d7a0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a099aa56dd0f260c77afaf8b62b56b2c5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_mul_b_vec[size])</td></tr> +<tr class="memdesc:a099aa56dd0f260c77afaf8b62b56b2c5"><td class="mdescLeft"> </td><td class="mdescRight">Compute the multiplication of two vectors. <a href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">More...</a><br /></td></tr> +<tr class="separator:a099aa56dd0f260c77afaf8b62b56b2c5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:afc68fab0b07c974faf5a457d20b01c58"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a> (uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> square_vec[n])</td></tr> +<tr class="memdesc:afc68fab0b07c974faf5a457d20b01c58"><td class="mdescLeft"> </td><td class="mdescRight">Compute the square of a vector. <a href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">More...</a><br /></td></tr> +<tr class="separator:afc68fab0b07c974faf5a457d20b01c58"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a90a92f618957807f90ab1d8a8d9150d4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl)</td></tr> +<tr class="memdesc:a90a92f618957807f90ab1d8a8d9150d4"><td class="mdescLeft"> </td><td class="mdescRight">Compute the product of a vector with a real number. <a href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">More...</a><br /></td></tr> +<tr class="separator:a90a92f618957807f90ab1d8a8d9150d4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3c0bdd0e463fb34757a71470c55af845"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_vec[])</td></tr> +<tr class="memdesc:a3c0bdd0e463fb34757a71470c55af845"><td class="mdescLeft"> </td><td class="mdescRight">Compute the product of a vector with a real number. <a href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">More...</a><br /></td></tr> +<tr class="separator:a3c0bdd0e463fb34757a71470c55af845"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae41fee7d298da0645c37ed6af7acea0b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b">vector_scalar_div</a> (uint8_t size, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl)</td></tr> +<tr class="memdesc:ae41fee7d298da0645c37ed6af7acea0b"><td class="mdescLeft"> </td><td class="mdescRight">Compute the division of a vector with a real number. <a href="vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b">More...</a><br /></td></tr> +<tr class="separator:ae41fee7d298da0645c37ed6af7acea0b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abbb6bf046e47a8634c15c43a508cacb9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[])</td></tr> +<tr class="memdesc:abbb6bf046e47a8634c15c43a508cacb9"><td class="mdescLeft"> </td><td class="mdescRight">Compute the Euclidean distance between two vectors. <a href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">More...</a><br /></td></tr> +<tr class="separator:abbb6bf046e47a8634c15c43a508cacb9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f4b706c07b9b0f7a4983d80fba99e4e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a> (uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[n])</td></tr> +<tr class="memdesc:a5f4b706c07b9b0f7a4983d80fba99e4e"><td class="mdescLeft"> </td><td class="mdescRight">Compute the dot product of two vectors. <a href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">More...</a><br /></td></tr> +<tr class="separator:a5f4b706c07b9b0f7a4983d80fba99e4e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af98f2e3896ce7b96d598b11033ac1795"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a> (uint16_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_1[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_2[])</td></tr> +<tr class="memdesc:af98f2e3896ce7b96d598b11033ac1795"><td class="mdescLeft"> </td><td class="mdescRight">Determine the equality of two vectors. <a href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">More...</a><br /></td></tr> +<tr class="separator:af98f2e3896ce7b96d598b11033ac1795"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a421f989647bf55af29c0f55b7f33d35a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a421f989647bf55af29c0f55b7f33d35a">vector_uint32_is_equal</a> (uint32_t length, uint32_t vec_1[], uint32_t vec_2[])</td></tr> +<tr class="memdesc:a421f989647bf55af29c0f55b7f33d35a"><td class="mdescLeft"> </td><td class="mdescRight">Determine the equality of two vectors of type uint32_t. <a href="vector_8h.html#a421f989647bf55af29c0f55b7f33d35a">More...</a><br /></td></tr> +<tr class="separator:a421f989647bf55af29c0f55b7f33d35a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a45dfc0cdad1f1a542df4029b498766ba"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a> (uint8_t k, uint8_t n, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> unsorted_vector[n], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> sorted_vector[n], uint8_t index_vector[n])</td></tr> +<tr class="memdesc:a45dfc0cdad1f1a542df4029b498766ba"><td class="mdescLeft"> </td><td class="mdescRight">Determine the index of the vector elements before sorting. <a href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">More...</a><br /></td></tr> +<tr class="separator:a45dfc0cdad1f1a542df4029b498766ba"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a982bc2f9e4755461eac46c6322b4562d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a982bc2f9e4755461eac46c6322b4562d">vector_get_max_and_index</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[], uint8_t *index)</td></tr> +<tr class="memdesc:a982bc2f9e4755461eac46c6322b4562d"><td class="mdescLeft"> </td><td class="mdescRight">Compute the maximal value and its index of a vector. <a href="vector_8h.html#a982bc2f9e4755461eac46c6322b4562d">More...</a><br /></td></tr> +<tr class="separator:a982bc2f9e4755461eac46c6322b4562d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1fcbe913017a3b6802d5f66c8ef699ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a> (uint8_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[])</td></tr> +<tr class="memdesc:a1fcbe913017a3b6802d5f66c8ef699ac"><td class="mdescLeft"> </td><td class="mdescRight">Compute the residual of two vectors. <a href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">More...</a><br /></td></tr> +<tr class="separator:a1fcbe913017a3b6802d5f66c8ef699ac"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1348a041e323e7b333482242b51a7674"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a> (<a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[], uint8_t k, uint8_t index_vec[], <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dst_vec[])</td></tr> +<tr class="memdesc:a1348a041e323e7b333482242b51a7674"><td class="mdescLeft"> </td><td class="mdescRight">Get the elements of the vector by an index vector. <a href="vector_8h.html#a1348a041e323e7b333482242b51a7674">More...</a><br /></td></tr> +<tr class="separator:a1348a041e323e7b333482242b51a7674"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8f24286db94dba6ab181edcdfe296262"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a8f24286db94dba6ab181edcdfe296262">vector_print</a> (uint32_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[])</td></tr> +<tr class="memdesc:a8f24286db94dba6ab181edcdfe296262"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the vector's elements. <a href="vector_8h.html#a8f24286db94dba6ab181edcdfe296262">More...</a><br /></td></tr> +<tr class="separator:a8f24286db94dba6ab181edcdfe296262"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8ec75dc585746d950ab517e9929f31fe"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#a8ec75dc585746d950ab517e9929f31fe">vector_print_u8_array</a> (uint32_t length, uint8_t arr[])</td></tr> +<tr class="memdesc:a8ec75dc585746d950ab517e9929f31fe"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the vector's elements of type uint8_t. <a href="vector_8h.html#a8ec75dc585746d950ab517e9929f31fe">More...</a><br /></td></tr> +<tr class="separator:a8ec75dc585746d950ab517e9929f31fe"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab2827264910e858f238868695a92db4b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a> (uint32_t length, <a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t before_dot, uint8_t after_dot)</td></tr> +<tr class="memdesc:ab2827264910e858f238868695a92db4b"><td class="mdescLeft"> </td><td class="mdescRight">Display the values of the vector's elements. <a href="vector_8h.html#ab2827264910e858f238868695a92db4b">More...</a><br /></td></tr> +<tr class="separator:ab2827264910e858f238868695a92db4b"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Vector computations. </p> +<p>Vector computations include operations such as addition, subtraction, and inner product (dot product).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="vector_8h_source.html">vector.h</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a id="a92917951880002814392c2367896d7a0"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a92917951880002814392c2367896d7a0">◆ </a></span>vector_add()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_add </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_plus_b_vec</em>[size] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the addition of two vectors. </p> +<p>Add b_vec to a_vec and return the result in a_plus_b.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to subtract. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">a_plus_b_vec[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00104">104</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a758d38ad9623aa8c385bce765a3b7d17"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a758d38ad9623aa8c385bce765a3b7d17">◆ </a></span>vector_clear()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_clear </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Clear all the elements of the vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00032">32</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__jacobian_8c_source.html#l00028">dist_based_jacobian_get_JTf()</a>, <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00264">optimization_exponential_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00376">optimization_sinusoidal_data_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>, <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="ae9d3378f23ba835c727245b434b8a7f6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae9d3378f23ba835c727245b434b8a7f6">◆ </a></span>vector_copy()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_copy </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>src_arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>dest_arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Copy the elements of the source vector to the destination vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to copy. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_arr[]</td><td>pointer to the source vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">dest_arr[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00037">37</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="ab2827264910e858f238868695a92db4b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ab2827264910e858f238868695a92db4b">◆ </a></span>vector_flex_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_flex_print </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>before_dot</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>after_dot</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the vector's elements. </p> +<p>This function allows the user to determine the precision as well as the with of the numbers to display.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector to display. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>pointer to the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">before_dot</td><td>the number of digits to be printed before the decimal point. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">after_dot</td><td>the number of digits to be printed after the decimal point. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00284">284</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="utils_8c_source.html#l00096">utils_printf()</a>.</p> + +<p class="reference">Referenced by <a class="el" href="distance__based__test_8c_source.html#l00032">distance_based_test()</a>, <a class="el" href="fsolve__test_8c_source.html#l00245">fsolve_test()</a>, <a class="el" href="magnetic__based__position_8c_source.html#l00062">magnetic_based_get_magnetic_field()</a>, <a class="el" href="magnetic__based__test_8c_source.html#l00034">magnetic_based_test()</a>, <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>, <a class="el" href="optimization__test_8c_source.html#l00101">optimization_test()</a>, <a class="el" href="position__optimization__test_8c_source.html#l00037">position_optimization_test()</a>, <a class="el" href="solve__test_8c_source.html#l00216">solve_big_matrix_test()</a>, <a class="el" href="solve__test_8c_source.html#l00029">solve_test()</a>, <a class="el" href="utils__test_8c_source.html#l00028">utils_test()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a1348a041e323e7b333482242b51a7674"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1348a041e323e7b333482242b51a7674">◆ </a></span>vector_get_elements()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_get_elements </td> + <td>(</td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>src_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>index_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>dst_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Get the elements of the vector by an index vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">src_vec[]</td><td>pointer to source vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the index vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">index_vec[]</td><td>pointer to the index vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dst_vec[]</td><td>pointer to the destination vector </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00235">235</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__algo__own__norm__distr__test_8c_source.html#l00038">multipath_algo_own_norm_distr_test()</a>.</p> + +</div> +</div> +<a id="abbb6bf046e47a8634c15c43a508cacb9"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abbb6bf046e47a8634c15c43a508cacb9">◆ </a></span>vector_get_euclidean_distance()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_euclidean_distance </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the Euclidean distance between two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the Euclidean distance. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00163">163</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a45dfc0cdad1f1a542df4029b498766ba"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a45dfc0cdad1f1a542df4029b498766ba">◆ </a></span>vector_get_index_vector()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_get_index_vector </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>k</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>unsorted_vector</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>sorted_vector</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>index_vector</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine the index of the vector elements before sorting. </p> +<p>Determine the index of the elements of a sorted vector. These indices correspond to the positions of the elements in the unsorted vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>size of the unsorted vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the sorted vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">unsorted_vector[]</td><td>pointer to the unsorted vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">sorted_vector[]</td><td>pointer to the sorted vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">index_vector[]</td><td>pointer to the index vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00214">214</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a982bc2f9e4755461eac46c6322b4562d"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a982bc2f9e4755461eac46c6322b4562d">◆ </a></span>vector_get_max_and_index()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_max_and_index </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>index</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the maximal value and its index of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>vector size. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>pointer to the index.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the maximal value of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00175">175</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="a4a8fae4c69677390016c116123d9eff8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4a8fae4c69677390016c116123d9eff8">◆ </a></span>vector_get_mean_value()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_mean_value </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the average or mean value of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the mean value of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00078">78</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a4cfc452fdff3e32a601ccff140cd9ae6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4cfc452fdff3e32a601ccff140cd9ae6">◆ </a></span>vector_get_norm2()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_norm2 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the 2-norm norm of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the 2-norm of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00042">42</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>, <a class="el" href="dist__based__position_8c_source.html#l00045">dist_based_get_distance_to_anchor()</a>, <a class="el" href="damped__newton__raphson_8c_source.html#l00104">get_damped_norm()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00126">loc_levenberg_marquardt()</a>, <a class="el" href="magnetic__based__position_8c_source.html#l00050">magnetic_based_get_distances_to_anchors()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00143">opt_levenberg_marquardt()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00227">vector_get_residual()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a1fcbe913017a3b6802d5f66c8ef699ac"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1fcbe913017a3b6802d5f66c8ef699ac">◆ </a></span>vector_get_residual()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_residual </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the residual of two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>vector size. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the residual of the two vectors. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00227">227</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8c_source.html#l00042">vector_get_norm2()</a>, <a class="el" href="vector_8c_source.html#l00094">vector_sub()</a>, and <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +</div> +</div> +<a id="a5f4b706c07b9b0f7a4983d80fba99e4e"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5f4b706c07b9b0f7a4983d80fba99e4e">◆ </a></span>vector_get_scalar_product()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_scalar_product </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec1</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec2</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the dot product of two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>size of the vectors. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the scalar product of two vectors. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00190">190</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="loc__levenberg__marquardt_8c_source.html#l00034">loc_levenberg_marquardt_correction()</a>, <a class="el" href="levenberg__marquardt_8c_source.html#l00053">opt_levenberg_marquardt_correction()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="aab9d7950d4ba03b0e1a23de5b7fae6a6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aab9d7950d4ba03b0e1a23de5b7fae6a6">◆ </a></span>vector_get_square_norm2()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_square_norm2 </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the squared 2-norm norm of a vector . </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the squared 2-norm of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00054">54</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="af1767c4decdd472ed81035a19cf2152b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af1767c4decdd472ed81035a19cf2152b">◆ </a></span>vector_get_sum()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vector_get_sum </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the sum of the elements of a vector. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr[]</td><td>pointer to the vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>the sum of the elements of the vector. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00066">66</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">References <a class="el" href="vector_8h_source.html#l00033">vector_t</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a90a92f618957807f90ab1d8a8d9150d4"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a90a92f618957807f90ab1d8a8d9150d4">◆ </a></span>vector_in_place_scalar_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_in_place_scalar_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>scl</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the product of a vector with a real number. </p> +<p>Multiple the elements of a vector with a scalar and return the result in the vector itself.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to multiply with a scalar. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">a_vec[]</td><td>pointer to the source/destination vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scl</td><td>a scalar. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00131">131</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00120">get_delta_x()</a>.</p> + +</div> +</div> +<a id="af98f2e3896ce7b96d598b11033ac1795"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af98f2e3896ce7b96d598b11033ac1795">◆ </a></span>vector_is_equal()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool vector_is_equal </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec_1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec_2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine the equality of two vectors. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if the two vectors are equal. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00202">202</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a099aa56dd0f260c77afaf8b62b56b2c5"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a099aa56dd0f260c77afaf8b62b56b2c5">◆ </a></span>vector_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_mul_b_vec</em>[size] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the multiplication of two vectors. </p> +<p>Multiple vectors a_vec and b_vec element by element and return the result in a_mul_b.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to multiply. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">a_mul_b_vec[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00114">114</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a8f24286db94dba6ab181edcdfe296262"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8f24286db94dba6ab181edcdfe296262">◆ </a></span>vector_print()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_print </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the vector's elements. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector to display. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>pointer to the vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00255">255</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +<a id="a8ec75dc585746d950ab517e9929f31fe"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8ec75dc585746d950ab517e9929f31fe">◆ </a></span>vector_print_u8_array()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_print_u8_array </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>arr</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Display the values of the vector's elements of type uint8_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector to display. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">arr</td><td>pointer to the vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00269">269</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +<a id="ae41fee7d298da0645c37ed6af7acea0b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae41fee7d298da0645c37ed6af7acea0b">◆ </a></span>vector_scalar_div()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_scalar_div </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>scl</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the division of a vector with a real number. </p> +<p>Divide the elements of a vector with a scalar and return the result in the vector itself.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to divide with a scalar. </td></tr> + <tr><td class="paramdir">[in,out]</td><td class="paramname">a_vec[]</td><td>pointer to the source/destination vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scl</td><td>a scalar. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00151">151</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +<a id="a3c0bdd0e463fb34757a71470c55af845"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3c0bdd0e463fb34757a71470c55af845">◆ </a></span>vector_scalar_mul()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_scalar_mul </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>src_vec</em>[size], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>scl</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>dest_vec</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the product of a vector with a real number. </p> +<p>Multiple the elements of a vector with a scalar and return the result in other vector.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to multiply with a scalar. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">src_vec[]</td><td>pointer to the source vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">scl</td><td>a scalar. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">dest_vec</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00141">141</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="damped__newton__raphson_8c_source.html#l00032">damped_newton_raphson()</a>.</p> + +</div> +</div> +<a id="afc68fab0b07c974faf5a457d20b01c58"></a> +<h2 class="memtitle"><span class="permalink"><a href="#afc68fab0b07c974faf5a457d20b01c58">◆ </a></span>vector_square()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_square </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>vec</em>[n], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>square_vec</em>[n] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the square of a vector. </p> +<p>Square the elements of vector vec and return the result in square_vec.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>number of elements to square. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec[]</td><td>pointer to the source vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">square_vec[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00124">124</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>.</p> + +</div> +</div> +<a id="a3bbd999b10064c2ede2bd427aa040b63"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3bbd999b10064c2ede2bd427aa040b63">◆ </a></span>vector_sub()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void vector_sub </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>b_vec</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> </td> + <td class="paramname"><em>a_minus_b</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Compute the subtraction of two vectors. </p> +<p>Substact b_vec from a_vec and return the result in a_minus_b.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>number of elements to subtract. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">a_vec[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">b_vec[]</td><td>pointer to the second vector. </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">a_minus_b[]</td><td>pointer to the destination vector. </td></tr> + </table> + </dd> +</dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00094">94</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +<p class="reference">Referenced by <a class="el" href="dist__based__position_8c_source.html#l00045">dist_based_get_distance_to_anchor()</a>, <a class="el" href="loc__gauss__newton_8c_source.html#l00030">loc_gauss_newton()</a>, <a class="el" href="magnetic__based__position_8c_source.html#l00050">magnetic_based_get_distances_to_anchors()</a>, <a class="el" href="modified__gauss__newton_8c_source.html#l00032">modified_gauss_newton()</a>, <a class="el" href="newton__raphson_8c_source.html#l00028">newton_raphson()</a>, <a class="el" href="multipath__dist__detection__mitigation_8c_source.html#l00133">recog_mitigate_multipath()</a>, <a class="el" href="vector_8c_source.html#l00163">vector_get_euclidean_distance()</a>, <a class="el" href="vector_8c_source.html#l00227">vector_get_residual()</a>, and <a class="el" href="vector__test_8c_source.html#l00030">vector_test()</a>.</p> + +</div> +</div> +<a id="a421f989647bf55af29c0f55b7f33d35a"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a421f989647bf55af29c0f55b7f33d35a">◆ </a></span>vector_uint32_is_equal()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool vector_uint32_is_equal </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>vec_1</em>[], </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>vec_2</em>[] </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determine the equality of two vectors of type uint32_t. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>size of the vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_1[]</td><td>pointer to the first vector. </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">vec_2[]</td><td>pointer to the second vector.</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>true, if the two vectors are equal. </dd> +<dd> +false, if not. </dd></dl> + +<p class="definition">Definition at line <a class="el" href="vector_8c_source.html#l00243">243</a> of file <a class="el" href="vector_8c_source.html">vector.c</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_e663cf436b7a4f65fdac82a5d77479a9.html">include</a></li><li class="navelem"><a class="el" href="vector_8h.html">vector.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector_8h.js b/doc/doxygen/html/vector_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..e77b2788838caad75d4a7cc4d240e462fc1363d9 --- /dev/null +++ b/doc/doxygen/html/vector_8h.js @@ -0,0 +1,28 @@ +var vector_8h = +[ + [ "vector_t", "vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221", null ], + [ "vector_add", "vector_8h.html#a92917951880002814392c2367896d7a0", null ], + [ "vector_clear", "vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17", null ], + [ "vector_copy", "vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6", null ], + [ "vector_flex_print", "vector_8h.html#ab2827264910e858f238868695a92db4b", null ], + [ "vector_get_elements", "vector_8h.html#a1348a041e323e7b333482242b51a7674", null ], + [ "vector_get_euclidean_distance", "vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9", null ], + [ "vector_get_index_vector", "vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba", null ], + [ "vector_get_max_and_index", "vector_8h.html#a982bc2f9e4755461eac46c6322b4562d", null ], + [ "vector_get_mean_value", "vector_8h.html#a4a8fae4c69677390016c116123d9eff8", null ], + [ "vector_get_norm2", "vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6", null ], + [ "vector_get_residual", "vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac", null ], + [ "vector_get_scalar_product", "vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e", null ], + [ "vector_get_square_norm2", "vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6", null ], + [ "vector_get_sum", "vector_8h.html#af1767c4decdd472ed81035a19cf2152b", null ], + [ "vector_in_place_scalar_mul", "vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4", null ], + [ "vector_is_equal", "vector_8h.html#af98f2e3896ce7b96d598b11033ac1795", null ], + [ "vector_mul", "vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5", null ], + [ "vector_print", "vector_8h.html#a8f24286db94dba6ab181edcdfe296262", null ], + [ "vector_print_u8_array", "vector_8h.html#a8ec75dc585746d950ab517e9929f31fe", null ], + [ "vector_scalar_div", "vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b", null ], + [ "vector_scalar_mul", "vector_8h.html#a3c0bdd0e463fb34757a71470c55af845", null ], + [ "vector_square", "vector_8h.html#afc68fab0b07c974faf5a457d20b01c58", null ], + [ "vector_sub", "vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63", null ], + [ "vector_uint32_is_equal", "vector_8h.html#a421f989647bf55af29c0f55b7f33d35a", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/vector_8h_source.html b/doc/doxygen/html/vector_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..858e3eca93dfc01df0014997dd03d02e857344a3 --- /dev/null +++ b/doc/doxygen/html/vector_8h_source.html @@ -0,0 +1,212 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">vector.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="vector_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef VECTOR_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define VECTOR_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stdbool.h></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">//#define vector_t float</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#ifndef vector_t</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221"> 33</a></span> <span class="preprocessor">#define vector_t double</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[]);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_arr[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_arr[]);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[]);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[]);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[]);</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[]);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[]);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[],</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_minus_b[]);</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size],</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_plus_b_vec[size]);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[size],</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_mul_b_vec[size]);</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a>(uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[n], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> square_vec[n]);</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size],</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl);</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl,</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dest_vec[]);</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b">vector_scalar_div</a>(uint8_t size, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[size], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scl);</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">//Euclidean distance: d = sum((x-y).^2).^0.5</span></div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  </div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[],</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[]);</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec1[n],</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec2[n]);</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keywordtype">bool</span> <a class="code" href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a>(uint16_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_1[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec_2[]);</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keywordtype">bool</span> <a class="code" href="vector_8h.html#a421f989647bf55af29c0f55b7f33d35a">vector_uint32_is_equal</a>(uint32_t length, uint32_t vec_1[], uint32_t vec_2[]);</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a>(uint8_t k, uint8_t n, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> unsorted_vector[n],</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> sorted_vector[n], uint8_t index_vector[n]);</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#a982bc2f9e4755461eac46c6322b4562d">vector_get_max_and_index</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> vec[],</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  uint8_t *index);</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> <a class="code" href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a>(uint8_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a_vec[], <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b_vec[]);</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a>(<a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> src_vec[], uint8_t k, uint8_t index_vec[],</div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> dst_vec[]);</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a8f24286db94dba6ab181edcdfe296262">vector_print</a>(uint32_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[]);</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  </div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#a8ec75dc585746d950ab517e9929f31fe">vector_print_u8_array</a>(uint32_t length, uint8_t arr[]);</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordtype">void</span> <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(uint32_t length, <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> arr[], uint8_t before_dot,</div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  uint8_t after_dot);</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor">#endif </span><span class="comment">/* VECTOR_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_ae41fee7d298da0645c37ed6af7acea0b"><div class="ttname"><a href="vector_8h.html#ae41fee7d298da0645c37ed6af7acea0b">vector_scalar_div</a></div><div class="ttdeci">void vector_scalar_div(uint8_t size, vector_t a_vec[size], vector_t scl)</div><div class="ttdoc">Compute the division of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00151">vector.c:151</a></div></div> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="avector_8h_html_a1fcbe913017a3b6802d5f66c8ef699ac"><div class="ttname"><a href="vector_8h.html#a1fcbe913017a3b6802d5f66c8ef699ac">vector_get_residual</a></div><div class="ttdeci">vector_t vector_get_residual(uint8_t length, vector_t a_vec[], vector_t b_vec[])</div><div class="ttdoc">Compute the residual of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00227">vector.c:227</a></div></div> +<div class="ttc" id="avector_8h_html_abbb6bf046e47a8634c15c43a508cacb9"><div class="ttname"><a href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a></div><div class="ttdeci">vector_t vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[])</div><div class="ttdoc">Compute the Euclidean distance between two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00163">vector.c:163</a></div></div> +<div class="ttc" id="avector_8h_html_a5f4b706c07b9b0f7a4983d80fba99e4e"><div class="ttname"><a href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a></div><div class="ttdeci">vector_t vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n])</div><div class="ttdoc">Compute the dot product of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00190">vector.c:190</a></div></div> +<div class="ttc" id="avector_8h_html_afc68fab0b07c974faf5a457d20b01c58"><div class="ttname"><a href="vector_8h.html#afc68fab0b07c974faf5a457d20b01c58">vector_square</a></div><div class="ttdeci">void vector_square(uint8_t n, vector_t vec[n], vector_t square_vec[n])</div><div class="ttdoc">Compute the square of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00124">vector.c:124</a></div></div> +<div class="ttc" id="avector_8h_html_a8f24286db94dba6ab181edcdfe296262"><div class="ttname"><a href="vector_8h.html#a8f24286db94dba6ab181edcdfe296262">vector_print</a></div><div class="ttdeci">void vector_print(uint32_t length, vector_t arr[])</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00255">vector.c:255</a></div></div> +<div class="ttc" id="avector_8h_html_aab9d7950d4ba03b0e1a23de5b7fae6a6"><div class="ttname"><a href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a></div><div class="ttdeci">vector_t vector_get_square_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the squared 2-norm norm of a vector .</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00054">vector.c:54</a></div></div> +<div class="ttc" id="avector_8h_html_a8ec75dc585746d950ab517e9929f31fe"><div class="ttname"><a href="vector_8h.html#a8ec75dc585746d950ab517e9929f31fe">vector_print_u8_array</a></div><div class="ttdeci">void vector_print_u8_array(uint32_t length, uint8_t arr[])</div><div class="ttdoc">Display the values of the vector's elements of type uint8_t.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00269">vector.c:269</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="avector_8h_html_a90a92f618957807f90ab1d8a8d9150d4"><div class="ttname"><a href="vector_8h.html#a90a92f618957807f90ab1d8a8d9150d4">vector_in_place_scalar_mul</a></div><div class="ttdeci">void vector_in_place_scalar_mul(uint8_t size, vector_t a_vec[size], vector_t scl)</div><div class="ttdoc">Compute the product of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00131">vector.c:131</a></div></div> +<div class="ttc" id="avector_8h_html_a45dfc0cdad1f1a542df4029b498766ba"><div class="ttname"><a href="vector_8h.html#a45dfc0cdad1f1a542df4029b498766ba">vector_get_index_vector</a></div><div class="ttdeci">void vector_get_index_vector(uint8_t k, uint8_t n, vector_t unsorted_vector[n], vector_t sorted_vector[n], uint8_t index_vector[n])</div><div class="ttdoc">Determine the index of the vector elements before sorting.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00214">vector.c:214</a></div></div> +<div class="ttc" id="avector_8h_html_a421f989647bf55af29c0f55b7f33d35a"><div class="ttname"><a href="vector_8h.html#a421f989647bf55af29c0f55b7f33d35a">vector_uint32_is_equal</a></div><div class="ttdeci">bool vector_uint32_is_equal(uint32_t length, uint32_t vec_1[], uint32_t vec_2[])</div><div class="ttdoc">Determine the equality of two vectors of type uint32_t.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00243">vector.c:243</a></div></div> +<div class="ttc" id="avector_8h_html_a1348a041e323e7b333482242b51a7674"><div class="ttname"><a href="vector_8h.html#a1348a041e323e7b333482242b51a7674">vector_get_elements</a></div><div class="ttdeci">void vector_get_elements(vector_t src_vec[], uint8_t k, uint8_t index_vec[], vector_t dst_vec[])</div><div class="ttdoc">Get the elements of the vector by an index vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00235">vector.c:235</a></div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="avector_8h_html_af98f2e3896ce7b96d598b11033ac1795"><div class="ttname"><a href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a></div><div class="ttdeci">bool vector_is_equal(uint16_t length, vector_t vec_1[], vector_t vec_2[])</div><div class="ttdoc">Determine the equality of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00202">vector.c:202</a></div></div> +<div class="ttc" id="avector_8h_html_a099aa56dd0f260c77afaf8b62b56b2c5"><div class="ttname"><a href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a></div><div class="ttdeci">void vector_mul(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_mul_b_vec[size])</div><div class="ttdoc">Compute the multiplication of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00114">vector.c:114</a></div></div> +<div class="ttc" id="avector_8h_html_a92917951880002814392c2367896d7a0"><div class="ttname"><a href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a></div><div class="ttdeci">void vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size])</div><div class="ttdoc">Compute the addition of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00104">vector.c:104</a></div></div> +<div class="ttc" id="avector_8h_html_af1767c4decdd472ed81035a19cf2152b"><div class="ttname"><a href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a></div><div class="ttdeci">vector_t vector_get_sum(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the sum of the elements of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00066">vector.c:66</a></div></div> +<div class="ttc" id="avector_8h_html_a4a8fae4c69677390016c116123d9eff8"><div class="ttname"><a href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a></div><div class="ttdeci">vector_t vector_get_mean_value(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the average or mean value of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00078">vector.c:78</a></div></div> +<div class="ttc" id="avector_8h_html_a3c0bdd0e463fb34757a71470c55af845"><div class="ttname"><a href="vector_8h.html#a3c0bdd0e463fb34757a71470c55af845">vector_scalar_mul</a></div><div class="ttdeci">void vector_scalar_mul(uint8_t size, vector_t src_vec[size], vector_t scl, vector_t dest_vec[])</div><div class="ttdoc">Compute the product of a vector with a real number.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00141">vector.c:141</a></div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<div class="ttc" id="avector_8h_html_a982bc2f9e4755461eac46c6322b4562d"><div class="ttname"><a href="vector_8h.html#a982bc2f9e4755461eac46c6322b4562d">vector_get_max_and_index</a></div><div class="ttdeci">vector_t vector_get_max_and_index(uint8_t length, vector_t vec[], uint8_t *index)</div><div class="ttdoc">Compute the maximal value and its index of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00175">vector.c:175</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_8c4128baa09a573ad2b8b8c0061a04c9.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_c416454c2678f04387f9348cb110b9ee.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_e663cf436b7a4f65fdac82a5d77479a9.html">include</a></li><li class="navelem"><a class="el" href="vector_8h.html">vector.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector__test_8c.html b/doc/doxygen/html/vector__test_8c.html new file mode 100644 index 0000000000000000000000000000000000000000..84e462eaf95a76ccc73ce7effd5b533209561753 --- /dev/null +++ b/doc/doxygen/html/vector__test_8c.html @@ -0,0 +1,131 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector_test.c 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector__test_8c.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">vector_test.c File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of vector computations. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br /> +<code>#include <stdint.h></code><br /> +<code>#include <inttypes.h></code><br /> +<code>#include <math.h></code><br /> +<code>#include "<a class="el" href="vector_8h_source.html">vector.h</a>"</code><br /> +</div> +<p><a href="vector__test_8c_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ab0aed13072bc11b97766634c625d6f21"><td class="memItemLeft" align="right" valign="top"><a id="ab0aed13072bc11b97766634c625d6f21"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a> (void)</td></tr> +<tr class="memdesc:ab0aed13072bc11b97766634c625d6f21"><td class="mdescLeft"> </td><td class="mdescRight">Examples of vector operations. <br /></td></tr> +<tr class="separator:ab0aed13072bc11b97766634c625d6f21"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of vector computations. </p> +<p>Vector computation examples of the <a class="el" href="vector_8h.html">vector.h</a> functions.</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="vector__test_8c_source.html">vector_test.c</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="vector__test_8c.html">vector_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector__test_8c.js b/doc/doxygen/html/vector__test_8c.js new file mode 100644 index 0000000000000000000000000000000000000000..0f0a2053e3a7c8e79090090b390f6665b499ce01 --- /dev/null +++ b/doc/doxygen/html/vector__test_8c.js @@ -0,0 +1,4 @@ +var vector__test_8c = +[ + [ "vector_test", "vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/vector__test_8c_source.html b/doc/doxygen/html/vector__test_8c_source.html new file mode 100644 index 0000000000000000000000000000000000000000..da9435cc6f5720d07511c1649d02b0ed99ea9746 --- /dev/null +++ b/doc/doxygen/html/vector__test_8c_source.html @@ -0,0 +1,196 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector_test.c Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector__test_8c_source.html','');}); +/* @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="headertitle"> +<div class="title">vector_test.c</div> </div> +</div><!--header--> +<div class="contents"> +<a href="vector__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdint.h></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <inttypes.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <math.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="vector_8h.html">vector.h</a>"</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div> +<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21"> 30</a></span> <span class="keywordtype">void</span> <a class="code" href="vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  puts(<span class="stringliteral">"############ Test Vector Algebra ###############"</span>);</div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> a[5] = { 0.0975, 0.2785, 0.5469, 0.9575, 0.9649 };</div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> b[5] = { 0.1576, 0.9706, 0.9572, 0.4854, 0.8003 };</div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> c[5];</div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> d[5] = { 0.1576, 0.9706, 0.9572, 0.4854, 0.8003 };</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  uint8_t size = 5;</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a>(size, a, b, c);</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  printf(<span class="stringliteral">"c = a + b = "</span>);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(size, c, 3, 4);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a>(size, a, b, c);</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  printf(<span class="stringliteral">"c = a - b = "</span>);</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(size, c, 3, 4);</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a>(size, a, b, c);</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  printf(<span class="stringliteral">"c = a * b = "</span>);</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(size, c, 3, 4);</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> mean = <a class="code" href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a>(size, a);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  printf(<span class="stringliteral">"mean(a) = %.4f\n"</span>, mean);</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> norm2 = <a class="code" href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a>(size, a);</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  printf(<span class="stringliteral">"norm2(a) = %.4f\n"</span>, norm2);</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> squ_norm2 = <a class="code" href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a>(size, b);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  printf(<span class="stringliteral">"squ_norm2(b) = %.4f\n"</span>, squ_norm2);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> scal = <a class="code" href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a>(size, a, b);</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  printf(<span class="stringliteral">"scal(a) = %.4f\n"</span>, scal);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> sum = <a class="code" href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a>(size, a);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  printf(<span class="stringliteral">"sum(a) = %.4f\n"</span>, sum);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a> euc_dist = <a class="code" href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a>(size, a, b);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  printf(<span class="stringliteral">"euc_dist(a,b) = %.4f\n"</span>, euc_dist);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span> (<a class="code" href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a>(size, b, d)) {</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  puts(<span class="stringliteral">"vectors are equal !!"</span>);</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  puts(<span class="stringliteral">"vectors are not equal !!"</span>);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a>(size, a, d);</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(size, d, 3, 4);</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a>(size, d);</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a>(size, d, 3, 4);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  puts(<span class="stringliteral">""</span>);</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector_8h_html_a4cfc452fdff3e32a601ccff140cd9ae6"><div class="ttname"><a href="vector_8h.html#a4cfc452fdff3e32a601ccff140cd9ae6">vector_get_norm2</a></div><div class="ttdeci">vector_t vector_get_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the 2-norm norm of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00042">vector.c:42</a></div></div> +<div class="ttc" id="avector_8h_html_ab2827264910e858f238868695a92db4b"><div class="ttname"><a href="vector_8h.html#ab2827264910e858f238868695a92db4b">vector_flex_print</a></div><div class="ttdeci">void vector_flex_print(uint32_t length, vector_t arr[], uint8_t before_dot, uint8_t after_dot)</div><div class="ttdoc">Display the values of the vector's elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00284">vector.c:284</a></div></div> +<div class="ttc" id="avector_8h_html_abbb6bf046e47a8634c15c43a508cacb9"><div class="ttname"><a href="vector_8h.html#abbb6bf046e47a8634c15c43a508cacb9">vector_get_euclidean_distance</a></div><div class="ttdeci">vector_t vector_get_euclidean_distance(uint8_t length, vector_t vec1[], vector_t vec2[])</div><div class="ttdoc">Compute the Euclidean distance between two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00163">vector.c:163</a></div></div> +<div class="ttc" id="avector_8h_html_a5f4b706c07b9b0f7a4983d80fba99e4e"><div class="ttname"><a href="vector_8h.html#a5f4b706c07b9b0f7a4983d80fba99e4e">vector_get_scalar_product</a></div><div class="ttdeci">vector_t vector_get_scalar_product(uint8_t n, vector_t vec1[n], vector_t vec2[n])</div><div class="ttdoc">Compute the dot product of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00190">vector.c:190</a></div></div> +<div class="ttc" id="avector_8h_html_aab9d7950d4ba03b0e1a23de5b7fae6a6"><div class="ttname"><a href="vector_8h.html#aab9d7950d4ba03b0e1a23de5b7fae6a6">vector_get_square_norm2</a></div><div class="ttdeci">vector_t vector_get_square_norm2(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the squared 2-norm norm of a vector .</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00054">vector.c:54</a></div></div> +<div class="ttc" id="avector_8h_html_acb41430bc5720dda7d1c45d91a0b0221"><div class="ttname"><a href="vector_8h.html#acb41430bc5720dda7d1c45d91a0b0221">vector_t</a></div><div class="ttdeci">#define vector_t</div><div class="ttdoc">Define the data type of the vector elements.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8h_source.html#l00033">vector.h:33</a></div></div> +<div class="ttc" id="avector_8h_html_a758d38ad9623aa8c385bce765a3b7d17"><div class="ttname"><a href="vector_8h.html#a758d38ad9623aa8c385bce765a3b7d17">vector_clear</a></div><div class="ttdeci">void vector_clear(uint8_t size, vector_t arr[])</div><div class="ttdoc">Clear all the elements of the vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00032">vector.c:32</a></div></div> +<div class="ttc" id="avector_8h_html_ae9d3378f23ba835c727245b434b8a7f6"><div class="ttname"><a href="vector_8h.html#ae9d3378f23ba835c727245b434b8a7f6">vector_copy</a></div><div class="ttdeci">void vector_copy(uint8_t size, vector_t src_arr[], vector_t dest_arr[])</div><div class="ttdoc">Copy the elements of the source vector to the destination vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00037">vector.c:37</a></div></div> +<div class="ttc" id="avector_8h_html_af98f2e3896ce7b96d598b11033ac1795"><div class="ttname"><a href="vector_8h.html#af98f2e3896ce7b96d598b11033ac1795">vector_is_equal</a></div><div class="ttdeci">bool vector_is_equal(uint16_t length, vector_t vec_1[], vector_t vec_2[])</div><div class="ttdoc">Determine the equality of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00202">vector.c:202</a></div></div> +<div class="ttc" id="avector_8h_html_a099aa56dd0f260c77afaf8b62b56b2c5"><div class="ttname"><a href="vector_8h.html#a099aa56dd0f260c77afaf8b62b56b2c5">vector_mul</a></div><div class="ttdeci">void vector_mul(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_mul_b_vec[size])</div><div class="ttdoc">Compute the multiplication of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00114">vector.c:114</a></div></div> +<div class="ttc" id="avector_8h_html_a92917951880002814392c2367896d7a0"><div class="ttname"><a href="vector_8h.html#a92917951880002814392c2367896d7a0">vector_add</a></div><div class="ttdeci">void vector_add(uint8_t size, vector_t a_vec[size], vector_t b_vec[size], vector_t a_plus_b_vec[size])</div><div class="ttdoc">Compute the addition of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00104">vector.c:104</a></div></div> +<div class="ttc" id="avector_8h_html_af1767c4decdd472ed81035a19cf2152b"><div class="ttname"><a href="vector_8h.html#af1767c4decdd472ed81035a19cf2152b">vector_get_sum</a></div><div class="ttdeci">vector_t vector_get_sum(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the sum of the elements of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00066">vector.c:66</a></div></div> +<div class="ttc" id="avector_8h_html"><div class="ttname"><a href="vector_8h.html">vector.h</a></div><div class="ttdoc">Vector computations.</div></div> +<div class="ttc" id="avector_8h_html_a4a8fae4c69677390016c116123d9eff8"><div class="ttname"><a href="vector_8h.html#a4a8fae4c69677390016c116123d9eff8">vector_get_mean_value</a></div><div class="ttdeci">vector_t vector_get_mean_value(uint8_t length, vector_t arr[])</div><div class="ttdoc">Compute the average or mean value of a vector.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00078">vector.c:78</a></div></div> +<div class="ttc" id="avector__test_8c_html_ab0aed13072bc11b97766634c625d6f21"><div class="ttname"><a href="vector__test_8c.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a></div><div class="ttdeci">void vector_test(void)</div><div class="ttdoc">Examples of vector operations.</div><div class="ttdef"><b>Definition:</b> <a href="vector__test_8c_source.html#l00030">vector_test.c:30</a></div></div> +<div class="ttc" id="avector_8h_html_a3bbd999b10064c2ede2bd427aa040b63"><div class="ttname"><a href="vector_8h.html#a3bbd999b10064c2ede2bd427aa040b63">vector_sub</a></div><div class="ttdeci">void vector_sub(uint8_t size, vector_t a_vec[], vector_t b_vec[], vector_t a_minus_b[])</div><div class="ttdoc">Compute the subtraction of two vectors.</div><div class="ttdef"><b>Definition:</b> <a href="vector_8c_source.html#l00094">vector.c:94</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="vector__test_8c.html">vector_test.c</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector__test_8h.html b/doc/doxygen/html/vector__test_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..38b6f4a0bf68c873f9fb693b3001be0596e6f7c8 --- /dev/null +++ b/doc/doxygen/html/vector__test_8h.html @@ -0,0 +1,126 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector_test.h 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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector__test_8h.html','');}); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">vector_test.h File Reference<div class="ingroups"><a class="el" href="group__examples.html">EXAMPLES</a></div></div> </div> +</div><!--header--> +<div class="contents"> + +<p>Examples of vector computations. +<a href="#details">More...</a></p> + +<p><a href="vector__test_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ab0aed13072bc11b97766634c625d6f21"><td class="memItemLeft" align="right" valign="top"><a id="ab0aed13072bc11b97766634c625d6f21"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a> (void)</td></tr> +<tr class="memdesc:ab0aed13072bc11b97766634c625d6f21"><td class="mdescLeft"> </td><td class="mdescRight">Examples of vector operations. <br /></td></tr> +<tr class="separator:ab0aed13072bc11b97766634c625d6f21"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Examples of vector computations. </p> +<p>Vector computation examples (see <a class="el" href="vector_8h.html">vector</a> functions).</p> +<dl class="section author"><dt>Author</dt><dd>Zakaria Kasmi <a href="#" onclick="location.href='mai'+'lto:'+'zka'+'sm'+'i@i'+'nf'+'.fu'+'-b'+'erl'+'in'+'.de'; return false;">zkasm<span style="display: none;">.nosp@m.</span>i@in<span style="display: none;">.nosp@m.</span>f.fu-<span style="display: none;">.nosp@m.</span>berl<span style="display: none;">.nosp@m.</span>in.de</a> </dd></dl> + +<p class="definition">Definition in file <a class="el" href="vector__test_8h_source.html">vector_test.h</a>.</p> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_29979c7df1e854056800300ae76a816f.html">include</a></li><li class="navelem"><a class="el" href="vector__test_8h.html">vector_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/html/vector__test_8h.js b/doc/doxygen/html/vector__test_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..8e505c58c574d7f6bc1591b15cade29e9697ee76 --- /dev/null +++ b/doc/doxygen/html/vector__test_8h.js @@ -0,0 +1,4 @@ +var vector__test_8h = +[ + [ "vector_test", "vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21", null ] +]; \ No newline at end of file diff --git a/doc/doxygen/html/vector__test_8h_source.html b/doc/doxygen/html/vector__test_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..e93adbf6581bfb09052dcb2d8dcdf2a63ed739e5 --- /dev/null +++ b/doc/doxygen/html/vector__test_8h_source.html @@ -0,0 +1,121 @@ +<!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.16"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>RcdMathLib_doc: vector_test.h Source File</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> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(initResizable); +/* @license-end */</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> +<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">RcdMathLib_doc + </div> + <div id="projectbrief">Open Source Library for Linear and Non-linear Algebra</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.16 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&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&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&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('vector__test_8h_source.html','');}); +/* @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="headertitle"> +<div class="title">vector_test.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="vector__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de></span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * 2020 Freie Universität Berlin</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is subject to the terms and conditions of the GNU Lesser General</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Public License v2.1. See the file LICENSE in the top level directory for more</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * details.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef VECTOR_TEST_H_</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#define VECTOR_TEST_H_</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code" href="vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif </span><span class="comment">/* VECTOR_TEST_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<div class="ttc" id="avector__test_8h_html_ab0aed13072bc11b97766634c625d6f21"><div class="ttname"><a href="vector__test_8h.html#ab0aed13072bc11b97766634c625d6f21">vector_test</a></div><div class="ttdeci">void vector_test(void)</div><div class="ttdoc">Examples of vector operations.</div><div class="ttdef"><b>Definition:</b> <a href="vector__test_8c_source.html#l00030">vector_test.c:30</a></div></div> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_bb878afedbb83074fe4b7f6b65e06747.html">linear_algebra</a></li><li class="navelem"><a class="el" href="dir_d1d208ee40a2f911c6ff49bd490e63cd.html">basic_operations</a></li><li class="navelem"><a class="el" href="dir_29979c7df1e854056800300ae76a816f.html">include</a></li><li class="navelem"><a class="el" href="vector__test_8h.html">vector_test.h</a></li> + <li class="footer">Generated by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li> + </ul> +</div> +</body> +</html> diff --git a/doc/doxygen/pdf_refman/RcdMathLib_refman.pdf b/doc/doxygen/pdf_refman/RcdMathLib_refman.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9d79b68ab48e7ef9e98ddc5b2e504266fb8beef7 --- /dev/null +++ b/doc/doxygen/pdf_refman/RcdMathLib_refman.pdf @@ -0,0 +1,78911 @@ +%PDF-1.5 +%���� +1 0 obj +<< /S /GoTo /D (chapter.1) >> +endobj +4 0 obj +(\376\377\0001\000\040\000R\000c\000d\000M\000a\000t\000h\000L\000i\000b\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +5 0 obj +<< /S /GoTo /D (section.1.1) >> +endobj +8 0 obj +(\376\377\0001\000.\0001\000\040\000R\000c\000d\000M\000a\000t\000h\000L\000i\000b\000\040\000i\000n\000\040\000a\000\040\000n\000u\000t\000s\000h\000e\000l\000l) +endobj +9 0 obj +<< /S /GoTo /D (section.1.2) >> +endobj +12 0 obj +(\376\377\0001\000.\0002\000\040\000C\000o\000n\000t\000r\000i\000b\000u\000t\000e\000\040\000t\000o\000\040\000R\000c\000d\000M\000a\000t\000h\000L\000i\000b) +endobj +13 0 obj +<< /S /GoTo /D (section.1.3) >> +endobj +16 0 obj +(\376\377\0001\000.\0003\000\040\000T\000h\000e\000\040\000q\000u\000i\000c\000k\000e\000s\000t\000\040\000s\000t\000a\000r\000t) +endobj +17 0 obj +<< /S /GoTo /D (section.1.4) >> +endobj +20 0 obj +(\376\377\0001\000.\0004\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e) +endobj +21 0 obj +<< /S /GoTo /D (subsection.1.4.1) >> +endobj +24 0 obj +(\376\377\0001\000.\0004\000.\0001\000\040\000L\000i\000n\000e\000a\000r\000\040\000A\000l\000g\000e\000b\000r\000a) +endobj +25 0 obj +<< /S /GoTo /D (subsection.1.4.2) >> +endobj +28 0 obj +(\376\377\0001\000.\0004\000.\0002\000\040\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000A\000l\000g\000e\000b\000r\000a) +endobj +29 0 obj +<< /S /GoTo /D (subsection.1.4.3) >> +endobj +32 0 obj +(\376\377\0001\000.\0004\000.\0003\000\040\000L\000o\000c\000a\000l\000i\000z\000a\000t\000i\000o\000n) +endobj +33 0 obj +<< /S /GoTo /D (subsection.1.4.4) >> +endobj +36 0 obj +(\376\377\0001\000.\0004\000.\0004\000\040\000e\000x\000a\000m\000p\000l\000e\000s) +endobj +37 0 obj +<< /S /GoTo /D (subsection.1.4.5) >> +endobj +40 0 obj +(\376\377\0001\000.\0004\000.\0005\000\040\000d\000o\000c) +endobj +41 0 obj +<< /S /GoTo /D (section.1.5) >> +endobj +44 0 obj +(\376\377\0001\000.\0005\000\040\000F\000u\000r\000t\000h\000e\000r\000\040\000i\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n) +endobj +45 0 obj +<< /S /GoTo /D (chapter.2) >> +endobj +48 0 obj +(\376\377\0002\000\040\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000a\000n\000\040\000a\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n) +endobj +49 0 obj +<< /S /GoTo /D (section.2.1) >> +endobj +52 0 obj +(\376\377\0002\000.\0001\000\040\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000a\000n\000\040\000a\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000\040\000f\000o\000r\000\040\000f\000u\000l\000l\000-\000f\000l\000e\000d\000g\000e\000d\000\040\000d\000e\000v\000i\000c\000e\000s) +endobj +53 0 obj +<< /S /GoTo /D (section.2.2) >> +endobj +56 0 obj +(\376\377\0002\000.\0002\000\040\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000a\000n\000\040\000a\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000\040\000f\000o\000r\000\040\000r\000e\000s\000o\000u\000r\000c\000e\000-\000l\000i\000m\000i\000t\000e\000d\000\040\000d\000e\000v\000i\000c\000e\000s) +endobj +57 0 obj +<< /S /GoTo /D (section.2.3) >> +endobj +60 0 obj +(\376\377\0002\000.\0003\000\040\000T\000h\000e\000\040\000m\000a\000i\000n\000\040\000f\000u\000n\000c\000t\000i\000o\000n) +endobj +61 0 obj +<< /S /GoTo /D (section.2.4) >> +endobj +64 0 obj +(\376\377\0002\000.\0004\000\040\000T\000h\000e\000\040\000a\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000\047\000s\000\040\000M\000a\000k\000e\000f\000i\000l\000e) +endobj +65 0 obj +<< /S /GoTo /D (subsection.2.4.1) >> +endobj +68 0 obj +(\376\377\0002\000.\0004\000.\0001\000\040\000T\000h\000e\000\040\000m\000i\000n\000i\000m\000a\000l\000\040\000M\000a\000k\000e\000f\000i\000l\000e) +endobj +69 0 obj +<< /S /GoTo /D (subsection.2.4.2) >> +endobj +72 0 obj +(\376\377\0002\000.\0004\000.\0002\000\040\000I\000n\000c\000l\000u\000d\000i\000n\000g\000\040\000m\000o\000d\000u\000l\000e\000s) +endobj +73 0 obj +<< /S /GoTo /D (chapter.3) >> +endobj +76 0 obj +(\376\377\0003\000\040\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000m\000o\000d\000u\000l\000e\000s) +endobj +77 0 obj +<< /S /GoTo /D (section.3.1) >> +endobj +80 0 obj +(\376\377\0003\000.\0001\000\040\000T\000h\000e\000\040\000g\000e\000n\000e\000r\000a\000l\000\040\000s\000t\000r\000u\000c\000t\000u\000r\000e) +endobj +81 0 obj +<< /S /GoTo /D (section.3.2) >> +endobj +84 0 obj +(\376\377\0003\000.\0002\000\040\000M\000o\000d\000u\000l\000e\000\040\000d\000e\000p\000e\000n\000d\000e\000n\000c\000i\000e\000s) +endobj +85 0 obj +<< /S /GoTo /D (chapter.4) >> +endobj +88 0 obj +(\376\377\0004\000\040\000G\000e\000t\000t\000i\000n\000g\000\040\000s\000t\000a\000r\000t\000e\000d) +endobj +89 0 obj +<< /S /GoTo /D (section.4.1) >> +endobj +92 0 obj +(\376\377\0004\000.\0001\000\040\000D\000o\000w\000n\000l\000o\000a\000d\000i\000n\000g\000\040\000R\000c\000d\000M\000a\000t\000h\000L\000i\000b\000\040\000c\000o\000d\000e) +endobj +93 0 obj +<< /S /GoTo /D (section.4.2) >> +endobj +96 0 obj +(\376\377\0004\000.\0002\000\040\000C\000o\000m\000p\000i\000l\000i\000n\000g\000\040\000R\000c\000d\000M\000a\000t\000h\000L\000i\000b) +endobj +97 0 obj +<< /S /GoTo /D (subsection.4.2.1) >> +endobj +100 0 obj +(\376\377\0004\000.\0002\000.\0001\000\040\000S\000e\000t\000t\000i\000n\000g\000\040\000u\000p\000\040\000a\000\040\000t\000o\000o\000l\000c\000h\000a\000i\000n\000\040\000f\000o\000r\000\040\000f\000u\000l\000l\000-\000f\000l\000e\000d\000g\000e\000d\000\040\000d\000e\000v\000i\000c\000e\000s) +endobj +101 0 obj +<< /S /GoTo /D (subsection.4.2.2) >> +endobj +104 0 obj +(\376\377\0004\000.\0002\000.\0002\000\040\000S\000e\000t\000t\000i\000n\000g\000\040\000u\000p\000\040\000a\000\040\000t\000o\000o\000l\000c\000h\000a\000i\000n\000\040\000f\000o\000r\000\040\000r\000e\000s\000o\000u\000r\000c\000e\000-\000l\000i\000m\000i\000t\000e\000d\000\040\000d\000e\000v\000i\000c\000e\000s) +endobj +105 0 obj +<< /S /GoTo /D (subsection.4.2.3) >> +endobj +108 0 obj +(\376\377\0004\000.\0002\000.\0003\000\040\000T\000h\000e\000\040\000b\000u\000i\000l\000d\000\040\000s\000y\000s\000t\000e\000m\000\040\000f\000o\000r\000\040\000f\000u\000l\000l\000-\000f\000l\000e\000d\000g\000e\000d\000\040\000d\000e\000v\000i\000c\000e\000s) +endobj +109 0 obj +<< /S /GoTo /D (subsection.4.2.4) >> +endobj +112 0 obj +(\376\377\0004\000.\0002\000.\0004\000\040\000T\000h\000e\000\040\000b\000u\000i\000l\000d\000\040\000s\000y\000s\000t\000e\000m\000\040\000f\000o\000r\000\040\000r\000e\000s\000o\000u\000r\000c\000e\000-\000l\000i\000m\000i\000t\000e\000d\000\040\000d\000e\000v\000i\000c\000e\000s) +endobj +113 0 obj +<< /S /GoTo /D (subsection.4.2.5) >> +endobj +116 0 obj +(\376\377\0004\000.\0002\000.\0005\000\040\000B\000u\000i\000l\000d\000i\000n\000g\000\040\000a\000n\000d\000\040\000e\000x\000e\000c\000u\000t\000i\000n\000g\000\040\000a\000n\000\040\000e\000x\000a\000m\000p\000l\000e\000\040\000f\000o\000r\000\040\000r\000e\000s\000o\000u\000r\000c\000e\000-\000l\000i\000m\000i\000t\000e\000d\000\040\000d\000e\000v\000i\000c\000e\000s) +endobj +117 0 obj +<< /S /GoTo /D (chapter.5) >> +endobj +120 0 obj +(\376\377\0005\000\040\000M\000o\000d\000u\000l\000e\000\040\000I\000n\000d\000e\000x) +endobj +121 0 obj +<< /S /GoTo /D (section.5.1) >> +endobj +124 0 obj +(\376\377\0005\000.\0001\000\040\000M\000o\000d\000u\000l\000e\000s) +endobj +125 0 obj +<< /S /GoTo /D (chapter.6) >> +endobj +128 0 obj +(\376\377\0006\000\040\000D\000a\000t\000a\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000I\000n\000d\000e\000x) +endobj +129 0 obj +<< /S /GoTo /D (section.6.1) >> +endobj +132 0 obj +(\376\377\0006\000.\0001\000\040\000D\000a\000t\000a\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000s) +endobj +133 0 obj +<< /S /GoTo /D (chapter.7) >> +endobj +136 0 obj +(\376\377\0007\000\040\000F\000i\000l\000e\000\040\000I\000n\000d\000e\000x) +endobj +137 0 obj +<< /S /GoTo /D (section.7.1) >> +endobj +140 0 obj +(\376\377\0007\000.\0001\000\040\000F\000i\000l\000e\000\040\000L\000i\000s\000t) +endobj +141 0 obj +<< /S /GoTo /D (chapter.8) >> +endobj +144 0 obj +(\376\377\0008\000\040\000M\000o\000d\000u\000l\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +145 0 obj +<< /S /GoTo /D (section.8.1) >> +endobj +148 0 obj +(\376\377\0008\000.\0001\000\040\000B\000A\000S\000I\000C\000\137\000O\000P\000E\000R\000A\000T\000I\000O\000N\000S) +endobj +149 0 obj +<< /S /GoTo /D (subsection.8.1.1) >> +endobj +152 0 obj +(\376\377\0008\000.\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +153 0 obj +<< /S /GoTo /D (section.8.2) >> +endobj +156 0 obj +(\376\377\0008\000.\0002\000\040\000D\000I\000S\000T\000A\000N\000C\000E\000\137\000B\000A\000S\000E\000D) +endobj +157 0 obj +<< /S /GoTo /D (subsection.8.2.1) >> +endobj +160 0 obj +(\376\377\0008\000.\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +161 0 obj +<< /S /GoTo /D (section.8.3) >> +endobj +164 0 obj +(\376\377\0008\000.\0003\000\040\000E\000X\000A\000M\000P\000L\000E\000S) +endobj +165 0 obj +<< /S /GoTo /D (subsection.8.3.1) >> +endobj +168 0 obj +(\376\377\0008\000.\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +169 0 obj +<< /S /GoTo /D (section.8.4) >> +endobj +172 0 obj +(\376\377\0008\000.\0004\000\040\000L\000I\000N\000E\000A\000R\000\137\000A\000L\000G\000E\000B\000R\000A) +endobj +173 0 obj +<< /S /GoTo /D (subsection.8.4.1) >> +endobj +176 0 obj +(\376\377\0008\000.\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +177 0 obj +<< /S /GoTo /D (section.8.5) >> +endobj +180 0 obj +(\376\377\0008\000.\0005\000\040\000L\000O\000C\000A\000L\000I\000Z\000A\000T\000I\000O\000N) +endobj +181 0 obj +<< /S /GoTo /D (subsection.8.5.1) >> +endobj +184 0 obj +(\376\377\0008\000.\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +185 0 obj +<< /S /GoTo /D (section.8.6) >> +endobj +188 0 obj +(\376\377\0008\000.\0006\000\040\000M\000A\000G\000N\000E\000T\000I\000C\000\137\000B\000A\000S\000E\000D) +endobj +189 0 obj +<< /S /GoTo /D (subsection.8.6.1) >> +endobj +192 0 obj +(\376\377\0008\000.\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +193 0 obj +<< /S /GoTo /D (section.8.7) >> +endobj +196 0 obj +(\376\377\0008\000.\0007\000\040\000M\000A\000T\000R\000I\000X\000\137\000D\000E\000C\000O\000M\000P\000O\000S\000I\000T\000I\000O\000N\000S) +endobj +197 0 obj +<< /S /GoTo /D (subsection.8.7.1) >> +endobj +200 0 obj +(\376\377\0008\000.\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +201 0 obj +<< /S /GoTo /D (section.8.8) >> +endobj +204 0 obj +(\376\377\0008\000.\0008\000\040\000N\000O\000N\000\137\000L\000I\000N\000E\000A\000R\000\137\000A\000L\000G\000E\000B\000R\000A) +endobj +205 0 obj +<< /S /GoTo /D (subsection.8.8.1) >> +endobj +208 0 obj +(\376\377\0008\000.\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +209 0 obj +<< /S /GoTo /D (section.8.9) >> +endobj +212 0 obj +(\376\377\0008\000.\0009\000\040\000O\000P\000T\000I\000M\000I\000Z\000A\000T\000I\000O\000N) +endobj +213 0 obj +<< /S /GoTo /D (subsection.8.9.1) >> +endobj +216 0 obj +(\376\377\0008\000.\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +217 0 obj +<< /S /GoTo /D (section.8.10) >> +endobj +220 0 obj +(\376\377\0008\000.\0001\0000\000\040\000P\000O\000S\000I\000T\000I\000O\000N\000\137\000A\000L\000G\000O\000S) +endobj +221 0 obj +<< /S /GoTo /D (subsection.8.10.1) >> +endobj +224 0 obj +(\376\377\0008\000.\0001\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +225 0 obj +<< /S /GoTo /D (section.8.11) >> +endobj +228 0 obj +(\376\377\0008\000.\0001\0001\000\040\000P\000O\000S\000I\000T\000I\000O\000N\000\137\000O\000P\000T\000I\000M\000I\000Z\000A\000T\000I\000O\000N) +endobj +229 0 obj +<< /S /GoTo /D (subsection.8.11.1) >> +endobj +232 0 obj +(\376\377\0008\000.\0001\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +233 0 obj +<< /S /GoTo /D (section.8.12) >> +endobj +236 0 obj +(\376\377\0008\000.\0001\0002\000\040\000P\000O\000S\000\137\000A\000L\000G\000O\000S\000\137\000C\000O\000M\000M\000O\000N) +endobj +237 0 obj +<< /S /GoTo /D (subsection.8.12.1) >> +endobj +240 0 obj +(\376\377\0008\000.\0001\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +241 0 obj +<< /S /GoTo /D (section.8.13) >> +endobj +244 0 obj +(\376\377\0008\000.\0001\0003\000\040\000P\000S\000E\000U\000D\000O\000\137\000I\000N\000V\000E\000R\000S\000E) +endobj +245 0 obj +<< /S /GoTo /D (subsection.8.13.1) >> +endobj +248 0 obj +(\376\377\0008\000.\0001\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +249 0 obj +<< /S /GoTo /D (section.8.14) >> +endobj +252 0 obj +(\376\377\0008\000.\0001\0004\000\040\000S\000O\000L\000V\000E\000\137\000L\000I\000N\000E\000A\000R\000\137\000E\000Q\000U\000A\000T\000I\000O\000N\000S) +endobj +253 0 obj +<< /S /GoTo /D (subsection.8.14.1) >> +endobj +256 0 obj +(\376\377\0008\000.\0001\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +257 0 obj +<< /S /GoTo /D (section.8.15) >> +endobj +260 0 obj +(\376\377\0008\000.\0001\0005\000\040\000S\000O\000L\000V\000E\000\137\000N\000O\000N\000\137\000L\000I\000N\000E\000A\000R\000\137\000E\000Q\000U\000A\000T\000I\000O\000N\000S) +endobj +261 0 obj +<< /S /GoTo /D (subsection.8.15.1) >> +endobj +264 0 obj +(\376\377\0008\000.\0001\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +265 0 obj +<< /S /GoTo /D (section.8.16) >> +endobj +268 0 obj +(\376\377\0008\000.\0001\0006\000\040\000U\000T\000I\000L\000I\000T\000I\000E\000S) +endobj +269 0 obj +<< /S /GoTo /D (subsection.8.16.1) >> +endobj +272 0 obj +(\376\377\0008\000.\0001\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +273 0 obj +<< /S /GoTo /D (chapter.9) >> +endobj +276 0 obj +(\376\377\0009\000\040\000D\000a\000t\000a\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +277 0 obj +<< /S /GoTo /D (section.9.1) >> +endobj +280 0 obj +(\376\377\0009\000.\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000d\000i\000m\000\137\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +281 0 obj +<< /S /GoTo /D (subsection.9.1.1) >> +endobj +284 0 obj +(\376\377\0009\000.\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +285 0 obj +<< /S /GoTo /D (chapter.10) >> +endobj +288 0 obj +(\376\377\0001\0000\000\040\000F\000i\000l\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +289 0 obj +<< /S /GoTo /D (section.10.1) >> +endobj +292 0 obj +(\376\377\0001\0000\000.\0001\000\040\000c\000o\000m\000b\000i\000n\000a\000t\000o\000r\000i\000c\000s\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +293 0 obj +<< /S /GoTo /D (subsection.10.1.1) >> +endobj +296 0 obj +(\376\377\0001\0000\000.\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +297 0 obj +<< /S /GoTo /D (subsection.10.1.2) >> +endobj +300 0 obj +(\376\377\0001\0000\000.\0001\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +301 0 obj +<< /S /GoTo /D (subsubsection.10.1.2.1) >> +endobj +304 0 obj +(\376\377\0001\0000\000.\0001\000.\0002\000.\0001\000\040\000c\000o\000m\000b\000i\000n\000a\000t\000o\000r\000i\000c\000s\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000w\000i\000t\000h\000o\000u\000t\000\137\000r\000e\000p\000\050\000\051) +endobj +305 0 obj +<< /S /GoTo /D (subsubsection.10.1.2.2) >> +endobj +308 0 obj +(\376\377\0001\0000\000.\0001\000.\0002\000.\0002\000\040\000c\000o\000m\000b\000i\000n\000a\000t\000o\000r\000i\000c\000s\000\137\000i\000n\000i\000t\000\050\000\051) +endobj +309 0 obj +<< /S /GoTo /D (section.10.2) >> +endobj +312 0 obj +(\376\377\0001\0000\000.\0002\000\040\000c\000o\000m\000b\000i\000n\000a\000t\000o\000r\000i\000c\000s\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +313 0 obj +<< /S /GoTo /D (subsection.10.2.1) >> +endobj +316 0 obj +(\376\377\0001\0000\000.\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +317 0 obj +<< /S /GoTo /D (subsection.10.2.2) >> +endobj +320 0 obj +(\376\377\0001\0000\000.\0002\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +321 0 obj +<< /S /GoTo /D (subsubsection.10.2.2.1) >> +endobj +324 0 obj +(\376\377\0001\0000\000.\0002\000.\0002\000.\0001\000\040\000c\000o\000m\000b\000i\000n\000a\000t\000o\000r\000i\000c\000s\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000w\000i\000t\000h\000o\000u\000t\000\137\000r\000e\000p\000\050\000\051) +endobj +325 0 obj +<< /S /GoTo /D (subsubsection.10.2.2.2) >> +endobj +328 0 obj +(\376\377\0001\0000\000.\0002\000.\0002\000.\0002\000\040\000c\000o\000m\000b\000i\000n\000a\000t\000o\000r\000i\000c\000s\000\137\000i\000n\000i\000t\000\050\000\051) +endobj +329 0 obj +<< /S /GoTo /D (section.10.3) >> +endobj +332 0 obj +(\376\377\0001\0000\000.\0003\000\040\000d\000a\000m\000p\000e\000d\000\137\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +333 0 obj +<< /S /GoTo /D (subsection.10.3.1) >> +endobj +336 0 obj +(\376\377\0001\0000\000.\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +337 0 obj +<< /S /GoTo /D (subsection.10.3.2) >> +endobj +340 0 obj +(\376\377\0001\0000\000.\0003\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +341 0 obj +<< /S /GoTo /D (subsubsection.10.3.2.1) >> +endobj +344 0 obj +(\376\377\0001\0000\000.\0003\000.\0002\000.\0001\000\040\000d\000a\000m\000p\000e\000d\000\137\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000\050\000\051) +endobj +345 0 obj +<< /S /GoTo /D (subsubsection.10.3.2.2) >> +endobj +348 0 obj +(\376\377\0001\0000\000.\0003\000.\0002\000.\0002\000\040\000g\000e\000t\000\137\000d\000a\000m\000p\000e\000d\000\137\000n\000o\000r\000m\000\050\000\051) +endobj +349 0 obj +<< /S /GoTo /D (subsubsection.10.3.2.3) >> +endobj +352 0 obj +(\376\377\0001\0000\000.\0003\000.\0002\000.\0003\000\040\000g\000e\000t\000\137\000d\000e\000l\000t\000a\000\137\000x\000\050\000\051) +endobj +353 0 obj +<< /S /GoTo /D (section.10.4) >> +endobj +356 0 obj +(\376\377\0001\0000\000.\0004\000\040\000d\000a\000m\000p\000e\000d\000\137\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +357 0 obj +<< /S /GoTo /D (subsection.10.4.1) >> +endobj +360 0 obj +(\376\377\0001\0000\000.\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +361 0 obj +<< /S /GoTo /D (subsection.10.4.2) >> +endobj +364 0 obj +(\376\377\0001\0000\000.\0004\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +365 0 obj +<< /S /GoTo /D (subsubsection.10.4.2.1) >> +endobj +368 0 obj +(\376\377\0001\0000\000.\0004\000.\0002\000.\0001\000\040\000d\000a\000m\000p\000e\000d\000\137\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000\050\000\051) +endobj +369 0 obj +<< /S /GoTo /D (subsubsection.10.4.2.2) >> +endobj +372 0 obj +(\376\377\0001\0000\000.\0004\000.\0002\000.\0002\000\040\000g\000e\000t\000\137\000d\000a\000m\000p\000e\000d\000\137\000n\000o\000r\000m\000\050\000\051) +endobj +373 0 obj +<< /S /GoTo /D (subsubsection.10.4.2.3) >> +endobj +376 0 obj +(\376\377\0001\0000\000.\0004\000.\0002\000.\0003\000\040\000g\000e\000t\000\137\000d\000e\000l\000t\000a\000\137\000x\000\050\000\051) +endobj +377 0 obj +<< /S /GoTo /D (section.10.5) >> +endobj +380 0 obj +(\376\377\0001\0000\000.\0005\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000f\000i\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +381 0 obj +<< /S /GoTo /D (subsection.10.5.1) >> +endobj +384 0 obj +(\376\377\0001\0000\000.\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +385 0 obj +<< /S /GoTo /D (subsection.10.5.2) >> +endobj +388 0 obj +(\376\377\0001\0000\000.\0005\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +389 0 obj +<< /S /GoTo /D (subsubsection.10.5.2.1) >> +endobj +392 0 obj +(\376\377\0001\0000\000.\0005\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000f\000\137\000i\000\050\000\051) +endobj +393 0 obj +<< /S /GoTo /D (subsubsection.10.5.2.2) >> +endobj +396 0 obj +(\376\377\0001\0000\000.\0005\000.\0002\000.\0002\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000f\000i\000\050\000\051) +endobj +397 0 obj +<< /S /GoTo /D (section.10.6) >> +endobj +400 0 obj +(\376\377\0001\0000\000.\0006\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000f\000i\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +401 0 obj +<< /S /GoTo /D (subsection.10.6.1) >> +endobj +404 0 obj +(\376\377\0001\0000\000.\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +405 0 obj +<< /S /GoTo /D (subsection.10.6.2) >> +endobj +408 0 obj +(\376\377\0001\0000\000.\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +409 0 obj +<< /S /GoTo /D (subsubsection.10.6.2.1) >> +endobj +412 0 obj +(\376\377\0001\0000\000.\0006\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000f\000\137\000i\000\050\000\051) +endobj +413 0 obj +<< /S /GoTo /D (subsubsection.10.6.2.2) >> +endobj +416 0 obj +(\376\377\0001\0000\000.\0006\000.\0002\000.\0002\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000f\000i\000\050\000\051) +endobj +417 0 obj +<< /S /GoTo /D (section.10.7) >> +endobj +420 0 obj +(\376\377\0001\0000\000.\0007\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +421 0 obj +<< /S /GoTo /D (subsection.10.7.1) >> +endobj +424 0 obj +(\376\377\0001\0000\000.\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +425 0 obj +<< /S /GoTo /D (subsection.10.7.2) >> +endobj +428 0 obj +(\376\377\0001\0000\000.\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +429 0 obj +<< /S /GoTo /D (subsubsection.10.7.2.1) >> +endobj +432 0 obj +(\376\377\0001\0000\000.\0007\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\050\000\051) +endobj +433 0 obj +<< /S /GoTo /D (subsubsection.10.7.2.2) >> +endobj +436 0 obj +(\376\377\0001\0000\000.\0007\000.\0002\000.\0002\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\137\000m\000u\000l\000\137\000s\000\050\000\051) +endobj +437 0 obj +<< /S /GoTo /D (subsubsection.10.7.2.3) >> +endobj +440 0 obj +(\376\377\0001\0000\000.\0007\000.\0002\000.\0003\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000f\000\050\000\051) +endobj +441 0 obj +<< /S /GoTo /D (subsubsection.10.7.2.4) >> +endobj +444 0 obj +(\376\377\0001\0000\000.\0007\000.\0002\000.\0004\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000J\000\050\000\051) +endobj +445 0 obj +<< /S /GoTo /D (section.10.8) >> +endobj +448 0 obj +(\376\377\0001\0000\000.\0008\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +449 0 obj +<< /S /GoTo /D (subsection.10.8.1) >> +endobj +452 0 obj +(\376\377\0001\0000\000.\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +453 0 obj +<< /S /GoTo /D (subsection.10.8.2) >> +endobj +456 0 obj +(\376\377\0001\0000\000.\0008\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +457 0 obj +<< /S /GoTo /D (subsubsection.10.8.2.1) >> +endobj +460 0 obj +(\376\377\0001\0000\000.\0008\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\050\000\051) +endobj +461 0 obj +<< /S /GoTo /D (subsubsection.10.8.2.2) >> +endobj +464 0 obj +(\376\377\0001\0000\000.\0008\000.\0002\000.\0002\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\137\000m\000u\000l\000\137\000s\000\050\000\051) +endobj +465 0 obj +<< /S /GoTo /D (subsubsection.10.8.2.3) >> +endobj +468 0 obj +(\376\377\0001\0000\000.\0008\000.\0002\000.\0003\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000f\000\050\000\051) +endobj +469 0 obj +<< /S /GoTo /D (subsubsection.10.8.2.4) >> +endobj +472 0 obj +(\376\377\0001\0000\000.\0008\000.\0002\000.\0004\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000J\000\050\000\051) +endobj +473 0 obj +<< /S /GoTo /D (section.10.9) >> +endobj +476 0 obj +(\376\377\0001\0000\000.\0009\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000p\000o\000s\000i\000t\000i\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +477 0 obj +<< /S /GoTo /D (subsection.10.9.1) >> +endobj +480 0 obj +(\376\377\0001\0000\000.\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +481 0 obj +<< /S /GoTo /D (subsection.10.9.2) >> +endobj +484 0 obj +(\376\377\0001\0000\000.\0009\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +485 0 obj +<< /S /GoTo /D (subsubsection.10.9.2.1) >> +endobj +488 0 obj +(\376\377\0001\0000\000.\0009\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000a\000b\000s\000o\000l\000u\000t\000e\000\137\000e\000r\000r\000o\000r\000\050\000\051) +endobj +489 0 obj +<< /S /GoTo /D (subsubsection.10.9.2.2) >> +endobj +492 0 obj +(\376\377\0001\0000\000.\0009\000.\0002\000.\0002\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000t\000o\000\137\000a\000n\000c\000h\000o\000r\000\050\000\051) +endobj +493 0 obj +<< /S /GoTo /D (section.10.10) >> +endobj +496 0 obj +(\376\377\0001\0000\000.\0001\0000\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000p\000o\000s\000i\000t\000i\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +497 0 obj +<< /S /GoTo /D (subsection.10.10.1) >> +endobj +500 0 obj +(\376\377\0001\0000\000.\0001\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +501 0 obj +<< /S /GoTo /D (subsection.10.10.2) >> +endobj +504 0 obj +(\376\377\0001\0000\000.\0001\0000\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +505 0 obj +<< /S /GoTo /D (subsubsection.10.10.2.1) >> +endobj +508 0 obj +(\376\377\0001\0000\000.\0001\0000\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000a\000b\000s\000o\000l\000u\000t\000e\000\137\000e\000r\000r\000o\000r\000\050\000\051) +endobj +509 0 obj +<< /S /GoTo /D (subsubsection.10.10.2.2) >> +endobj +512 0 obj +(\376\377\0001\0000\000.\0001\0000\000.\0002\000.\0002\000\040\000d\000i\000s\000t\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000t\000o\000\137\000a\000n\000c\000h\000o\000r\000\050\000\051) +endobj +513 0 obj +<< /S /GoTo /D (section.10.11) >> +endobj +516 0 obj +(\376\377\0001\0000\000.\0001\0001\000\040\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000b\000a\000s\000e\000d\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +517 0 obj +<< /S /GoTo /D (subsection.10.11.1) >> +endobj +520 0 obj +(\376\377\0001\0000\000.\0001\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +521 0 obj +<< /S /GoTo /D (subsection.10.11.2) >> +endobj +524 0 obj +(\376\377\0001\0000\000.\0001\0001\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +525 0 obj +<< /S /GoTo /D (subsubsection.10.11.2.1) >> +endobj +528 0 obj +(\376\377\0001\0000\000.\0001\0001\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000b\000a\000s\000e\000d\000\137\000t\000e\000s\000t\000\050\000\051) +endobj +529 0 obj +<< /S /GoTo /D (section.10.12) >> +endobj +532 0 obj +(\376\377\0001\0000\000.\0001\0002\000\040\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000b\000a\000s\000e\000d\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +533 0 obj +<< /S /GoTo /D (subsection.10.12.1) >> +endobj +536 0 obj +(\376\377\0001\0000\000.\0001\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +537 0 obj +<< /S /GoTo /D (subsection.10.12.2) >> +endobj +540 0 obj +(\376\377\0001\0000\000.\0001\0002\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +541 0 obj +<< /S /GoTo /D (subsubsection.10.12.2.1) >> +endobj +544 0 obj +(\376\377\0001\0000\000.\0001\0002\000.\0002\000.\0001\000\040\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000b\000a\000s\000e\000d\000\137\000t\000e\000s\000t\000\050\000\051) +endobj +545 0 obj +<< /S /GoTo /D (section.10.13) >> +endobj +548 0 obj +(\376\377\0001\0000\000.\0001\0003\000\040\000D\000O\000P\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +549 0 obj +<< /S /GoTo /D (subsection.10.13.1) >> +endobj +552 0 obj +(\376\377\0001\0000\000.\0001\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +553 0 obj +<< /S /GoTo /D (subsection.10.13.2) >> +endobj +556 0 obj +(\376\377\0001\0000\000.\0001\0003\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +557 0 obj +<< /S /GoTo /D (subsubsection.10.13.2.1) >> +endobj +560 0 obj +(\376\377\0001\0000\000.\0001\0003\000.\0002\000.\0001\000\040\000g\000e\000t\000\137\000P\000D\000O\000P\000\050\000\051) +endobj +561 0 obj +<< /S /GoTo /D (section.10.14) >> +endobj +564 0 obj +(\376\377\0001\0000\000.\0001\0004\000\040\000D\000O\000P\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +565 0 obj +<< /S /GoTo /D (subsection.10.14.1) >> +endobj +568 0 obj +(\376\377\0001\0000\000.\0001\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +569 0 obj +<< /S /GoTo /D (subsection.10.14.2) >> +endobj +572 0 obj +(\376\377\0001\0000\000.\0001\0004\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +573 0 obj +<< /S /GoTo /D (subsubsection.10.14.2.1) >> +endobj +576 0 obj +(\376\377\0001\0000\000.\0001\0004\000.\0002\000.\0001\000\040\000g\000e\000t\000\137\000P\000D\000O\000P\000\050\000\051) +endobj +577 0 obj +<< /S /GoTo /D (section.10.15) >> +endobj +580 0 obj +(\376\377\0001\0000\000.\0001\0005\000\040\000f\000s\000o\000l\000v\000e\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +581 0 obj +<< /S /GoTo /D (subsection.10.15.1) >> +endobj +584 0 obj +(\376\377\0001\0000\000.\0001\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +585 0 obj +<< /S /GoTo /D (subsection.10.15.2) >> +endobj +588 0 obj +(\376\377\0001\0000\000.\0001\0005\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +589 0 obj +<< /S /GoTo /D (subsubsection.10.15.2.1) >> +endobj +592 0 obj +(\376\377\0001\0000\000.\0001\0005\000.\0002\000.\0001\000\040\000f\000s\000o\000l\000v\000e\000\050\000\051) +endobj +593 0 obj +<< /S /GoTo /D (section.10.16) >> +endobj +596 0 obj +(\376\377\0001\0000\000.\0001\0006\000\040\000f\000s\000o\000l\000v\000e\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +597 0 obj +<< /S /GoTo /D (subsection.10.16.1) >> +endobj +600 0 obj +(\376\377\0001\0000\000.\0001\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +601 0 obj +<< /S /GoTo /D (subsection.10.16.2) >> +endobj +604 0 obj +(\376\377\0001\0000\000.\0001\0006\000.\0002\000\040\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +605 0 obj +<< /S /GoTo /D (subsubsection.10.16.2.1) >> +endobj +608 0 obj +(\376\377\0001\0000\000.\0001\0006\000.\0002\000.\0001\000\040\000N\000O\000N\000\137\000L\000I\000N\000\137\000A\000L\000G\000O\000R\000I\000T\000H\000M) +endobj +609 0 obj +<< /S /GoTo /D (subsection.10.16.3) >> +endobj +612 0 obj +(\376\377\0001\0000\000.\0001\0006\000.\0003\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +613 0 obj +<< /S /GoTo /D (subsubsection.10.16.3.1) >> +endobj +616 0 obj +(\376\377\0001\0000\000.\0001\0006\000.\0003\000.\0001\000\040\000f\000s\000o\000l\000v\000e\000\050\000\051) +endobj +617 0 obj +<< /S /GoTo /D (section.10.17) >> +endobj +620 0 obj +(\376\377\0001\0000\000.\0001\0007\000\040\000f\000s\000o\000l\000v\000e\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +621 0 obj +<< /S /GoTo /D (subsection.10.17.1) >> +endobj +624 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +625 0 obj +<< /S /GoTo /D (subsection.10.17.2) >> +endobj +628 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +629 0 obj +<< /S /GoTo /D (subsubsection.10.17.2.1) >> +endobj +632 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0002\000.\0001\000\040\000g\000e\000t\000\137\000n\000o\000n\000\137\000l\000i\000n\000\137\000s\000y\000s\000\137\000f\0001\000\137\000\050\000\051) +endobj +633 0 obj +<< /S /GoTo /D (subsubsection.10.17.2.2) >> +endobj +636 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0002\000.\0002\000\040\000g\000e\000t\000\137\000n\000o\000n\000\137\000l\000i\000n\000\137\000s\000y\000s\000\137\000f\0002\000\137\000\050\000\051) +endobj +637 0 obj +<< /S /GoTo /D (subsubsection.10.17.2.3) >> +endobj +640 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0002\000.\0003\000\040\000g\000e\000t\000\137\000n\000o\000n\000\137\000l\000i\000n\000\137\000s\000y\000s\000\137\000f\0003\000\137\000\050\000\051) +endobj +641 0 obj +<< /S /GoTo /D (subsubsection.10.17.2.4) >> +endobj +644 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0002\000.\0004\000\040\000g\000e\000t\000\137\000n\000o\000n\000\137\000l\000i\000n\000\137\000s\000y\000s\000\137\000J\0001\000\137\000\050\000\051) +endobj +645 0 obj +<< /S /GoTo /D (subsubsection.10.17.2.5) >> +endobj +648 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0002\000.\0005\000\040\000g\000e\000t\000\137\000n\000o\000n\000\137\000l\000i\000n\000\137\000s\000y\000s\000\137\000J\0002\000\137\000\050\000\051) +endobj +649 0 obj +<< /S /GoTo /D (subsubsection.10.17.2.6) >> +endobj +652 0 obj +(\376\377\0001\0000\000.\0001\0007\000.\0002\000.\0006\000\040\000g\000e\000t\000\137\000n\000o\000n\000\137\000l\000i\000n\000\137\000s\000y\000s\000\137\000J\0003\000\137\000\050\000\051) +endobj +653 0 obj +<< /S /GoTo /D (section.10.18) >> +endobj +656 0 obj +(\376\377\0001\0000\000.\0001\0008\000\040\000f\000s\000o\000l\000v\000e\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +657 0 obj +<< /S /GoTo /D (subsection.10.18.1) >> +endobj +660 0 obj +(\376\377\0001\0000\000.\0001\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +661 0 obj +<< /S /GoTo /D (section.10.19) >> +endobj +664 0 obj +(\376\377\0001\0000\000.\0001\0009\000\040\000g\000i\000v\000e\000n\000s\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +665 0 obj +<< /S /GoTo /D (subsection.10.19.1) >> +endobj +668 0 obj +(\376\377\0001\0000\000.\0001\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +669 0 obj +<< /S /GoTo /D (section.10.20) >> +endobj +672 0 obj +(\376\377\0001\0000\000.\0002\0000\000\040\000g\000i\000v\000e\000n\000s\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +673 0 obj +<< /S /GoTo /D (subsection.10.20.1) >> +endobj +676 0 obj +(\376\377\0001\0000\000.\0002\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +677 0 obj +<< /S /GoTo /D (section.10.21) >> +endobj +680 0 obj +(\376\377\0001\0000\000.\0002\0001\000\040\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +681 0 obj +<< /S /GoTo /D (subsection.10.21.1) >> +endobj +684 0 obj +(\376\377\0001\0000\000.\0002\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +685 0 obj +<< /S /GoTo /D (section.10.22) >> +endobj +688 0 obj +(\376\377\0001\0000\000.\0002\0002\000\040\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +689 0 obj +<< /S /GoTo /D (subsection.10.22.1) >> +endobj +692 0 obj +(\376\377\0001\0000\000.\0002\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +693 0 obj +<< /S /GoTo /D (section.10.23) >> +endobj +696 0 obj +(\376\377\0001\0000\000.\0002\0003\000\040\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +697 0 obj +<< /S /GoTo /D (subsection.10.23.1) >> +endobj +700 0 obj +(\376\377\0001\0000\000.\0002\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +701 0 obj +<< /S /GoTo /D (subsection.10.23.2) >> +endobj +704 0 obj +(\376\377\0001\0000\000.\0002\0003\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +705 0 obj +<< /S /GoTo /D (subsubsection.10.23.2.1) >> +endobj +708 0 obj +(\376\377\0001\0000\000.\0002\0003\000.\0002\000.\0001\000\040\000o\000p\000t\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\050\000\051) +endobj +709 0 obj +<< /S /GoTo /D (subsubsection.10.23.2.2) >> +endobj +712 0 obj +(\376\377\0001\0000\000.\0002\0003\000.\0002\000.\0002\000\040\000o\000p\000t\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000c\000o\000r\000r\000e\000c\000t\000i\000o\000n\000\050\000\051) +endobj +713 0 obj +<< /S /GoTo /D (subsubsection.10.23.2.3) >> +endobj +716 0 obj +(\376\377\0001\0000\000.\0002\0003\000.\0002\000.\0003\000\040\000o\000p\000t\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000g\000e\000t\000\137\000m\000u\0000\000\050\000\051) +endobj +717 0 obj +<< /S /GoTo /D (section.10.24) >> +endobj +720 0 obj +(\376\377\0001\0000\000.\0002\0004\000\040\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +721 0 obj +<< /S /GoTo /D (subsection.10.24.1) >> +endobj +724 0 obj +(\376\377\0001\0000\000.\0002\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +725 0 obj +<< /S /GoTo /D (subsection.10.24.2) >> +endobj +728 0 obj +(\376\377\0001\0000\000.\0002\0004\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +729 0 obj +<< /S /GoTo /D (subsubsection.10.24.2.1) >> +endobj +732 0 obj +(\376\377\0001\0000\000.\0002\0004\000.\0002\000.\0001\000\040\000o\000p\000t\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\050\000\051) +endobj +733 0 obj +<< /S /GoTo /D (subsubsection.10.24.2.2) >> +endobj +736 0 obj +(\376\377\0001\0000\000.\0002\0004\000.\0002\000.\0002\000\040\000o\000p\000t\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000g\000e\000t\000\137\000m\000u\0000\000\050\000\051) +endobj +737 0 obj +<< /S /GoTo /D (section.10.25) >> +endobj +740 0 obj +(\376\377\0001\0000\000.\0002\0005\000\040\000l\000o\000c\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +741 0 obj +<< /S /GoTo /D (subsection.10.25.1) >> +endobj +744 0 obj +(\376\377\0001\0000\000.\0002\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +745 0 obj +<< /S /GoTo /D (subsection.10.25.2) >> +endobj +748 0 obj +(\376\377\0001\0000\000.\0002\0005\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +749 0 obj +<< /S /GoTo /D (subsubsection.10.25.2.1) >> +endobj +752 0 obj +(\376\377\0001\0000\000.\0002\0005\000.\0002\000.\0001\000\040\000l\000o\000c\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000\050\000\051) +endobj +753 0 obj +<< /S /GoTo /D (section.10.26) >> +endobj +756 0 obj +(\376\377\0001\0000\000.\0002\0006\000\040\000l\000o\000c\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +757 0 obj +<< /S /GoTo /D (subsection.10.26.1) >> +endobj +760 0 obj +(\376\377\0001\0000\000.\0002\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +761 0 obj +<< /S /GoTo /D (subsection.10.26.2) >> +endobj +764 0 obj +(\376\377\0001\0000\000.\0002\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +765 0 obj +<< /S /GoTo /D (subsubsection.10.26.2.1) >> +endobj +768 0 obj +(\376\377\0001\0000\000.\0002\0006\000.\0002\000.\0001\000\040\000l\000o\000c\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000\050\000\051) +endobj +769 0 obj +<< /S /GoTo /D (section.10.27) >> +endobj +772 0 obj +(\376\377\0001\0000\000.\0002\0007\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +773 0 obj +<< /S /GoTo /D (subsection.10.27.1) >> +endobj +776 0 obj +(\376\377\0001\0000\000.\0002\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +777 0 obj +<< /S /GoTo /D (subsection.10.27.2) >> +endobj +780 0 obj +(\376\377\0001\0000\000.\0002\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +781 0 obj +<< /S /GoTo /D (subsubsection.10.27.2.1) >> +endobj +784 0 obj +(\376\377\0001\0000\000.\0002\0007\000.\0002\000.\0001\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\050\000\051) +endobj +785 0 obj +<< /S /GoTo /D (subsubsection.10.27.2.2) >> +endobj +788 0 obj +(\376\377\0001\0000\000.\0002\0007\000.\0002\000.\0002\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000c\000o\000r\000r\000e\000c\000t\000i\000o\000n\000\050\000\051) +endobj +789 0 obj +<< /S /GoTo /D (subsubsection.10.27.2.3) >> +endobj +792 0 obj +(\376\377\0001\0000\000.\0002\0007\000.\0002\000.\0003\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000g\000e\000t\000\137\000J\000T\000J\000\137\000m\000u\0002\000\137\000I\000\050\000\051) +endobj +793 0 obj +<< /S /GoTo /D (subsubsection.10.27.2.4) >> +endobj +796 0 obj +(\376\377\0001\0000\000.\0002\0007\000.\0002\000.\0004\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000g\000e\000t\000\137\000m\000u\0000\000\050\000\051) +endobj +797 0 obj +<< /S /GoTo /D (section.10.28) >> +endobj +800 0 obj +(\376\377\0001\0000\000.\0002\0008\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +801 0 obj +<< /S /GoTo /D (subsection.10.28.1) >> +endobj +804 0 obj +(\376\377\0001\0000\000.\0002\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +805 0 obj +<< /S /GoTo /D (subsection.10.28.2) >> +endobj +808 0 obj +(\376\377\0001\0000\000.\0002\0008\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +809 0 obj +<< /S /GoTo /D (subsubsection.10.28.2.1) >> +endobj +812 0 obj +(\376\377\0001\0000\000.\0002\0008\000.\0002\000.\0001\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\050\000\051) +endobj +813 0 obj +<< /S /GoTo /D (subsubsection.10.28.2.2) >> +endobj +816 0 obj +(\376\377\0001\0000\000.\0002\0008\000.\0002\000.\0002\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000c\000o\000r\000r\000e\000c\000t\000i\000o\000n\000\050\000\051) +endobj +817 0 obj +<< /S /GoTo /D (subsubsection.10.28.2.3) >> +endobj +820 0 obj +(\376\377\0001\0000\000.\0002\0008\000.\0002\000.\0003\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000g\000e\000t\000\137\000J\000T\000J\000\137\000m\000u\0002\000\137\000I\000\050\000\051) +endobj +821 0 obj +<< /S /GoTo /D (subsubsection.10.28.2.4) >> +endobj +824 0 obj +(\376\377\0001\0000\000.\0002\0008\000.\0002\000.\0004\000\040\000l\000o\000c\000\137\000l\000e\000v\000e\000n\000b\000e\000r\000g\000\137\000m\000a\000r\000q\000u\000a\000r\000d\000t\000\137\000g\000e\000t\000\137\000m\000u\0000\000\050\000\051) +endobj +825 0 obj +<< /S /GoTo /D (section.10.29) >> +endobj +828 0 obj +(\376\377\0001\0000\000.\0002\0009\000\040\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +829 0 obj +<< /S /GoTo /D (subsection.10.29.1) >> +endobj +832 0 obj +(\376\377\0001\0000\000.\0002\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +833 0 obj +<< /S /GoTo /D (subsection.10.29.2) >> +endobj +836 0 obj +(\376\377\0001\0000\000.\0002\0009\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +837 0 obj +<< /S /GoTo /D (subsubsection.10.29.2.1) >> +endobj +840 0 obj +(\376\377\0001\0000\000.\0002\0009\000.\0002\000.\0001\000\040\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +841 0 obj +<< /S /GoTo /D (section.10.30) >> +endobj +844 0 obj +(\376\377\0001\0000\000.\0003\0000\000\040\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +845 0 obj +<< /S /GoTo /D (subsection.10.30.1) >> +endobj +848 0 obj +(\376\377\0001\0000\000.\0003\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +849 0 obj +<< /S /GoTo /D (subsection.10.30.2) >> +endobj +852 0 obj +(\376\377\0001\0000\000.\0003\0000\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +853 0 obj +<< /S /GoTo /D (subsubsection.10.30.2.1) >> +endobj +856 0 obj +(\376\377\0001\0000\000.\0003\0000\000.\0002\000.\0001\000\040\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +857 0 obj +<< /S /GoTo /D (section.10.31) >> +endobj +860 0 obj +(\376\377\0001\0000\000.\0003\0001\000\040\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +861 0 obj +<< /S /GoTo /D (subsection.10.31.1) >> +endobj +864 0 obj +(\376\377\0001\0000\000.\0003\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +865 0 obj +<< /S /GoTo /D (section.10.32) >> +endobj +868 0 obj +(\376\377\0001\0000\000.\0003\0002\000\040\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +869 0 obj +<< /S /GoTo /D (subsection.10.32.1) >> +endobj +872 0 obj +(\376\377\0001\0000\000.\0003\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +873 0 obj +<< /S /GoTo /D (section.10.33) >> +endobj +876 0 obj +(\376\377\0001\0000\000.\0003\0003\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000f\000i\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +877 0 obj +<< /S /GoTo /D (subsection.10.33.1) >> +endobj +880 0 obj +(\376\377\0001\0000\000.\0003\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +881 0 obj +<< /S /GoTo /D (subsection.10.33.2) >> +endobj +884 0 obj +(\376\377\0001\0000\000.\0003\0003\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +885 0 obj +<< /S /GoTo /D (subsubsection.10.33.2.1) >> +endobj +888 0 obj +(\376\377\0001\0000\000.\0003\0003\000.\0002\000.\0001\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000f\000\137\000i\000\050\000\051) +endobj +889 0 obj +<< /S /GoTo /D (section.10.34) >> +endobj +892 0 obj +(\376\377\0001\0000\000.\0003\0004\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000f\000i\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +893 0 obj +<< /S /GoTo /D (subsection.10.34.1) >> +endobj +896 0 obj +(\376\377\0001\0000\000.\0003\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +897 0 obj +<< /S /GoTo /D (subsection.10.34.2) >> +endobj +900 0 obj +(\376\377\0001\0000\000.\0003\0004\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +901 0 obj +<< /S /GoTo /D (subsubsection.10.34.2.1) >> +endobj +904 0 obj +(\376\377\0001\0000\000.\0003\0004\000.\0002\000.\0001\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000f\000\137\000i\000\050\000\051) +endobj +905 0 obj +<< /S /GoTo /D (section.10.35) >> +endobj +908 0 obj +(\376\377\0001\0000\000.\0003\0005\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +909 0 obj +<< /S /GoTo /D (subsection.10.35.1) >> +endobj +912 0 obj +(\376\377\0001\0000\000.\0003\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +913 0 obj +<< /S /GoTo /D (subsection.10.35.2) >> +endobj +916 0 obj +(\376\377\0001\0000\000.\0003\0005\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +917 0 obj +<< /S /GoTo /D (subsubsection.10.35.2.1) >> +endobj +920 0 obj +(\376\377\0001\0000\000.\0003\0005\000.\0002\000.\0001\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\050\000\051) +endobj +921 0 obj +<< /S /GoTo /D (subsubsection.10.35.2.2) >> +endobj +924 0 obj +(\376\377\0001\0000\000.\0003\0005\000.\0002\000.\0002\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\137\000m\000u\000l\000\137\000s\000\050\000\051) +endobj +925 0 obj +<< /S /GoTo /D (subsubsection.10.35.2.3) >> +endobj +928 0 obj +(\376\377\0001\0000\000.\0003\0005\000.\0002\000.\0003\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000f\000\050\000\051) +endobj +929 0 obj +<< /S /GoTo /D (subsubsection.10.35.2.4) >> +endobj +932 0 obj +(\376\377\0001\0000\000.\0003\0005\000.\0002\000.\0004\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000J\000\050\000\051) +endobj +933 0 obj +<< /S /GoTo /D (section.10.36) >> +endobj +936 0 obj +(\376\377\0001\0000\000.\0003\0006\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +937 0 obj +<< /S /GoTo /D (subsection.10.36.1) >> +endobj +940 0 obj +(\376\377\0001\0000\000.\0003\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +941 0 obj +<< /S /GoTo /D (subsection.10.36.2) >> +endobj +944 0 obj +(\376\377\0001\0000\000.\0003\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +945 0 obj +<< /S /GoTo /D (subsubsection.10.36.2.1) >> +endobj +948 0 obj +(\376\377\0001\0000\000.\0003\0006\000.\0002\000.\0001\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\050\000\051) +endobj +949 0 obj +<< /S /GoTo /D (subsubsection.10.36.2.2) >> +endobj +952 0 obj +(\376\377\0001\0000\000.\0003\0006\000.\0002\000.\0002\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000\137\000m\000u\000l\000\137\000s\000\050\000\051) +endobj +953 0 obj +<< /S /GoTo /D (subsubsection.10.36.2.3) >> +endobj +956 0 obj +(\376\377\0001\0000\000.\0003\0006\000.\0002\000.\0003\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000f\000\050\000\051) +endobj +957 0 obj +<< /S /GoTo /D (subsubsection.10.36.2.4) >> +endobj +960 0 obj +(\376\377\0001\0000\000.\0003\0006\000.\0002\000.\0004\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000j\000a\000c\000o\000b\000i\000a\000n\000\137\000g\000e\000t\000\137\000J\000T\000J\000\050\000\051) +endobj +961 0 obj +<< /S /GoTo /D (section.10.37) >> +endobj +964 0 obj +(\376\377\0001\0000\000.\0003\0007\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000p\000o\000s\000i\000t\000i\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +965 0 obj +<< /S /GoTo /D (subsection.10.37.1) >> +endobj +968 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +969 0 obj +<< /S /GoTo /D (subsection.10.37.2) >> +endobj +972 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +973 0 obj +<< /S /GoTo /D (subsubsection.10.37.2.1) >> +endobj +976 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000.\0001\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000a\000b\000s\000o\000l\000u\000t\000e\000\137\000e\000r\000r\000o\000r\000\050\000\051) +endobj +977 0 obj +<< /S /GoTo /D (subsubsection.10.37.2.2) >> +endobj +980 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000.\0002\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000s\000\050\000\051) +endobj +981 0 obj +<< /S /GoTo /D (subsubsection.10.37.2.3) >> +endobj +984 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000.\0003\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000s\000\137\000t\000o\000\137\000a\000n\000c\000h\000o\000r\000s\000\050\000\051) +endobj +985 0 obj +<< /S /GoTo /D (subsubsection.10.37.2.4) >> +endobj +988 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000.\0004\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000f\000i\000e\000l\000d\000\050\000\051) +endobj +989 0 obj +<< /S /GoTo /D (subsubsection.10.37.2.5) >> +endobj +992 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000.\0005\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000f\000i\000e\000l\000d\000\137\000v\000e\000c\000\050\000\051) +endobj +993 0 obj +<< /S /GoTo /D (subsubsection.10.37.2.6) >> +endobj +996 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000.\0006\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000r\000\050\000\051) +endobj +997 0 obj +<< /S /GoTo /D (subsubsection.10.37.2.7) >> +endobj +1000 0 obj +(\376\377\0001\0000\000.\0003\0007\000.\0002\000.\0007\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000p\000r\000e\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g\000\137\000g\000e\000t\000\137\000p\000o\000s\000i\000t\000i\000o\000n\000\050\000\051) +endobj +1001 0 obj +<< /S /GoTo /D (section.10.38) >> +endobj +1004 0 obj +(\376\377\0001\0000\000.\0003\0008\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000p\000o\000s\000i\000t\000i\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1005 0 obj +<< /S /GoTo /D (subsection.10.38.1) >> +endobj +1008 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1009 0 obj +<< /S /GoTo /D (subsection.10.38.2) >> +endobj +1012 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1013 0 obj +<< /S /GoTo /D (subsubsection.10.38.2.1) >> +endobj +1016 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000.\0001\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000a\000b\000s\000o\000l\000u\000t\000e\000\137\000e\000r\000r\000o\000r\000\050\000\051) +endobj +1017 0 obj +<< /S /GoTo /D (subsubsection.10.38.2.2) >> +endobj +1020 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000.\0002\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000s\000\050\000\051) +endobj +1021 0 obj +<< /S /GoTo /D (subsubsection.10.38.2.3) >> +endobj +1024 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000.\0003\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000s\000\137\000t\000o\000\137\000a\000n\000c\000h\000o\000r\000s\000\050\000\051) +endobj +1025 0 obj +<< /S /GoTo /D (subsubsection.10.38.2.4) >> +endobj +1028 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000.\0004\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000f\000i\000e\000l\000d\000\050\000\051) +endobj +1029 0 obj +<< /S /GoTo /D (subsubsection.10.38.2.5) >> +endobj +1032 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000.\0005\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000f\000i\000e\000l\000d\000\137\000v\000e\000c\000\050\000\051) +endobj +1033 0 obj +<< /S /GoTo /D (subsubsection.10.38.2.6) >> +endobj +1036 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000.\0006\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000g\000e\000t\000\137\000r\000\050\000\051) +endobj +1037 0 obj +<< /S /GoTo /D (subsubsection.10.38.2.7) >> +endobj +1040 0 obj +(\376\377\0001\0000\000.\0003\0008\000.\0002\000.\0007\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000p\000r\000e\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g\000\137\000g\000e\000t\000\137\000p\000o\000s\000i\000t\000i\000o\000n\000\050\000\051) +endobj +1041 0 obj +<< /S /GoTo /D (section.10.39) >> +endobj +1044 0 obj +(\376\377\0001\0000\000.\0003\0009\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1045 0 obj +<< /S /GoTo /D (subsection.10.39.1) >> +endobj +1048 0 obj +(\376\377\0001\0000\000.\0003\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1049 0 obj +<< /S /GoTo /D (section.10.40) >> +endobj +1052 0 obj +(\376\377\0001\0000\000.\0004\0000\000\040\000m\000a\000g\000n\000e\000t\000i\000c\000\137\000b\000a\000s\000e\000d\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1053 0 obj +<< /S /GoTo /D (subsection.10.40.1) >> +endobj +1056 0 obj +(\376\377\0001\0000\000.\0004\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1057 0 obj +<< /S /GoTo /D (section.10.41) >> +endobj +1060 0 obj +(\376\377\0001\0000\000.\0004\0001\000\040\000m\000a\000t\000r\000i\000x\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1061 0 obj +<< /S /GoTo /D (subsection.10.41.1) >> +endobj +1064 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1065 0 obj +<< /S /GoTo /D (subsection.10.41.2) >> +endobj +1068 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1069 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.1) >> +endobj +1072 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000a\000d\000d\000\050\000\051) +endobj +1073 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.2) >> +endobj +1076 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000a\000d\000d\000\137\000t\000o\000\137\000d\000i\000a\000g\000\050\000\051) +endobj +1077 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.3) >> +endobj +1080 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000c\000l\000e\000a\000r\000\050\000\051) +endobj +1081 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.4) >> +endobj +1084 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000c\000o\000p\000y\000\050\000\051) +endobj +1085 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.5) >> +endobj +1088 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000f\000l\000e\000x\000\137\000p\000a\000r\000t\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1089 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.6) >> +endobj +1092 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000f\000l\000e\000x\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1093 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.7) >> +endobj +1096 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000a\000b\000s\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000a\000n\000d\000\137\000i\000n\000d\000e\000x\000\137\000i\000n\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1097 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.8) >> +endobj +1100 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000a\000b\000s\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1101 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.9) >> +endobj +1104 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000a\000b\000s\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1105 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.10) >> +endobj +1108 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000c\000o\000l\000u\000m\000n\000\137\000v\000e\000c\000\050\000\051) +endobj +1109 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.11) >> +endobj +1112 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000d\000i\000a\000g\000\137\000m\000a\000t\000\050\000\051) +endobj +1113 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.12) >> +endobj +1116 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000d\000i\000a\000g\000\137\000m\000a\000t\000\137\000n\000e\000w\000\050\000\051) +endobj +1117 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.13) >> +endobj +1120 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000f\000r\000o\000b\000\137\000n\000o\000r\000m\000\050\000\051) +endobj +1121 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.14) >> +endobj +1124 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000i\000n\000v\000\137\000l\000o\000w\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1125 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.15) >> +endobj +1128 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000i\000n\000v\000\137\000u\000p\000p\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1129 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.16) >> +endobj +1132 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000l\000o\000w\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1133 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.17) >> +endobj +1136 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1137 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.18) >> +endobj +1140 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1141 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.19) >> +endobj +1144 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0001\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\137\000v\000e\000c\000\050\000\051) +endobj +1145 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.20) >> +endobj +1148 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000r\000a\000n\000k\000\050\000\051) +endobj +1149 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.21) >> +endobj +1152 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000t\000w\000o\000\137\000n\000o\000r\000m\000\050\000\051) +endobj +1153 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.22) >> +endobj +1156 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000u\000p\000p\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1157 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.23) >> +endobj +1160 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000i\000n\000\137\000p\000l\000a\000c\000e\000\137\000t\000r\000a\000n\000s\000p\000o\000s\000e\000\050\000\051) +endobj +1161 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.24) >> +endobj +1164 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000i\000n\000i\000t\000\050\000\051) +endobj +1165 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.25) >> +endobj +1168 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\050\000\051) +endobj +1169 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.26) >> +endobj +1172 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000c\000o\000l\000\137\000v\000e\000c\000\137\000r\000o\000w\000\137\000v\000e\000c\000\050\000\051) +endobj +1173 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.27) >> +endobj +1176 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000s\000c\000a\000l\000a\000r\000\050\000\051) +endobj +1177 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.28) >> +endobj +1180 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000s\000c\000a\000l\000a\000r\000\137\000v\000e\000c\000\137\000m\000a\000t\000r\000\050\000\051) +endobj +1181 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.29) >> +endobj +1184 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0002\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000v\000e\000c\000\050\000\051) +endobj +1185 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.30) >> +endobj +1188 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000c\000o\000p\000y\000\050\000\051) +endobj +1189 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.31) >> +endobj +1192 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000m\000u\000l\000\050\000\051) +endobj +1193 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.32) >> +endobj +1196 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000m\000u\000l\000\137\000s\000c\000a\000l\000a\000r\000\137\000v\000e\000c\000\137\000m\000a\000t\000r\000\050\000\051) +endobj +1197 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.33) >> +endobj +1200 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1201 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.34) >> +endobj +1204 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000s\000w\000a\000p\000\137\000r\000o\000w\000s\000\050\000\051) +endobj +1205 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.35) >> +endobj +1208 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1209 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.36) >> +endobj +1212 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000r\000e\000a\000d\000\050\000\051) +endobj +1213 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.37) >> +endobj +1216 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000s\000e\000t\000\137\000d\000i\000a\000g\000\137\000e\000l\000e\000m\000e\000n\000t\000s\000\050\000\051) +endobj +1217 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.38) >> +endobj +1220 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000s\000u\000b\000\050\000\051) +endobj +1221 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.39) >> +endobj +1224 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0003\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000s\000w\000a\000p\000\137\000r\000o\000w\000s\000\050\000\051) +endobj +1225 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.40) >> +endobj +1228 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0004\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000r\000a\000n\000s\000\137\000m\000u\000l\000\137\000i\000t\000s\000e\000l\000f\000\050\000\051) +endobj +1229 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.41) >> +endobj +1232 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0004\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000r\000a\000n\000s\000\137\000m\000u\000l\000\137\000v\000e\000c\000\050\000\051) +endobj +1233 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.42) >> +endobj +1236 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0004\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000r\000a\000n\000s\000p\000o\000s\000e\000\050\000\051) +endobj +1237 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.43) >> +endobj +1240 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0004\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000v\000e\000c\000\137\000m\000u\000l\000\137\000m\000a\000t\000r\000\050\000\051) +endobj +1241 0 obj +<< /S /GoTo /D (subsubsection.10.41.2.44) >> +endobj +1244 0 obj +(\376\377\0001\0000\000.\0004\0001\000.\0002\000.\0004\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000w\000r\000i\000t\000e\000\050\000\051) +endobj +1245 0 obj +<< /S /GoTo /D (section.10.42) >> +endobj +1248 0 obj +(\376\377\0001\0000\000.\0004\0002\000\040\000m\000a\000t\000r\000i\000x\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1249 0 obj +<< /S /GoTo /D (subsection.10.42.1) >> +endobj +1252 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1253 0 obj +<< /S /GoTo /D (subsection.10.42.2) >> +endobj +1256 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0002\000\040\000M\000a\000c\000r\000o\000\040\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1257 0 obj +<< /S /GoTo /D (subsubsection.10.42.2.1) >> +endobj +1260 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0002\000.\0001\000\040\000M\000\137\000P\000I) +endobj +1261 0 obj +<< /S /GoTo /D (subsubsection.10.42.2.2) >> +endobj +1264 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0002\000.\0002\000\040\000M\000A\000C\000H\000E\000P\000S) +endobj +1265 0 obj +<< /S /GoTo /D (subsubsection.10.42.2.3) >> +endobj +1268 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0002\000.\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000t) +endobj +1269 0 obj +<< /S /GoTo /D (subsection.10.42.3) >> +endobj +1272 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1273 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.1) >> +endobj +1276 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000a\000d\000d\000\050\000\051) +endobj +1277 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.2) >> +endobj +1280 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000a\000d\000d\000\137\000t\000o\000\137\000d\000i\000a\000g\000\050\000\051) +endobj +1281 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.3) >> +endobj +1284 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000c\000l\000e\000a\000r\000\050\000\051) +endobj +1285 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.4) >> +endobj +1288 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000c\000o\000p\000y\000\050\000\051) +endobj +1289 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.5) >> +endobj +1292 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000f\000l\000e\000x\000\137\000p\000a\000r\000t\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1293 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.6) >> +endobj +1296 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000f\000l\000e\000x\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1297 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.7) >> +endobj +1300 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000a\000b\000s\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000a\000n\000d\000\137\000i\000n\000d\000e\000x\000\137\000i\000n\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1301 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.8) >> +endobj +1304 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000a\000b\000s\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1305 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.9) >> +endobj +1308 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000a\000b\000s\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1309 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.10) >> +endobj +1312 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000c\000o\000l\000u\000m\000n\000\137\000v\000e\000c\000\050\000\051) +endobj +1313 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.11) >> +endobj +1316 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000d\000i\000a\000g\000\137\000m\000a\000t\000\050\000\051) +endobj +1317 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.12) >> +endobj +1320 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000d\000i\000a\000g\000\137\000m\000a\000t\000\137\000n\000e\000w\000\050\000\051) +endobj +1321 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.13) >> +endobj +1324 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000f\000r\000o\000b\000\137\000n\000o\000r\000m\000\050\000\051) +endobj +1325 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.14) >> +endobj +1328 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000i\000n\000v\000\137\000l\000o\000w\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1329 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.15) >> +endobj +1332 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000i\000n\000v\000\137\000u\000p\000p\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1333 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.16) >> +endobj +1336 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000l\000o\000w\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1337 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.17) >> +endobj +1340 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1341 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.18) >> +endobj +1344 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000m\000a\000x\000\137\000e\000l\000e\000m\000\137\000i\000n\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\050\000\051) +endobj +1345 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.19) >> +endobj +1348 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0001\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000p\000a\000r\000t\000\137\000c\000o\000l\000u\000m\000n\000\137\000v\000e\000c\000\050\000\051) +endobj +1349 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.20) >> +endobj +1352 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000r\000a\000n\000k\000\050\000\051) +endobj +1353 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.21) >> +endobj +1356 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000t\000w\000o\000\137\000n\000o\000r\000m\000\050\000\051) +endobj +1357 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.22) >> +endobj +1360 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000g\000e\000t\000\137\000u\000p\000p\000\137\000t\000r\000i\000a\000n\000g\000\050\000\051) +endobj +1361 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.23) >> +endobj +1364 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000i\000n\000\137\000p\000l\000a\000c\000e\000\137\000t\000r\000a\000n\000s\000p\000o\000s\000e\000\050\000\051) +endobj +1365 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.24) >> +endobj +1368 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000i\000n\000i\000t\000\050\000\051) +endobj +1369 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.25) >> +endobj +1372 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\050\000\051) +endobj +1373 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.26) >> +endobj +1376 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000c\000o\000l\000\137\000v\000e\000c\000\137\000r\000o\000w\000\137\000v\000e\000c\000\050\000\051) +endobj +1377 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.27) >> +endobj +1380 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000s\000c\000a\000l\000a\000r\000\050\000\051) +endobj +1381 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.28) >> +endobj +1384 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000s\000c\000a\000l\000a\000r\000\137\000v\000e\000c\000\137\000m\000a\000t\000r\000\050\000\051) +endobj +1385 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.29) >> +endobj +1388 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0002\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000m\000u\000l\000\137\000v\000e\000c\000\050\000\051) +endobj +1389 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.30) >> +endobj +1392 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000c\000o\000p\000y\000\050\000\051) +endobj +1393 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.31) >> +endobj +1396 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000m\000u\000l\000\050\000\051) +endobj +1397 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.32) >> +endobj +1400 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000m\000u\000l\000\137\000s\000c\000a\000l\000a\000r\000\137\000v\000e\000c\000\137\000m\000a\000t\000r\000\050\000\051) +endobj +1401 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.33) >> +endobj +1404 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1405 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.34) >> +endobj +1408 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000a\000r\000t\000\137\000s\000w\000a\000p\000\137\000r\000o\000w\000s\000\050\000\051) +endobj +1409 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.35) >> +endobj +1412 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0005\000\040\000m\000a\000t\000r\000i\000x\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1413 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.36) >> +endobj +1416 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0006\000\040\000m\000a\000t\000r\000i\000x\000\137\000r\000e\000a\000d\000\050\000\051) +endobj +1417 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.37) >> +endobj +1420 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0007\000\040\000m\000a\000t\000r\000i\000x\000\137\000s\000e\000t\000\137\000d\000i\000a\000g\000\137\000e\000l\000e\000m\000e\000n\000t\000s\000\050\000\051) +endobj +1421 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.38) >> +endobj +1424 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0008\000\040\000m\000a\000t\000r\000i\000x\000\137\000s\000u\000b\000\050\000\051) +endobj +1425 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.39) >> +endobj +1428 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0003\0009\000\040\000m\000a\000t\000r\000i\000x\000\137\000s\000w\000a\000p\000\137\000r\000o\000w\000s\000\050\000\051) +endobj +1429 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.40) >> +endobj +1432 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0004\0000\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000r\000a\000n\000s\000\137\000m\000u\000l\000\137\000i\000t\000s\000e\000l\000f\000\050\000\051) +endobj +1433 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.41) >> +endobj +1436 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0004\0001\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000r\000a\000n\000s\000\137\000m\000u\000l\000\137\000v\000e\000c\000\050\000\051) +endobj +1437 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.42) >> +endobj +1440 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0004\0002\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000r\000a\000n\000s\000p\000o\000s\000e\000\050\000\051) +endobj +1441 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.43) >> +endobj +1444 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0004\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000v\000e\000c\000\137\000m\000u\000l\000\137\000m\000a\000t\000r\000\050\000\051) +endobj +1445 0 obj +<< /S /GoTo /D (subsubsection.10.42.3.44) >> +endobj +1448 0 obj +(\376\377\0001\0000\000.\0004\0002\000.\0003\000.\0004\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000w\000r\000i\000t\000e\000\050\000\051) +endobj +1449 0 obj +<< /S /GoTo /D (section.10.43) >> +endobj +1452 0 obj +(\376\377\0001\0000\000.\0004\0003\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1453 0 obj +<< /S /GoTo /D (subsection.10.43.1) >> +endobj +1456 0 obj +(\376\377\0001\0000\000.\0004\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1457 0 obj +<< /S /GoTo /D (section.10.44) >> +endobj +1460 0 obj +(\376\377\0001\0000\000.\0004\0004\000\040\000m\000a\000t\000r\000i\000x\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1461 0 obj +<< /S /GoTo /D (subsection.10.44.1) >> +endobj +1464 0 obj +(\376\377\0001\0000\000.\0004\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1465 0 obj +<< /S /GoTo /D (section.10.45) >> +endobj +1468 0 obj +(\376\377\0001\0000\000.\0004\0005\000\040\000m\000o\000d\000i\000f\000i\000e\000d\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1469 0 obj +<< /S /GoTo /D (subsection.10.45.1) >> +endobj +1472 0 obj +(\376\377\0001\0000\000.\0004\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1473 0 obj +<< /S /GoTo /D (subsection.10.45.2) >> +endobj +1476 0 obj +(\376\377\0001\0000\000.\0004\0005\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1477 0 obj +<< /S /GoTo /D (subsubsection.10.45.2.1) >> +endobj +1480 0 obj +(\376\377\0001\0000\000.\0004\0005\000.\0002\000.\0001\000\040\000m\000o\000d\000i\000f\000i\000e\000d\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000\050\000\051) +endobj +1481 0 obj +<< /S /GoTo /D (section.10.46) >> +endobj +1484 0 obj +(\376\377\0001\0000\000.\0004\0006\000\040\000m\000o\000d\000i\000f\000i\000e\000d\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1485 0 obj +<< /S /GoTo /D (subsection.10.46.1) >> +endobj +1488 0 obj +(\376\377\0001\0000\000.\0004\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1489 0 obj +<< /S /GoTo /D (subsection.10.46.2) >> +endobj +1492 0 obj +(\376\377\0001\0000\000.\0004\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1493 0 obj +<< /S /GoTo /D (subsubsection.10.46.2.1) >> +endobj +1496 0 obj +(\376\377\0001\0000\000.\0004\0006\000.\0002\000.\0001\000\040\000m\000o\000d\000i\000f\000i\000e\000d\000\137\000g\000a\000u\000s\000s\000\137\000n\000e\000w\000t\000o\000n\000\050\000\051) +endobj +1497 0 obj +<< /S /GoTo /D (section.10.47) >> +endobj +1500 0 obj +(\376\377\0001\0000\000.\0004\0007\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000p\000i\000n\000v\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1501 0 obj +<< /S /GoTo /D (subsection.10.47.1) >> +endobj +1504 0 obj +(\376\377\0001\0000\000.\0004\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1505 0 obj +<< /S /GoTo /D (section.10.48) >> +endobj +1508 0 obj +(\376\377\0001\0000\000.\0004\0008\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000p\000i\000n\000v\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1509 0 obj +<< /S /GoTo /D (subsection.10.48.1) >> +endobj +1512 0 obj +(\376\377\0001\0000\000.\0004\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1513 0 obj +<< /S /GoTo /D (section.10.49) >> +endobj +1516 0 obj +(\376\377\0001\0000\000.\0004\0009\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000p\000s\000e\000u\000d\000o\000\137\000i\000n\000v\000e\000r\000s\000e\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1517 0 obj +<< /S /GoTo /D (subsection.10.49.1) >> +endobj +1520 0 obj +(\376\377\0001\0000\000.\0004\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1521 0 obj +<< /S /GoTo /D (subsection.10.49.2) >> +endobj +1524 0 obj +(\376\377\0001\0000\000.\0004\0009\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1525 0 obj +<< /S /GoTo /D (subsubsection.10.49.2.1) >> +endobj +1528 0 obj +(\376\377\0001\0000\000.\0004\0009\000.\0002\000.\0001\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000g\000e\000t\000\137\000p\000i\000n\000v\000\050\000\051) +endobj +1529 0 obj +<< /S /GoTo /D (subsubsection.10.49.2.2) >> +endobj +1532 0 obj +(\376\377\0001\0000\000.\0004\0009\000.\0002\000.\0002\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000p\000i\000n\000v\000\137\000c\000o\000m\000p\000u\000t\000e\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1533 0 obj +<< /S /GoTo /D (section.10.50) >> +endobj +1536 0 obj +(\376\377\0001\0000\000.\0005\0000\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000p\000s\000e\000u\000d\000o\000\137\000i\000n\000v\000e\000r\000s\000e\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1537 0 obj +<< /S /GoTo /D (subsection.10.50.1) >> +endobj +1540 0 obj +(\376\377\0001\0000\000.\0005\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1541 0 obj +<< /S /GoTo /D (subsection.10.50.2) >> +endobj +1544 0 obj +(\376\377\0001\0000\000.\0005\0000\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1545 0 obj +<< /S /GoTo /D (subsubsection.10.50.2.1) >> +endobj +1548 0 obj +(\376\377\0001\0000\000.\0005\0000\000.\0002\000.\0001\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000g\000e\000t\000\137\000p\000i\000n\000v\000\050\000\051) +endobj +1549 0 obj +<< /S /GoTo /D (subsubsection.10.50.2.2) >> +endobj +1552 0 obj +(\376\377\0001\0000\000.\0005\0000\000.\0002\000.\0002\000\040\000m\000o\000o\000r\000e\000\137\000p\000e\000n\000r\000o\000s\000e\000\137\000p\000i\000n\000v\000\137\000c\000o\000m\000p\000u\000t\000e\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +1553 0 obj +<< /S /GoTo /D (section.10.51) >> +endobj +1556 0 obj +(\376\377\0001\0000\000.\0005\0001\000\040\000m\000u\000l\000t\000i\000p\000a\000t\000h\000\137\000a\000l\000g\000o\000\137\000o\000w\000n\000\137\000n\000o\000r\000m\000\137\000d\000i\000s\000t\000r\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1557 0 obj +<< /S /GoTo /D (subsection.10.51.1) >> +endobj +1560 0 obj +(\376\377\0001\0000\000.\0005\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1561 0 obj +<< /S /GoTo /D (section.10.52) >> +endobj +1564 0 obj +(\376\377\0001\0000\000.\0005\0002\000\040\000m\000u\000l\000t\000i\000p\000a\000t\000h\000\137\000a\000l\000g\000o\000\137\000o\000w\000n\000\137\000n\000o\000r\000m\000\137\000d\000i\000s\000t\000r\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1565 0 obj +<< /S /GoTo /D (subsection.10.52.1) >> +endobj +1568 0 obj +(\376\377\0001\0000\000.\0005\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1569 0 obj +<< /S /GoTo /D (section.10.53) >> +endobj +1572 0 obj +(\376\377\0001\0000\000.\0005\0003\000\040\000m\000u\000l\000t\000i\000p\000a\000t\000h\000\137\000d\000i\000s\000t\000\137\000d\000e\000t\000e\000c\000t\000i\000o\000n\000\137\000m\000i\000t\000i\000g\000a\000t\000i\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1573 0 obj +<< /S /GoTo /D (subsection.10.53.1) >> +endobj +1576 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1577 0 obj +<< /S /GoTo /D (subsection.10.53.2) >> +endobj +1580 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1581 0 obj +<< /S /GoTo /D (subsubsection.10.53.2.1) >> +endobj +1584 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000.\0001\000\040\000g\000e\000t\000\137\000e\000x\000a\000c\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000t\000o\000\137\000a\000n\000c\000h\000o\000r\000\050\000\051) +endobj +1585 0 obj +<< /S /GoTo /D (subsubsection.10.53.2.2) >> +endobj +1588 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000.\0002\000\040\000g\000e\000t\000\137\000o\000p\000t\000i\000m\000a\000l\000\137\000p\000a\000r\000t\000i\000a\000l\000\137\000r\000\137\000n\000o\000i\000s\000e\000d\000\137\000v\000e\000c\000\050\000\051) +endobj +1589 0 obj +<< /S /GoTo /D (subsubsection.10.53.2.3) >> +endobj +1592 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000.\0003\000\040\000g\000e\000t\000\137\000o\000p\000t\000i\000m\000a\000l\000\137\000p\000a\000r\000t\000i\000a\000l\000\137\000r\000e\000f\000\137\000m\000a\000t\000r\000i\000x\000\050\000\051) +endobj +1593 0 obj +<< /S /GoTo /D (subsubsection.10.53.2.4) >> +endobj +1596 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000.\0004\000\040\000i\000s\000\137\000a\000n\000c\000h\000o\000r\000\050\000\051) +endobj +1597 0 obj +<< /S /GoTo /D (subsubsection.10.53.2.5) >> +endobj +1600 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000.\0005\000\040\000i\000s\000\137\000m\000e\000m\000b\000e\000r\000\050\000\051) +endobj +1601 0 obj +<< /S /GoTo /D (subsubsection.10.53.2.6) >> +endobj +1604 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000.\0006\000\040\000r\000e\000c\000o\000g\000\137\000m\000i\000t\000i\000g\000a\000t\000e\000\137\000m\000u\000l\000t\000i\000p\000a\000t\000h\000\050\000\051) +endobj +1605 0 obj +<< /S /GoTo /D (subsubsection.10.53.2.7) >> +endobj +1608 0 obj +(\376\377\0001\0000\000.\0005\0003\000.\0002\000.\0007\000\040\000s\000i\000m\000\137\000U\000W\000B\000\137\000d\000i\000s\000t\000\050\000\051) +endobj +1609 0 obj +<< /S /GoTo /D (section.10.54) >> +endobj +1612 0 obj +(\376\377\0001\0000\000.\0005\0004\000\040\000m\000u\000l\000t\000i\000p\000a\000t\000h\000\137\000d\000i\000s\000t\000\137\000d\000e\000t\000e\000c\000t\000i\000o\000n\000\137\000m\000i\000t\000i\000g\000a\000t\000i\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1613 0 obj +<< /S /GoTo /D (subsection.10.54.1) >> +endobj +1616 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1617 0 obj +<< /S /GoTo /D (subsection.10.54.2) >> +endobj +1620 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1621 0 obj +<< /S /GoTo /D (subsubsection.10.54.2.1) >> +endobj +1624 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000.\0001\000\040\000g\000e\000t\000\137\000e\000x\000a\000c\000t\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000\137\000t\000o\000\137\000a\000n\000c\000h\000o\000r\000\050\000\051) +endobj +1625 0 obj +<< /S /GoTo /D (subsubsection.10.54.2.2) >> +endobj +1628 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000.\0002\000\040\000g\000e\000t\000\137\000o\000p\000t\000i\000m\000a\000l\000\137\000p\000a\000r\000t\000i\000a\000l\000\137\000r\000\137\000n\000o\000i\000s\000e\000d\000\137\000v\000e\000c\000\050\000\051) +endobj +1629 0 obj +<< /S /GoTo /D (subsubsection.10.54.2.3) >> +endobj +1632 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000.\0003\000\040\000g\000e\000t\000\137\000o\000p\000t\000i\000m\000a\000l\000\137\000p\000a\000r\000t\000i\000a\000l\000\137\000r\000e\000f\000\137\000m\000a\000t\000r\000i\000x\000\050\000\051) +endobj +1633 0 obj +<< /S /GoTo /D (subsubsection.10.54.2.4) >> +endobj +1636 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000.\0004\000\040\000i\000s\000\137\000a\000n\000c\000h\000o\000r\000\050\000\051) +endobj +1637 0 obj +<< /S /GoTo /D (subsubsection.10.54.2.5) >> +endobj +1640 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000.\0005\000\040\000i\000s\000\137\000m\000e\000m\000b\000e\000r\000\050\000\051) +endobj +1641 0 obj +<< /S /GoTo /D (subsubsection.10.54.2.6) >> +endobj +1644 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000.\0006\000\040\000r\000e\000c\000o\000g\000\137\000m\000i\000t\000i\000g\000a\000t\000e\000\137\000m\000u\000l\000t\000i\000p\000a\000t\000h\000\050\000\051) +endobj +1645 0 obj +<< /S /GoTo /D (subsubsection.10.54.2.7) >> +endobj +1648 0 obj +(\376\377\0001\0000\000.\0005\0004\000.\0002\000.\0007\000\040\000s\000i\000m\000\137\000U\000W\000B\000\137\000d\000i\000s\000t\000\050\000\051) +endobj +1649 0 obj +<< /S /GoTo /D (section.10.55) >> +endobj +1652 0 obj +(\376\377\0001\0000\000.\0005\0005\000\040\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1653 0 obj +<< /S /GoTo /D (subsection.10.55.1) >> +endobj +1656 0 obj +(\376\377\0001\0000\000.\0005\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1657 0 obj +<< /S /GoTo /D (subsection.10.55.2) >> +endobj +1660 0 obj +(\376\377\0001\0000\000.\0005\0005\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1661 0 obj +<< /S /GoTo /D (subsubsection.10.55.2.1) >> +endobj +1664 0 obj +(\376\377\0001\0000\000.\0005\0005\000.\0002\000.\0001\000\040\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000\050\000\051) +endobj +1665 0 obj +<< /S /GoTo /D (section.10.56) >> +endobj +1668 0 obj +(\376\377\0001\0000\000.\0005\0006\000\040\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1669 0 obj +<< /S /GoTo /D (subsection.10.56.1) >> +endobj +1672 0 obj +(\376\377\0001\0000\000.\0005\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1673 0 obj +<< /S /GoTo /D (subsection.10.56.2) >> +endobj +1676 0 obj +(\376\377\0001\0000\000.\0005\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1677 0 obj +<< /S /GoTo /D (subsubsection.10.56.2.1) >> +endobj +1680 0 obj +(\376\377\0001\0000\000.\0005\0006\000.\0002\000.\0001\000\040\000n\000e\000w\000t\000o\000n\000\137\000r\000a\000p\000h\000s\000o\000n\000\050\000\051) +endobj +1681 0 obj +<< /S /GoTo /D (section.10.57) >> +endobj +1684 0 obj +(\376\377\0001\0000\000.\0005\0007\000\040\000n\000o\000r\000m\000\137\000d\000i\000s\000t\000\137\000r\000n\000d\000\137\000g\000e\000n\000e\000r\000a\000t\000o\000r\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1685 0 obj +<< /S /GoTo /D (subsection.10.57.1) >> +endobj +1688 0 obj +(\376\377\0001\0000\000.\0005\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1689 0 obj +<< /S /GoTo /D (subsection.10.57.2) >> +endobj +1692 0 obj +(\376\377\0001\0000\000.\0005\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1693 0 obj +<< /S /GoTo /D (subsubsection.10.57.2.1) >> +endobj +1696 0 obj +(\376\377\0001\0000\000.\0005\0007\000.\0002\000.\0001\000\040\000g\000e\000t\000\137\000n\000o\000r\000m\000\137\000d\000i\000s\000t\000r\000\137\000r\000a\000n\000d\000\137\000n\000u\000m\000\050\000\051) +endobj +1697 0 obj +<< /S /GoTo /D (subsubsection.10.57.2.2) >> +endobj +1700 0 obj +(\376\377\0001\0000\000.\0005\0007\000.\0002\000.\0002\000\040\000g\000e\000t\000\137\000r\000a\000n\000d\000\137\000n\000u\000m\000\050\000\051) +endobj +1701 0 obj +<< /S /GoTo /D (section.10.58) >> +endobj +1704 0 obj +(\376\377\0001\0000\000.\0005\0008\000\040\000n\000o\000r\000m\000\137\000d\000i\000s\000t\000\137\000r\000n\000d\000\137\000g\000e\000n\000e\000r\000a\000t\000o\000r\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1705 0 obj +<< /S /GoTo /D (subsection.10.58.1) >> +endobj +1708 0 obj +(\376\377\0001\0000\000.\0005\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1709 0 obj +<< /S /GoTo /D (subsection.10.58.2) >> +endobj +1712 0 obj +(\376\377\0001\0000\000.\0005\0008\000.\0002\000\040\000M\000a\000c\000r\000o\000\040\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1713 0 obj +<< /S /GoTo /D (subsubsection.10.58.2.1) >> +endobj +1716 0 obj +(\376\377\0001\0000\000.\0005\0008\000.\0002\000.\0001\000\040\000P\000I) +endobj +1717 0 obj +<< /S /GoTo /D (subsection.10.58.3) >> +endobj +1720 0 obj +(\376\377\0001\0000\000.\0005\0008\000.\0003\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1721 0 obj +<< /S /GoTo /D (subsubsection.10.58.3.1) >> +endobj +1724 0 obj +(\376\377\0001\0000\000.\0005\0008\000.\0003\000.\0001\000\040\000g\000e\000t\000\137\000n\000o\000r\000m\000\137\000d\000i\000s\000t\000r\000\137\000r\000a\000n\000d\000\137\000n\000u\000m\000\050\000\051) +endobj +1725 0 obj +<< /S /GoTo /D (subsubsection.10.58.3.2) >> +endobj +1728 0 obj +(\376\377\0001\0000\000.\0005\0008\000.\0003\000.\0002\000\040\000g\000e\000t\000\137\000r\000a\000n\000d\000\137\000n\000u\000m\000\050\000\051) +endobj +1729 0 obj +<< /S /GoTo /D (section.10.59) >> +endobj +1732 0 obj +(\376\377\0001\0000\000.\0005\0009\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1733 0 obj +<< /S /GoTo /D (subsection.10.59.1) >> +endobj +1736 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1737 0 obj +<< /S /GoTo /D (subsection.10.59.2) >> +endobj +1740 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1741 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.1) >> +endobj +1744 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0001\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000e\000x\000p\000o\000n\000e\000n\000t\000i\000a\000l\000\137\000d\000a\000t\000a\000\137\000t\000e\000s\000t\000\050\000\051) +endobj +1745 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.2) >> +endobj +1748 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0002\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000e\000x\000p\000\137\000f\000\050\000\051) +endobj +1749 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.3) >> +endobj +1752 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0003\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000e\000x\000p\000\137\000J\000a\000c\000o\000b\000i\000a\000n\000\050\000\051) +endobj +1753 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.4) >> +endobj +1756 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0004\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000f\000\137\000e\000r\000r\000o\000r\000\050\000\051) +endobj +1757 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.5) >> +endobj +1760 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0005\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000J\000\050\000\051) +endobj +1761 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.6) >> +endobj +1764 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0006\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000s\000i\000n\000\137\000f\000\050\000\051) +endobj +1765 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.7) >> +endobj +1768 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0007\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000s\000i\000n\000\137\000J\000a\000c\000o\000b\000i\000a\000n\000\050\000\051) +endobj +1769 0 obj +<< /S /GoTo /D (subsubsection.10.59.2.8) >> +endobj +1772 0 obj +(\376\377\0001\0000\000.\0005\0009\000.\0002\000.\0008\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000s\000i\000n\000u\000s\000o\000i\000d\000a\000l\000\137\000d\000a\000t\000a\000\137\000t\000e\000s\000t\000\050\000\051) +endobj +1773 0 obj +<< /S /GoTo /D (section.10.60) >> +endobj +1776 0 obj +(\376\377\0001\0000\000.\0006\0000\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1777 0 obj +<< /S /GoTo /D (subsection.10.60.1) >> +endobj +1780 0 obj +(\376\377\0001\0000\000.\0006\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1781 0 obj +<< /S /GoTo /D (subsection.10.60.2) >> +endobj +1784 0 obj +(\376\377\0001\0000\000.\0006\0000\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1785 0 obj +<< /S /GoTo /D (subsubsection.10.60.2.1) >> +endobj +1788 0 obj +(\376\377\0001\0000\000.\0006\0000\000.\0002\000.\0001\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000e\000x\000p\000o\000n\000e\000n\000t\000i\000a\000l\000\137\000d\000a\000t\000a\000\137\000t\000e\000s\000t\000\050\000\051) +endobj +1789 0 obj +<< /S /GoTo /D (subsubsection.10.60.2.2) >> +endobj +1792 0 obj +(\376\377\0001\0000\000.\0006\0000\000.\0002\000.\0002\000\040\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000s\000i\000n\000u\000s\000o\000i\000d\000a\000l\000\137\000d\000a\000t\000a\000\137\000t\000e\000s\000t\000\050\000\051) +endobj +1793 0 obj +<< /S /GoTo /D (section.10.61) >> +endobj +1796 0 obj +(\376\377\0001\0000\000.\0006\0001\000\040\000p\000o\000s\000\137\000a\000l\000g\000o\000s\000\137\000c\000o\000m\000m\000o\000n\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1797 0 obj +<< /S /GoTo /D (subsection.10.61.1) >> +endobj +1800 0 obj +(\376\377\0001\0000\000.\0006\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1801 0 obj +<< /S /GoTo /D (section.10.62) >> +endobj +1804 0 obj +(\376\377\0001\0000\000.\0006\0002\000\040\000p\000o\000s\000\137\000a\000l\000g\000o\000s\000\137\000c\000o\000m\000m\000o\000n\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1805 0 obj +<< /S /GoTo /D (subsection.10.62.1) >> +endobj +1808 0 obj +(\376\377\0001\0000\000.\0006\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1809 0 obj +<< /S /GoTo /D (section.10.63) >> +endobj +1812 0 obj +(\376\377\0001\0000\000.\0006\0003\000\040\000p\000o\000s\000i\000t\000i\000o\000n\000\137\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1813 0 obj +<< /S /GoTo /D (subsection.10.63.1) >> +endobj +1816 0 obj +(\376\377\0001\0000\000.\0006\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1817 0 obj +<< /S /GoTo /D (section.10.64) >> +endobj +1820 0 obj +(\376\377\0001\0000\000.\0006\0004\000\040\000p\000o\000s\000i\000t\000i\000o\000n\000\137\000o\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1821 0 obj +<< /S /GoTo /D (subsection.10.64.1) >> +endobj +1824 0 obj +(\376\377\0001\0000\000.\0006\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1825 0 obj +<< /S /GoTo /D (section.10.65) >> +endobj +1828 0 obj +(\376\377\0001\0000\000.\0006\0005\000\040\000p\000s\000e\000u\000d\000o\000\137\000i\000n\000v\000e\000r\000s\000e\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1829 0 obj +<< /S /GoTo /D (subsection.10.65.1) >> +endobj +1832 0 obj +(\376\377\0001\0000\000.\0006\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1833 0 obj +<< /S /GoTo /D (subsection.10.65.2) >> +endobj +1836 0 obj +(\376\377\0001\0000\000.\0006\0005\000.\0002\000\040\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1837 0 obj +<< /S /GoTo /D (subsubsection.10.65.2.1) >> +endobj +1840 0 obj +(\376\377\0001\0000\000.\0006\0005\000.\0002\000.\0001\000\040\000A\000L\000G\000O\000R\000I\000T\000H\000M) +endobj +1841 0 obj +<< /S /GoTo /D (section.10.66) >> +endobj +1844 0 obj +(\376\377\0001\0000\000.\0006\0006\000\040\000q\000r\000\137\000c\000o\000m\000m\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1845 0 obj +<< /S /GoTo /D (subsection.10.66.1) >> +endobj +1848 0 obj +(\376\377\0001\0000\000.\0006\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1849 0 obj +<< /S /GoTo /D (subsection.10.66.2) >> +endobj +1852 0 obj +(\376\377\0001\0000\000.\0006\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1853 0 obj +<< /S /GoTo /D (subsubsection.10.66.2.1) >> +endobj +1856 0 obj +(\376\377\0001\0000\000.\0006\0006\000.\0002\000.\0001\000\040\000q\000r\000\137\000c\000o\000m\000m\000o\000n\000\137\000b\000a\000c\000k\000w\000a\000r\000d\000\137\000s\000u\000b\000s\000t\000\050\000\051) +endobj +1857 0 obj +<< /S /GoTo /D (subsubsection.10.66.2.2) >> +endobj +1860 0 obj +(\376\377\0001\0000\000.\0006\0006\000.\0002\000.\0002\000\040\000q\000r\000\137\000c\000o\000m\000m\000o\000n\000\137\000g\000e\000t\000\137\000r\000e\000d\000u\000c\000e\000d\000\137\000Q\000R\000\050\000\051) +endobj +1861 0 obj +<< /S /GoTo /D (section.10.67) >> +endobj +1864 0 obj +(\376\377\0001\0000\000.\0006\0007\000\040\000q\000r\000\137\000c\000o\000m\000m\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1865 0 obj +<< /S /GoTo /D (subsection.10.67.1) >> +endobj +1868 0 obj +(\376\377\0001\0000\000.\0006\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1869 0 obj +<< /S /GoTo /D (subsection.10.67.2) >> +endobj +1872 0 obj +(\376\377\0001\0000\000.\0006\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1873 0 obj +<< /S /GoTo /D (subsubsection.10.67.2.1) >> +endobj +1876 0 obj +(\376\377\0001\0000\000.\0006\0007\000.\0002\000.\0001\000\040\000q\000r\000\137\000c\000o\000m\000m\000o\000n\000\137\000b\000a\000c\000k\000w\000a\000r\000d\000\137\000s\000u\000b\000s\000t\000\050\000\051) +endobj +1877 0 obj +<< /S /GoTo /D (subsubsection.10.67.2.2) >> +endobj +1880 0 obj +(\376\377\0001\0000\000.\0006\0007\000.\0002\000.\0002\000\040\000q\000r\000\137\000c\000o\000m\000m\000o\000n\000\137\000g\000e\000t\000\137\000r\000e\000d\000u\000c\000e\000d\000\137\000Q\000R\000\050\000\051) +endobj +1881 0 obj +<< /S /GoTo /D (section.10.68) >> +endobj +1884 0 obj +(\376\377\0001\0000\000.\0006\0008\000\040\000q\000r\000\137\000g\000i\000v\000e\000n\000s\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1885 0 obj +<< /S /GoTo /D (subsection.10.68.1) >> +endobj +1888 0 obj +(\376\377\0001\0000\000.\0006\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1889 0 obj +<< /S /GoTo /D (subsection.10.68.2) >> +endobj +1892 0 obj +(\376\377\0001\0000\000.\0006\0008\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1893 0 obj +<< /S /GoTo /D (subsubsection.10.68.2.1) >> +endobj +1896 0 obj +(\376\377\0001\0000\000.\0006\0008\000.\0002\000.\0001\000\040\000q\000r\000\137\000g\000i\000v\000e\000n\000s\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +1897 0 obj +<< /S /GoTo /D (subsubsection.10.68.2.2) >> +endobj +1900 0 obj +(\376\377\0001\0000\000.\0006\0008\000.\0002\000.\0002\000\040\000q\000r\000\137\000g\000i\000v\000e\000n\000s\000\137\000g\000e\000t\000\137\000p\000a\000r\000a\000m\000s\000\050\000\051) +endobj +1901 0 obj +<< /S /GoTo /D (section.10.69) >> +endobj +1904 0 obj +(\376\377\0001\0000\000.\0006\0009\000\040\000q\000r\000\137\000g\000i\000v\000e\000n\000s\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1905 0 obj +<< /S /GoTo /D (subsection.10.69.1) >> +endobj +1908 0 obj +(\376\377\0001\0000\000.\0006\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1909 0 obj +<< /S /GoTo /D (subsection.10.69.2) >> +endobj +1912 0 obj +(\376\377\0001\0000\000.\0006\0009\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1913 0 obj +<< /S /GoTo /D (subsubsection.10.69.2.1) >> +endobj +1916 0 obj +(\376\377\0001\0000\000.\0006\0009\000.\0002\000.\0001\000\040\000q\000r\000\137\000g\000i\000v\000e\000n\000s\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +1917 0 obj +<< /S /GoTo /D (subsubsection.10.69.2.2) >> +endobj +1920 0 obj +(\376\377\0001\0000\000.\0006\0009\000.\0002\000.\0002\000\040\000q\000r\000\137\000g\000i\000v\000e\000n\000s\000\137\000g\000e\000t\000\137\000p\000a\000r\000a\000m\000s\000\050\000\051) +endobj +1921 0 obj +<< /S /GoTo /D (section.10.70) >> +endobj +1924 0 obj +(\376\377\0001\0000\000.\0007\0000\000\040\000q\000r\000\137\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1925 0 obj +<< /S /GoTo /D (subsection.10.70.1) >> +endobj +1928 0 obj +(\376\377\0001\0000\000.\0007\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1929 0 obj +<< /S /GoTo /D (subsection.10.70.2) >> +endobj +1932 0 obj +(\376\377\0001\0000\000.\0007\0000\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1933 0 obj +<< /S /GoTo /D (subsubsection.10.70.2.1) >> +endobj +1936 0 obj +(\376\377\0001\0000\000.\0007\0000\000.\0002\000.\0001\000\040\000q\000r\000\137\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +1937 0 obj +<< /S /GoTo /D (section.10.71) >> +endobj +1940 0 obj +(\376\377\0001\0000\000.\0007\0001\000\040\000q\000r\000\137\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1941 0 obj +<< /S /GoTo /D (subsection.10.71.1) >> +endobj +1944 0 obj +(\376\377\0001\0000\000.\0007\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1945 0 obj +<< /S /GoTo /D (subsection.10.71.2) >> +endobj +1948 0 obj +(\376\377\0001\0000\000.\0007\0001\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1949 0 obj +<< /S /GoTo /D (subsubsection.10.71.2.1) >> +endobj +1952 0 obj +(\376\377\0001\0000\000.\0007\0001\000.\0002\000.\0001\000\040\000q\000r\000\137\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +1953 0 obj +<< /S /GoTo /D (section.10.72) >> +endobj +1956 0 obj +(\376\377\0001\0000\000.\0007\0002\000\040\000q\000r\000\137\000p\000i\000n\000v\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1957 0 obj +<< /S /GoTo /D (subsection.10.72.1) >> +endobj +1960 0 obj +(\376\377\0001\0000\000.\0007\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1961 0 obj +<< /S /GoTo /D (section.10.73) >> +endobj +1964 0 obj +(\376\377\0001\0000\000.\0007\0003\000\040\000q\000r\000\137\000p\000i\000n\000v\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1965 0 obj +<< /S /GoTo /D (subsection.10.73.1) >> +endobj +1968 0 obj +(\376\377\0001\0000\000.\0007\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1969 0 obj +<< /S /GoTo /D (section.10.74) >> +endobj +1972 0 obj +(\376\377\0001\0000\000.\0007\0004\000\040\000q\000r\000\137\000p\000s\000e\000u\000d\000o\000\137\000i\000n\000v\000e\000r\000s\000e\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1973 0 obj +<< /S /GoTo /D (subsection.10.74.1) >> +endobj +1976 0 obj +(\376\377\0001\0000\000.\0007\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1977 0 obj +<< /S /GoTo /D (subsection.10.74.2) >> +endobj +1980 0 obj +(\376\377\0001\0000\000.\0007\0004\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1981 0 obj +<< /S /GoTo /D (subsubsection.10.74.2.1) >> +endobj +1984 0 obj +(\376\377\0001\0000\000.\0007\0004\000.\0002\000.\0001\000\040\000q\000r\000\137\000g\000e\000t\000\137\000p\000i\000n\000v\000\050\000\051) +endobj +1985 0 obj +<< /S /GoTo /D (section.10.75) >> +endobj +1988 0 obj +(\376\377\0001\0000\000.\0007\0005\000\040\000q\000r\000\137\000p\000s\000e\000u\000d\000o\000\137\000i\000n\000v\000e\000r\000s\000e\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +1989 0 obj +<< /S /GoTo /D (subsection.10.75.1) >> +endobj +1992 0 obj +(\376\377\0001\0000\000.\0007\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +1993 0 obj +<< /S /GoTo /D (subsection.10.75.2) >> +endobj +1996 0 obj +(\376\377\0001\0000\000.\0007\0005\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +1997 0 obj +<< /S /GoTo /D (subsubsection.10.75.2.1) >> +endobj +2000 0 obj +(\376\377\0001\0000\000.\0007\0005\000.\0002\000.\0001\000\040\000q\000r\000\137\000g\000e\000t\000\137\000p\000i\000n\000v\000\050\000\051) +endobj +2001 0 obj +<< /S /GoTo /D (section.10.76) >> +endobj +2004 0 obj +(\376\377\0001\0000\000.\0007\0006\000\040\000s\000h\000e\000l\000l\000\137\000s\000o\000r\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2005 0 obj +<< /S /GoTo /D (subsection.10.76.1) >> +endobj +2008 0 obj +(\376\377\0001\0000\000.\0007\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2009 0 obj +<< /S /GoTo /D (subsection.10.76.2) >> +endobj +2012 0 obj +(\376\377\0001\0000\000.\0007\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2013 0 obj +<< /S /GoTo /D (subsubsection.10.76.2.1) >> +endobj +2016 0 obj +(\376\377\0001\0000\000.\0007\0006\000.\0002\000.\0001\000\040\000i\000n\000t\000\137\000s\000h\000e\000l\000l\000\137\000s\000o\000r\000t\000\050\000\051) +endobj +2017 0 obj +<< /S /GoTo /D (subsubsection.10.76.2.2) >> +endobj +2020 0 obj +(\376\377\0001\0000\000.\0007\0006\000.\0002\000.\0002\000\040\000s\000h\000e\000l\000l\000\137\000s\000o\000r\000t\000\050\000\051) +endobj +2021 0 obj +<< /S /GoTo /D (section.10.77) >> +endobj +2024 0 obj +(\376\377\0001\0000\000.\0007\0007\000\040\000s\000h\000e\000l\000l\000\137\000s\000o\000r\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2025 0 obj +<< /S /GoTo /D (subsection.10.77.1) >> +endobj +2028 0 obj +(\376\377\0001\0000\000.\0007\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2029 0 obj +<< /S /GoTo /D (subsection.10.77.2) >> +endobj +2032 0 obj +(\376\377\0001\0000\000.\0007\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2033 0 obj +<< /S /GoTo /D (subsubsection.10.77.2.1) >> +endobj +2036 0 obj +(\376\377\0001\0000\000.\0007\0007\000.\0002\000.\0001\000\040\000i\000n\000t\000\137\000s\000h\000e\000l\000l\000\137\000s\000o\000r\000t\000\050\000\051) +endobj +2037 0 obj +<< /S /GoTo /D (subsubsection.10.77.2.2) >> +endobj +2040 0 obj +(\376\377\0001\0000\000.\0007\0007\000.\0002\000.\0002\000\040\000s\000h\000e\000l\000l\000\137\000s\000o\000r\000t\000\050\000\051) +endobj +2041 0 obj +<< /S /GoTo /D (section.10.78) >> +endobj +2044 0 obj +(\376\377\0001\0000\000.\0007\0008\000\040\000s\000o\000l\000v\000e\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2045 0 obj +<< /S /GoTo /D (subsection.10.78.1) >> +endobj +2048 0 obj +(\376\377\0001\0000\000.\0007\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2049 0 obj +<< /S /GoTo /D (subsection.10.78.2) >> +endobj +2052 0 obj +(\376\377\0001\0000\000.\0007\0008\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2053 0 obj +<< /S /GoTo /D (subsubsection.10.78.2.1) >> +endobj +2056 0 obj +(\376\377\0001\0000\000.\0007\0008\000.\0002\000.\0001\000\040\000s\000o\000l\000v\000e\000\050\000\051) +endobj +2057 0 obj +<< /S /GoTo /D (subsubsection.10.78.2.2) >> +endobj +2060 0 obj +(\376\377\0001\0000\000.\0007\0008\000.\0002\000.\0002\000\040\000s\000o\000l\000v\000e\000\137\000g\000i\000v\000e\000n\000s\000\050\000\051) +endobj +2061 0 obj +<< /S /GoTo /D (subsubsection.10.78.2.3) >> +endobj +2064 0 obj +(\376\377\0001\0000\000.\0007\0008\000.\0002\000.\0003\000\040\000s\000o\000l\000v\000e\000\137\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000\050\000\051) +endobj +2065 0 obj +<< /S /GoTo /D (subsubsection.10.78.2.4) >> +endobj +2068 0 obj +(\376\377\0001\0000\000.\0007\0008\000.\0002\000.\0004\000\040\000s\000o\000l\000v\000e\000\137\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +2069 0 obj +<< /S /GoTo /D (section.10.79) >> +endobj +2072 0 obj +(\376\377\0001\0000\000.\0007\0009\000\040\000s\000o\000l\000v\000e\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2073 0 obj +<< /S /GoTo /D (subsection.10.79.1) >> +endobj +2076 0 obj +(\376\377\0001\0000\000.\0007\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2077 0 obj +<< /S /GoTo /D (subsection.10.79.2) >> +endobj +2080 0 obj +(\376\377\0001\0000\000.\0007\0009\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2081 0 obj +<< /S /GoTo /D (subsubsection.10.79.2.1) >> +endobj +2084 0 obj +(\376\377\0001\0000\000.\0007\0009\000.\0002\000.\0001\000\040\000s\000o\000l\000v\000e\000\050\000\051) +endobj +2085 0 obj +<< /S /GoTo /D (subsubsection.10.79.2.2) >> +endobj +2088 0 obj +(\376\377\0001\0000\000.\0007\0009\000.\0002\000.\0002\000\040\000s\000o\000l\000v\000e\000\137\000g\000i\000v\000e\000n\000s\000\050\000\051) +endobj +2089 0 obj +<< /S /GoTo /D (subsubsection.10.79.2.3) >> +endobj +2092 0 obj +(\376\377\0001\0000\000.\0007\0009\000.\0002\000.\0003\000\040\000s\000o\000l\000v\000e\000\137\000h\000o\000u\000s\000e\000h\000o\000l\000d\000e\000r\000\050\000\051) +endobj +2093 0 obj +<< /S /GoTo /D (subsubsection.10.79.2.4) >> +endobj +2096 0 obj +(\376\377\0001\0000\000.\0007\0009\000.\0002\000.\0004\000\040\000s\000o\000l\000v\000e\000\137\000l\000u\000\137\000d\000e\000c\000o\000m\000p\000\050\000\051) +endobj +2097 0 obj +<< /S /GoTo /D (section.10.80) >> +endobj +2100 0 obj +(\376\377\0001\0000\000.\0008\0000\000\040\000s\000o\000l\000v\000e\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2101 0 obj +<< /S /GoTo /D (subsection.10.80.1) >> +endobj +2104 0 obj +(\376\377\0001\0000\000.\0008\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2105 0 obj +<< /S /GoTo /D (section.10.81) >> +endobj +2108 0 obj +(\376\377\0001\0000\000.\0008\0001\000\040\000s\000o\000l\000v\000e\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2109 0 obj +<< /S /GoTo /D (subsection.10.81.1) >> +endobj +2112 0 obj +(\376\377\0001\0000\000.\0008\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2113 0 obj +<< /S /GoTo /D (section.10.82) >> +endobj +2116 0 obj +(\376\377\0001\0000\000.\0008\0002\000\040\000s\000v\000d\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2117 0 obj +<< /S /GoTo /D (subsection.10.82.1) >> +endobj +2120 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2121 0 obj +<< /S /GoTo /D (subsection.10.82.2) >> +endobj +2124 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2125 0 obj +<< /S /GoTo /D (subsubsection.10.82.2.1) >> +endobj +2128 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000.\0001\000\040\000s\000v\000d\000\050\000\051) +endobj +2129 0 obj +<< /S /GoTo /D (subsubsection.10.82.2.2) >> +endobj +2132 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000.\0002\000\040\000s\000v\000d\000\137\000c\000o\000m\000p\000u\000t\000e\000\137\000p\000r\000i\000n\000t\000\137\000U\000\137\000S\000\137\000V\000\137\000s\000\050\000\051) +endobj +2133 0 obj +<< /S /GoTo /D (subsubsection.10.82.2.3) >> +endobj +2136 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000.\0003\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000r\000e\000c\000i\000p\000r\000o\000c\000\137\000s\000i\000n\000g\000u\000l\000a\000r\000\137\000v\000a\000l\000u\000e\000s\000\050\000\051) +endobj +2137 0 obj +<< /S /GoTo /D (subsubsection.10.82.2.4) >> +endobj +2140 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000.\0004\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000S\000\137\000d\000i\000m\000\050\000\051) +endobj +2141 0 obj +<< /S /GoTo /D (subsubsection.10.82.2.5) >> +endobj +2144 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000.\0005\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000s\000i\000n\000g\000l\000e\000\137\000v\000a\000l\000u\000e\000s\000\137\000n\000u\000m\000\050\000\051) +endobj +2145 0 obj +<< /S /GoTo /D (subsubsection.10.82.2.6) >> +endobj +2148 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000.\0006\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000U\000\137\000d\000i\000m\000\050\000\051) +endobj +2149 0 obj +<< /S /GoTo /D (subsubsection.10.82.2.7) >> +endobj +2152 0 obj +(\376\377\0001\0000\000.\0008\0002\000.\0002\000.\0007\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000V\000\137\000d\000i\000m\000\050\000\051) +endobj +2153 0 obj +<< /S /GoTo /D (section.10.83) >> +endobj +2156 0 obj +(\376\377\0001\0000\000.\0008\0003\000\040\000s\000v\000d\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2157 0 obj +<< /S /GoTo /D (subsection.10.83.1) >> +endobj +2160 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2161 0 obj +<< /S /GoTo /D (subsection.10.83.2) >> +endobj +2164 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2165 0 obj +<< /S /GoTo /D (subsubsection.10.83.2.1) >> +endobj +2168 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000.\0001\000\040\000s\000v\000d\000\050\000\051) +endobj +2169 0 obj +<< /S /GoTo /D (subsubsection.10.83.2.2) >> +endobj +2172 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000.\0002\000\040\000s\000v\000d\000\137\000c\000o\000m\000p\000u\000t\000e\000\137\000p\000r\000i\000n\000t\000\137\000U\000\137\000S\000\137\000V\000\137\000s\000\050\000\051) +endobj +2173 0 obj +<< /S /GoTo /D (subsubsection.10.83.2.3) >> +endobj +2176 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000.\0003\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000r\000e\000c\000i\000p\000r\000o\000c\000\137\000s\000i\000n\000g\000u\000l\000a\000r\000\137\000v\000a\000l\000u\000e\000s\000\050\000\051) +endobj +2177 0 obj +<< /S /GoTo /D (subsubsection.10.83.2.4) >> +endobj +2180 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000.\0004\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000S\000\137\000d\000i\000m\000\050\000\051) +endobj +2181 0 obj +<< /S /GoTo /D (subsubsection.10.83.2.5) >> +endobj +2184 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000.\0005\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000s\000i\000n\000g\000l\000e\000\137\000v\000a\000l\000u\000e\000s\000\137\000n\000u\000m\000\050\000\051) +endobj +2185 0 obj +<< /S /GoTo /D (subsubsection.10.83.2.6) >> +endobj +2188 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000.\0006\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000U\000\137\000d\000i\000m\000\050\000\051) +endobj +2189 0 obj +<< /S /GoTo /D (subsubsection.10.83.2.7) >> +endobj +2192 0 obj +(\376\377\0001\0000\000.\0008\0003\000.\0002\000.\0007\000\040\000s\000v\000d\000\137\000g\000e\000t\000\137\000V\000\137\000d\000i\000m\000\050\000\051) +endobj +2193 0 obj +<< /S /GoTo /D (section.10.84) >> +endobj +2196 0 obj +(\376\377\0001\0000\000.\0008\0004\000\040\000s\000v\000d\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2197 0 obj +<< /S /GoTo /D (subsection.10.84.1) >> +endobj +2200 0 obj +(\376\377\0001\0000\000.\0008\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2201 0 obj +<< /S /GoTo /D (section.10.85) >> +endobj +2204 0 obj +(\376\377\0001\0000\000.\0008\0005\000\040\000s\000v\000d\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2205 0 obj +<< /S /GoTo /D (subsection.10.85.1) >> +endobj +2208 0 obj +(\376\377\0001\0000\000.\0008\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2209 0 obj +<< /S /GoTo /D (section.10.86) >> +endobj +2212 0 obj +(\376\377\0001\0000\000.\0008\0006\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2213 0 obj +<< /S /GoTo /D (subsection.10.86.1) >> +endobj +2216 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2217 0 obj +<< /S /GoTo /D (subsection.10.86.2) >> +endobj +2220 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2221 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.1) >> +endobj +2224 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0001\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\0001\000\050\000\051) +endobj +2225 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.2) >> +endobj +2228 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0002\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\0002\000\050\000\051) +endobj +2229 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.3) >> +endobj +2232 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0003\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000A\000\137\000m\000a\000t\000r\000i\000x\000\050\000\051) +endobj +2233 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.4) >> +endobj +2236 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0004\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000b\000\137\000v\000e\000c\000t\000o\000r\000\050\000\051) +endobj +2237 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.5) >> +endobj +2240 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0005\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000p\000a\000r\000t\000i\000c\000u\000l\000a\000r\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2241 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.6) >> +endobj +2244 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0006\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000q\000u\000a\000d\000r\000a\000t\000i\000c\000\137\000e\000q\000u\000a\000t\000i\000o\000n\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2245 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.7) >> +endobj +2248 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0007\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000r\000a\000n\000k\000\137\000a\000n\000d\000\137\000h\000o\000m\000o\000g\000e\000n\000e\000o\000u\000s\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2249 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.8) >> +endobj +2252 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0008\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000p\000r\000e\000p\000r\000o\000c\000e\000s\000s\000e\000d\000\137\000g\000e\000t\000\137\000p\000a\000r\000t\000i\000c\000u\000l\000a\000r\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2253 0 obj +<< /S /GoTo /D (subsubsection.10.86.2.9) >> +endobj +2256 0 obj +(\376\377\0001\0000\000.\0008\0006\000.\0002\000.\0009\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000s\000o\000l\000v\000e\000\137\000l\000i\000n\000e\000a\000r\000\137\000e\000q\000u\000a\000t\000i\000o\000n\000\050\000\051) +endobj +2257 0 obj +<< /S /GoTo /D (section.10.87) >> +endobj +2260 0 obj +(\376\377\0001\0000\000.\0008\0007\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2261 0 obj +<< /S /GoTo /D (subsection.10.87.1) >> +endobj +2264 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2265 0 obj +<< /S /GoTo /D (subsection.10.87.2) >> +endobj +2268 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2269 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.1) >> +endobj +2272 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0001\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\0001\000\050\000\051) +endobj +2273 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.2) >> +endobj +2276 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0002\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\0002\000\050\000\051) +endobj +2277 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.3) >> +endobj +2280 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0003\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000A\000\137\000m\000a\000t\000r\000i\000x\000\050\000\051) +endobj +2281 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.4) >> +endobj +2284 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0004\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000b\000\137\000v\000e\000c\000t\000o\000r\000\050\000\051) +endobj +2285 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.5) >> +endobj +2288 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0005\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000p\000a\000r\000t\000i\000c\000u\000l\000a\000r\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2289 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.6) >> +endobj +2292 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0006\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000q\000u\000a\000d\000r\000a\000t\000i\000c\000\137\000e\000q\000u\000a\000t\000i\000o\000n\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2293 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.7) >> +endobj +2296 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0007\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000g\000e\000t\000\137\000r\000a\000n\000k\000\137\000a\000n\000d\000\137\000h\000o\000m\000o\000g\000e\000n\000e\000o\000u\000s\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2297 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.8) >> +endobj +2300 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0008\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000p\000r\000e\000p\000r\000o\000c\000e\000s\000s\000e\000d\000\137\000g\000e\000t\000\137\000p\000a\000r\000t\000i\000c\000u\000l\000a\000r\000\137\000s\000o\000l\000u\000t\000i\000o\000n\000\050\000\051) +endobj +2301 0 obj +<< /S /GoTo /D (subsubsection.10.87.2.9) >> +endobj +2304 0 obj +(\376\377\0001\0000\000.\0008\0007\000.\0002\000.\0009\000\040\000t\000r\000i\000l\000a\000t\000e\000r\000a\000t\000i\000o\000n\000\137\000s\000o\000l\000v\000e\000\137\000l\000i\000n\000e\000a\000r\000\137\000e\000q\000u\000a\000t\000i\000o\000n\000\050\000\051) +endobj +2305 0 obj +<< /S /GoTo /D (section.10.88) >> +endobj +2308 0 obj +(\376\377\0001\0000\000.\0008\0008\000\040\000u\000t\000i\000l\000s\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2309 0 obj +<< /S /GoTo /D (subsection.10.88.1) >> +endobj +2312 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2313 0 obj +<< /S /GoTo /D (subsection.10.88.2) >> +endobj +2316 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2317 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.1) >> +endobj +2320 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0001\000\040\000u\000t\000i\000l\000s\000\137\000g\000e\000t\000\137\000m\000e\000d\000i\000a\000n\000\050\000\051) +endobj +2321 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.2) >> +endobj +2324 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0002\000\040\000u\000t\000i\000l\000s\000\137\000g\000e\000t\000\137\000s\000a\000v\000e\000\137\000s\000q\000u\000a\000r\000e\000\137\000r\000o\000o\000t\000\050\000\051) +endobj +2325 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.3) >> +endobj +2328 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0003\000\040\000u\000t\000i\000l\000s\000\137\000m\000a\000x\000\050\000\051) +endobj +2329 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.4) >> +endobj +2332 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0004\000\040\000u\000t\000i\000l\000s\000\137\000m\000e\000a\000n\000\050\000\051) +endobj +2333 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.5) >> +endobj +2336 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0005\000\040\000u\000t\000i\000l\000s\000\137\000m\000i\000n\000\050\000\051) +endobj +2337 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.6) >> +endobj +2340 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0006\000\040\000u\000t\000i\000l\000s\000\137\000m\000o\000v\000i\000n\000g\000\137\000a\000v\000e\000r\000a\000g\000e\000\050\000\051) +endobj +2341 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.7) >> +endobj +2344 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0007\000\040\000u\000t\000i\000l\000s\000\137\000p\000r\000i\000n\000t\000f\000\050\000\051) +endobj +2345 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.8) >> +endobj +2348 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0008\000\040\000u\000t\000i\000l\000s\000\137\000s\000i\000n\000d\000\050\000\051) +endobj +2349 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.9) >> +endobj +2352 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0009\000\040\000u\000t\000i\000l\000s\000\137\000s\000w\000a\000p\000\050\000\051) +endobj +2353 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.10) >> +endobj +2356 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0001\0000\000\040\000u\000t\000i\000l\000s\000\137\000t\000o\000\137\000r\000a\000d\000i\000a\000n\000\050\000\051) +endobj +2357 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.11) >> +endobj +2360 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0001\0001\000\040\000u\000t\000i\000l\000s\000\137\000u\0008\000\137\000m\000a\000x\000\050\000\051) +endobj +2361 0 obj +<< /S /GoTo /D (subsubsection.10.88.2.12) >> +endobj +2364 0 obj +(\376\377\0001\0000\000.\0008\0008\000.\0002\000.\0001\0002\000\040\000u\000t\000i\000l\000s\000\137\000u\0008\000\137\000m\000i\000n\000\050\000\051) +endobj +2365 0 obj +<< /S /GoTo /D (section.10.89) >> +endobj +2368 0 obj +(\376\377\0001\0000\000.\0008\0009\000\040\000u\000t\000i\000l\000s\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2369 0 obj +<< /S /GoTo /D (subsection.10.89.1) >> +endobj +2372 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2373 0 obj +<< /S /GoTo /D (subsection.10.89.2) >> +endobj +2376 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2377 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.1) >> +endobj +2380 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0001\000\040\000u\000t\000i\000l\000s\000\137\000g\000e\000t\000\137\000m\000e\000d\000i\000a\000n\000\050\000\051) +endobj +2381 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.2) >> +endobj +2384 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0002\000\040\000u\000t\000i\000l\000s\000\137\000g\000e\000t\000\137\000s\000a\000v\000e\000\137\000s\000q\000u\000a\000r\000e\000\137\000r\000o\000o\000t\000\050\000\051) +endobj +2385 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.3) >> +endobj +2388 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0003\000\040\000u\000t\000i\000l\000s\000\137\000m\000a\000x\000\050\000\051) +endobj +2389 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.4) >> +endobj +2392 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0004\000\040\000u\000t\000i\000l\000s\000\137\000m\000e\000a\000n\000\050\000\051) +endobj +2393 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.5) >> +endobj +2396 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0005\000\040\000u\000t\000i\000l\000s\000\137\000m\000i\000n\000\050\000\051) +endobj +2397 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.6) >> +endobj +2400 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0006\000\040\000u\000t\000i\000l\000s\000\137\000m\000o\000v\000i\000n\000g\000\137\000a\000v\000e\000r\000a\000g\000e\000\050\000\051) +endobj +2401 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.7) >> +endobj +2404 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0007\000\040\000u\000t\000i\000l\000s\000\137\000p\000r\000i\000n\000t\000f\000\050\000\051) +endobj +2405 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.8) >> +endobj +2408 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0008\000\040\000u\000t\000i\000l\000s\000\137\000s\000i\000n\000d\000\050\000\051) +endobj +2409 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.9) >> +endobj +2412 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0009\000\040\000u\000t\000i\000l\000s\000\137\000s\000w\000a\000p\000\050\000\051) +endobj +2413 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.10) >> +endobj +2416 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0001\0000\000\040\000u\000t\000i\000l\000s\000\137\000t\000o\000\137\000r\000a\000d\000i\000a\000n\000\050\000\051) +endobj +2417 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.11) >> +endobj +2420 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0001\0001\000\040\000u\000t\000i\000l\000s\000\137\000u\0008\000\137\000m\000a\000x\000\050\000\051) +endobj +2421 0 obj +<< /S /GoTo /D (subsubsection.10.89.2.12) >> +endobj +2424 0 obj +(\376\377\0001\0000\000.\0008\0009\000.\0002\000.\0001\0002\000\040\000u\000t\000i\000l\000s\000\137\000u\0008\000\137\000m\000i\000n\000\050\000\051) +endobj +2425 0 obj +<< /S /GoTo /D (section.10.90) >> +endobj +2428 0 obj +(\376\377\0001\0000\000.\0009\0000\000\040\000u\000t\000i\000l\000s\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2429 0 obj +<< /S /GoTo /D (subsection.10.90.1) >> +endobj +2432 0 obj +(\376\377\0001\0000\000.\0009\0000\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2433 0 obj +<< /S /GoTo /D (section.10.91) >> +endobj +2436 0 obj +(\376\377\0001\0000\000.\0009\0001\000\040\000u\000t\000i\000l\000s\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2437 0 obj +<< /S /GoTo /D (subsection.10.91.1) >> +endobj +2440 0 obj +(\376\377\0001\0000\000.\0009\0001\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2441 0 obj +<< /S /GoTo /D (section.10.92) >> +endobj +2444 0 obj +(\376\377\0001\0000\000.\0009\0002\000\040\000v\000e\000c\000t\000o\000r\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2445 0 obj +<< /S /GoTo /D (subsection.10.92.1) >> +endobj +2448 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2449 0 obj +<< /S /GoTo /D (subsection.10.92.2) >> +endobj +2452 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2453 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.1) >> +endobj +2456 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\000\040\000v\000e\000c\000t\000o\000r\000\137\000a\000d\000d\000\050\000\051) +endobj +2457 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.2) >> +endobj +2460 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0002\000\040\000v\000e\000c\000t\000o\000r\000\137\000c\000l\000e\000a\000r\000\050\000\051) +endobj +2461 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.3) >> +endobj +2464 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0003\000\040\000v\000e\000c\000t\000o\000r\000\137\000c\000o\000p\000y\000\050\000\051) +endobj +2465 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.4) >> +endobj +2468 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0004\000\040\000v\000e\000c\000t\000o\000r\000\137\000f\000l\000e\000x\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +2469 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.5) >> +endobj +2472 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0005\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000e\000l\000e\000m\000e\000n\000t\000s\000\050\000\051) +endobj +2473 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.6) >> +endobj +2476 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0006\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000e\000u\000c\000l\000i\000d\000e\000a\000n\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000\050\000\051) +endobj +2477 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.7) >> +endobj +2480 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0007\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000i\000n\000d\000e\000x\000\137\000v\000e\000c\000t\000o\000r\000\050\000\051) +endobj +2481 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.8) >> +endobj +2484 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0008\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000m\000a\000x\000\137\000a\000n\000d\000\137\000i\000n\000d\000e\000x\000\050\000\051) +endobj +2485 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.9) >> +endobj +2488 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0009\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000m\000e\000a\000n\000\137\000v\000a\000l\000u\000e\000\050\000\051) +endobj +2489 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.10) >> +endobj +2492 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0000\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000n\000o\000r\000m\0002\000\050\000\051) +endobj +2493 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.11) >> +endobj +2496 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0001\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000r\000e\000s\000i\000d\000u\000a\000l\000\050\000\051) +endobj +2497 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.12) >> +endobj +2500 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0002\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000s\000c\000a\000l\000a\000r\000\137\000p\000r\000o\000d\000u\000c\000t\000\050\000\051) +endobj +2501 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.13) >> +endobj +2504 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0003\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000s\000q\000u\000a\000r\000e\000\137\000n\000o\000r\000m\0002\000\050\000\051) +endobj +2505 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.14) >> +endobj +2508 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0004\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000s\000u\000m\000\050\000\051) +endobj +2509 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.15) >> +endobj +2512 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0005\000\040\000v\000e\000c\000t\000o\000r\000\137\000i\000n\000\137\000p\000l\000a\000c\000e\000\137\000s\000c\000a\000l\000a\000r\000\137\000m\000u\000l\000\050\000\051) +endobj +2513 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.16) >> +endobj +2516 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0006\000\040\000v\000e\000c\000t\000o\000r\000\137\000i\000s\000\137\000e\000q\000u\000a\000l\000\050\000\051) +endobj +2517 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.17) >> +endobj +2520 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0007\000\040\000v\000e\000c\000t\000o\000r\000\137\000m\000u\000l\000\050\000\051) +endobj +2521 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.18) >> +endobj +2524 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0008\000\040\000v\000e\000c\000t\000o\000r\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +2525 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.19) >> +endobj +2528 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0001\0009\000\040\000v\000e\000c\000t\000o\000r\000\137\000p\000r\000i\000n\000t\000\137\000u\0008\000\137\000a\000r\000r\000a\000y\000\050\000\051) +endobj +2529 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.20) >> +endobj +2532 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0002\0000\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000c\000a\000l\000a\000r\000\137\000d\000i\000v\000\050\000\051) +endobj +2533 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.21) >> +endobj +2536 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0002\0001\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000c\000a\000l\000a\000r\000\137\000m\000u\000l\000\050\000\051) +endobj +2537 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.22) >> +endobj +2540 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0002\0002\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000q\000u\000a\000r\000e\000\050\000\051) +endobj +2541 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.23) >> +endobj +2544 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0002\0003\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000u\000b\000\050\000\051) +endobj +2545 0 obj +<< /S /GoTo /D (subsubsection.10.92.2.24) >> +endobj +2548 0 obj +(\376\377\0001\0000\000.\0009\0002\000.\0002\000.\0002\0004\000\040\000v\000e\000c\000t\000o\000r\000\137\000u\000i\000n\000t\0003\0002\000\137\000i\000s\000\137\000e\000q\000u\000a\000l\000\050\000\051) +endobj +2549 0 obj +<< /S /GoTo /D (section.10.93) >> +endobj +2552 0 obj +(\376\377\0001\0000\000.\0009\0003\000\040\000v\000e\000c\000t\000o\000r\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2553 0 obj +<< /S /GoTo /D (subsection.10.93.1) >> +endobj +2556 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2557 0 obj +<< /S /GoTo /D (subsection.10.93.2) >> +endobj +2560 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) +endobj +2561 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.1) >> +endobj +2564 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\000\040\000v\000e\000c\000t\000o\000r\000\137\000a\000d\000d\000\050\000\051) +endobj +2565 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.2) >> +endobj +2568 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0002\000\040\000v\000e\000c\000t\000o\000r\000\137\000c\000l\000e\000a\000r\000\050\000\051) +endobj +2569 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.3) >> +endobj +2572 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0003\000\040\000v\000e\000c\000t\000o\000r\000\137\000c\000o\000p\000y\000\050\000\051) +endobj +2573 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.4) >> +endobj +2576 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0004\000\040\000v\000e\000c\000t\000o\000r\000\137\000f\000l\000e\000x\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +2577 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.5) >> +endobj +2580 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0005\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000e\000l\000e\000m\000e\000n\000t\000s\000\050\000\051) +endobj +2581 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.6) >> +endobj +2584 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0006\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000e\000u\000c\000l\000i\000d\000e\000a\000n\000\137\000d\000i\000s\000t\000a\000n\000c\000e\000\050\000\051) +endobj +2585 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.7) >> +endobj +2588 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0007\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000i\000n\000d\000e\000x\000\137\000v\000e\000c\000t\000o\000r\000\050\000\051) +endobj +2589 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.8) >> +endobj +2592 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0008\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000m\000a\000x\000\137\000a\000n\000d\000\137\000i\000n\000d\000e\000x\000\050\000\051) +endobj +2593 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.9) >> +endobj +2596 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0009\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000m\000e\000a\000n\000\137\000v\000a\000l\000u\000e\000\050\000\051) +endobj +2597 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.10) >> +endobj +2600 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0000\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000n\000o\000r\000m\0002\000\050\000\051) +endobj +2601 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.11) >> +endobj +2604 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0001\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000r\000e\000s\000i\000d\000u\000a\000l\000\050\000\051) +endobj +2605 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.12) >> +endobj +2608 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0002\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000s\000c\000a\000l\000a\000r\000\137\000p\000r\000o\000d\000u\000c\000t\000\050\000\051) +endobj +2609 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.13) >> +endobj +2612 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0003\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000s\000q\000u\000a\000r\000e\000\137\000n\000o\000r\000m\0002\000\050\000\051) +endobj +2613 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.14) >> +endobj +2616 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0004\000\040\000v\000e\000c\000t\000o\000r\000\137\000g\000e\000t\000\137\000s\000u\000m\000\050\000\051) +endobj +2617 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.15) >> +endobj +2620 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0005\000\040\000v\000e\000c\000t\000o\000r\000\137\000i\000n\000\137\000p\000l\000a\000c\000e\000\137\000s\000c\000a\000l\000a\000r\000\137\000m\000u\000l\000\050\000\051) +endobj +2621 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.16) >> +endobj +2624 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0006\000\040\000v\000e\000c\000t\000o\000r\000\137\000i\000s\000\137\000e\000q\000u\000a\000l\000\050\000\051) +endobj +2625 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.17) >> +endobj +2628 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0007\000\040\000v\000e\000c\000t\000o\000r\000\137\000m\000u\000l\000\050\000\051) +endobj +2629 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.18) >> +endobj +2632 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0008\000\040\000v\000e\000c\000t\000o\000r\000\137\000p\000r\000i\000n\000t\000\050\000\051) +endobj +2633 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.19) >> +endobj +2636 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0001\0009\000\040\000v\000e\000c\000t\000o\000r\000\137\000p\000r\000i\000n\000t\000\137\000u\0008\000\137\000a\000r\000r\000a\000y\000\050\000\051) +endobj +2637 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.20) >> +endobj +2640 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0002\0000\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000c\000a\000l\000a\000r\000\137\000d\000i\000v\000\050\000\051) +endobj +2641 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.21) >> +endobj +2644 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0002\0001\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000c\000a\000l\000a\000r\000\137\000m\000u\000l\000\050\000\051) +endobj +2645 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.22) >> +endobj +2648 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0002\0002\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000q\000u\000a\000r\000e\000\050\000\051) +endobj +2649 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.23) >> +endobj +2652 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0002\0003\000\040\000v\000e\000c\000t\000o\000r\000\137\000s\000u\000b\000\050\000\051) +endobj +2653 0 obj +<< /S /GoTo /D (subsubsection.10.93.2.24) >> +endobj +2656 0 obj +(\376\377\0001\0000\000.\0009\0003\000.\0002\000.\0002\0004\000\040\000v\000e\000c\000t\000o\000r\000\137\000u\000i\000n\000t\0003\0002\000\137\000i\000s\000\137\000e\000q\000u\000a\000l\000\050\000\051) +endobj +2657 0 obj +<< /S /GoTo /D (section.10.94) >> +endobj +2660 0 obj +(\376\377\0001\0000\000.\0009\0004\000\040\000v\000e\000c\000t\000o\000r\000\137\000t\000e\000s\000t\000.\000c\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2661 0 obj +<< /S /GoTo /D (subsection.10.94.1) >> +endobj +2664 0 obj +(\376\377\0001\0000\000.\0009\0004\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2665 0 obj +<< /S /GoTo /D (section.10.95) >> +endobj +2668 0 obj +(\376\377\0001\0000\000.\0009\0005\000\040\000v\000e\000c\000t\000o\000r\000\137\000t\000e\000s\000t\000.\000h\000\040\000F\000i\000l\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) +endobj +2669 0 obj +<< /S /GoTo /D (subsection.10.95.1) >> +endobj +2672 0 obj +(\376\377\0001\0000\000.\0009\0005\000.\0001\000\040\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) +endobj +2673 0 obj +<< /S /GoTo /D [2674 0 R /Fit] >> +endobj +2676 0 obj +<< +/Length 156 +/Filter /FlateDecode +>> +stream +xڅ�� +�0E�~����{/M۬�DAJ6i�X]Z���dtp���r3ל �w�0�B�77.��l�XY"��[�H`�T���<\D��S;?����^^�!j�Jc�UKY+$�4G���V�1�$�h��e�e%:�(���Ij�ec,HU��u����%_�2� +endstream +endobj +2674 0 obj +<< +/Type /Page +/Contents 2676 0 R +/Resources 2675 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2679 0 R +>> +endobj +2677 0 obj +<< +/D [2674 0 R /XYZ 70.866 771.024 null] +>> +endobj +2675 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +2682 0 obj +<< +/Length 26 +/Filter /FlateDecode +>> +stream +x�� +0TH/�2PHW0Pp�I��p; +endstream +endobj +2681 0 obj +<< +/Type /Page +/Contents 2682 0 R +/Resources 2680 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2679 0 R +>> +endobj +2680 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/ProcSet [ /PDF ] +>> +endobj +2724 0 obj +<< +/Length 1233 +/Filter /FlateDecode +>> +stream +x��[[s�8}����~0� I<&m�I'i������a��k`{��+, �)��l��b6Hs�w���������XKX�����3��.��Z�[����\dSh-�n�>-�N�,&_&P�,h1`sJ-ƹ���xr� X����l�r��柱El;��u;��Z=g���隌�B����1>��k/� +?��ש_�"ɽ<L��|�@!�v.O�ԯ��OΑ[{N0�pk�� �7�;�u��!�A0-��AD�����!�|j��C���}�� ���Х`'=�pHA�*M�ٙJ.P��P?�i������DT�� +�Ń�K�%��"���,�$ML�& �����CQ�j�~^�E����籩B��B�v���m�ę�0�n���R|^���kQ���h�Ƅ�wi2�I�hļ�9�sM�Rߋ���������+���7/^E"k�1��ZpA�7�G��?F�P3�+�hz���>��)�K��3�;=�K���_BO�e0��v���K�e` +ŵ�\$K]���}��B��mgP�@��t��s�\�PyRD��#�XKh������~�7S�^�N�Ѕl4���b�y�a�e���h���=��/�˯Q:F��Ry� �f�f��z����(jU��_;���J�J$U���I����!���}�Au��/?*����iPt,d�G�w�V�ٜ�:�RDஐ��A#�b������"�!�n�S�N�����)Ily�a�$P+�"��.I���~���bE'"��S-�ȘT�Oi�=D�UX|�Τ�&Q�m�ts��O��H)"#��}���vE4^�Q֭��Q|���Z�����k�X=���i�?l���}��?���iu���R��#H��B���j^�# F�=�E|�Ar������[=�ކ �J������Y�^��ԗ����6_m��W�����BC +2h�ԭ,�R��e����a�a�����{����pLػ�.�)��ޒc��k#T'�^�U[�tͼ��8�lG��V�B}��c -��qW�L/{�{zv��0c!�a��,��YF/s,�aýo�'7l?2 Lܘ����嫿�xss��|��v��F��vrѹ8"��\��=����e���ZF$���_���B�#3B����j#FI����2gS<^��u�ʗ7�����W&��eeJ�4g���C� +endstream +endobj +2723 0 obj +<< +/Type /Page +/Contents 2724 0 R +/Resources 2722 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2679 0 R +/Annots [ 2683 0 R 2684 0 R 2685 0 R 2686 0 R 2687 0 R 2688 0 R 2689 0 R 2690 0 R 2691 0 R 2692 0 R 2693 0 R 2694 0 R 2695 0 R 2696 0 R 2697 0 R 2698 0 R 2699 0 R 2700 0 R 2701 0 R 2702 0 R 2703 0 R 2704 0 R 2705 0 R 2706 0 R 2707 0 R 2708 0 R 2709 0 R 2710 0 R 2711 0 R 2712 0 R 2713 0 R 2714 0 R 2715 0 R 2716 0 R 2717 0 R 2718 0 R 2719 0 R 2720 0 R ] +>> +endobj +2683 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 759.953 198.394 768.598] +/A << /S /GoTo /D (chapter.1) >> +>> +endobj +2684 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 743.246 199.839 751.73] +/A << /S /GoTo /D (section.1.1) >> +>> +endobj +2685 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 726.45 203.372 735.221] +/A << /S /GoTo /D (section.1.2) >> +>> +endobj +2686 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 708.03 172.519 718.299] +/A << /S /GoTo /D (section.1.3) >> +>> +endobj +2687 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 693.018 138.268 701.789] +/A << /S /GoTo /D (section.1.4) >> +>> +endobj +2688 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 674.491 190.362 684.867] +/A << /S /GoTo /D (subsection.1.4.1) >> +>> +endobj +2689 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 657.776 209.792 668.152] +/A << /S /GoTo /D (subsection.1.4.2) >> +>> +endobj +2690 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 642.871 179.486 651.436] +/A << /S /GoTo /D (subsection.1.4.3) >> +>> +endobj +2691 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 624.452 170.242 634.72] +/A << /S /GoTo /D (subsection.1.4.4) >> +>> +endobj +2692 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 609.44 146.598 618.004] +/A << /S /GoTo /D (subsection.1.4.5) >> +>> +endobj +2693 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 592.724 177.809 601.495] +/A << /S /GoTo /D (section.1.5) >> +>> +endobj +2694 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 563.952 178.488 574.481] +/A << /S /GoTo /D (chapter.2) >> +>> +endobj +2695 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 547.237 285.108 557.819] +/A << /S /GoTo /D (section.2.1) >> +>> +endobj +2696 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 530.521 305.022 541.103] +/A << /S /GoTo /D (section.2.2) >> +>> +endobj +2697 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 515.616 173.022 524.387] +/A << /S /GoTo /D (section.2.3) >> +>> +endobj +2698 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 497.197 204.448 507.672] +/A << /S /GoTo /D (section.2.4) >> +>> +endobj +2699 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 482.185 216.66 490.956] +/A << /S /GoTo /D (subsection.2.4.1) >> +>> +endobj +2700 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 463.658 204.403 474.034] +/A << /S /GoTo /D (subsection.2.4.2) >> +>> +endobj +2701 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 436.698 155.069 447.226] +/A << /S /GoTo /D (chapter.3) >> +>> +endobj +2702 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 419.982 187.018 430.358] +/A << /S /GoTo /D (section.3.1) >> +>> +endobj +2703 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 403.374 189.475 413.642] +/A << /S /GoTo /D (section.3.2) >> +>> +endobj +2704 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 376.306 143.287 386.834] +/A << /S /GoTo /D (chapter.4) >> +>> +endobj +2705 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 359.59 225.707 369.966] +/A << /S /GoTo /D (section.4.1) >> +>> +endobj +2706 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 342.874 191.94 353.456] +/A << /S /GoTo /D (section.4.2) >> +>> +endobj +2707 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 326.158 310.025 336.741] +/A << /S /GoTo /D (subsection.4.2.1) >> +>> +endobj +2708 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 309.443 329.939 320.025] +/A << /S /GoTo /D (subsection.4.2.2) >> +>> +endobj +2709 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 292.727 291.384 303.309] +/A << /S /GoTo /D (subsection.4.2.3) >> +>> +endobj +2710 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 276.119 311.298 286.594] +/A << /S /GoTo /D (subsection.4.2.4) >> +>> +endobj +2711 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 259.296 381.952 269.878] +/A << /S /GoTo /D (subsection.4.2.5) >> +>> +endobj +2712 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 234.218 136.5 242.671] +/A << /S /GoTo /D (chapter.5) >> +>> +endobj +2713 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 217.431 135.642 225.995] +/A << /S /GoTo /D (section.5.1) >> +>> +endobj +2714 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 190.542 166.895 199.187] +/A << /S /GoTo /D (chapter.6) >> +>> +endobj +2715 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 173.754 164.181 182.525] +/A << /S /GoTo /D (section.6.1) >> +>> +endobj +2716 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 146.866 120.567 155.511] +/A << /S /GoTo /D (chapter.7) >> +>> +endobj +2717 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 130.159 132.647 138.643] +/A << /S /GoTo /D (section.7.1) >> +>> +endobj +2718 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 103.189 178.471 111.835] +/A << /S /GoTo /D (chapter.8) >> +>> +endobj +2719 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 85.51 192.442 95.173] +/A << /S /GoTo /D (section.8.1) >> +>> +endobj +2720 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 67.983 212.5 78.251] +/A << /S /GoTo /D (subsection.8.1.1) >> +>> +endobj +2726 0 obj +<< +/D [2723 0 R /XYZ 70.866 771.024 null] +>> +endobj +2722 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +2770 0 obj +<< +/Length 1044 +/Filter /FlateDecode +>> +stream +x��]o�:�����<�۹LKZe�m�N��"F3i� ���! +$��Z�$�T��9�����c?ɛh4�`��@`�m\E�77T=!(�>��H�@�A���i���mQ��_C��>�T���q����[� �����0N!gT����v���Y͊GEg���3�C��Y��썂��&R5;�8���A|參ζ�e���o�V��� ^�L�fc]Ә!�$�`x@���X@I�.�H�I�5y(�=NW�I�L�e�rQ E��v=}��>��a7R�_G��Y�:k���5��>�iw�~��b�{\��Cֻ�9fg�Lp����&\���? +��ܬ�p;Cpg�s�7B�{�m?����UF��;/!�N����� ���Q�!�׃�p07�Be��1yY�)\:���!�W9���?��c�p�����ڕS�9��s/�=Faϐ��\~���xv��!��`�r�eV��5� u�?.���?ӿD�a?�I��@��� ;�O`�4��b�4~R�&�����q=���^U�Jyn$�ⶬ�b�T~R�&�E��8����>�c�ʥ0���e�S'��b7 �(َ��A�{���k�'��ײ����I��d͟���ƤQ���.'�̽�S�I��T\TN���k͔R�Z��eYg�Sb?�>�M%TLG�H�$ͣPl�w&٤��z��WI��r��'�lR cr��<z���n�]�fDAA�v;��IV��G����l���o���s��f�JӤ�Wʜ46Ұ*��:���˲&p��`�D�%N��>]�?��I�,b?}l����Y+bD�ׁU1n��M�'Ŏj���7��t��w��,x�\�b�$��lZ�Y�ŋd3�����i�e���U��_đ�Õܝ�����a �t�f&R\IJdK�����A����[s%�Ng_��3O��v=C����ȼ +�}�����uIl�g-o��H�6!���#��mo�E��de�>�j�,���p�s�;� �8������Z +endstream +endobj +2769 0 obj +<< +/Type /Page +/Contents 2770 0 R +/Resources 2768 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2679 0 R +/Annots [ 2721 0 R 2727 0 R 2728 0 R 2729 0 R 2730 0 R 2731 0 R 2732 0 R 2733 0 R 2734 0 R 2735 0 R 2736 0 R 2737 0 R 2738 0 R 2739 0 R 2740 0 R 2741 0 R 2742 0 R 2743 0 R 2744 0 R 2745 0 R 2746 0 R 2747 0 R 2748 0 R 2749 0 R 2750 0 R 2751 0 R 2752 0 R 2753 0 R 2754 0 R 2755 0 R 2756 0 R 2757 0 R 2758 0 R 2759 0 R 2760 0 R 2761 0 R 2762 0 R 2763 0 R 2764 0 R 2765 0 R 2766 0 R ] +>> +endobj +2721 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 758.989 182.472 768.652] +/A << /S /GoTo /D (section.8.2) >> +>> +endobj +2727 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 741.439 212.5 751.708] +/A << /S /GoTo /D (subsection.8.2.1) >> +>> +endobj +2728 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 726.405 150.095 735.176] +/A << /S /GoTo /D (section.8.3) >> +>> +endobj +2729 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 707.963 212.5 718.231] +/A << /S /GoTo /D (subsection.8.3.1) >> +>> +endobj +2730 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 692.036 181.486 701.699] +/A << /S /GoTo /D (section.8.4) >> +>> +endobj +2731 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 674.487 212.5 684.755] +/A << /S /GoTo /D (subsection.8.4.1) >> +>> +endobj +2732 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 659.452 166.53 668.223] +/A << /S /GoTo /D (section.8.5) >> +>> +endobj +2733 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 641.01 212.5 651.279] +/A << /S /GoTo /D (subsection.8.5.1) >> +>> +endobj +2734 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 625.084 184.463 634.747] +/A << /S /GoTo /D (section.8.6) >> +>> +endobj +2735 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 607.534 212.5 617.802] +/A << /S /GoTo /D (subsection.8.6.1) >> +>> +endobj +2736 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 591.607 222.82 601.271] +/A << /S /GoTo /D (section.8.7) >> +>> +endobj +2737 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 574.058 212.5 584.326] +/A << /S /GoTo /D (subsection.8.7.1) >> +>> +endobj +2738 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 558.131 206.394 567.794] +/A << /S /GoTo /D (section.8.8) >> +>> +endobj +2739 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 540.582 212.5 550.85] +/A << /S /GoTo /D (subsection.8.8.1) >> +>> +endobj +2740 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 525.547 165.526 534.318] +/A << /S /GoTo /D (section.8.9) >> +>> +endobj +2741 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 507.105 212.5 517.374] +/A << /S /GoTo /D (subsection.8.9.1) >> +>> +endobj +2742 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 491.179 185.476 500.842] +/A << /S /GoTo /D (section.8.10) >> +>> +endobj +2743 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 473.629 217.485 483.897] +/A << /S /GoTo /D (subsection.8.10.1) >> +>> +endobj +2744 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 457.702 218.346 467.365] +/A << /S /GoTo /D (section.8.11) >> +>> +endobj +2745 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 440.153 217.485 450.421] +/A << /S /GoTo /D (subsection.8.11.1) >> +>> +endobj +2746 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 424.226 208.384 433.889] +/A << /S /GoTo /D (section.8.12) >> +>> +endobj +2747 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 406.677 217.485 416.945] +/A << /S /GoTo /D (subsection.8.12.1) >> +>> +endobj +2748 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 390.75 188.955 400.413] +/A << /S /GoTo /D (section.8.13) >> +>> +endobj +2749 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 373.2 217.485 383.469] +/A << /S /GoTo /D (subsection.8.13.1) >> +>> +endobj +2750 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 357.274 231.813 366.937] +/A << /S /GoTo /D (section.8.14) >> +>> +endobj +2751 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 339.724 217.485 349.992] +/A << /S /GoTo /D (subsection.8.14.1) >> +>> +endobj +2752 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 323.797 256.721 333.46] +/A << /S /GoTo /D (section.8.15) >> +>> +endobj +2753 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 306.248 217.485 316.516] +/A << /S /GoTo /D (subsection.8.15.1) >> +>> +endobj +2754 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 291.213 148.598 299.984] +/A << /S /GoTo /D (section.8.16) >> +>> +endobj +2755 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 272.771 217.485 283.04] +/A << /S /GoTo /D (subsection.8.16.1) >> +>> +endobj +2756 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 247.474 208.866 256.119] +/A << /S /GoTo /D (chapter.9) >> +>> +endobj +2757 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 229.772 222.838 239.435] +/A << /S /GoTo /D (section.9.1) >> +>> +endobj +2758 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 212.222 212.5 222.491] +/A << /S /GoTo /D (subsection.9.1.1) >> +>> +endobj +2759 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 186.925 167.523 195.57] +/A << /S /GoTo /D (chapter.10) >> +>> +endobj +2760 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 170.115 229.545 178.886] +/A << /S /GoTo /D (section.10.1) >> +>> +endobj +2761 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 151.673 217.485 161.942] +/A << /S /GoTo /D (subsection.10.1.1) >> +>> +endobj +2762 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 136.639 234.305 145.203] +/A << /S /GoTo /D (subsection.10.1.2) >> +>> +endobj +2763 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.089 328.332 128.672] +/A << /S /GoTo /D (subsubsection.10.1.2.1) >> +>> +endobj +2764 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.459 254.334 111.933] +/A << /S /GoTo /D (subsubsection.10.1.2.2) >> +>> +endobj +2765 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 86.424 230.047 95.195] +/A << /S /GoTo /D (section.10.2) >> +>> +endobj +2766 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 67.983 217.485 78.251] +/A << /S /GoTo /D (subsection.10.2.1) >> +>> +endobj +2768 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +2815 0 obj +<< +/Length 903 +/Filter /FlateDecode +>> +stream +x��Ko�0��� +/��o;�Q�����k�(�@3������~ -��pgR�/P�c}�>�`����ƋAcD�u�[�sq�52�W���I����>Ê���yI�t�7���Ο-�HE�`���`��������{7�`����� ɱ�؟�_���_�3o��t��[ݡ�`M%ҊbR���0���6��2��$K�G�Y���i�N�}�.��z�7���T�|wT{���/�4Dx�n��rG�b�9�7�p�M�5�(��4̳yј��h��<H�.'�s<%�c�̃y<�'�/�����Dj�0+�$Mr�N���D��hO +� ����L��t�c�{ʳ4�w)����"Kq��d��n�QY��<N�x�R�,���-c�'�>�j@_�yX�VG�hS��:��D�g��#v~�HpgUM�X��e�&�҈�]X�V5Zzzů�2&�� W�=&`8��x�����b����P���1)��(=K5��� \Jh�:^4�K M���R��T�K pjN��� 4%��pOy0E���B3�h� �D���uE� �$`K��[A�MYFAb�����I6�x���lk��I�ч:��wD�/eA�4��%:�r����I q� �8�r��I����BQ��F� ��2K�ڣ�|�9_���⡝�5 ��|���*Y=&uc}&��3]XY�x�{`����_N�� �/� ��0<������d�V�^J@V�+��R�:+�:ƞu`3����0��u��.�W�N��-YǸ�.��e �Vgc�ꬣ�Y�ߣ5�I��y�H{<A���Χb'5�]ց6��-f�*X�X��T�i%�����Īجn�u���0��Š|��c��s/㢏����=����R +endstream +endobj +2814 0 obj +<< +/Type /Page +/Contents 2815 0 R +/Resources 2813 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2679 0 R +/Annots [ 2767 0 R 2771 0 R 2772 0 R 2773 0 R 2774 0 R 2775 0 R 2776 0 R 2777 0 R 2778 0 R 2779 0 R 2780 0 R 2781 0 R 2782 0 R 2783 0 R 2784 0 R 2785 0 R 2786 0 R 2787 0 R 2788 0 R 2789 0 R 2790 0 R 2791 0 R 2792 0 R 2793 0 R 2794 0 R 2795 0 R 2796 0 R 2797 0 R 2798 0 R 2799 0 R 2800 0 R 2801 0 R 2802 0 R 2803 0 R 2804 0 R 2805 0 R 2806 0 R 2807 0 R 2808 0 R 2809 0 R 2810 0 R 2811 0 R ] +>> +endobj +2767 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 759.881 234.305 768.446] +/A << /S /GoTo /D (subsection.10.2.2) >> +>> +endobj +2771 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.236 328.332 751.818] +/A << /S /GoTo /D (subsubsection.10.2.2.1) >> +>> +endobj +2772 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 724.509 254.334 734.984] +/A << /S /GoTo /D (subsubsection.10.2.2.2) >> +>> +endobj +2773 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 707.675 277.639 718.15] +/A << /S /GoTo /D (section.10.3) >> +>> +endobj +2774 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 690.841 217.485 701.11] +/A << /S /GoTo /D (subsection.10.3.1) >> +>> +endobj +2775 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 675.711 234.305 684.276] +/A << /S /GoTo /D (subsection.10.3.2) >> +>> +endobj +2776 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.173 285.85 667.648] +/A << /S /GoTo /D (subsubsection.10.3.2.1) >> +>> +endobj +2777 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 640.232 257.929 650.814] +/A << /S /GoTo /D (subsubsection.10.3.2.2) >> +>> +endobj +2778 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.398 228.807 633.98] +/A << /S /GoTo /D (subsubsection.10.3.2.3) >> +>> +endobj +2779 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 606.671 278.142 617.146] +/A << /S /GoTo /D (section.10.4) >> +>> +endobj +2780 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 589.837 217.485 600.105] +/A << /S /GoTo /D (subsection.10.4.1) >> +>> +endobj +2781 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 574.707 234.305 583.271] +/A << /S /GoTo /D (subsection.10.4.2) >> +>> +endobj +2782 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 556.169 285.85 566.644] +/A << /S /GoTo /D (subsubsection.10.4.2.1) >> +>> +endobj +2783 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 539.227 257.929 549.81] +/A << /S /GoTo /D (subsubsection.10.4.2.2) >> +>> +endobj +2784 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.393 228.807 532.976] +/A << /S /GoTo /D (subsubsection.10.4.2.3) >> +>> +endobj +2785 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 506.478 227.07 516.142] +/A << /S /GoTo /D (section.10.5) >> +>> +endobj +2786 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 488.833 217.485 499.101] +/A << /S /GoTo /D (subsection.10.5.1) >> +>> +endobj +2787 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 473.703 234.305 482.267] +/A << /S /GoTo /D (subsection.10.5.2) >> +>> +endobj +2788 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 455.165 240.266 465.64] +/A << /S /GoTo /D (subsubsection.10.5.2.1) >> +>> +endobj +2789 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 438.331 235.281 448.806] +/A << /S /GoTo /D (subsubsection.10.5.2.2) >> +>> +endobj +2790 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 422.308 227.572 431.972] +/A << /S /GoTo /D (section.10.6) >> +>> +endobj +2791 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 404.663 217.485 414.931] +/A << /S /GoTo /D (subsection.10.6.1) >> +>> +endobj +2792 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 389.533 234.305 398.097] +/A << /S /GoTo /D (subsection.10.6.2) >> +>> +endobj +2793 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 370.995 240.266 381.469] +/A << /S /GoTo /D (subsubsection.10.6.2.1) >> +>> +endobj +2794 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.161 235.281 364.635] +/A << /S /GoTo /D (subsubsection.10.6.2.2) >> +>> +endobj +2795 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 337.327 255.977 347.801] +/A << /S /GoTo /D (section.10.7) >> +>> +endobj +2796 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 320.493 217.485 330.761] +/A << /S /GoTo /D (subsection.10.7.1) >> +>> +endobj +2797 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 305.362 234.305 313.927] +/A << /S /GoTo /D (subsection.10.7.2) >> +>> +endobj +2798 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 286.717 291.104 297.299] +/A << /S /GoTo /D (subsubsection.10.7.2.1) >> +>> +endobj +2799 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 269.883 319.913 280.465] +/A << /S /GoTo /D (subsubsection.10.7.2.2) >> +>> +endobj +2800 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.049 299.075 263.631] +/A << /S /GoTo /D (subsubsection.10.7.2.3) >> +>> +endobj +2801 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.215 301.066 246.797] +/A << /S /GoTo /D (subsubsection.10.7.2.4) >> +>> +endobj +2802 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 219.489 256.479 229.963] +/A << /S /GoTo /D (section.10.8) >> +>> +endobj +2803 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 202.655 217.485 212.923] +/A << /S /GoTo /D (subsection.10.8.1) >> +>> +endobj +2804 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 187.524 234.305 196.089] +/A << /S /GoTo /D (subsection.10.8.2) >> +>> +endobj +2805 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.879 291.104 179.461] +/A << /S /GoTo /D (subsubsection.10.8.2.1) >> +>> +endobj +2806 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.045 319.913 162.627] +/A << /S /GoTo /D (subsubsection.10.8.2.2) >> +>> +endobj +2807 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.211 299.075 145.793] +/A << /S /GoTo /D (subsubsection.10.8.2.3) >> +>> +endobj +2808 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 301.066 128.959] +/A << /S /GoTo /D (subsubsection.10.8.2.4) >> +>> +endobj +2809 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 101.651 253.484 112.125] +/A << /S /GoTo /D (section.10.9) >> +>> +endobj +2810 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 84.817 217.485 95.085] +/A << /S /GoTo /D (subsection.10.9.1) >> +>> +endobj +2811 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 69.686 234.305 78.251] +/A << /S /GoTo /D (subsection.10.9.2) >> +>> +endobj +2813 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +2860 0 obj +<< +/Length 922 +/Filter /FlateDecode +>> +stream +x��Mo�0��� +���6�Mk�V]�eܺ +� I#����?'��M��AS��� �<�<�k����C`8�>Eއc*���Dc TB�(0�F�ڟ>7љwy?=���~�L)��{����^w���[��)���3�����몟|�찿 _ 3�R@ +Q=�` �A�H另E��dO�2���L�$ϳ��H�b����uOQ�àǹ������4����`��鶇T���D1��0��,��F��5�gP*�� 2Y1-�Y +�U��YR}�'�"?� m�"�G�]W�CaB`����5�9)�^*����Ӈ9�u���{A��GM����c:\P�Xg���$-M��th��R���|ߕq0�h�r�e�;ٰP���sͫ�Y����IQ¡U�Qz�y��R v��ਉ�K5h�m��oS͚/L����Q4*���kW�K���&���v��&�N�m*�8�nR$�ʥ˰�� +����Җ)����zh[MS��v��&�Nӻ@k�4]iz~_�J����������mW&3����vR�����w;�Qk��]�5�9}QB;.��S@��Z�5�����s�l�͝����X;{����|e�bL�Tu�-tn-u�(u��\��I�xN��ԅ�z;�Q�ԏ��#_�<����ߣ��??$�螅�"jr�X����">?��?��\�O�/_סq���Fh=35�*��K�����xgTK� +C���ǒ�{J�Q�l� �ʉv��&�n���&�˷w��,�g�4.��x����n�u�n�$]Z���� kxf��Y0@�,r@�U���0��]Xoӫ�\B]�[��Y��) ���_�dz��9�-���9I�$�uYz���e�|B��y��'������ѡ +endstream +endobj +2859 0 obj +<< +/Type /Page +/Contents 2860 0 R +/Resources 2858 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2679 0 R +/Annots [ 2812 0 R 2816 0 R 2817 0 R 2818 0 R 2819 0 R 2820 0 R 2821 0 R 2822 0 R 2823 0 R 2824 0 R 2825 0 R 2826 0 R 2827 0 R 2828 0 R 2829 0 R 2830 0 R 2831 0 R 2832 0 R 2833 0 R 2834 0 R 2835 0 R 2836 0 R 2837 0 R 2838 0 R 2839 0 R 2840 0 R 2841 0 R 2842 0 R 2843 0 R 2844 0 R 2845 0 R 2846 0 R 2847 0 R 2848 0 R 2849 0 R 2850 0 R 2851 0 R 2852 0 R 2853 0 R 2854 0 R 2855 0 R 2856 0 R ] +>> +endobj +2812 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.07 306.051 768.652] +/A << /S /GoTo /D (subsubsection.10.9.2.1) >> +>> +endobj +2816 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.236 326.494 751.818] +/A << /S /GoTo /D (subsubsection.10.9.2.2) >> +>> +endobj +2817 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 724.509 258.972 734.984] +/A << /S /GoTo /D (section.10.10) >> +>> +endobj +2818 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 707.675 222.47 717.944] +/A << /S /GoTo /D (subsection.10.10.1) >> +>> +endobj +2819 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 692.545 239.291 701.11] +/A << /S /GoTo /D (subsection.10.10.2) >> +>> +endobj +2820 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 673.9 311.036 684.482] +/A << /S /GoTo /D (subsubsection.10.10.2.1) >> +>> +endobj +2821 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.066 331.479 667.648] +/A << /S /GoTo /D (subsubsection.10.10.2.2) >> +>> +endobj +2822 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 641.151 261.464 650.814] +/A << /S /GoTo /D (section.10.11) >> +>> +endobj +2823 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 623.505 222.47 633.774] +/A << /S /GoTo /D (subsection.10.11.1) >> +>> +endobj +2824 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 608.375 239.291 616.939] +/A << /S /GoTo /D (subsection.10.11.2) >> +>> +endobj +2825 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 589.837 269.675 600.312] +/A << /S /GoTo /D (subsubsection.10.11.2.1) >> +>> +endobj +2826 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 573.815 261.966 583.478] +/A << /S /GoTo /D (section.10.12) >> +>> +endobj +2827 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 556.169 222.47 566.437] +/A << /S /GoTo /D (subsection.10.12.1) >> +>> +endobj +2828 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 541.039 239.291 549.603] +/A << /S /GoTo /D (subsection.10.12.2) >> +>> +endobj +2829 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.501 269.675 532.976] +/A << /S /GoTo /D (subsubsection.10.12.2.1) >> +>> +endobj +2830 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 507.371 197.042 516.142] +/A << /S /GoTo /D (section.10.13) >> +>> +endobj +2831 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 488.833 222.47 499.101] +/A << /S /GoTo /D (subsection.10.13.1) >> +>> +endobj +2832 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 473.703 239.291 482.267] +/A << /S /GoTo /D (subsection.10.13.2) >> +>> +endobj +2833 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 455.057 230.295 465.64] +/A << /S /GoTo /D (subsubsection.10.13.2.1) >> +>> +endobj +2834 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 440.035 197.544 448.806] +/A << /S /GoTo /D (section.10.14) >> +>> +endobj +2835 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 421.497 222.47 431.765] +/A << /S /GoTo /D (subsection.10.14.1) >> +>> +endobj +2836 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 406.367 239.291 414.931] +/A << /S /GoTo /D (subsection.10.14.2) >> +>> +endobj +2837 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.721 230.295 398.303] +/A << /S /GoTo /D (subsubsection.10.14.2.1) >> +>> +endobj +2838 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 372.698 202.287 381.469] +/A << /S /GoTo /D (section.10.15) >> +>> +endobj +2839 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 354.161 222.47 364.429] +/A << /S /GoTo /D (subsection.10.15.1) >> +>> +endobj +2840 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 339.03 239.291 347.595] +/A << /S /GoTo /D (subsection.10.15.2) >> +>> +endobj +2841 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.493 210.632 330.967] +/A << /S /GoTo /D (subsubsection.10.15.2.1) >> +>> +endobj +2842 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 305.362 202.789 314.133] +/A << /S /GoTo /D (section.10.16) >> +>> +endobj +2843 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 286.825 222.47 297.093] +/A << /S /GoTo /D (subsection.10.16.1) >> +>> +endobj +2844 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 269.991 276.904 280.259] +/A << /S /GoTo /D (subsection.10.16.2) >> +>> +endobj +2845 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.968 278.614 263.631] +/A << /S /GoTo /D (subsubsection.10.16.2.1) >> +>> +endobj +2846 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 238.026 239.291 246.591] +/A << /S /GoTo /D (subsection.10.16.3) >> +>> +endobj +2847 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.489 210.632 229.963] +/A << /S /GoTo /D (subsubsection.10.16.3.1) >> +>> +endobj +2848 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 203.466 221.861 213.129] +/A << /S /GoTo /D (section.10.17) >> +>> +endobj +2849 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 185.821 222.47 196.089] +/A << /S /GoTo /D (subsection.10.17.1) >> +>> +endobj +2850 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 170.69 239.291 179.255] +/A << /S /GoTo /D (subsection.10.17.2) >> +>> +endobj +2851 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.045 269.675 162.627] +/A << /S /GoTo /D (subsubsection.10.17.2.1) >> +>> +endobj +2852 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.211 269.675 145.793] +/A << /S /GoTo /D (subsubsection.10.17.2.2) >> +>> +endobj +2853 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 269.675 128.959] +/A << /S /GoTo /D (subsubsection.10.17.2.3) >> +>> +endobj +2854 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.543 271.665 112.125] +/A << /S /GoTo /D (subsubsection.10.17.2.4) >> +>> +endobj +2855 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 84.709 271.665 95.291] +/A << /S /GoTo /D (subsubsection.10.17.2.5) >> +>> +endobj +2856 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 67.875 271.665 78.457] +/A << /S /GoTo /D (subsubsection.10.17.2.6) >> +>> +endobj +2858 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +2905 0 obj +<< +/Length 874 +/Filter /FlateDecode +>> +stream +x��[o�0���)��|��N[��u�uUD�K� i�Ю�~�$�-̥*`$D�c~��ǖ��/~b0�F����k?�rF%PPAA�p�!#HM���?��C����������@"���R)����4��B`h?��V�qq�0N!g�nO�����K��d�����3D���P!{�!�;�Ī�%R�7y:y���0yo˷��Sn]��E��L�ŗ��.�Z�v����E4�Շl�� ���P�����5Ҡ�T���q���)������6���]1N�w������%�Ѹ�{�����/�翙��V���� j���K�=���[�{���+�,7��dh�M,^P�Y�7��� +8s7i���s�=�U�&^�,nZ��ʭʕk���� �� ����s"��8{eo��GM�+�>�%�j�:�gS��&�Rz�o�R���|k5�wE��;� �����O{#]��\�-��,3��!Ĉ�OMF8����"�v0 +g� ��'�tdkXs�"�1��a�V�2�O���kX3����X���ڶ�f>�7��a}<���#�W����h0��(1���"Mo�B'�7V�5������GM�}$�m[$��Hj�V�������,�X���"�td�:�N�����GM���m�o��l�`��rw3)T�����ƻp�`���Nж�|m��`�8�uf-��֘<���ȇ��g>^����1+�h���'#"������S��d�'��z��$E�(��y*ɯ6�p����.h�k��|���fa�Z���#���]��.6-H�ڄvX�X����l��j�q(�˂�IL6(�蹞�<��8'��id�h�<y���f�� +endstream +endobj +2904 0 obj +<< +/Type /Page +/Contents 2905 0 R +/Resources 2903 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2906 0 R +/Annots [ 2857 0 R 2861 0 R 2862 0 R 2863 0 R 2864 0 R 2865 0 R 2866 0 R 2867 0 R 2868 0 R 2869 0 R 2870 0 R 2871 0 R 2872 0 R 2873 0 R 2874 0 R 2875 0 R 2876 0 R 2877 0 R 2878 0 R 2879 0 R 2880 0 R 2881 0 R 2882 0 R 2883 0 R 2884 0 R 2885 0 R 2886 0 R 2887 0 R 2888 0 R 2889 0 R 2890 0 R 2891 0 R 2892 0 R 2893 0 R 2894 0 R 2895 0 R 2896 0 R 2897 0 R 2898 0 R 2899 0 R 2900 0 R 2901 0 R ] +>> +endobj +2857 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 758.989 222.363 768.652] +/A << /S /GoTo /D (section.10.18) >> +>> +endobj +2861 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 741.343 222.47 751.612] +/A << /S /GoTo /D (subsection.10.18.1) >> +>> +endobj +2862 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 724.402 224.353 734.984] +/A << /S /GoTo /D (section.10.19) >> +>> +endobj +2863 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 707.675 222.47 717.944] +/A << /S /GoTo /D (subsection.10.19.1) >> +>> +endobj +2864 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 690.734 224.855 701.316] +/A << /S /GoTo /D (section.10.20) >> +>> +endobj +2865 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 674.007 222.47 684.276] +/A << /S /GoTo /D (subsection.10.20.1) >> +>> +endobj +2866 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 657.985 248.006 667.648] +/A << /S /GoTo /D (section.10.21) >> +>> +endobj +2867 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 640.339 222.47 650.608] +/A << /S /GoTo /D (subsection.10.21.1) >> +>> +endobj +2868 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 624.317 248.508 633.98] +/A << /S /GoTo /D (section.10.22) >> +>> +endobj +2869 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 606.671 222.47 616.939] +/A << /S /GoTo /D (subsection.10.22.1) >> +>> +endobj +2870 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 589.73 263.948 600.312] +/A << /S /GoTo /D (section.10.23) >> +>> +endobj +2871 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 573.003 222.47 583.271] +/A << /S /GoTo /D (subsection.10.23.1) >> +>> +endobj +2872 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 557.873 239.291 566.437] +/A << /S /GoTo /D (subsection.10.23.2) >> +>> +endobj +2873 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 539.227 289.607 549.81] +/A << /S /GoTo /D (subsubsection.10.23.2.1) >> +>> +endobj +2874 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.393 333.954 532.976] +/A << /S /GoTo /D (subsubsection.10.23.2.2) >> +>> +endobj +2875 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.559 329.39 516.142] +/A << /S /GoTo /D (subsubsection.10.23.2.3) >> +>> +endobj +2876 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 488.725 264.45 499.308] +/A << /S /GoTo /D (section.10.24) >> +>> +endobj +2877 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 471.999 222.47 482.267] +/A << /S /GoTo /D (subsection.10.24.1) >> +>> +endobj +2878 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 456.869 239.291 465.433] +/A << /S /GoTo /D (subsection.10.24.2) >> +>> +endobj +2879 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 438.223 289.607 448.806] +/A << /S /GoTo /D (subsubsection.10.24.2.1) >> +>> +endobj +2880 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.389 329.39 431.972] +/A << /S /GoTo /D (subsubsection.10.24.2.2) >> +>> +endobj +2881 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 404.555 253.305 415.138] +/A << /S /GoTo /D (section.10.25) >> +>> +endobj +2882 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 387.829 222.47 398.097] +/A << /S /GoTo /D (subsection.10.25.1) >> +>> +endobj +2883 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 372.698 239.291 381.263] +/A << /S /GoTo /D (subsection.10.25.2) >> +>> +endobj +2884 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.053 261.516 364.635] +/A << /S /GoTo /D (subsubsection.10.25.2.1) >> +>> +endobj +2885 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 337.219 253.807 347.801] +/A << /S /GoTo /D (section.10.26) >> +>> +endobj +2886 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 320.493 222.47 330.761] +/A << /S /GoTo /D (subsection.10.26.1) >> +>> +endobj +2887 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 305.362 239.291 313.927] +/A << /S /GoTo /D (subsection.10.26.2) >> +>> +endobj +2888 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 286.717 261.516 297.299] +/A << /S /GoTo /D (subsubsection.10.26.2.1) >> +>> +endobj +2889 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 269.883 280.392 280.465] +/A << /S /GoTo /D (section.10.27) >> +>> +endobj +2890 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 253.157 222.47 263.425] +/A << /S /GoTo /D (subsection.10.27.1) >> +>> +endobj +2891 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 238.026 239.291 246.591] +/A << /S /GoTo /D (subsection.10.27.2) >> +>> +endobj +2892 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.381 288.603 229.963] +/A << /S /GoTo /D (subsubsection.10.27.2.1) >> +>> +endobj +2893 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.547 332.949 213.129] +/A << /S /GoTo /D (subsubsection.10.27.2.2) >> +>> +endobj +2894 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.713 355.293 196.295] +/A << /S /GoTo /D (subsubsection.10.27.2.3) >> +>> +endobj +2895 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.879 328.386 179.461] +/A << /S /GoTo /D (subsubsection.10.27.2.4) >> +>> +endobj +2896 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 152.045 280.894 162.627] +/A << /S /GoTo /D (section.10.28) >> +>> +endobj +2897 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 135.319 222.47 145.587] +/A << /S /GoTo /D (subsection.10.28.1) >> +>> +endobj +2898 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 120.188 239.291 128.753] +/A << /S /GoTo /D (subsection.10.28.2) >> +>> +endobj +2899 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.543 288.603 112.125] +/A << /S /GoTo /D (subsubsection.10.28.2.1) >> +>> +endobj +2900 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 84.709 332.949 95.291] +/A << /S /GoTo /D (subsubsection.10.28.2.2) >> +>> +endobj +2901 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 67.875 355.293 78.457] +/A << /S /GoTo /D (subsubsection.10.28.2.3) >> +>> +endobj +2903 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +2951 0 obj +<< +/Length 911 +/Filter /FlateDecode +>> +stream +x��MS�@�����=��~\;��xj-7u2!��$�[�}7@��YeG� +{`��l�yy�IN�_1�T=&���ާa��J����� �*!�� +�cp=d���y�˰w���c��۔��0��z����k��A���x�0N!gԮO���W/�)'�/V�!���`� W +H�!j��$ +��"U4-�xj�E}�#��L9�gIy?O�qOL��Est�x����i�.������B�nK�r�Ŗ��"MV����A�`eO�� +�<������.]>y�Yj��s��3��S��Fs�?��= ��O]� ���/�~6uba�ۭ*-��<������x��,p�Ś�R=���%�"��L^']��h7�R���|�4�e�)��/�5E]�����"x�Y�QSD�*�|{Q[�AԻ@�u�7���x���dצ�=+5�G�g��fܼ�qҙp�.B +��L8 ��%�Y2�M���(��8�B�x�\2}<��o�i�~��.֡V���VӧZ����8s�k��!�g�]��[�~�Bhz<aU��eA����X���K�,�w{�N��N�?��eI��zׇJ�+X�u�VPLY`�W��)�V�+(�]����>��k��,���%ӸrA�Z���3+����I�mC��}�|h(��!�o���=,S��!B��p��:��]�u�q\���E��[�/��h̓�Q��K�d'����i{��A;Has��!C��p��:��·|Hg�h����b:�Mlʲ(�^@�%N�8G�h����N��7:��O>�e>q]�v�(ݕ���@z`N�맚3�f:������w����q�[{��-lR��6f���.��#.��ܔI�UG}�����M;��8�GY�R��)�M�� +endstream +endobj +2950 0 obj +<< +/Type /Page +/Contents 2951 0 R +/Resources 2949 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2906 0 R +/Annots [ 2902 0 R 2907 0 R 2908 0 R 2909 0 R 2910 0 R 2911 0 R 2912 0 R 2913 0 R 2914 0 R 2915 0 R 2916 0 R 2917 0 R 2918 0 R 2919 0 R 2920 0 R 2921 0 R 2922 0 R 2923 0 R 2924 0 R 2925 0 R 2926 0 R 2927 0 R 2928 0 R 2929 0 R 2930 0 R 2931 0 R 2932 0 R 2933 0 R 2934 0 R 2935 0 R 2936 0 R 2937 0 R 2938 0 R 2939 0 R 2940 0 R 2941 0 R 2942 0 R 2943 0 R 2944 0 R 2945 0 R 2946 0 R 2947 0 R ] +>> +endobj +2902 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.07 328.386 768.652] +/A << /S /GoTo /D (subsubsection.10.28.2.4) >> +>> +endobj +2907 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 741.343 222.766 751.818] +/A << /S /GoTo /D (section.10.29) >> +>> +endobj +2908 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 724.509 222.47 734.778] +/A << /S /GoTo /D (subsection.10.29.1) >> +>> +endobj +2909 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 709.379 239.291 717.944] +/A << /S /GoTo /D (subsection.10.29.2) >> +>> +endobj +2910 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.841 231.291 701.316] +/A << /S /GoTo /D (subsubsection.10.29.2.1) >> +>> +endobj +2911 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 674.007 223.268 684.482] +/A << /S /GoTo /D (section.10.30) >> +>> +endobj +2912 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 657.173 222.47 667.442] +/A << /S /GoTo /D (subsection.10.30.1) >> +>> +endobj +2913 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 642.043 239.291 650.608] +/A << /S /GoTo /D (subsection.10.30.2) >> +>> +endobj +2914 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.505 231.291 633.98] +/A << /S /GoTo /D (subsubsection.10.30.2.1) >> +>> +endobj +2915 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 606.671 242.519 617.146] +/A << /S /GoTo /D (section.10.31) >> +>> +endobj +2916 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 589.837 222.47 600.105] +/A << /S /GoTo /D (subsection.10.31.1) >> +>> +endobj +2917 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 573.003 243.021 583.478] +/A << /S /GoTo /D (section.10.32) >> +>> +endobj +2918 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 556.169 222.47 566.437] +/A << /S /GoTo /D (subsection.10.32.1) >> +>> +endobj +2919 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 539.227 254.48 549.81] +/A << /S /GoTo /D (section.10.33) >> +>> +endobj +2920 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 522.501 222.47 532.769] +/A << /S /GoTo /D (subsection.10.33.1) >> +>> +endobj +2921 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 507.371 239.291 515.935] +/A << /S /GoTo /D (subsection.10.33.2) >> +>> +endobj +2922 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.725 267.675 499.308] +/A << /S /GoTo /D (subsubsection.10.33.2.1) >> +>> +endobj +2923 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 471.891 254.982 482.474] +/A << /S /GoTo /D (section.10.34) >> +>> +endobj +2924 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 455.165 222.47 465.433] +/A << /S /GoTo /D (subsection.10.34.1) >> +>> +endobj +2925 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 440.035 239.291 448.599] +/A << /S /GoTo /D (subsection.10.34.2) >> +>> +endobj +2926 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.389 267.675 431.972] +/A << /S /GoTo /D (subsubsection.10.34.2.1) >> +>> +endobj +2927 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 404.555 283.387 415.138] +/A << /S /GoTo /D (section.10.35) >> +>> +endobj +2928 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 387.829 222.47 398.097] +/A << /S /GoTo /D (subsection.10.35.1) >> +>> +endobj +2929 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 372.698 239.291 381.263] +/A << /S /GoTo /D (subsection.10.35.2) >> +>> +endobj +2930 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.053 318.514 364.635] +/A << /S /GoTo /D (subsubsection.10.35.2.1) >> +>> +endobj +2931 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 337.219 347.322 347.801] +/A << /S /GoTo /D (subsubsection.10.35.2.2) >> +>> +endobj +2932 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.385 326.485 330.967] +/A << /S /GoTo /D (subsubsection.10.35.2.3) >> +>> +endobj +2933 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 303.551 328.475 314.133] +/A << /S /GoTo /D (subsubsection.10.35.2.4) >> +>> +endobj +2934 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 286.717 283.889 297.299] +/A << /S /GoTo /D (section.10.36) >> +>> +endobj +2935 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 269.991 222.47 280.259] +/A << /S /GoTo /D (subsection.10.36.1) >> +>> +endobj +2936 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 254.86 239.291 263.425] +/A << /S /GoTo /D (subsection.10.36.2) >> +>> +endobj +2937 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.215 318.514 246.797] +/A << /S /GoTo /D (subsubsection.10.36.2.1) >> +>> +endobj +2938 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.381 347.322 229.963] +/A << /S /GoTo /D (subsubsection.10.36.2.2) >> +>> +endobj +2939 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.547 326.485 213.129] +/A << /S /GoTo /D (subsubsection.10.36.2.3) >> +>> +endobj +2940 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.713 328.475 196.295] +/A << /S /GoTo /D (subsubsection.10.36.2.4) >> +>> +endobj +2941 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 168.879 280.894 179.461] +/A << /S /GoTo /D (section.10.37) >> +>> +endobj +2942 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 152.153 222.47 162.421] +/A << /S /GoTo /D (subsection.10.37.1) >> +>> +endobj +2943 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 137.022 239.291 145.587] +/A << /S /GoTo /D (subsection.10.37.2) >> +>> +endobj +2944 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 333.46 128.959] +/A << /S /GoTo /D (subsubsection.10.37.2.1) >> +>> +endobj +2945 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.543 313.529 112.125] +/A << /S /GoTo /D (subsubsection.10.37.2.2) >> +>> +endobj +2946 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 84.709 362.87 95.291] +/A << /S /GoTo /D (subsubsection.10.37.2.3) >> +>> +endobj +2947 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 67.875 333.461 78.457] +/A << /S /GoTo /D (subsubsection.10.37.2.4) >> +>> +endobj +2949 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +2996 0 obj +<< +/Length 1050 +/Filter /FlateDecode +>> +stream +x���K��J�ཿ�������6u�Teu���L�b��PW�8��F�$J��dn]L)0"��ts��7���1��#������ћ�T�L��2��� +&)� �,�<�8z7�7���` TB��T��d>���@j�}R����?�q +9���|�����~�i�Û�p���p0C�+������KH �D�`Os�dIt�&����6��"f�F�!�I�G�/�Y���9�~���.)�l��;�m"�:�*�~�N��������^�N{��^��2eU$���|��,�:k�"w&R���3(�P��w��/��ﳙY��1!E��L��m���Ds�{�KP�\��@�t�'�+��L[�t�T'U8�<��v[N��5Ɵ��WAҥ�"O��+�"Y�M��}�R^i�i)�J�^�u6�\X����-��*�Wۄ�)_.|n�r= iV7��k�����.��x���>QSD�͗�rRQ{�9S�vtYz�m�z��R���V�:�I7�J���R�7�n`�U�3�/��ᾕ��V�>v�3��h�q'����=��%p�ћ�R�?{��\��U�s'�y>�-���=����u6ƃV{�ƴ�p����9�����!���ɝ|���4����:���M��*&3W{��f(A���Ƕ(ۂ��9���ew��|�!jZ�稌�Z��&*��y�NmII�=I�~҃�J���W_\���ݡ���sdff�yeyځg�wi����9[F�+GK<�UGDk�������<�ԓC�q��f�������b�[lh��7��kK_�J��A������r<�5�GF����>���6ٹ��E�L<�����ͷ�hV�v�S���{��_�Ϸ(�c�T�.'}�D��G�Q9�{����ާ�ed�2���c�NE��8��m������l����cxP�q��s`���L=x�: �S�Z.�8�C���s��1z8����pb��G\BE|=Z?�$ ���u{b +��<!Ln��Y�+�o����������Ԟ�|���C� +endstream +endobj +2995 0 obj +<< +/Type /Page +/Contents 2996 0 R +/Resources 2994 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2906 0 R +/Annots [ 2948 0 R 2952 0 R 2953 0 R 2954 0 R 2955 0 R 2956 0 R 2957 0 R 2958 0 R 2959 0 R 2960 0 R 2961 0 R 2962 0 R 2963 0 R 2964 0 R 2965 0 R 2966 0 R 2967 0 R 2968 0 R 2969 0 R 2970 0 R 2971 0 R 2972 0 R 2973 0 R 2974 0 R 2975 0 R 2976 0 R 2977 0 R 2978 0 R 2979 0 R 2980 0 R 2981 0 R 2982 0 R 2983 0 R 2984 0 R 2985 0 R 2986 0 R 2987 0 R 2988 0 R 2989 0 R 2990 0 R 2991 0 R 2992 0 R ] +>> +endobj +2948 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.07 352.173 768.652] +/A << /S /GoTo /D (subsubsection.10.37.2.5) >> +>> +endobj +2952 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.236 278.641 751.818] +/A << /S /GoTo /D (subsubsection.10.37.2.6) >> +>> +endobj +2953 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 724.402 367.846 734.984] +/A << /S /GoTo /D (subsubsection.10.37.2.7) >> +>> +endobj +2954 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 707.568 281.396 718.15] +/A << /S /GoTo /D (section.10.38) >> +>> +endobj +2955 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 690.841 222.47 701.11] +/A << /S /GoTo /D (subsection.10.38.1) >> +>> +endobj +2956 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 675.711 239.291 684.276] +/A << /S /GoTo /D (subsection.10.38.2) >> +>> +endobj +2957 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.066 333.46 667.648] +/A << /S /GoTo /D (subsubsection.10.38.2.1) >> +>> +endobj +2958 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 640.232 313.529 650.814] +/A << /S /GoTo /D (subsubsection.10.38.2.2) >> +>> +endobj +2959 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.398 362.87 633.98] +/A << /S /GoTo /D (subsubsection.10.38.2.3) >> +>> +endobj +2960 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 606.564 333.461 617.146] +/A << /S /GoTo /D (subsubsection.10.38.2.4) >> +>> +endobj +2961 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 589.73 352.173 600.312] +/A << /S /GoTo /D (subsubsection.10.38.2.5) >> +>> +endobj +2962 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 572.896 278.641 583.478] +/A << /S /GoTo /D (subsubsection.10.38.2.6) >> +>> +endobj +2963 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 556.061 367.846 566.644] +/A << /S /GoTo /D (subsubsection.10.38.2.7) >> +>> +endobj +2964 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 539.227 264.45 549.81] +/A << /S /GoTo /D (section.10.39) >> +>> +endobj +2965 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 522.501 222.47 532.769] +/A << /S /GoTo /D (subsection.10.39.1) >> +>> +endobj +2966 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 505.559 264.952 516.142] +/A << /S /GoTo /D (section.10.40) >> +>> +endobj +2967 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 488.833 222.47 499.101] +/A << /S /GoTo /D (subsection.10.40.1) >> +>> +endobj +2968 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 473.703 203.767 482.474] +/A << /S /GoTo /D (section.10.41) >> +>> +endobj +2969 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 455.165 222.47 465.433] +/A << /S /GoTo /D (subsection.10.41.1) >> +>> +endobj +2970 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 440.035 239.291 448.599] +/A << /S /GoTo /D (subsection.10.41.2) >> +>> +endobj +2971 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.497 231.918 431.972] +/A << /S /GoTo /D (subsubsection.10.41.2.1) >> +>> +endobj +2972 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.555 266.312 415.138] +/A << /S /GoTo /D (subsubsection.10.41.2.2) >> +>> +endobj +2973 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.829 236.392 398.303] +/A << /S /GoTo /D (subsubsection.10.41.2.3) >> +>> +endobj +2974 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 370.995 235.63 381.469] +/A << /S /GoTo /D (subsubsection.10.41.2.4) >> +>> +endobj +2975 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.161 273.996 364.635] +/A << /S /GoTo /D (subsubsection.10.41.2.5) >> +>> +endobj +2976 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 337.327 253.204 347.801] +/A << /S /GoTo /D (subsubsection.10.41.2.6) >> +>> +endobj +2977 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.385 407.925 330.967] +/A << /S /GoTo /D (subsubsection.10.41.2.7) >> +>> +endobj +2978 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 303.551 341.046 314.133] +/A << /S /GoTo /D (subsubsection.10.41.2.8) >> +>> +endobj +2979 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 286.717 361.838 297.299] +/A << /S /GoTo /D (subsubsection.10.41.2.9) >> +>> +endobj +2980 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 269.883 287.007 280.465] +/A << /S /GoTo /D (subsubsection.10.41.2.10) >> +>> +endobj +2981 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.049 276.274 263.631] +/A << /S /GoTo /D (subsubsection.10.41.2.11) >> +>> +endobj +2982 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.215 297.524 246.797] +/A << /S /GoTo /D (subsubsection.10.41.2.12) >> +>> +endobj +2983 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.381 280.479 229.963] +/A << /S /GoTo /D (subsubsection.10.41.2.13) >> +>> +endobj +2984 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.547 296.52 213.129] +/A << /S /GoTo /D (subsubsection.10.41.2.14) >> +>> +endobj +2985 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.713 298.16 196.295] +/A << /S /GoTo /D (subsubsection.10.41.2.15) >> +>> +endobj +2986 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.879 280.255 179.461] +/A << /S /GoTo /D (subsubsection.10.41.2.16) >> +>> +endobj +2987 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.045 326.592 162.627] +/A << /S /GoTo /D (subsubsection.10.41.2.17) >> +>> +endobj +2988 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.211 347.385 145.793] +/A << /S /GoTo /D (subsubsection.10.41.2.18) >> +>> +endobj +2989 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 307.799 128.959] +/A << /S /GoTo /D (subsubsection.10.41.2.19) >> +>> +endobj +2990 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.543 256.745 112.125] +/A << /S /GoTo /D (subsubsection.10.41.2.20) >> +>> +endobj +2991 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 84.709 278.892 95.291] +/A << /S /GoTo /D (subsubsection.10.41.2.21) >> +>> +endobj +2992 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 67.875 281.895 78.457] +/A << /S /GoTo /D (subsubsection.10.41.2.22) >> +>> +endobj +2994 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3041 0 obj +<< +/Length 1076 +/Filter /FlateDecode +>> +stream +x��]��8����������v�[��씻ie���KB���u A�`\�HS�J�'~����c�����y=B`x?�m:zsC%PPA��H�@j��O�E1�2�0z7�;����ÅJAE���/���A���\��)���|�}��������{��{��J)0D�a�:���E֬�̓�[ZT��r��"����W��|F��5��?��H,8�p.~��8���VL%��mz��n'X@E�3h��h|��֯��#̏ /Z1nJd���/ �+�x�|Y�_DŽ'&O�˱=��}���~tu����G�*�i(Ou��A��%�Q��x�i?�o�P:���Rt�u��]�������ɇV��2=b�������%g� 1���_���D�8�����kJ"P��ʆ�֭�ܶ�c������X:��Ӻ���P��pgm��m��d0ZG8T�&��<5�Y����Z��t(/G�So�I �U�RF���"��`�e�x�>x�ES���kJ��">����д0#0�&)� 8����b�̡�QPv�Cs��m��ƫI�X�C���3(9�|����E7Ei�{w����T�9��Y|���w�7M�H;�v����l���:�:h������<$�E`���Yn}��g�HU� �K�����2wIp�4)�JR'�^��ۿ�qш���=��mk������#G��+ڟA�p���yg��*@=���ͦ��5��:ĝo�)tD��̟������A!q�M��.c;���LQRt�ݼ4��?�_�3 +�l�������̀ +��q��5-��q�$�"�H�0ғ ����U�u�2�M�fu�Ⱦ�&Ӭ��E5뀷�ؿ[�Un��|��m-G��Ug�ֶo�Uv̑���q��p����B��ȍb���˴/ˊ���n|�� +�п�S_��$��VfLP����`::dԍ�q�|H��-�����آ�����o⸄��|��' ���߽1� ��n��5�彩�:k�銇V�O}g�8<�m7��T��?Z\ +endstream +endobj +3040 0 obj +<< +/Type /Page +/Contents 3041 0 R +/Resources 3039 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2906 0 R +/Annots [ 2993 0 R 2997 0 R 2998 0 R 2999 0 R 3000 0 R 3001 0 R 3002 0 R 3003 0 R 3004 0 R 3005 0 R 3006 0 R 3007 0 R 3008 0 R 3009 0 R 3010 0 R 3011 0 R 3012 0 R 3013 0 R 3014 0 R 3015 0 R 3016 0 R 3017 0 R 3018 0 R 3019 0 R 3020 0 R 3021 0 R 3022 0 R 3023 0 R 3024 0 R 3025 0 R 3026 0 R 3027 0 R 3028 0 R 3029 0 R 3030 0 R 3031 0 R 3032 0 R 3033 0 R 3034 0 R 3035 0 R 3036 0 R 3037 0 R ] +>> +endobj +2993 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.177 299.604 768.652] +/A << /S /GoTo /D (subsubsection.10.41.2.23) >> +>> +endobj +2997 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.343 233.406 751.818] +/A << /S /GoTo /D (subsubsection.10.41.2.24) >> +>> +endobj +2998 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 724.509 236.303 734.984] +/A << /S /GoTo /D (subsubsection.10.41.2.25) >> +>> +endobj +2999 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 707.675 309.467 718.15] +/A << /S /GoTo /D (subsubsection.10.41.2.26) >> +>> +endobj +3000 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.841 265.201 701.316] +/A << /S /GoTo /D (subsubsection.10.41.2.27) >> +>> +endobj +3001 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 674.007 306.831 684.482] +/A << /S /GoTo /D (subsubsection.10.41.2.28) >> +>> +endobj +3002 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.173 255.015 667.648] +/A << /S /GoTo /D (subsubsection.10.41.2.29) >> +>> +endobj +3003 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 640.339 261.408 650.814] +/A << /S /GoTo /D (subsubsection.10.41.2.30) >> +>> +endobj +3004 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.505 257.095 633.98] +/A << /S /GoTo /D (subsubsection.10.41.2.31) >> +>> +endobj +3005 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 606.671 327.623 617.146] +/A << /S /GoTo /D (subsubsection.10.41.2.32) >> +>> +endobj +3006 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 589.837 260.314 600.312] +/A << /S /GoTo /D (subsubsection.10.41.2.33) >> +>> +endobj +3007 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 573.003 287.043 583.478] +/A << /S /GoTo /D (subsubsection.10.41.2.34) >> +>> +endobj +3008 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 556.169 239.521 566.644] +/A << /S /GoTo /D (subsubsection.10.41.2.35) >> +>> +endobj +3009 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 539.335 239.889 549.81] +/A << /S /GoTo /D (subsubsection.10.41.2.36) >> +>> +endobj +3010 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.393 297.201 532.976] +/A << /S /GoTo /D (subsubsection.10.41.2.37) >> +>> +endobj +3011 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.667 236.401 516.142] +/A << /S /GoTo /D (subsubsection.10.41.2.38) >> +>> +endobj +3012 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.833 266.25 499.308] +/A << /S /GoTo /D (subsubsection.10.41.2.39) >> +>> +endobj +3013 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 471.999 284.55 482.474] +/A << /S /GoTo /D (subsubsection.10.41.2.40) >> +>> +endobj +3014 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 455.165 279.843 465.64] +/A << /S /GoTo /D (subsubsection.10.41.2.41) >> +>> +endobj +3015 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 438.331 261.229 448.806] +/A << /S /GoTo /D (subsubsection.10.41.2.42) >> +>> +endobj +3016 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.497 277.933 431.972] +/A << /S /GoTo /D (subsubsection.10.41.2.43) >> +>> +endobj +3017 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.663 241.01 415.138] +/A << /S /GoTo /D (subsubsection.10.41.2.44) >> +>> +endobj +3018 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 389.533 204.269 398.303] +/A << /S /GoTo /D (section.10.42) >> +>> +endobj +3019 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 370.995 222.47 381.263] +/A << /S /GoTo /D (subsection.10.42.1) >> +>> +endobj +3020 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 355.864 269.677 364.635] +/A << /S /GoTo /D (subsection.10.42.2) >> +>> +endobj +3021 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 338.138 202.392 347.595] +/A << /S /GoTo /D (subsubsection.10.42.2.1) >> +>> +endobj +3022 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 322.196 225.534 330.967] +/A << /S /GoTo /D (subsubsection.10.42.2.2) >> +>> +endobj +3023 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 304.47 213.483 313.927] +/A << /S /GoTo /D (subsubsection.10.42.2.3) >> +>> +endobj +3024 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 288.528 239.291 297.093] +/A << /S /GoTo /D (subsection.10.42.3) >> +>> +endobj +3025 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 269.991 231.918 280.465] +/A << /S /GoTo /D (subsubsection.10.42.3.1) >> +>> +endobj +3026 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.049 266.312 263.631] +/A << /S /GoTo /D (subsubsection.10.42.3.2) >> +>> +endobj +3027 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.323 236.392 246.797] +/A << /S /GoTo /D (subsubsection.10.42.3.3) >> +>> +endobj +3028 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.489 235.63 229.963] +/A << /S /GoTo /D (subsubsection.10.42.3.4) >> +>> +endobj +3029 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.655 273.996 213.129] +/A << /S /GoTo /D (subsubsection.10.42.3.5) >> +>> +endobj +3030 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.821 253.204 196.295] +/A << /S /GoTo /D (subsubsection.10.42.3.6) >> +>> +endobj +3031 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.879 407.925 179.461] +/A << /S /GoTo /D (subsubsection.10.42.3.7) >> +>> +endobj +3032 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.045 341.046 162.627] +/A << /S /GoTo /D (subsubsection.10.42.3.8) >> +>> +endobj +3033 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.211 361.838 145.793] +/A << /S /GoTo /D (subsubsection.10.42.3.9) >> +>> +endobj +3034 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 287.007 128.959] +/A << /S /GoTo /D (subsubsection.10.42.3.10) >> +>> +endobj +3035 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.543 276.274 112.125] +/A << /S /GoTo /D (subsubsection.10.42.3.11) >> +>> +endobj +3036 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 84.709 297.524 95.291] +/A << /S /GoTo /D (subsubsection.10.42.3.12) >> +>> +endobj +3037 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 67.875 280.479 78.457] +/A << /S /GoTo /D (subsubsection.10.42.3.13) >> +>> +endobj +3039 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3086 0 obj +<< +/Length 1054 +/Filter /FlateDecode +>> +stream +x��˒�8��<��x���e���Te5�a�I��f�16�M�~��`S -�Vf�l/(����������,� K���������@A-�G���� 5���<LWOї������?l���A%�JAEHד�/,칏�A��>��S����4�����v�˦���7D����J)0Dmw0��@ +1�fD��:���s��xi�x�GM��Yك��=���ψ#��i;f�6>�ьs�ӆ�����i��s�\�9U���AU������6�נS��'�B� 7���Q����>�ҍr�<�&3k��8-��:�O]Fn�%���l{��i���j�(� �D�-"|jRA��N1Ȍ 7�m��4���1bZ\͕_T�Z�k�E������G��K�2$q�|e���@ +��X/ Y����a����4>���Ac.h��;[��n�G��.ֵw�w.c���W��^�u +��?�$���V� �N�ѕi�%[o�d���Su�<����wb�f��Pdڏ�˹(=��(H W�:?Z�MD���[��hd��)�ĴcIg\G��XJ^A6$�j"o�Sh���K�6ͱܛ�kJ���Re���u��c�i���ײ�!�t��n]J�jwDh��:���$/��:�p�;T�*^����F��+�����y�,�����VC�b0Z�- +Z�0F��@C�p��N%�S���J�=zC)���_���Fp/Z�d��K7)�9��F'��(�c�����a2��7{�W�\��.�~�3ΠT�%f�R+SV0=�[e�wo�5�lM�� g����gp��� �iجc��*����2mdS��ܛ��}��g���x��8����PųQ�oܫ��V,V�"f/�]Yƹ��R���<0�+�F-ȎZ�W�C��pؘ��]��Y�.�%.�R�h��R��N���/D +o=B�~��48��a60� ���d�aV�a�m�#�1���?�p=��%��"�I���?;R��y��%�������6�ک�1��P�!��yi�� -�y�eq�; +endstream +endobj +3085 0 obj +<< +/Type /Page +/Contents 3086 0 R +/Resources 3084 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2906 0 R +/Annots [ 3038 0 R 3042 0 R 3043 0 R 3044 0 R 3045 0 R 3046 0 R 3047 0 R 3048 0 R 3049 0 R 3050 0 R 3051 0 R 3052 0 R 3053 0 R 3054 0 R 3055 0 R 3056 0 R 3057 0 R 3058 0 R 3059 0 R 3060 0 R 3061 0 R 3062 0 R 3063 0 R 3064 0 R 3065 0 R 3066 0 R 3067 0 R 3068 0 R 3069 0 R 3070 0 R 3071 0 R 3072 0 R 3073 0 R 3074 0 R 3075 0 R 3076 0 R 3077 0 R 3078 0 R 3079 0 R 3080 0 R 3081 0 R 3082 0 R ] +>> +endobj +3038 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.07 296.52 768.652] +/A << /S /GoTo /D (subsubsection.10.42.3.14) >> +>> +endobj +3042 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.236 298.16 751.818] +/A << /S /GoTo /D (subsubsection.10.42.3.15) >> +>> +endobj +3043 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 724.402 280.255 734.984] +/A << /S /GoTo /D (subsubsection.10.42.3.16) >> +>> +endobj +3044 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 707.568 326.592 718.15] +/A << /S /GoTo /D (subsubsection.10.42.3.17) >> +>> +endobj +3045 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.734 347.385 701.316] +/A << /S /GoTo /D (subsubsection.10.42.3.18) >> +>> +endobj +3046 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 673.9 307.799 684.482] +/A << /S /GoTo /D (subsubsection.10.42.3.19) >> +>> +endobj +3047 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.066 256.745 667.648] +/A << /S /GoTo /D (subsubsection.10.42.3.20) >> +>> +endobj +3048 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 640.232 278.892 650.814] +/A << /S /GoTo /D (subsubsection.10.42.3.21) >> +>> +endobj +3049 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.398 281.895 633.98] +/A << /S /GoTo /D (subsubsection.10.42.3.22) >> +>> +endobj +3050 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 606.671 299.604 617.146] +/A << /S /GoTo /D (subsubsection.10.42.3.23) >> +>> +endobj +3051 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 589.837 233.406 600.312] +/A << /S /GoTo /D (subsubsection.10.42.3.24) >> +>> +endobj +3052 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 573.003 236.303 583.478] +/A << /S /GoTo /D (subsubsection.10.42.3.25) >> +>> +endobj +3053 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 556.169 309.467 566.644] +/A << /S /GoTo /D (subsubsection.10.42.3.26) >> +>> +endobj +3054 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 539.335 265.201 549.81] +/A << /S /GoTo /D (subsubsection.10.42.3.27) >> +>> +endobj +3055 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.501 306.831 532.976] +/A << /S /GoTo /D (subsubsection.10.42.3.28) >> +>> +endobj +3056 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.667 255.015 516.142] +/A << /S /GoTo /D (subsubsection.10.42.3.29) >> +>> +endobj +3057 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.833 261.408 499.308] +/A << /S /GoTo /D (subsubsection.10.42.3.30) >> +>> +endobj +3058 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 471.999 257.095 482.474] +/A << /S /GoTo /D (subsubsection.10.42.3.31) >> +>> +endobj +3059 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 455.165 327.623 465.64] +/A << /S /GoTo /D (subsubsection.10.42.3.32) >> +>> +endobj +3060 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 438.331 260.314 448.806] +/A << /S /GoTo /D (subsubsection.10.42.3.33) >> +>> +endobj +3061 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.497 287.043 431.972] +/A << /S /GoTo /D (subsubsection.10.42.3.34) >> +>> +endobj +3062 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.663 239.521 415.138] +/A << /S /GoTo /D (subsubsection.10.42.3.35) >> +>> +endobj +3063 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.829 239.889 398.303] +/A << /S /GoTo /D (subsubsection.10.42.3.36) >> +>> +endobj +3064 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 370.887 297.201 381.469] +/A << /S /GoTo /D (subsubsection.10.42.3.37) >> +>> +endobj +3065 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.161 236.401 364.635] +/A << /S /GoTo /D (subsubsection.10.42.3.38) >> +>> +endobj +3066 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 337.327 266.25 347.801] +/A << /S /GoTo /D (subsubsection.10.42.3.39) >> +>> +endobj +3067 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.493 284.55 330.967] +/A << /S /GoTo /D (subsubsection.10.42.3.40) >> +>> +endobj +3068 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 303.659 279.843 314.133] +/A << /S /GoTo /D (subsubsection.10.42.3.41) >> +>> +endobj +3069 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 286.825 261.229 297.299] +/A << /S /GoTo /D (subsubsection.10.42.3.42) >> +>> +endobj +3070 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 269.991 277.933 280.465] +/A << /S /GoTo /D (subsubsection.10.42.3.43) >> +>> +endobj +3071 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.157 241.01 263.631] +/A << /S /GoTo /D (subsubsection.10.42.3.44) >> +>> +endobj +3072 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 237.134 223.205 246.797] +/A << /S /GoTo /D (section.10.43) >> +>> +endobj +3073 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 219.489 222.47 229.757] +/A << /S /GoTo /D (subsection.10.43.1) >> +>> +endobj +3074 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 203.466 223.707 213.129] +/A << /S /GoTo /D (section.10.44) >> +>> +endobj +3075 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 185.821 222.47 196.089] +/A << /S /GoTo /D (subsection.10.44.1) >> +>> +endobj +3076 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 168.879 275.73 179.461] +/A << /S /GoTo /D (section.10.45) >> +>> +endobj +3077 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 152.153 222.47 162.421] +/A << /S /GoTo /D (subsection.10.45.1) >> +>> +endobj +3078 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 137.022 239.291 145.587] +/A << /S /GoTo /D (subsection.10.45.2) >> +>> +endobj +3079 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 283.94 128.959] +/A << /S /GoTo /D (subsubsection.10.45.2.1) >> +>> +endobj +3080 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 101.543 276.232 112.125] +/A << /S /GoTo /D (section.10.46) >> +>> +endobj +3081 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 84.817 222.47 95.085] +/A << /S /GoTo /D (subsection.10.46.1) >> +>> +endobj +3082 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 69.686 239.291 78.251] +/A << /S /GoTo /D (subsection.10.46.2) >> +>> +endobj +3084 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3131 0 obj +<< +/Length 987 +/Filter /FlateDecode +>> +stream +x��Os�8���:����"���mgz���C��PP3\����WH�,l�4�.E��B��y��y�z��x�A�l���7/w�����(�`w�2��PF�Rp܆vo6��6�6�~ +|w��P�bs��Ծ� H�7�#�8��Q�|�m��;s?N� ^s!`� ��C4�#�"H �DȠ���=BĤ:��M�KܴU�qd�4���r+�`��<�7�����g����LX��>$ +��A! ��J���^U}0e]5v����uk�&�!���]�����ԦL�C���_9�3��RHGE�f��BKǽ&��-�A~h��8�A���#.�P+��"��"V�"n�1�� �p+�Ƅ��cZfX-��p���=p4ŚB<�ɉjϺJ��)�x +��C�C)�$�{��uj�L{W��.F��"��Q��*g<AR�ck_�A��!$�,�tu�9�7E#������#_o~���ض�}�y�3����덻&WVo$r�7��B����q{��}V骫/7�.+Kǖ�B�y��O��D[Np�C�+4���]�rN��Z7���ċ�7K���'�N��NMkN�Iy�g'��]1�K�G\�J�\�M��>�-u�����w��tQ}'�)�6�u[i����9+�Y�}��5-�Q���y��!�A�P��v��u>oL���"��-���c�̕.�vH��s�8�sD�zdy�H���� +��;��)>�Y�b�ث%��F=��$U6�F����s��R�f7������_/OEw���buRΗ��[c�ր+����O0�ל8�b����@;�װu�5�R\i_�)�����k��+���5�K;��}������_qR�f���*�����3���@*��q��8�b훡'��YL����$��n\�A""֭�c6q��Fv��o�ڔ��Ep���].�<�V��sfc������sx�� +endstream +endobj +3130 0 obj +<< +/Type /Page +/Contents 3131 0 R +/Resources 3129 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2906 0 R +/Annots [ 3083 0 R 3087 0 R 3088 0 R 3089 0 R 3090 0 R 3091 0 R 3092 0 R 3093 0 R 3094 0 R 3095 0 R 3096 0 R 3097 0 R 3098 0 R 3099 0 R 3100 0 R 3101 0 R 3102 0 R 3103 0 R 3104 0 R 3105 0 R 3106 0 R 3107 0 R 3108 0 R 3109 0 R 3110 0 R 3111 0 R 3112 0 R 3113 0 R 3114 0 R 3115 0 R 3116 0 R 3117 0 R 3118 0 R 3119 0 R 3120 0 R 3121 0 R 3122 0 R 3123 0 R 3124 0 R 3125 0 R 3126 0 R 3127 0 R ] +>> +endobj +3083 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.07 283.94 768.652] +/A << /S /GoTo /D (subsubsection.10.46.2.1) >> +>> +endobj +3087 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 741.343 282.705 751.818] +/A << /S /GoTo /D (section.10.47) >> +>> +endobj +3088 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 724.509 222.47 734.778] +/A << /S /GoTo /D (subsection.10.47.1) >> +>> +endobj +3089 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 707.675 283.207 718.15] +/A << /S /GoTo /D (section.10.48) >> +>> +endobj +3090 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 690.841 222.47 701.11] +/A << /S /GoTo /D (subsection.10.48.1) >> +>> +endobj +3091 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 674.007 309.757 684.482] +/A << /S /GoTo /D (section.10.49) >> +>> +endobj +3092 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 657.173 222.47 667.442] +/A << /S /GoTo /D (subsection.10.49.1) >> +>> +endobj +3093 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 642.043 239.291 650.608] +/A << /S /GoTo /D (subsection.10.49.2) >> +>> +endobj +3094 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.398 288.925 633.98] +/A << /S /GoTo /D (subsubsection.10.49.2.1) >> +>> +endobj +3095 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 606.671 333.407 617.146] +/A << /S /GoTo /D (subsubsection.10.49.2.2) >> +>> +endobj +3096 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 589.837 310.259 600.312] +/A << /S /GoTo /D (section.10.50) >> +>> +endobj +3097 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 573.003 222.47 583.271] +/A << /S /GoTo /D (subsection.10.50.1) >> +>> +endobj +3098 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 557.873 239.291 566.437] +/A << /S /GoTo /D (subsection.10.50.2) >> +>> +endobj +3099 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 539.227 288.925 549.81] +/A << /S /GoTo /D (subsubsection.10.50.2.1) >> +>> +endobj +3100 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.501 333.407 532.976] +/A << /S /GoTo /D (subsubsection.10.50.2.2) >> +>> +endobj +3101 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 505.559 325.734 516.142] +/A << /S /GoTo /D (section.10.51) >> +>> +endobj +3102 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 488.833 222.47 499.101] +/A << /S /GoTo /D (subsection.10.51.1) >> +>> +endobj +3103 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 471.891 326.236 482.474] +/A << /S /GoTo /D (section.10.52) >> +>> +endobj +3104 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 455.165 222.47 465.433] +/A << /S /GoTo /D (subsection.10.52.1) >> +>> +endobj +3105 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 438.223 319.171 448.806] +/A << /S /GoTo /D (section.10.53) >> +>> +endobj +3106 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 421.497 222.47 431.765] +/A << /S /GoTo /D (subsection.10.53.1) >> +>> +endobj +3107 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 406.367 239.291 414.931] +/A << /S /GoTo /D (subsection.10.53.2) >> +>> +endobj +3108 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.721 309.279 398.303] +/A << /S /GoTo /D (subsubsection.10.53.2.1) >> +>> +endobj +3109 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 370.887 321.625 381.469] +/A << /S /GoTo /D (subsubsection.10.53.2.2) >> +>> +endobj +3110 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.053 308.516 364.635] +/A << /S /GoTo /D (subsubsection.10.53.2.3) >> +>> +endobj +3111 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 337.327 226.305 347.801] +/A << /S /GoTo /D (subsubsection.10.53.2.4) >> +>> +endobj +3112 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.493 231.775 330.967] +/A << /S /GoTo /D (subsubsection.10.53.2.5) >> +>> +endobj +3113 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 303.551 287.508 314.133] +/A << /S /GoTo /D (subsubsection.10.53.2.6) >> +>> +endobj +3114 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 286.825 246.219 297.299] +/A << /S /GoTo /D (subsubsection.10.53.2.7) >> +>> +endobj +3115 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 269.883 319.673 280.465] +/A << /S /GoTo /D (section.10.54) >> +>> +endobj +3116 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 253.157 222.47 263.425] +/A << /S /GoTo /D (subsection.10.54.1) >> +>> +endobj +3117 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 238.026 239.291 246.591] +/A << /S /GoTo /D (subsection.10.54.2) >> +>> +endobj +3118 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.381 309.279 229.963] +/A << /S /GoTo /D (subsubsection.10.54.2.1) >> +>> +endobj +3119 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.547 321.625 213.129] +/A << /S /GoTo /D (subsubsection.10.54.2.2) >> +>> +endobj +3120 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.713 308.516 196.295] +/A << /S /GoTo /D (subsubsection.10.54.2.3) >> +>> +endobj +3121 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.987 226.305 179.461] +/A << /S /GoTo /D (subsubsection.10.54.2.4) >> +>> +endobj +3122 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.153 231.775 162.627] +/A << /S /GoTo /D (subsubsection.10.54.2.5) >> +>> +endobj +3123 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.211 287.508 145.793] +/A << /S /GoTo /D (subsubsection.10.54.2.6) >> +>> +endobj +3124 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.485 246.219 128.959] +/A << /S /GoTo /D (subsubsection.10.54.2.7) >> +>> +endobj +3125 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 101.651 245.245 112.125] +/A << /S /GoTo /D (section.10.55) >> +>> +endobj +3126 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 84.817 222.47 95.085] +/A << /S /GoTo /D (subsection.10.55.1) >> +>> +endobj +3127 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 69.686 239.291 78.251] +/A << /S /GoTo /D (subsection.10.55.2) >> +>> +endobj +3129 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3176 0 obj +<< +/Length 981 +/Filter /FlateDecode +>> +stream +x���n�@��~�Y��ӹ_�U/j�Jm�]R!�����I��nq�2�'v�X����?�9g�W��O��+��������;*��Z +�c5%@j�%8����h�v1�>��{` TB��T��h=;�����;R��U}�0N!gԬ_�/��7�ݴ�������Go0C�+��u���3 ���H奱O�wUfi��y��[����#��uϻ�'s%��9�Y��/�VLyX���� �A�����(�r�1�ߚ��Y;��}��8��(���/�s� qn#N�H���d�&.C�u�mQ��1��M�d�]�Z�)���Qk� +�2�j� �,�\�i���r�h� -�PI��w2��c���l�f����2)ʠ�H��*N�ri��ȃ��O322�ڼXN^�p���r�⃠�y��z�*.��ޑ��l�#�V.�6g��v��ɳ��+,-����+V�͔k4s�:�D�t����͞8�c����0ʳ�)B$Mv n��v `j�>}�+ee�U������锛=��锛�D�Ûr�=G�-7� ��d��W=Ѓ2.J����!��LO��^���i�i�� hmMo��[�Wq��R9 /�eX���Xm���Y��ש��*z�|�s&��C�;@�����rCegIh�ʠ�zy��#(fu�y��66R�a ̕�p;�#t�)$A���`,��nr7�9<y�]�!�bY1GV����T�E�,wI6$�C d���Usn3���e�̱�h����p�a=Us�@k��*������[� ;�p����g�Ax�2�Q�^?n6�9�q�z��S�y�sqr��ݲ(&����gV1�Qq}3B���-�JW �I�Oܪa�����Xc>r �I�Ϭ�v�ySė�,0A��p#�"�+A:����Ţ��D.��K�K입�H���ۖ��,�����;5,��rV���C]�\��c�Xz���{� +endstream +endobj +3175 0 obj +<< +/Type /Page +/Contents 3176 0 R +/Resources 3174 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3177 0 R +/Annots [ 3128 0 R 3132 0 R 3133 0 R 3134 0 R 3135 0 R 3136 0 R 3137 0 R 3138 0 R 3139 0 R 3140 0 R 3141 0 R 3142 0 R 3143 0 R 3144 0 R 3145 0 R 3146 0 R 3147 0 R 3148 0 R 3149 0 R 3150 0 R 3151 0 R 3152 0 R 3153 0 R 3154 0 R 3155 0 R 3156 0 R 3157 0 R 3158 0 R 3159 0 R 3160 0 R 3161 0 R 3162 0 R 3163 0 R 3164 0 R 3165 0 R 3166 0 R 3167 0 R 3168 0 R 3169 0 R 3170 0 R 3171 0 R 3172 0 R ] +>> +endobj +3128 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.177 253.455 768.652] +/A << /S /GoTo /D (subsubsection.10.55.2.1) >> +>> +endobj +3132 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 741.343 245.747 751.818] +/A << /S /GoTo /D (section.10.56) >> +>> +endobj +3133 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 724.509 222.47 734.778] +/A << /S /GoTo /D (subsection.10.56.1) >> +>> +endobj +3134 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 709.379 239.291 717.944] +/A << /S /GoTo /D (subsection.10.56.2) >> +>> +endobj +3135 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.841 253.455 701.316] +/A << /S /GoTo /D (subsubsection.10.56.2.1) >> +>> +endobj +3136 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 673.9 279.8 684.482] +/A << /S /GoTo /D (section.10.57) >> +>> +endobj +3137 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 657.173 222.47 667.442] +/A << /S /GoTo /D (subsection.10.57.1) >> +>> +endobj +3138 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 642.043 239.291 650.608] +/A << /S /GoTo /D (subsection.10.57.2) >> +>> +endobj +3139 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.398 292.628 633.98] +/A << /S /GoTo /D (subsubsection.10.57.2.1) >> +>> +endobj +3140 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 606.564 245.072 617.146] +/A << /S /GoTo /D (subsubsection.10.57.2.2) >> +>> +endobj +3141 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 589.73 280.302 600.312] +/A << /S /GoTo /D (section.10.58) >> +>> +endobj +3142 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 573.003 222.47 583.271] +/A << /S /GoTo /D (subsection.10.58.1) >> +>> +endobj +3143 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 557.873 269.677 566.644] +/A << /S /GoTo /D (subsection.10.58.2) >> +>> +endobj +3144 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 541.039 189.938 549.603] +/A << /S /GoTo /D (subsubsection.10.58.2.1) >> +>> +endobj +3145 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 524.205 239.291 532.769] +/A << /S /GoTo /D (subsection.10.58.3) >> +>> +endobj +3146 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.559 292.628 516.142] +/A << /S /GoTo /D (subsubsection.10.58.3.1) >> +>> +endobj +3147 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.725 245.072 499.308] +/A << /S /GoTo /D (subsubsection.10.58.3.2) >> +>> +endobj +3148 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 471.999 246.5 482.474] +/A << /S /GoTo /D (section.10.59) >> +>> +endobj +3149 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 455.165 222.47 465.433] +/A << /S /GoTo /D (subsection.10.59.1) >> +>> +endobj +3150 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 440.035 239.291 448.599] +/A << /S /GoTo /D (subsection.10.59.2) >> +>> +endobj +3151 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.497 327.713 431.972] +/A << /S /GoTo /D (subsubsection.10.59.2.1) >> +>> +endobj +3152 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.555 279.367 415.138] +/A << /S /GoTo /D (subsubsection.10.59.2.2) >> +>> +endobj +3153 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.721 312.578 398.303] +/A << /S /GoTo /D (subsubsection.10.59.2.3) >> +>> +endobj +3154 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 370.887 284.11 381.469] +/A << /S /GoTo /D (subsubsection.10.59.2.4) >> +>> +endobj +3155 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.053 262.188 364.635] +/A << /S /GoTo /D (subsubsection.10.59.2.5) >> +>> +endobj +3156 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 337.219 276.641 347.801] +/A << /S /GoTo /D (subsubsection.10.59.2.6) >> +>> +endobj +3157 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.385 309.852 330.967] +/A << /S /GoTo /D (subsubsection.10.59.2.7) >> +>> +endobj +3158 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 303.659 321.903 314.133] +/A << /S /GoTo /D (subsubsection.10.59.2.8) >> +>> +endobj +3159 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 286.825 247.002 297.299] +/A << /S /GoTo /D (section.10.60) >> +>> +endobj +3160 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 269.991 222.47 280.259] +/A << /S /GoTo /D (subsection.10.60.1) >> +>> +endobj +3161 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 254.86 239.291 263.425] +/A << /S /GoTo /D (subsection.10.60.2) >> +>> +endobj +3162 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.323 327.713 246.797] +/A << /S /GoTo /D (subsubsection.10.60.2.1) >> +>> +endobj +3163 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.489 321.903 229.963] +/A << /S /GoTo /D (subsubsection.10.60.2.2) >> +>> +endobj +3164 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 202.547 278.895 213.129] +/A << /S /GoTo /D (section.10.61) >> +>> +endobj +3165 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 185.821 222.47 196.089] +/A << /S /GoTo /D (subsection.10.61.1) >> +>> +endobj +3166 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 168.879 279.397 179.461] +/A << /S /GoTo /D (section.10.62) >> +>> +endobj +3167 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 152.153 222.47 162.421] +/A << /S /GoTo /D (subsection.10.62.1) >> +>> +endobj +3168 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 135.319 282.382 145.793] +/A << /S /GoTo /D (section.10.63) >> +>> +endobj +3169 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 118.485 222.47 128.753] +/A << /S /GoTo /D (subsection.10.63.1) >> +>> +endobj +3170 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 101.651 282.884 112.125] +/A << /S /GoTo /D (section.10.64) >> +>> +endobj +3171 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 84.817 222.47 95.085] +/A << /S /GoTo /D (subsection.10.64.1) >> +>> +endobj +3172 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 67.983 242.483 78.457] +/A << /S /GoTo /D (section.10.65) >> +>> +endobj +3174 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3222 0 obj +<< +/Length 930 +/Filter /FlateDecode +>> +stream +x��Ms�@��|�=&�}9��V�U'C�K� T������֥�X�!�<����l���'�e�>@����zqN%PPAA�;�*!�� +���~ ����Y�u���w��vJAEHG��od��w�A��9�r��3j�_�/�ϫ�^��/w�Y����`���H�!�ۃ�M��^�ioxm�z�L���y4�L��|����e[+����r!�������Z1��d���.�X@E�&k��{��E��)�eox�E7�Ew��qj7ʧ��.�L�Q����k]�/�_|����� �1yd���������U,��I:��9L�[M,�u�����&O�6rNtPă� �����O�=�,j'���t-��+ڿ��X�y%�䪗�6�~��m1��,)gW��+�Ⱦ�6n���ծg-�ոf�7Ӥ0�,5Y��b$0~��0�N&��L�db�Q>HޕL2$ӓ�cȐL{A�J&y���[���L�;�� +Rx���J���IH}��;��7�T���GM�CP��+�Խ�Z{%Ɍ5��)^*�ZS�B�H� �U�Mz���Q��5>-�ΔӮ��;������r:��a��&�!���֕r:���&�+Ԑr])'� +�`<+�`|��"���d�Ky���&QH���GM�C���#�*����G"�i}\����N�<�A��Z��W�8��I�=����z��֥^��9�zק�a^]�M���z�y��� +Uh_ �����o��SG�� 5( �[��P����ٺ�K3��ɲ��3EEiv�b���'��MIJ�0�Q�0��Z�ؚݟ��&���pN)|d���9��h�˭��NYc_E��5����E�ӣ\B+�gG��U$R�� QfM�9�K(��}uarS����pU��J4����ذ�ɷ��k��� +endstream +endobj +3221 0 obj +<< +/Type /Page +/Contents 3222 0 R +/Resources 3220 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3177 0 R +/Annots [ 3173 0 R 3178 0 R 3179 0 R 3180 0 R 3181 0 R 3182 0 R 3183 0 R 3184 0 R 3185 0 R 3186 0 R 3187 0 R 3188 0 R 3189 0 R 3190 0 R 3191 0 R 3192 0 R 3193 0 R 3194 0 R 3195 0 R 3196 0 R 3197 0 R 3198 0 R 3199 0 R 3200 0 R 3201 0 R 3202 0 R 3203 0 R 3204 0 R 3205 0 R 3206 0 R 3207 0 R 3208 0 R 3209 0 R 3210 0 R 3211 0 R 3212 0 R 3213 0 R 3214 0 R 3215 0 R 3216 0 R 3217 0 R 3218 0 R ] +>> +endobj +3173 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 758.177 222.47 768.446] +/A << /S /GoTo /D (subsection.10.65.1) >> +>> +endobj +3178 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 741.343 276.904 751.612] +/A << /S /GoTo /D (subsection.10.65.2) >> +>> +endobj +3179 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 726.213 234.77 734.984] +/A << /S /GoTo /D (subsubsection.10.65.2.1) >> +>> +endobj +3180 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 707.675 226.559 718.15] +/A << /S /GoTo /D (section.10.66) >> +>> +endobj +3181 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 690.841 222.47 701.11] +/A << /S /GoTo /D (subsection.10.66.1) >> +>> +endobj +3182 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 675.711 239.291 684.276] +/A << /S /GoTo /D (subsection.10.66.2) >> +>> +endobj +3183 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.173 304.222 667.648] +/A << /S /GoTo /D (subsubsection.10.66.2.1) >> +>> +endobj +3184 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 640.232 308.032 650.814] +/A << /S /GoTo /D (subsubsection.10.66.2.2) >> +>> +endobj +3185 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 623.505 227.061 633.98] +/A << /S /GoTo /D (section.10.67) >> +>> +endobj +3186 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 606.671 222.47 616.939] +/A << /S /GoTo /D (subsection.10.67.1) >> +>> +endobj +3187 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 591.541 239.291 600.105] +/A << /S /GoTo /D (subsection.10.67.2) >> +>> +endobj +3188 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 573.003 304.222 583.478] +/A << /S /GoTo /D (subsubsection.10.67.2.1) >> +>> +endobj +3189 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 556.061 308.032 566.644] +/A << /S /GoTo /D (subsubsection.10.67.2.2) >> +>> +endobj +3190 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 539.227 217.736 549.81] +/A << /S /GoTo /D (section.10.68) >> +>> +endobj +3191 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 522.501 222.47 532.769] +/A << /S /GoTo /D (subsection.10.68.1) >> +>> +endobj +3192 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 507.371 239.291 515.935] +/A << /S /GoTo /D (subsection.10.68.2) >> +>> +endobj +3193 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.725 262.959 499.308] +/A << /S /GoTo /D (subsubsection.10.68.2.1) >> +>> +endobj +3194 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 471.891 278.318 482.474] +/A << /S /GoTo /D (subsubsection.10.68.2.2) >> +>> +endobj +3195 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 455.057 218.238 465.64] +/A << /S /GoTo /D (section.10.69) >> +>> +endobj +3196 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 438.331 222.47 448.599] +/A << /S /GoTo /D (subsection.10.69.1) >> +>> +endobj +3197 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 423.201 239.291 431.765] +/A << /S /GoTo /D (subsection.10.69.2) >> +>> +endobj +3198 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.555 262.959 415.138] +/A << /S /GoTo /D (subsubsection.10.69.2.1) >> +>> +endobj +3199 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.721 278.318 398.303] +/A << /S /GoTo /D (subsubsection.10.69.2.2) >> +>> +endobj +3200 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 370.995 241.075 381.469] +/A << /S /GoTo /D (section.10.70) >> +>> +endobj +3201 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 354.161 222.47 364.429] +/A << /S /GoTo /D (subsection.10.70.1) >> +>> +endobj +3202 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 339.03 239.291 347.595] +/A << /S /GoTo /D (subsection.10.70.2) >> +>> +endobj +3203 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.493 286.612 330.967] +/A << /S /GoTo /D (subsubsection.10.70.2.1) >> +>> +endobj +3204 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 303.659 241.577 314.133] +/A << /S /GoTo /D (section.10.71) >> +>> +endobj +3205 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 286.825 222.47 297.093] +/A << /S /GoTo /D (subsection.10.71.1) >> +>> +endobj +3206 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 271.694 239.291 280.259] +/A << /S /GoTo /D (subsection.10.71.2) >> +>> +endobj +3207 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.157 286.612 263.631] +/A << /S /GoTo /D (subsubsection.10.71.2.1) >> +>> +endobj +3208 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 236.323 227.886 246.797] +/A << /S /GoTo /D (section.10.72) >> +>> +endobj +3209 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 219.489 222.47 229.757] +/A << /S /GoTo /D (subsection.10.72.1) >> +>> +endobj +3210 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 202.655 228.388 213.129] +/A << /S /GoTo /D (section.10.73) >> +>> +endobj +3211 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 185.821 222.47 196.089] +/A << /S /GoTo /D (subsection.10.73.1) >> +>> +endobj +3212 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 168.987 254.937 179.461] +/A << /S /GoTo /D (section.10.74) >> +>> +endobj +3213 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 152.153 222.47 162.421] +/A << /S /GoTo /D (subsection.10.74.1) >> +>> +endobj +3214 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 137.022 239.291 145.587] +/A << /S /GoTo /D (subsection.10.74.2) >> +>> +endobj +3215 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 234.106 128.959] +/A << /S /GoTo /D (subsubsection.10.74.2.1) >> +>> +endobj +3216 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 101.651 255.439 112.125] +/A << /S /GoTo /D (section.10.75) >> +>> +endobj +3217 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 84.817 222.47 95.085] +/A << /S /GoTo /D (subsection.10.75.1) >> +>> +endobj +3218 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 69.686 239.291 78.251] +/A << /S /GoTo /D (subsection.10.75.2) >> +>> +endobj +3220 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3267 0 obj +<< +/Length 941 +/Filter /FlateDecode +>> +stream +x���n�0��<������v4�J]ʹt6�*b��B�!0��O ��(����x�H��;�����W?1/z��o���9�@A-�{�1��I 5�����I��w��ޏA�o"��DP �RP�i���Q��%@�j�m>9�S�-�Sp������8�x;��v>D��fr���zBA�!�8����<�"�'YHP���8*x3����m����9���ag☃�zh�T@H����9�R��*�v�EEx11i-fy�g((`\�|���:�2�!E��M�&x�U�:]����@�H�D������G��".#�y�̋d�5�k�=�W��6�d���,�P�X����dŰ ��m-�PI�ʷ��$+�Fe��nATW��c����F�\ү������6�vm�8i#��k�[�`�F��4�Qk��h��6J��G"ܞ�^��٪�jz��B���رk��. >vq� ��Byp�Pk�ʣ�� �� �s��Uq�;A����,�5�h�T��F^�U�.mҝ̖3��#�[}�& )I�&�t�L<��m�D�IL�l�t��s��Cs靜5$���i��N���N��vur�;�CK�vKg��NJ�;9I�Iz'�*N�9j-���^��7oo��ż)���A�����6�5��:ưO��D�������[�K�ƪC.���� ��)(�����4�k��M�jdmi�P�8�ᮜG�hY�h�-Y�D����c�iA1GPtj�+ 7q2�gq�H��2���ӥ��T|"@��t�����;�2]y�}��<K͋,���`ie,اG&��}d7�� c�W�r��o���y:_�T;q��@ ⻧w���=Q�=��g��wO�@[�h�"�eY�]6���r$R��6��H�CQ>mBua2��z)�]�}}�C��O�O�ri�u*k��?�~� +endstream +endobj +3266 0 obj +<< +/Type /Page +/Contents 3267 0 R +/Resources 3265 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3177 0 R +/Annots [ 3219 0 R 3223 0 R 3224 0 R 3225 0 R 3226 0 R 3227 0 R 3228 0 R 3229 0 R 3230 0 R 3231 0 R 3232 0 R 3233 0 R 3234 0 R 3235 0 R 3236 0 R 3237 0 R 3238 0 R 3239 0 R 3240 0 R 3241 0 R 3242 0 R 3243 0 R 3244 0 R 3245 0 R 3246 0 R 3247 0 R 3248 0 R 3249 0 R 3250 0 R 3251 0 R 3252 0 R 3253 0 R 3254 0 R 3255 0 R 3256 0 R 3257 0 R 3258 0 R 3259 0 R 3260 0 R 3261 0 R 3262 0 R 3263 0 R ] +>> +endobj +3219 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.07 234.106 768.652] +/A << /S /GoTo /D (subsubsection.10.75.2.1) >> +>> +endobj +3223 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 742.155 217.951 751.818] +/A << /S /GoTo /D (section.10.76) >> +>> +endobj +3224 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 724.509 222.47 734.778] +/A << /S /GoTo /D (subsection.10.76.1) >> +>> +endobj +3225 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 709.379 239.291 717.944] +/A << /S /GoTo /D (subsection.10.76.2) >> +>> +endobj +3226 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.841 240.615 701.316] +/A << /S /GoTo /D (subsubsection.10.76.2.1) >> +>> +endobj +3227 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 674.007 226.162 684.482] +/A << /S /GoTo /D (subsubsection.10.76.2.2) >> +>> +endobj +3228 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 657.985 218.453 667.648] +/A << /S /GoTo /D (section.10.77) >> +>> +endobj +3229 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 640.339 222.47 650.608] +/A << /S /GoTo /D (subsection.10.77.1) >> +>> +endobj +3230 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 625.209 239.291 633.774] +/A << /S /GoTo /D (subsection.10.77.2) >> +>> +endobj +3231 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 606.671 240.615 617.146] +/A << /S /GoTo /D (subsubsection.10.77.2.1) >> +>> +endobj +3232 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 589.837 226.162 600.312] +/A << /S /GoTo /D (subsubsection.10.77.2.2) >> +>> +endobj +3233 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 574.707 199.795 583.478] +/A << /S /GoTo /D (section.10.78) >> +>> +endobj +3234 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 556.169 222.47 566.437] +/A << /S /GoTo /D (subsection.10.78.1) >> +>> +endobj +3235 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 541.039 239.291 549.603] +/A << /S /GoTo /D (subsection.10.78.2) >> +>> +endobj +3236 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.501 208.14 532.976] +/A << /S /GoTo /D (subsubsection.10.78.2.1) >> +>> +endobj +3237 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.559 238.813 516.142] +/A << /S /GoTo /D (subsubsection.10.78.2.2) >> +>> +endobj +3238 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.833 262.466 499.308] +/A << /S /GoTo /D (subsubsection.10.78.2.3) >> +>> +endobj +3239 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 471.999 256.979 482.474] +/A << /S /GoTo /D (subsubsection.10.78.2.4) >> +>> +endobj +3240 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 456.869 200.297 465.64] +/A << /S /GoTo /D (section.10.79) >> +>> +endobj +3241 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 438.331 222.47 448.599] +/A << /S /GoTo /D (subsection.10.79.1) >> +>> +endobj +3242 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 423.201 239.291 431.765] +/A << /S /GoTo /D (subsection.10.79.2) >> +>> +endobj +3243 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.663 208.14 415.138] +/A << /S /GoTo /D (subsubsection.10.79.2.1) >> +>> +endobj +3244 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.721 238.813 398.303] +/A << /S /GoTo /D (subsubsection.10.79.2.2) >> +>> +endobj +3245 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 370.995 262.466 381.469] +/A << /S /GoTo /D (subsubsection.10.79.2.3) >> +>> +endobj +3246 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.161 256.979 364.635] +/A << /S /GoTo /D (subsubsection.10.79.2.4) >> +>> +endobj +3247 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 338.138 219.368 347.801] +/A << /S /GoTo /D (section.10.80) >> +>> +endobj +3248 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 320.493 222.47 330.761] +/A << /S /GoTo /D (subsection.10.80.1) >> +>> +endobj +3249 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 304.47 219.87 314.133] +/A << /S /GoTo /D (section.10.81) >> +>> +endobj +3250 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 286.825 222.47 297.093] +/A << /S /GoTo /D (subsection.10.81.1) >> +>> +endobj +3251 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 271.694 193.178 280.465] +/A << /S /GoTo /D (section.10.82) >> +>> +endobj +3252 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 253.157 222.47 263.425] +/A << /S /GoTo /D (subsection.10.82.1) >> +>> +endobj +3253 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 238.026 239.291 246.591] +/A << /S /GoTo /D (subsection.10.82.2) >> +>> +endobj +3254 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.489 201.388 229.963] +/A << /S /GoTo /D (subsubsection.10.82.2.1) >> +>> +endobj +3255 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.655 306.176 213.129] +/A << /S /GoTo /D (subsubsection.10.82.2.2) >> +>> +endobj +3256 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.713 322.755 196.295] +/A << /S /GoTo /D (subsubsection.10.82.2.3) >> +>> +endobj +3257 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.879 249.232 179.461] +/A << /S /GoTo /D (subsubsection.10.82.2.4) >> +>> +endobj +3258 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.045 300.25 162.627] +/A << /S /GoTo /D (subsubsection.10.82.2.5) >> +>> +endobj +3259 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.211 249.725 145.793] +/A << /S /GoTo /D (subsubsection.10.82.2.6) >> +>> +endobj +3260 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 249.232 128.959] +/A << /S /GoTo /D (subsubsection.10.82.2.7) >> +>> +endobj +3261 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 103.354 193.68 112.125] +/A << /S /GoTo /D (section.10.83) >> +>> +endobj +3262 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 84.817 222.47 95.085] +/A << /S /GoTo /D (subsection.10.83.1) >> +>> +endobj +3263 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 69.686 239.291 78.251] +/A << /S /GoTo /D (subsection.10.83.2) >> +>> +endobj +3265 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3312 0 obj +<< +/Length 1001 +/Filter /FlateDecode +>> +stream +x���r�6��z +,Ʌ�.�i���Z[���pQ8�E��uEڒ,H�g*� A�p>����o�b��g,�fo�7WT!(X|A%���En������x?�c1�>�����S +*�@��n?#�����A(�O��0N!gԼ���쯇�S-���ސ`�7�!ȕR`���`����9�ʫ�O�#��]7����\Q�Aιع�W(�Uӊ)�P���s�ca�]��w���mt���9�^Z4��&��֡��lA���#��n�J��*�N�e�EUx��EY�����!G@l�M����Gxl3ә'���Y��T>F^ke,��#Î��.��$���6g�r���iJ��$6�sΠT�)խE��u�M�*���ݵ��S��J�~�Y,/��s�'�����(i�ﺉ�d(�q�����,���O����F����������u�=�t�:����3��ǛE���i[����+.�ax��Ť�gy����"�nX�q�뢉��rB���b�$=�wP��U�2t�8鱘�� &L&�O sG����n���P}oC(|!��#@v���i������#��,�b�'1�"Sǐפqw�[�Y���J��s�%A�����Q2|����S����< cS,��" ��y�ԅ.��4Be��1ru4�U��wEt]��Y�#�����o��,�a�ڄ;L�)�hm ��;���S �_N���W�+'�����֝���OAk�r�����<��W'<��=����b�����A]�������_��/��r���������j1C�վ�x�W�1�S�3-�p��j��/�rX�&;�S���z���"�m:�N�Ⱥ� +!�c��:���e�y��V����aU��ݐ��1������.��2�+`��������<��Br��6.����m���H��O�1��q�� +�b7V�L6�'_֫Əa�[gx�?�&�0�^����^�� +endstream +endobj +3311 0 obj +<< +/Type /Page +/Contents 3312 0 R +/Resources 3310 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3177 0 R +/Annots [ 3264 0 R 3268 0 R 3269 0 R 3270 0 R 3271 0 R 3272 0 R 3273 0 R 3274 0 R 3275 0 R 3276 0 R 3277 0 R 3278 0 R 3279 0 R 3280 0 R 3281 0 R 3282 0 R 3283 0 R 3284 0 R 3285 0 R 3286 0 R 3287 0 R 3288 0 R 3289 0 R 3290 0 R 3291 0 R 3292 0 R 3293 0 R 3294 0 R 3295 0 R 3296 0 R 3297 0 R 3298 0 R 3299 0 R 3300 0 R 3301 0 R 3302 0 R 3303 0 R 3304 0 R 3305 0 R 3306 0 R 3307 0 R 3308 0 R ] +>> +endobj +3264 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.177 201.388 768.652] +/A << /S /GoTo /D (subsubsection.10.83.2.1) >> +>> +endobj +3268 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.343 306.176 751.818] +/A << /S /GoTo /D (subsubsection.10.83.2.2) >> +>> +endobj +3269 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 724.402 322.755 734.984] +/A << /S /GoTo /D (subsubsection.10.83.2.3) >> +>> +endobj +3270 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 707.568 249.232 718.15] +/A << /S /GoTo /D (subsubsection.10.83.2.4) >> +>> +endobj +3271 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.734 300.25 701.316] +/A << /S /GoTo /D (subsubsection.10.83.2.5) >> +>> +endobj +3272 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 673.9 249.725 684.482] +/A << /S /GoTo /D (subsubsection.10.83.2.6) >> +>> +endobj +3273 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.066 249.232 667.648] +/A << /S /GoTo /D (subsubsection.10.83.2.7) >> +>> +endobj +3274 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 641.151 212.616 650.814] +/A << /S /GoTo /D (section.10.84) >> +>> +endobj +3275 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 623.505 222.47 633.774] +/A << /S /GoTo /D (subsection.10.84.1) >> +>> +endobj +3276 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 607.483 213.118 617.146] +/A << /S /GoTo /D (section.10.85) >> +>> +endobj +3277 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 589.837 222.47 600.105] +/A << /S /GoTo /D (subsection.10.85.1) >> +>> +endobj +3278 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 574.707 223.618 583.478] +/A << /S /GoTo /D (section.10.86) >> +>> +endobj +3279 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 556.169 222.47 566.437] +/A << /S /GoTo /D (subsection.10.86.1) >> +>> +endobj +3280 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 541.039 239.291 549.603] +/A << /S /GoTo /D (subsection.10.86.2) >> +>> +endobj +3281 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.501 236.813 532.976] +/A << /S /GoTo /D (subsubsection.10.86.2.1) >> +>> +endobj +3282 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.667 236.813 516.142] +/A << /S /GoTo /D (subsubsection.10.86.2.2) >> +>> +endobj +3283 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.725 289.768 499.308] +/A << /S /GoTo /D (subsubsection.10.86.2.3) >> +>> +endobj +3284 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 471.891 288.423 482.474] +/A << /S /GoTo /D (subsubsection.10.86.2.4) >> +>> +endobj +3285 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 455.057 327.372 465.64] +/A << /S /GoTo /D (subsubsection.10.86.2.5) >> +>> +endobj +3286 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 438.223 366.312 448.806] +/A << /S /GoTo /D (subsubsection.10.86.2.6) >> +>> +endobj +3287 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.389 389.239 431.972] +/A << /S /GoTo /D (subsubsection.10.86.2.7) >> +>> +endobj +3288 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.555 386.674 415.138] +/A << /S /GoTo /D (subsubsection.10.86.2.8) >> +>> +endobj +3289 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.829 323.804 398.303] +/A << /S /GoTo /D (subsubsection.10.86.2.9) >> +>> +endobj +3290 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 372.698 224.12 381.469] +/A << /S /GoTo /D (section.10.87) >> +>> +endobj +3291 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 354.161 222.47 364.429] +/A << /S /GoTo /D (subsection.10.87.1) >> +>> +endobj +3292 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 339.03 239.291 347.595] +/A << /S /GoTo /D (subsection.10.87.2) >> +>> +endobj +3293 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.493 236.813 330.967] +/A << /S /GoTo /D (subsubsection.10.87.2.1) >> +>> +endobj +3294 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 303.659 236.813 314.133] +/A << /S /GoTo /D (subsubsection.10.87.2.2) >> +>> +endobj +3295 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 286.717 289.768 297.299] +/A << /S /GoTo /D (subsubsection.10.87.2.3) >> +>> +endobj +3296 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 269.883 288.423 280.465] +/A << /S /GoTo /D (subsubsection.10.87.2.4) >> +>> +endobj +3297 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.049 327.372 263.631] +/A << /S /GoTo /D (subsubsection.10.87.2.5) >> +>> +endobj +3298 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.215 366.312 246.797] +/A << /S /GoTo /D (subsubsection.10.87.2.6) >> +>> +endobj +3299 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.381 389.239 229.963] +/A << /S /GoTo /D (subsubsection.10.87.2.7) >> +>> +endobj +3300 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.547 386.674 213.129] +/A << /S /GoTo /D (subsubsection.10.87.2.8) >> +>> +endobj +3301 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.821 323.804 196.295] +/A << /S /GoTo /D (subsubsection.10.87.2.9) >> +>> +endobj +3302 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 170.69 195.034 179.461] +/A << /S /GoTo /D (section.10.88) >> +>> +endobj +3303 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 152.153 222.47 162.421] +/A << /S /GoTo /D (subsection.10.88.1) >> +>> +endobj +3304 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 137.022 239.291 145.587] +/A << /S /GoTo /D (subsection.10.88.2) >> +>> +endobj +3305 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 255.212 128.959] +/A << /S /GoTo /D (subsubsection.10.88.2.1) >> +>> +endobj +3306 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.543 297.174 112.125] +/A << /S /GoTo /D (subsubsection.10.88.2.2) >> +>> +endobj +3307 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 84.817 225.301 95.291] +/A << /S /GoTo /D (subsubsection.10.88.2.3) >> +>> +endobj +3308 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 67.983 230.788 78.457] +/A << /S /GoTo /D (subsubsection.10.88.2.4) >> +>> +endobj +3310 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3357 0 obj +<< +/Length 995 +/Filter /FlateDecode +>> +stream +x���Ms�6����p�V��N���S����aTP\fl��&��� �ѦJ��$��ƉP�W�+�iq�;�v�� �y��b��J�����-��AF5��@����7��}�m�e��b�}���!��DP �RP�������@�j~ls ��3�^����?�����f�/�z_���A��Ct�v�V�@�ΉTɦ+Wm�.���#����=\��5� L看݁�ɻ7-��E+���^����X@E�1�8�S̓��Zf&%(�O Ol�b�����c$�ԁ�rhyפs�YVݭ�:��h_����mY>aIXv� +�#ᔢ�G̝7`D�q�1FC��v��(�w���M����!�Fek���6����'9��OèFS����:�JE�q�1����݉�rew���mzmc�ܞZ�C]&�\�3w��1鑛���W�w#�û6�O��������E�}h��T�Vug]盵�:3-e�=��*IG}��`��]��?�`!���*$���`����7��YSםw���{7c�f�(���� ��J�%�������x�<�6&/��og��/���1�xi�|7���1�x֘|��� +����W�������۶�yP�#�b�qpt`�Q��i���'���|X�]K��k�<�M�n���s��λ�I�$���&w�|�D��N@b'xx���&q��Mh=;L��5?���ޜ�Bl�����"x���i�� �'L��9p}���.4��4fg�_��W~$�����cKm��m�5mW��Z�~+� Q�#n�UYXSeE�v�͍�a�[+h%G�ʪ����;#L|��J�F ��!3U�D鍇���D�@1=.����9��X��>Vs�;l���U�yݙ5��1�'0�PN<��ض,6f5�!7X��*��Y��M +�b��g���w/y�?�=x�%T$��ã������+�%1�;l�?��6�;���k�xȋl��ǥ����V�5�c��l +endstream +endobj +3356 0 obj +<< +/Type /Page +/Contents 3357 0 R +/Resources 3355 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3177 0 R +/Annots [ 3309 0 R 3313 0 R 3314 0 R 3315 0 R 3316 0 R 3317 0 R 3318 0 R 3319 0 R 3320 0 R 3321 0 R 3322 0 R 3323 0 R 3324 0 R 3325 0 R 3326 0 R 3327 0 R 3328 0 R 3329 0 R 3330 0 R 3331 0 R 3332 0 R 3333 0 R 3334 0 R 3335 0 R 3336 0 R 3337 0 R 3338 0 R 3339 0 R 3340 0 R 3341 0 R 3342 0 R 3343 0 R 3344 0 R 3345 0 R 3346 0 R 3347 0 R 3348 0 R 3349 0 R 3350 0 R 3351 0 R 3352 0 R 3353 0 R ] +>> +endobj +3309 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.177 222.808 768.652] +/A << /S /GoTo /D (subsubsection.10.88.2.5) >> +>> +endobj +3313 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.236 274.015 751.818] +/A << /S /GoTo /D (subsubsection.10.88.2.6) >> +>> +endobj +3314 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 724.509 228.43 734.984] +/A << /S /GoTo /D (subsubsection.10.88.2.7) >> +>> +endobj +3315 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 707.675 224.808 718.15] +/A << /S /GoTo /D (subsubsection.10.88.2.8) >> +>> +endobj +3316 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.841 228.888 701.316] +/A << /S /GoTo /D (subsubsection.10.88.2.9) >> +>> +endobj +3317 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 674.007 250.639 684.482] +/A << /S /GoTo /D (subsubsection.10.88.2.10) >> +>> +endobj +3318 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.173 245.242 667.648] +/A << /S /GoTo /D (subsubsection.10.88.2.11) >> +>> +endobj +3319 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 640.339 242.749 650.814] +/A << /S /GoTo /D (subsubsection.10.88.2.12) >> +>> +endobj +3320 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 625.209 195.536 633.98] +/A << /S /GoTo /D (section.10.89) >> +>> +endobj +3321 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 606.671 222.47 616.939] +/A << /S /GoTo /D (subsection.10.89.1) >> +>> +endobj +3322 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 591.541 239.291 600.105] +/A << /S /GoTo /D (subsection.10.89.2) >> +>> +endobj +3323 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 572.896 255.212 583.478] +/A << /S /GoTo /D (subsubsection.10.89.2.1) >> +>> +endobj +3324 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 556.061 297.174 566.644] +/A << /S /GoTo /D (subsubsection.10.89.2.2) >> +>> +endobj +3325 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 539.335 225.301 549.81] +/A << /S /GoTo /D (subsubsection.10.89.2.3) >> +>> +endobj +3326 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 522.501 230.788 532.976] +/A << /S /GoTo /D (subsubsection.10.89.2.4) >> +>> +endobj +3327 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.667 222.808 516.142] +/A << /S /GoTo /D (subsubsection.10.89.2.5) >> +>> +endobj +3328 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.725 274.015 499.308] +/A << /S /GoTo /D (subsubsection.10.89.2.6) >> +>> +endobj +3329 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 471.999 228.43 482.474] +/A << /S /GoTo /D (subsubsection.10.89.2.7) >> +>> +endobj +3330 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 455.165 224.808 465.64] +/A << /S /GoTo /D (subsubsection.10.89.2.8) >> +>> +endobj +3331 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 438.331 228.888 448.806] +/A << /S /GoTo /D (subsubsection.10.89.2.9) >> +>> +endobj +3332 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.497 250.639 431.972] +/A << /S /GoTo /D (subsubsection.10.89.2.10) >> +>> +endobj +3333 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.663 245.242 415.138] +/A << /S /GoTo /D (subsubsection.10.89.2.11) >> +>> +endobj +3334 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.829 242.749 398.303] +/A << /S /GoTo /D (subsubsection.10.89.2.12) >> +>> +endobj +3335 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 371.806 214.607 381.469] +/A << /S /GoTo /D (section.10.90) >> +>> +endobj +3336 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 354.161 222.47 364.429] +/A << /S /GoTo /D (subsection.10.90.1) >> +>> +endobj +3337 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 338.138 215.109 347.801] +/A << /S /GoTo /D (section.10.91) >> +>> +endobj +3338 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 320.493 222.47 330.761] +/A << /S /GoTo /D (subsection.10.91.1) >> +>> +endobj +3339 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 305.362 202.969 314.133] +/A << /S /GoTo /D (section.10.92) >> +>> +endobj +3340 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 286.825 222.47 297.093] +/A << /S /GoTo /D (subsection.10.92.1) >> +>> +endobj +3341 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 271.694 239.291 280.259] +/A << /S /GoTo /D (subsection.10.92.2) >> +>> +endobj +3342 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.157 231.568 263.631] +/A << /S /GoTo /D (subsubsection.10.92.2.1) >> +>> +endobj +3343 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.323 236.043 246.797] +/A << /S /GoTo /D (subsubsection.10.92.2.2) >> +>> +endobj +3344 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.489 235.281 229.963] +/A << /S /GoTo /D (subsubsection.10.92.2.3) >> +>> +endobj +3345 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.655 252.854 213.129] +/A << /S /GoTo /D (subsubsection.10.92.2.4) >> +>> +endobj +3346 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.713 270.437 196.295] +/A << /S /GoTo /D (subsubsection.10.92.2.5) >> +>> +endobj +3347 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.879 310.812 179.461] +/A << /S /GoTo /D (subsubsection.10.92.2.6) >> +>> +endobj +3348 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.045 284.397 162.627] +/A << /S /GoTo /D (subsubsection.10.92.2.7) >> +>> +endobj +3349 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.211 297.085 145.793] +/A << /S /GoTo /D (subsubsection.10.92.2.8) >> +>> +endobj +3350 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.377 282.676 128.959] +/A << /S /GoTo /D (subsubsection.10.92.2.9) >> +>> +endobj +3351 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 101.543 264.681 112.125] +/A << /S /GoTo /D (subsubsection.10.92.2.10) >> +>> +endobj +3352 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 84.709 270.437 95.291] +/A << /S /GoTo /D (subsubsection.10.92.2.11) >> +>> +endobj +3353 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 67.875 297.847 78.457] +/A << /S /GoTo /D (subsubsection.10.92.2.12) >> +>> +endobj +3355 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3402 0 obj +<< +/Length 944 +/Filter /FlateDecode +>> +stream +x���Is�0��{~���!B�re��p��[a<��3�����Q6 +�� hf�X���8u�ϒ��b~��E;A`x3y9����(���`�H�@j��$w��������|�m���!�}O)��rr� �®{�Z���o.�rF�� +|����ۻ�4����{C�o{��\) ��?A�wb:����)�ɻU�.L�����1i�j�j�,�Gđ��ۃ8�:��i�8�q.�X�3�{�M+�"���J���({@Ɔ����+�d���*��;�e���,7i�gU֤�)FI_�x)��C.Z��k�JB������<���ӆ8��5V��چ�X֝�Y*}��W�M{�fM�i�ٔ���i~�� +j�h�QQ�z[+ӗ�0�)��������¡���ܦ�����n�Gu�����7�#6����^4�6,Qr2o�L\���8�R�i�S��u��UY�ݫk�e�Mc��8�?�ch���>qN��S�A��2{�û6��\�\����#����#�U_�[՝�*�!h)#�CZ���t��)ZV�!Y�>�6_�lye�Ɵ_�����n����G/t�F�8��M�>"D�F��/n�h���ϖ�)��l"\뽧K�%#�@D1���UY��N���2���]<+9hU�ž?߯ͅ�$T����.����?u���� +��b����,�z�겚[(F�z����#��:�r6�-�cӨ�r��p1�����Y}����ĽF�^��� '��6�8q(g����Xo�&ؘ��z����z�#�4�y��y4�Xos�3x�&�ۜ5�ۜ�7���xp��kי��yP��f$�z���ְX[�_�ީ��O�7�� +3�b1��;��'���v� x������D +�y�����sf�P�-nO�S�&�����C��v.���v {뇻���� +endstream +endobj +3401 0 obj +<< +/Type /Page +/Contents 3402 0 R +/Resources 3400 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3177 0 R +/Annots [ 3354 0 R 3358 0 R 3359 0 R 3360 0 R 3361 0 R 3362 0 R 3363 0 R 3364 0 R 3365 0 R 3366 0 R 3367 0 R 3368 0 R 3369 0 R 3370 0 R 3371 0 R 3372 0 R 3373 0 R 3374 0 R 3375 0 R 3376 0 R 3377 0 R 3378 0 R 3379 0 R 3380 0 R 3381 0 R 3382 0 R 3383 0 R 3384 0 R 3385 0 R 3386 0 R 3387 0 R 3388 0 R 3389 0 R 3390 0 R 3391 0 R 3392 0 R 3393 0 R 3394 0 R 3395 0 R 3396 0 R 3397 0 R 3398 0 R ] +>> +endobj +3354 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 758.07 297.076 768.652] +/A << /S /GoTo /D (subsubsection.10.92.2.13) >> +>> +endobj +3358 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 741.236 255.983 751.818] +/A << /S /GoTo /D (subsubsection.10.92.2.14) >> +>> +endobj +3359 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 724.509 303.227 734.984] +/A << /S /GoTo /D (subsubsection.10.92.2.15) >> +>> +endobj +3360 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 707.675 254.988 718.15] +/A << /S /GoTo /D (subsubsection.10.92.2.16) >> +>> +endobj +3361 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 690.841 235.953 701.316] +/A << /S /GoTo /D (subsubsection.10.92.2.17) >> +>> +endobj +3362 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 674.007 239.172 684.482] +/A << /S /GoTo /D (subsubsection.10.92.2.18) >> +>> +endobj +3363 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 657.173 279.179 667.648] +/A << /S /GoTo /D (subsubsection.10.92.2.19) >> +>> +endobj +3364 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 640.339 261.955 650.814] +/A << /S /GoTo /D (subsubsection.10.92.2.20) >> +>> +endobj +3365 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 623.505 264.851 633.98] +/A << /S /GoTo /D (subsubsection.10.92.2.21) >> +>> +endobj +3366 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 606.671 249.008 617.146] +/A << /S /GoTo /D (subsubsection.10.92.2.22) >> +>> +endobj +3367 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 589.837 236.052 600.312] +/A << /S /GoTo /D (subsubsection.10.92.2.23) >> +>> +endobj +3368 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 573.003 284.397 583.478] +/A << /S /GoTo /D (subsubsection.10.92.2.24) >> +>> +endobj +3369 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 557.873 203.471 566.644] +/A << /S /GoTo /D (section.10.93) >> +>> +endobj +3370 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 539.335 222.47 549.603] +/A << /S /GoTo /D (subsection.10.93.1) >> +>> +endobj +3371 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 524.205 239.291 532.769] +/A << /S /GoTo /D (subsection.10.93.2) >> +>> +endobj +3372 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 505.667 231.568 516.142] +/A << /S /GoTo /D (subsubsection.10.93.2.1) >> +>> +endobj +3373 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 488.833 236.043 499.308] +/A << /S /GoTo /D (subsubsection.10.93.2.2) >> +>> +endobj +3374 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 471.999 235.281 482.474] +/A << /S /GoTo /D (subsubsection.10.93.2.3) >> +>> +endobj +3375 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 455.165 252.854 465.64] +/A << /S /GoTo /D (subsubsection.10.93.2.4) >> +>> +endobj +3376 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 438.223 270.437 448.806] +/A << /S /GoTo /D (subsubsection.10.93.2.5) >> +>> +endobj +3377 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 421.389 310.812 431.972] +/A << /S /GoTo /D (subsubsection.10.93.2.6) >> +>> +endobj +3378 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 404.555 284.397 415.138] +/A << /S /GoTo /D (subsubsection.10.93.2.7) >> +>> +endobj +3379 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 387.721 297.085 398.303] +/A << /S /GoTo /D (subsubsection.10.93.2.8) >> +>> +endobj +3380 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 370.887 282.676 381.469] +/A << /S /GoTo /D (subsubsection.10.93.2.9) >> +>> +endobj +3381 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 354.053 264.681 364.635] +/A << /S /GoTo /D (subsubsection.10.93.2.10) >> +>> +endobj +3382 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 337.219 270.437 347.801] +/A << /S /GoTo /D (subsubsection.10.93.2.11) >> +>> +endobj +3383 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 320.385 297.847 330.967] +/A << /S /GoTo /D (subsubsection.10.93.2.12) >> +>> +endobj +3384 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 303.551 297.076 314.133] +/A << /S /GoTo /D (subsubsection.10.93.2.13) >> +>> +endobj +3385 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 286.717 255.983 297.299] +/A << /S /GoTo /D (subsubsection.10.93.2.14) >> +>> +endobj +3386 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 269.991 303.227 280.465] +/A << /S /GoTo /D (subsubsection.10.93.2.15) >> +>> +endobj +3387 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 253.157 254.988 263.631] +/A << /S /GoTo /D (subsubsection.10.93.2.16) >> +>> +endobj +3388 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 236.323 235.953 246.797] +/A << /S /GoTo /D (subsubsection.10.93.2.17) >> +>> +endobj +3389 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 219.489 239.172 229.963] +/A << /S /GoTo /D (subsubsection.10.93.2.18) >> +>> +endobj +3390 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 202.655 279.179 213.129] +/A << /S /GoTo /D (subsubsection.10.93.2.19) >> +>> +endobj +3391 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 185.821 261.955 196.295] +/A << /S /GoTo /D (subsubsection.10.93.2.20) >> +>> +endobj +3392 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 168.987 264.851 179.461] +/A << /S /GoTo /D (subsubsection.10.93.2.21) >> +>> +endobj +3393 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 152.153 249.008 162.627] +/A << /S /GoTo /D (subsubsection.10.93.2.22) >> +>> +endobj +3394 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 135.319 236.052 145.793] +/A << /S /GoTo /D (subsubsection.10.93.2.23) >> +>> +endobj +3395 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.591 118.485 284.397 128.959] +/A << /S /GoTo /D (subsubsection.10.93.2.24) >> +>> +endobj +3396 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 102.462 222.856 112.125] +/A << /S /GoTo /D (section.10.94) >> +>> +endobj +3397 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 84.817 222.47 95.085] +/A << /S /GoTo /D (subsection.10.94.1) >> +>> +endobj +3398 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.81 68.794 223.358 78.457] +/A << /S /GoTo /D (section.10.95) >> +>> +endobj +3400 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3405 0 obj +<< +/Length 273 +/Filter /FlateDecode +>> +stream +x�͒?O�0�w��!��{E@�NP�EJ�Hm +i��'���`b:?��ݓ��卄��* ����f��C�蜆���"k�G�NB* �����`W�=1��$�� �s�C��lv,_}o�:x&w`�Fkt��������V��ṛ�<�zi�;�4��Ѣ��_�ݺޖŤ�Vd������͐{Zy��(2k���)���_�?�&pݗ�9G���o�N�ɡ�μ���Eח�ݼl�v�M��"~��&~<U=?�e�=�+J�� +endstream +endobj +3404 0 obj +<< +/Type /Page +/Contents 3405 0 R +/Resources 3403 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3406 0 R +/Annots [ 3399 0 R ] +>> +endobj +3399 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [107.719 758.177 222.47 768.446] +/A << /S /GoTo /D (subsection.10.95.1) >> +>> +endobj +3403 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3409 0 obj +<< +/Length 26 +/Filter /FlateDecode +>> +stream +x�� +0TH/�2PHW0Pp�I��p; +endstream +endobj +3408 0 obj +<< +/Type /Page +/Contents 3409 0 R +/Resources 3407 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3406 0 R +>> +endobj +3407 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/ProcSet [ /PDF ] +>> +endobj +3419 0 obj +<< +/Type /XObject +/Subtype /Form +/FormType 1 +/PTEX.FileName (./soft_architecture_01_09_2019.pdf) +/PTEX.PageNumber 1 +/PTEX.InfoDict 3420 0 R +/BBox [0 0 889.608398 313.693237] +/Group << +/Type /Group +/S /Transparency +/I true +/CS /DeviceRGB +>> +/Resources << +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>>/XObject << +/x6 3421 0 R +/x7 3422 0 R +/x8 3423 0 R +/x9 3424 0 R +/x10 3425 0 R +/x11 3426 0 R +/x12 3427 0 R +/x13 3428 0 R +/x14 3429 0 R +/x15 3430 0 R +/x16 3431 0 R +/x17 3432 0 R +/x18 3433 0 R +/x19 3434 0 R +/x20 3435 0 R +/x21 3436 0 R +/x22 3437 0 R +/x23 3438 0 R +/x24 3439 0 R +/x25 3440 0 R +/x26 3441 0 R +/x27 3442 0 R +/x28 3443 0 R +/x29 3444 0 R +/x30 3445 0 R +/x31 3446 0 R +/x32 3447 0 R +/x33 3448 0 R +/x34 3449 0 R +/x35 3450 0 R +/x36 3451 0 R +/x37 3452 0 R +/x38 3453 0 R +/x39 3454 0 R +/x40 3455 0 R +/x41 3456 0 R +/x42 3457 0 R +/x43 3458 0 R +/x44 3459 0 R +/x45 3460 0 R +/x46 3461 0 R +/x47 3462 0 R +/x48 3463 0 R +/x49 3464 0 R +/x50 3465 0 R +/x51 3466 0 R +/x52 3467 0 R +/x53 3468 0 R +/x54 3469 0 R +/x55 3470 0 R +/x56 3471 0 R +/x57 3472 0 R +/x58 3473 0 R +/x59 3474 0 R +/x60 3475 0 R +/x61 3476 0 R +/x62 3477 0 R +/x63 3478 0 R +/x64 3479 0 R +/x65 3480 0 R +/x66 3481 0 R +/x67 3482 0 R +/x68 3483 0 R +/x69 3484 0 R +/x70 3485 0 R +/x71 3486 0 R +/x72 3487 0 R +/x73 3488 0 R +/x74 3489 0 R +/x75 3490 0 R +/x76 3491 0 R +/x77 3492 0 R +/x78 3493 0 R +/x79 3494 0 R +/x80 3495 0 R +/x81 3496 0 R +/x82 3497 0 R +/x83 3498 0 R +/x84 3499 0 R +/x85 3500 0 R +/x86 3501 0 R +/x87 3502 0 R +/x88 3503 0 R +/x89 3504 0 R +/x90 3505 0 R +/x91 3506 0 R +/x92 3507 0 R +/x93 3508 0 R +/x94 3509 0 R +/x95 3510 0 R +/x96 3511 0 R +/x97 3512 0 R +/x98 3513 0 R +/x99 3514 0 R +/x100 3515 0 R +/x101 3516 0 R +/x102 3517 0 R +/x103 3518 0 R +/x104 3519 0 R +>>>> +/Length 286 +/Filter /FlateDecode +>> +stream +x��ֻM1E�|�p�l_s�BO$���Y�� ��蔔��P�%ǎ3����L�����^߷�^?��s�����#� +����d�Ee,����������������������������AӠi�4h4 �M��AӠi�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i��������������������������������:�������������������^�ٳ?{��_�����A +endstream +endobj +3420 0 obj +<< +/Producer (cairo 1.15.10 \(http://cairographics.org\)) +/CreationDate (D:20191216151212+01'00) +>> +endobj +3421 0 obj +<< +/Length 3520 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3521 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ah`�������� K +endstream +endobj +3422 0 obj +<< +/Length 3522 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3523 0 R +>> +stream +x�m�1 +�PD�=�\ ���?���E��A��^�DӼ��a�q�z0ܞBe�쁗����/05\���T�g�J&T����hڤQ�*�{� ]W�?g��_xB/��D% +endstream +endobj +3423 0 obj +<< +/Length 3524 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3525 0 R +>> +stream +x�+�2P�� w�D��b.C=C#3�r.C/ �⊎U0�3PH�24P�U(T0kхPɹ\F@i#]mb���`aj�gln +�QV� +����� +endstream +endobj +3424 0 obj +<< +/Length 3526 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3527 0 R +>> +stream +x�m�M�@�=�`�2��s��ƺ����'�&6��|y�X�I�2u�d;O��m���8��TIZCe���͋B��)�N-��`Ҍ����_Q���p�7��g�A�������e*j +endstream +endobj +3425 0 obj +<< +/Length 3528 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3529 0 R +>> +stream +x�m�A +�@E�9ſ@�d2�dN .�Kq! +��Eq���R�K �����yRI�?[l.���J,�����I�s5� +� �:ʹ�=%�E�(����#�L}F�E�A,��8�ۄ<�)[h�-Y+V-�m��1�V툎:���5� +endstream +endobj +3426 0 obj +<< +/Length 3530 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3531 0 R +>> +stream +x� Ź�0�\U\L �Zv�@��1���&��pXE*�{���#m�bM�`��l���X���L�̱.��`�� +endstream +endobj +3427 0 obj +<< +/Length 3532 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3533 0 R +>> +stream +x�e�= +�@��9Ż@����',bʐBT�b���g�R^�~�x��KM� ��:�t���D�"E�%�H�7-k��G4($������Φ��jf-���=�ͱ=1c����? +endstream +endobj +3428 0 obj +<< +/Length 3534 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3535 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahd�������� H +endstream +endobj +3429 0 obj +<< +/Length 3536 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3537 0 R +>> +stream +x�+�2P�� w�D��b.C=C#3�r.C/ �⊎U0�3PH�2R�U(T0�ЅPɹ\&F�zf�f@�2c�\sC=#S�P�B�B W ���T +endstream +endobj +3430 0 obj +<< +/Length 3538 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3539 0 R +>> +stream +x�+�2P�� w�D��b.C=C#3�r.C/ �⊎U0�3PH�2R�U(T0�ЅPɹ\&�FzƆ� +��z�� +� +f�FzƖp��`�@�@.�Օ +endstream +endobj +3431 0 obj +<< +/Length 3540 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3541 0 R +>> +stream +x�e�;�@D{��u +��]�!M� E��%X�, ���g��$Z*2)��҄���o��q\@�ɬ�'2��AKF����)�wД&Ҭ�t�*㔹<i�~��7���>���V|(� +endstream +endobj +3432 0 obj +<< +/Length 3542 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3543 0 R +>> +stream +x�m�A +�@E�9ſ��df23=� ��.Ņ((�.J^���(Y���2�p.1h�oح�: �c�D��x�džw:�)�T�����r�v��|�"\VNҠG��>��t31�R3e��f�={+�k�CK�|�Pg!����GK-=��4> +endstream +endobj +3433 0 obj +<< +/Length 3544 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3545 0 R +>> +stream +x� ʱ�0��)~m�!��`�����g�k�%a�0oN��e��5́���\�{7�:�d� +��7��N�S�� +endstream +endobj +3434 0 obj +<< +/Length 3546 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3547 0 R +>> +stream +x�+�2�3�0164Q�d�+�'(�Z�*�s)xq(dqE�U(��| +�PB%�r��뙙�(��YX�+XX虚�F@㍌�R������& +endstream +endobj +3435 0 obj +<< +/Length 3548 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3549 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahl������� N +endstream +endobj +3436 0 obj +<< +/Length 3550 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3551 0 R +>> +stream +x�=L1 +�0���@��ji�ApPGqAt�o� !$!$'1^t���^Ě�g17ԉ `mc4eL&�c-$hp�|*�|�x�C�P�Np@�ݟw�h��.J� +endstream +endobj +3437 0 obj +<< +/Length 3552 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3553 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahb�������� J +endstream +endobj +3438 0 obj +<< +/Length 3554 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3555 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahb������� M +endstream +endobj +3439 0 obj +<< +/Length 3556 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3557 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahb�������( P +endstream +endobj +3440 0 obj +<< +/Length 3558 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3559 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahj�������� J +endstream +endobj +3441 0 obj +<< +/Length 3560 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3561 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahj������� M +endstream +endobj +3442 0 obj +<< +/Length 3562 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3563 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahj�������) P +endstream +endobj +3443 0 obj +<< +/Length 3564 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3565 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahf�������� J +endstream +endobj +3444 0 obj +<< +/Length 3566 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3567 0 R +>> +stream +x�m�1AОSP[ p�=����Z��O�1f31v����nŊLΕl�h�4���ʸ��E U��w���T&��H�M��F^�IJ|e�2d +�k~F��� �?��N���i) +endstream +endobj +3445 0 obj +<< +/Length 3568 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3569 0 R +>> +stream +x�m�A +�@E�9ſ@c2�ifN .�Kq! +��Eq���(XђE����F�[��?6K,���C�E� +X��J��''k�P�O�^��VX�CT9� ���&���$�PǩT��1���%����PU��Cj�e�k��zz��5 +endstream +endobj +3446 0 obj +<< +/Length 3570 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3571 0 R +>> +stream +x� ű�0��)~m�@ ��`�����g������C!|�Ա��r��/���e�f��p��;g��g��~b�� +endstream +endobj +3447 0 obj +<< +/Length 3572 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3573 0 R +>> +stream +x�e�1 +�@D���������=�H�I,BA�P�\?R�)fx<f�sҌ�qpy������H�U�U������� +z�_�7IV�Z�0����34��c�1�*U���N +endstream +endobj +3448 0 obj +<< +/Length 3574 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3575 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahn������� L +endstream +endobj +3449 0 obj +<< +/Length 3576 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3577 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahn�������" O +endstream +endobj +3450 0 obj +<< +/Length 3578 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3579 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahn�������= R +endstream +endobj +3451 0 obj +<< +/Length 3580 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3581 0 R +>> +stream +x�e�;�@�ާpMa�ۉ�9 �H +����z��J*��J�^��������)�R��%�7F���/���oqq�)]"|��������O�I�$l'������)f +endstream +endobj +3452 0 obj +<< +/Length 3582 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3583 0 R +>> +stream +x�m�A +�@E�9ſ@c2�f�'ե�E�t���*TK%����OzN٢��n��Ip�$ڈ$œ6$���XL���-z(�T�i��g��Bl�<+���<~�f�lo8����͘��u=��f-$���:�1���=Zj��V4� +endstream +endobj +3453 0 obj +<< +/Length 3584 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3585 0 R +>> +stream +x�ű�0О)~m����`��������w��[z(�+��w뮘�!y3.�`Z���K&���'��vzq� +endstream +endobj +3454 0 obj +<< +/Length 3586 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3587 0 R +>> +stream +x�+�2�3�0164Q�d�+�'(�Z�*�s)xq(dqE�U(��| +�PB%�r���Y+�Z�Y�(�hS���#s��T�`�@�@.��g} +endstream +endobj +3455 0 obj +<< +/Length 3588 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3589 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_aha�������P T +endstream +endobj +3456 0 obj +<< +/Length 3590 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3591 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahi������� N +endstream +endobj +3457 0 obj +<< +/Length 3592 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3593 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ahi�������6 Q +endstream +endobj +3458 0 obj +<< +/Length 3594 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3595 0 R +>> +stream +x�EL; +�0��)r���֞@�QDA������������x�U�'�z+.mq�F-�h�+�vQLjG-d����.�$�A�僗�ɛ�8��*��GK-=^�1 +endstream +endobj +3459 0 obj +<< +/Length 3596 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3597 0 R +>> +stream +x�+�2P�� w�D��b.=Ss#Cc�r.C/ ��V0�3��44�2 ��@M)\F +� +� +�`#t!Tr.�����1��]s=SK�\]=sS8?G!X!�+��/�� +endstream +endobj +3460 0 obj +<< +/Length 3598 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3599 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ad`�������� F +endstream +endobj +3461 0 obj +<< +/Length 3600 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3601 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ad`�������� I +endstream +endobj +3462 0 obj +<< +/Length 3602 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3603 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ad`������� L +endstream +endobj +3463 0 obj +<< +/Length 3604 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3605 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adh�������� F +endstream +endobj +3464 0 obj +<< +/Length 3606 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3607 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adh�������� I +endstream +endobj +3465 0 obj +<< +/Length 3608 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3609 0 R +>> +stream +x�m�;�@�ާpM�̮?�>G�!�Hr�@�F�n�4�f%HuKT�8���!z����� <�䦢�qQ���'\,�+ːb�M?R���Zx�A�f�ӣߎ� ԇ?�l�_�J/�c*W +endstream +endobj +3466 0 obj +<< +/Length 3610 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3611 0 R +>> +stream +x�m�A +�@�}N�/`L��L��ࢺ���]^�i�R�"��ґp��Ա��ς۫�D�HR��:�JRp-�C��Z���Rpc�SsF�(�=�='��9�@�UrO%U)��"��lsrl� +�,�����퀆����5� +endstream +endobj +3467 0 obj +<< +/Length 3612 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3613 0 R +>> +stream +x� ű�@��*.6@�A�K0Џ��gt��I�-=����a�gb=�����Ν��d���ωk��>bd� +endstream +endobj +3468 0 obj +<< +/Length 3614 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3615 0 R +>> +stream +x�e�1 +�@D�������k�zA�PK�IR�E��K�b��cVa���f\���� >�KԆ4�_":!�2/n/=V(��z���)�bN4���1� +���Ѱ�1a�AЌN +endstream +endobj +3469 0 obj +<< +/Length 3616 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3617 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_add�������� K +endstream +endobj +3470 0 obj +<< +/Length 3618 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3619 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_add������� N +endstream +endobj +3471 0 obj +<< +/Length 3620 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3621 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adl�������� H +endstream +endobj +3472 0 obj +<< +/Length 3622 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3623 0 R +>> +stream +x�mι Q��U8&0��]Ɩ@�,п��W��z��L��,�����>�B�+O��\��J�p�b����6Œ��#Nn����� &E���k��ߌ���O����|����*� +endstream +endobj +3473 0 obj +<< +/Length 3624 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3625 0 R +>> +stream +x�mν +�P�=Oq^�1ir��@��8��":_�[m�dH�8 �I8e7u̇������!�"�Oj�"��v���*��C!��O;�)�qE���I��K��mD����M����2GK4�XآM6G�f�`���Kñ˿߶訣�i6 +endstream +endobj +3474 0 obj +<< +/Length 3626 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3627 0 R +>> +stream +x�ʱ�0О)~m�@�c8B +Mm��N�^�nv� +�����rŚ؇`>�q�¼s�!��i��։k��^b� +endstream +endobj +3475 0 obj +<< +/Length 3628 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3629 0 R +>> +stream +x�e�= +�0��w���q^�%� a�h)[,*��������2���1�Х�F��С}�� j!���^��L/#�ņ'v(hj�6���T4>&W�GVǒ�ۿ8V��R��3K +endstream +endobj +3476 0 obj +<< +/Length 3630 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3631 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adb�������� J +endstream +endobj +3477 0 obj +<< +/Length 3632 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3633 0 R +>> +stream +x�mι Q��U8&0��]Ɩ@�,п��_��z��L��,�����>�B�+O���%�r8^1٨r|e�Œ��#N>�%E���M:צ��L���p�����<�/*H +endstream +endobj +3478 0 obj +<< +/Length 3634 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3635 0 R +>> +stream +x�m�A +�0����_��$�L����R\��"vQ���� +���ńǟ��$���X[l.��PC�Hrx�ǎO:�kRp��G����kG��c�h�eN.�C�\;&z�H��9:)��D����bsV�J�*�0����w�-����5� +endstream +endobj +3479 0 obj +<< +/Length 3636 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3637 0 R +>> +stream +x� �1� �>���"�#��`����gt�}���= +LGX������4�W�W�Aлf�(G����½�!c� +endstream +endobj +3480 0 obj +<< +/Length 3638 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3639 0 R +>> +stream +x�+�2�3�0164Q�d�+�'(�Z�*�s)xq(dqE�U(��| +�PB%�r���Z)����YZ)��YX�@��R�����QS +endstream +endobj +3481 0 obj +<< +/Length 3640 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3641 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adj������� L +endstream +endobj +3482 0 obj +<< +/Length 3642 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3643 0 R +>> +stream +x�m�;�@�ާpM�x��#GHC(BA��H�%R:�if�0�i� �q%���t �W��� ��Rœ���ب���6D���+��$�����v:fT�4b����fx�)*p +endstream +endobj +3483 0 obj +<< +/Length 3644 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3645 0 R +>> +stream +x�m�1 +A�>��ؘ�d'3'��R,DA�X,���(ꪤHx��$�٢~�����x�!�"�,Hp�Ͷ&� +KPH����=�E�!� )�k�����o�|�9���)��9E����1�����W����_4;��m��:�ʶ5� +endstream +endobj +3484 0 obj +<< +/Length 3646 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3647 0 R +>> +stream +x� �1� �>���"�#H��`����gt�}��ٽ�F���lL/X�i���W �]3��(#A�Ίu��d�c1� +endstream +endobj +3485 0 obj +<< +/Length 3648 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3649 0 R +>> +stream +x�+�2�3�0164Q�d�+�'(�Z�*�s)xq(dqE�U(��| +�PB%�r���YY(����YZ)��YX�@��R�����hT +endstream +endobj +3486 0 obj +<< +/Length 3650 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3651 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adf������� N +endstream +endobj +3487 0 obj +<< +/Length 3652 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3653 0 R +>> +stream +x�m�=A��SP[�[��p�`�Z���gLԉ�#_xnQ��2�Q 6�h�����g�� �"�e�����RB�#�W��/i2B���%!�1�����q��Or����@'z)� +endstream +endobj +3488 0 obj +<< +/Length 3654 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3655 0 R +>> +stream +x�m�M +1�}N�.`Lk۴'\�.Ņ((�,�Yx�Ɍ���,>^Bz�V.�wخ�< +.���ux�GC���� 6�� V�g;uű�j� +�*:���||ӽ�PXb�)�g�J��T8���W��M/d�/�N]�=�CK-�9}5o +endstream +endobj +3489 0 obj +<< +/Length 3656 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3657 0 R +>> +stream +x� ʱ�0��)�-�C��1�BS�O�k�%�[�P��@�2�ҕ���Ϗ*f��SQҪ�[�u��I?p�� +endstream +endobj +3490 0 obj +<< +/Length 3658 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3659 0 R +>> +stream +x�e�1 +�@D��������Y��B-�EHB ��Xx�|��)fx<�UJ��&��tE{'ޛK�J�.�^���7���+�4G=�����8I50gh��X;4��{a�(���t +endstream +endobj +3491 0 obj +<< +/Length 3660 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3661 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adn�������- P +endstream +endobj +3492 0 obj +<< +/Length 3662 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3663 0 R +>> +stream +x�m�1�0EwN���26>F�����i�/�DI�Hݾ�+0��ʊL��9EȞ��g���8�\HLQEH�d��[�� 5z��in�N`��H��5a����,����s�~�k)� +endstream +endobj +3493 0 obj +<< +/Length 3664 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3665 0 R +>> +stream +x�u�� +�@��y�y��I�u�' +=T��AiŃ�oV��?��cf��8d�s���%f;���&��9��h�q��֝���#�W=�~�d$)* ���Uz�~"^�'���<��Y ����T}��c�P�:��FG���5 +endstream +endobj +3494 0 obj +<< +/Length 3666 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3667 0 R +>> +stream +x�ʱ �0�>S|Ma��V�1�R���ꚻŭ{((����r�Xb<-REàE :4)5J� �ĵ���p�� +endstream +endobj +3495 0 obj +<< +/Length 3668 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3669 0 R +>> +stream +x�e�= +�@��w����y���@R�eHT�BS��y`)S����B�KqC�LJX�&Q+�?�����6�� <q@AKsմK*�4y#�.1B�鵠�v��#z����o +endstream +endobj +3496 0 obj +<< +/Length 3670 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3671 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ada�������@ R +endstream +endobj +3497 0 obj +<< +/Length 3672 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3673 0 R +>> +stream +x�e�1A��"5E�f�l��@�Q@�_��Dg�<�o�b�Rch��;D� �/�?*/Bv���ҝ���/��@�D+�>8!�Z��Y�V>�V�k����ߜvt�'��)N +endstream +endobj +3498 0 obj +<< +/Length 3674 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3675 0 R +>> +stream +x�m�M +�@�}N�.И����@\T��Bi��oTh�J>^3�p.1���[cu\G��"��A��p���b����i>Ϲ'-���4N�CD��k)�t�����$N!�(����L��Z~!�R�:���|k��Zz�O4� +endstream +endobj +3499 0 obj +<< +/Length 3676 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3677 0 R +>> +stream +x� ű�0��)~m��@�1�BS�O����MüA8]*�˵�aM�`��ٹ�!�G�� ��F}R�� +endstream +endobj +3500 0 obj +<< +/Length 3678 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3679 0 R +>> +stream +x�+�2�3�0164Q�d�+�'(�Z�*�s)xq(dqE�U(��| +�PB%�r�Z�Y ѵ0�334V03�30r����+�*+rr��G +endstream +endobj +3501 0 obj +<< +/Length 3680 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3681 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_adi�������S T +endstream +endobj +3502 0 obj +<< +/Length 3682 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3683 0 R +>> +stream +x�e�1�@{��5�����~F�@�H��B9)�j�c� j5�1d�~������o#x�Ȱ�¸�I��`s�by��Q����E��0Q����h���Wj*��, X��L�� O�(� +endstream +endobj +3503 0 obj +<< +/Length 3684 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3685 0 R +>> +stream +x�m�M +�@�}N�.`|�ۙ���R\��"�����F�V�d���2�)1����]ay$.w�U�qx��Z����$�p����N�$R}I&L"z��5�:J7I��]�d1I�G'��j����4�5�"F�?_��J+O?�4E +endstream +endobj +3504 0 obj +<< +/Length 3686 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3687 0 R +>> +stream +x� ű�@��*.6�{�˰�ط��d���G����{X��9���x%H� +���6�̂Q��½�!Qs� +endstream +endobj +3505 0 obj +<< +/Length 3688 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3689 0 R +>> +stream +x�e�1 +�@D������������¤bB ��Xx}?X�)fx<f�RsҌ�q����{s�z!�b� �G�����+��d��"�;M�,�T�{+��p�(�� +endstream +endobj +3506 0 obj +<< +/Length 3690 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3691 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_al`������� M +endstream +endobj +3507 0 obj +<< +/Length 3692 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3693 0 R +>> +stream +x�e�1�@{^A�`��3�4��p�)[rNJ�F��N*^�X%�B�;$� +�f�=��7������7�: ".�^Đ2�<����Ԭ"-�Y}紺�v֓����@w��#c* +endstream +endobj +3508 0 obj +<< +/Length 3694 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3695 0 R +>> +stream +x�m�� +�P��<�y����� ��:��((b����7��^�dH�8�8 ��E������>[H\/R��#��NgK +n��� 6ݲ�#�X�)� ��W�H}`M��WE^3��(r�� �Ԣ ���>��u�:���+{�iv�@}�E�5� +endstream +endobj +3509 0 obj +<< +/Length 3696 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3697 0 R +>> +stream +x� Ź�0�\U\L d��eP8��?�7ٗ�MӼA�\z��k��9�_��[r+h�Xp�T8����lt�SL� +endstream +endobj +3510 0 obj +<< +/Length 3698 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3699 0 R +>> +stream +x�e�1 +�0�{�~ �.�$�@,�R,DE,���{`)[̲{ۘ|.��U�&�v��R2G�C51vF5� NXc>�>ZI0.+1����q���RK/� +endstream +endobj +3511 0 obj +<< +/Length 3700 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3701 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_alh������� O +endstream +endobj +3512 0 obj +<< +/Length 3702 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3703 0 R +>> +stream +x�m�11�ޯpMa6N�v��h8 +(��K'q��j���!0�m��1������3ty c�V�r��5V��v��&i(�I� +�v{��j���!���I��g�� 'y��*U +endstream +endobj +3513 0 obj +<< +/Length 3704 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3705 0 R +>> +stream +x�m�K +�PE�Y��@c��$]� 8�Ł((b���ӂ}P� �pr����s +�a���,��E�ЊX��"�$x��TL���H�fj��T��Meo=L��ڌ�3��L��˵8!�T�T�u�z��ZX��S������v@G���5� +endstream +endobj +3514 0 obj +<< +/Length 3706 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3707 0 R +>> +stream +x� ǻ �0��S���8ƿ������D�ӽ$l�� ���k�]�5́���"�� +Z�-�P���Ƴ�I?S�� +endstream +endobj +3515 0 obj +<< +/Length 3708 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3709 0 R +>> +stream +x�+�2�3�0164Q�d�+�'(�Z�*�s)xq(dqE�U(��| +�PB%�r���YX(�Y����)���@.�x#c��T�`�@�@.���$ +endstream +endobj +3516 0 obj +<< +/Length 3710 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3711 0 R +>> +stream +x�+� +T(�*�2T0�B��˥�h��^��_ald�������3 Q +endstream +endobj +3517 0 obj +<< +/Length 3712 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3713 0 R +>> +stream +x�EL� +�`��)��w�_�'(�XDA�:H���gJ �A���$X?$,�!A#��h�� �4���}�P@����n�w +���A5pI�����?zc@G��s� +endstream +endobj +3518 0 obj +<< +/Length 3714 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3715 0 R +>> +stream +x�+�2P�� w�D��b.C=C#3�r.C/ �⊎U0�3PH�2R�U(T0�ЅPɹ\�fz�f�@sK=c#�\sS=#�@�B�B W ���� +endstream +endobj +3519 0 obj +<< +/Length 3716 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3717 0 R +>> +stream +x�5�; +�@D��b.`�n�� �B-�B�B,��Q�!��� ���D< +���%��;�E��J=�5��o;��L5��E�մ�k�f���)F��С��n`J? +endstream +endobj +3520 0 obj +43 +endobj +3521 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x107 3718 0 R +>> +>> +endobj +3522 0 obj +117 +endobj +3523 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3524 0 obj +96 +endobj +3525 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3526 0 obj +117 +endobj +3527 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3528 0 obj +146 +endobj +3529 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3530 0 obj +75 +endobj +3531 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3532 0 obj +110 +endobj +3533 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3534 0 obj +43 +endobj +3535 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x122 3719 0 R +>> +>> +endobj +3536 0 obj +98 +endobj +3537 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3538 0 obj +99 +endobj +3539 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3540 0 obj +115 +endobj +3541 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3542 0 obj +146 +endobj +3543 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3544 0 obj +75 +endobj +3545 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3546 0 obj +110 +endobj +3547 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3548 0 obj +43 +endobj +3549 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x137 3720 0 R +>> +>> +endobj +3550 0 obj +105 +endobj +3551 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3552 0 obj +43 +endobj +3553 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x142 3721 0 R +>> +>> +endobj +3554 0 obj +43 +endobj +3555 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x145 3722 0 R +>> +>> +endobj +3556 0 obj +43 +endobj +3557 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x148 3723 0 R +>> +>> +endobj +3558 0 obj +43 +endobj +3559 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x151 3724 0 R +>> +>> +endobj +3560 0 obj +43 +endobj +3561 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x154 3725 0 R +>> +>> +endobj +3562 0 obj +43 +endobj +3563 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x157 3726 0 R +>> +>> +endobj +3564 0 obj +43 +endobj +3565 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x160 3727 0 R +>> +>> +endobj +3566 0 obj +114 +endobj +3567 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3568 0 obj +145 +endobj +3569 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3570 0 obj +74 +endobj +3571 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3572 0 obj +110 +endobj +3573 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3574 0 obj +43 +endobj +3575 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x171 3728 0 R +>> +>> +endobj +3576 0 obj +43 +endobj +3577 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x174 3729 0 R +>> +>> +endobj +3578 0 obj +43 +endobj +3579 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x177 3730 0 R +>> +>> +endobj +3580 0 obj +116 +endobj +3581 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3582 0 obj +146 +endobj +3583 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3584 0 obj +75 +endobj +3585 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3586 0 obj +110 +endobj +3587 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3588 0 obj +43 +endobj +3589 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x188 3731 0 R +>> +>> +endobj +3590 0 obj +43 +endobj +3591 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x191 3732 0 R +>> +>> +endobj +3592 0 obj +43 +endobj +3593 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x194 3733 0 R +>> +>> +endobj +3594 0 obj +106 +endobj +3595 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3596 0 obj +107 +endobj +3597 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3598 0 obj +43 +endobj +3599 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x201 3734 0 R +>> +>> +endobj +3600 0 obj +43 +endobj +3601 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x204 3735 0 R +>> +>> +endobj +3602 0 obj +43 +endobj +3603 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x207 3736 0 R +>> +>> +endobj +3604 0 obj +43 +endobj +3605 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x210 3737 0 R +>> +>> +endobj +3606 0 obj +43 +endobj +3607 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x213 3738 0 R +>> +>> +endobj +3608 0 obj +117 +endobj +3609 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3610 0 obj +146 +endobj +3611 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3612 0 obj +74 +endobj +3613 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3614 0 obj +110 +endobj +3615 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3616 0 obj +43 +endobj +3617 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x224 3739 0 R +>> +>> +endobj +3618 0 obj +43 +endobj +3619 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x227 3740 0 R +>> +>> +endobj +3620 0 obj +43 +endobj +3621 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x230 3741 0 R +>> +>> +endobj +3622 0 obj +115 +endobj +3623 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3624 0 obj +146 +endobj +3625 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3626 0 obj +75 +endobj +3627 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3628 0 obj +110 +endobj +3629 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3630 0 obj +43 +endobj +3631 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x241 3742 0 R +>> +>> +endobj +3632 0 obj +115 +endobj +3633 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3634 0 obj +148 +endobj +3635 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3636 0 obj +75 +endobj +3637 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3638 0 obj +111 +endobj +3639 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3640 0 obj +43 +endobj +3641 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x252 3743 0 R +>> +>> +endobj +3642 0 obj +116 +endobj +3643 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3644 0 obj +146 +endobj +3645 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3646 0 obj +75 +endobj +3647 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3648 0 obj +111 +endobj +3649 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3650 0 obj +43 +endobj +3651 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x263 3744 0 R +>> +>> +endobj +3652 0 obj +114 +endobj +3653 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3654 0 obj +145 +endobj +3655 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3656 0 obj +75 +endobj +3657 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3658 0 obj +112 +endobj +3659 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3660 0 obj +43 +endobj +3661 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x274 3745 0 R +>> +>> +endobj +3662 0 obj +113 +endobj +3663 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3664 0 obj +144 +endobj +3665 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3666 0 obj +75 +endobj +3667 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3668 0 obj +110 +endobj +3669 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3670 0 obj +43 +endobj +3671 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x285 3746 0 R +>> +>> +endobj +3672 0 obj +114 +endobj +3673 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3674 0 obj +147 +endobj +3675 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3676 0 obj +74 +endobj +3677 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3678 0 obj +110 +endobj +3679 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3680 0 obj +43 +endobj +3681 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x296 3747 0 R +>> +>> +endobj +3682 0 obj +114 +endobj +3683 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3684 0 obj +143 +endobj +3685 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3686 0 obj +74 +endobj +3687 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3688 0 obj +110 +endobj +3689 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3690 0 obj +43 +endobj +3691 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x307 3748 0 R +>> +>> +endobj +3692 0 obj +115 +endobj +3693 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3694 0 obj +143 +endobj +3695 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3696 0 obj +74 +endobj +3697 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3698 0 obj +107 +endobj +3699 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3700 0 obj +43 +endobj +3701 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x318 3749 0 R +>> +>> +endobj +3702 0 obj +116 +endobj +3703 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3704 0 obj +145 +endobj +3705 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3706 0 obj +74 +endobj +3707 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3708 0 obj +109 +endobj +3709 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3710 0 obj +43 +endobj +3711 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/XObject << +/x329 3750 0 R +>> +>> +endobj +3712 0 obj +108 +endobj +3713 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3714 0 obj +97 +endobj +3715 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3716 0 obj +106 +endobj +3717 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3718 0 obj +<< +/Length 3751 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3752 0 R +>> +stream +x�%�1 +�0���b.�8_�'��b!*�`�^߸�0�C�7��H����W̵�-�6u�~@�1��Ϙ�L��Iy�6$Y;Z�%�s���/�Dy���c +endstream +endobj +3719 0 obj +<< +/Length 3753 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3754 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gbl�gfhndb�`l`�ghjhin��˥��k�k��d�qEk��h�jd�kƆxq��pr�48� +endstream +endobj +3720 0 obj +<< +/Length 3755 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3756 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjl�gialdb�`f�gallb`��˥��k�k�`�����X�i�Q�����i�Q���W�������� +endstream +endobj +3721 0 obj +<< +/Length 3757 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3758 0 R +>> +stream +x�E�1�0����7&Ф/��f\!�8�چ�6���]��8� ��䀭'l(#���-�/� Y�ؑ��(�V���N�a������{� �ƁoXI�A?�]������|E0=Ɗ�KLs�-����sp���%� +endstream +endobj +3722 0 obj +<< +/Length 3759 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3760 0 R +>> +stream +x�=ɻ� ���<�a�r)��&.nF6�@� +)�>����ӟo��z�!LO8x��+5)��?��zT���5���Cd� ��#\ɥ�=W:��-"��*�$�SKr�����C�SC��Jo�Ggx��$� +endstream +endobj +3723 0 obj +<< +/Length 3761 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3762 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gl`�gfjbnl�`hi�gnjhja��˥��k�k�`��ƥ��������t�� +endstream +endobj +3724 0 obj +<< +/Length 3763 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3764 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�glh�gl`iij�`hi�gnjhja��˥��k�k�`���������i��X��������gCl +endstream +endobj +3725 0 obj +<< +/Length 3765 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3766 0 R +>> +stream +x�=�� +�@����d�����mb+����"E,�ċ�/Q�)�f��G�E#�g�$ѫ��Oqb>�:��ҋ�U��Ή�:8Q;>���%�o�T#�W�M��K��et�]�Fǟ.���K�B���o�<" +endstream +endobj +3726 0 obj +<< +/Length 3767 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3768 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gdn�gnanj`�`dh�g```fa��˥��k�k�`��ƥ��������tB� +endstream +endobj +3727 0 obj +<< +/Length 3769 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3770 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gda�gbbhif�`dh�g```fa��˥��k�k�`������\�������� +endstream +endobj +3728 0 obj +<< +/Length 3771 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3772 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gln�gaf`nb�`d`�gbfnhn��˥��k�k�`������S��i���[��Y��i�Q���W�i���� +�+�)�iƆxq��pr�o�b +endstream +endobj +3729 0 obj +<< +/Length 3773 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3774 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjb�gihh`l�`d`�gbfnhn��˥��k�k�`��ƥ��������q�� +endstream +endobj +3730 0 obj +<< +/Length 3775 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3776 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjb�gjfnnn�`d`�gbfnhn��˥��k�k�`������\��������(� +endstream +endobj +3731 0 obj +<< +/Length 3777 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3778 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjd�gn`fdj�`dl�gfjbn��˥��k�k��d�qEk���h�j�kƆxq��pr�:�� +endstream +endobj +3732 0 obj +<< +/Length 3779 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3780 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjn�g`nlid�`dl�gfjbn��˥��k�k��d�qi�j�dq��pr�`i� +endstream +endobj +3733 0 obj +<< +/Length 3781 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3782 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjn�gndihb�`dl�gfjbn��˥��k�k��d�qEkx敥j�k�jƆxq��pr�TAt +endstream +endobj +3734 0 obj +<< +/Length 3783 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3784 0 R +>> +stream +x�=��� ���)�(�Bp5����Yh�J||��\.���^ ���n�H͕2J��'�p3[��Ԗk!�:��0E&�@�.\B��$�B-�=ՂԐ��T�}ou�;e��8��J���h�J�>� ���r&� +endstream +endobj +3735 0 obj +<< +/Length 3785 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3786 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gha�g``hf�`hn�gnjhdb��˥��k�k�`����Q�_�Y��i���i������������ +endstream +endobj +3736 0 obj +<< +/Length 3787 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3788 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�g�ghjnhf�`hh�gbiifb��˥��k�k��d�qEk�g�h�kd��)��hZhd�fV%�djk��i�hXiƆxq��pr���� +endstream +endobj +3737 0 obj +<< +/Length 3789 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3790 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�ghl�gih`bj�`dl�gdfnlj��˥��k�k�`�����XR�i��Y���W� +d�*$��܂Ғ�Mc��| 7OA36ċ�5�+���� ] +endstream +endobj +3738 0 obj +<< +/Length 3791 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3792 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�ghd�g`fnah�`df�gb`dif��˥��k�k��d�qEk�&�i�idV(��&�k�j��gjZh�d��+hƆxq��pr��hv +endstream +endobj +3739 0 obj +<< +/Length 3793 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3794 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjj�gh`fai�`hd�gidihj��˥��k�k�`����������������f +endstream +endobj +3740 0 obj +<< +/Length 3795 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3796 0 R +>> +stream +x�=ɻ!@�~�bJ��e@�5��1&tƂf�D\ݥ��}�V'� �-�l���K��8'�G��m4[/10�� �ä��Ș&8��W +��W���u�#y�o�D�K��J�t�}��]� +endstream +endobj +3741 0 obj +<< +/Length 3797 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3798 0 R +>> +stream +x�=�=� E��+��XM\LL،iiKb�����nι� �|&l��i����R�����$���(cP*ǝrR��hF&�@�~��|T��^�Ж�HdHk ��w�%����3c�!�Ў���Za���'W�e( +endstream +endobj +3742 0 obj +<< +/Length 3799 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3800 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjl�gnhhji����Y���)��r���(*��qEkx��fh�i�礤iƆxq��pr�гM +endstream +endobj +3743 0 obj +<< +/Length 3801 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3802 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gfj�gjblii����Y���)��r���(*��qEk�g��jk�kƆxq��pr�Q�? +endstream +endobj +3744 0 obj +<< +/Length 3803 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3804 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gbf�g`hajj����Y���)��r���(*��qi��h�dq��pr���� +endstream +endobj +3745 0 obj +<< +/Length 3805 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3806 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gj`�gjldjn�`hf�g`hbd`��˥��k�k�`����ᓟ�i����Y�X���d+8�k�j�e�dh�k�kƆxq��pr��k +endstream +endobj +3746 0 obj +<< +/Length 3807 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3808 0 R +>> +stream +x�=�!�0F���S�*����: �!$u1��� ��g ȧ�{�,~7glz����H+�+�O�sF�v(6�F���A[m�1 p�íh,�^y��:�r���"���;����h����Mp�c � +endstream +endobj +3747 0 obj +<< +/Length 3809 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3810 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gji�gdabh`�`i�gjfndh��˥��k�k�`�������i��������-� +endstream +endobj +3748 0 obj +<< +/Length 3811 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3812 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjh�glbfn`�`i�gjfndh��˥��k�k�`��ƥ����������n +endstream +endobj +3749 0 obj +<< +/Length 3813 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3814 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gjj�ghnndi�`l`�ghjhin��˥��k�k��d�qEk�&�i�idVhƆxq��pr�M�2 +endstream +endobj +3750 0 obj +<< +/Length 3815 0 R +/Filter /FlateDecode +/Type /XObject +/Subtype /Form +/BBox [ 0 0 890 314] +/Resources 3816 0 R +>> +stream +x�+�2P���t�D��b.�.CS=##3#C��.�gff�gjjlhl�`l`�ghjhin��˥��k�k��d�qEk��&�h�i�iƆxq��pr�M�/ +endstream +endobj +3751 0 obj +104 +endobj +3752 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +>> +endobj +3753 0 obj +95 +endobj +3754 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3755 0 obj +105 +endobj +3756 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3757 0 obj +139 +endobj +3758 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3759 0 obj +134 +endobj +3760 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3761 0 obj +87 +endobj +3762 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3763 0 obj +98 +endobj +3764 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3765 0 obj +131 +endobj +3766 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3767 0 obj +87 +endobj +3768 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3769 0 obj +94 +endobj +3770 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3771 0 obj +125 +endobj +3772 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3773 0 obj +87 +endobj +3774 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3775 0 obj +92 +endobj +3776 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3777 0 obj +95 +endobj +3778 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3779 0 obj +85 +endobj +3780 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3781 0 obj +96 +endobj +3782 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3783 0 obj +138 +endobj +3784 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3785 0 obj +101 +endobj +3786 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3787 0 obj +119 +endobj +3788 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3789 0 obj +126 +endobj +3790 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3791 0 obj +118 +endobj +3792 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3793 0 obj +92 +endobj +3794 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3795 0 obj +123 +endobj +3796 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3797 0 obj +142 +endobj +3798 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3799 0 obj +101 +endobj +3800 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3801 0 obj +96 +endobj +3802 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3803 0 obj +88 +endobj +3804 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3805 0 obj +122 +endobj +3806 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3807 0 obj +130 +endobj +3808 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3809 0 obj +94 +endobj +3810 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3811 0 obj +88 +endobj +3812 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3813 0 obj +96 +endobj +3814 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3815 0 obj +96 +endobj +3816 0 obj +<< +/ExtGState << +/a0 << +/CA 1 +/ca 1 +>> +>> +/Font << +/f-0-0 3817 0 R +>> +>> +endobj +3817 0 obj +<< +/Type /Font +/Subtype /TrueType +/BaseFont /OMFQNA+Calibri +/FirstChar 32 +/LastChar 122 +/FontDescriptor 3818 0 R +/Encoding /WinAnsiEncoding +/Widths [ 226 0 0 0 0 0 682 0 303 303 0 0 249 306 0 0 0 0 0 0 0 0 0 0 0 0 267 0 0 0 0 0 0 578 0 533 615 488 459 630 623 251 0 0 420 854 645 662 516 0 0 459 0 641 567 0 0 0 0 0 0 0 0 0 0 479 525 422 525 497 305 470 525 229 0 0 229 798 525 527 525 525 348 391 334 525 451 0 433 452 395] +/ToUnicode 3819 0 R +>> +endobj +3818 0 obj +<< +/Type /FontDescriptor +/FontName /OMFQNA+Calibri +/FontFamily (Calibri) +/Flags 32 +/FontBBox [ -502 -307 1240 1026] +/ItalicAngle 0 +/Ascent 750 +/Descent -250 +/CapHeight 1026 +/StemV 80 +/StemH 80 +/FontFile2 3820 0 R +>> +endobj +3819 0 obj +<< +/Length 3821 0 R +/Filter /FlateDecode +>> +stream +x�]Sˎ�0��+t�vZ�F�b{ɡ4�8�hdCq������!֘"�3ݼ?˼��{]҉7?�%W�-��؟�2�>�i{{�g���k����m|=�iq���ry���?}�˙?8�}�f�s���_�'�N�u��W.�o���3OB�e\��W��?�����Y��e�|�샽� )-�o똸���nhۃ������(��<��cuC�Ij��ᆞ���Ѱ�pҜ=r��igX��������99Qs�<)f`V���<<A����� A5� +ګ�ȉ� /Q�Dx����?*���O4艦��ră��7�U�� +�T3A3�fz�E��x��t�ةGB�4N�E��w��+&̙l��M0�LHg�AOgz0��q9t��6FWJw�}WӽVYS�@l?u3����к�Ze������ +endstream +endobj +3820 0 obj +<< +/Length 3822 0 R +/Filter /FlateDecode +/Length1 26560 +>> +stream +x��|x\����9�{�Z��V�+i%�z�e���Ͳ�ڒmْ�ƽ�M584C0��n�jmcp'�$�PR�@��@ +�I�ߜ9#����<�y��?w�����9gv�73�|3ga�� +�F<� �X�f�=q� +3��n��K�q�e��w#$M[�f٪O?m� Tq'BJײ��.��m]�@ �!T�e�����~�M���吡}�_�!��|Ն-C�oDh���\�zp�I��B��O�ز�4��.B57@ڷfݒ5=ɍA: �������R�V�*Q���=�����|����V�'� �p7R �k�z �=�r��Je�yc�0�;���8}k����[#�������[�>y�X-~�w +��o`�qr�E���Já���j��$��qB^IYy5_\����S͑4�_�j.�>*�vb����.�E+�riS^U��5/X���r/Uȳ�gd�\\��;��c�yL +��c�z����Ku_�]���Fr�x����L�6����d��g�T�l�� Q� F�Bn2j�j�^iM#e�Y����6�*F���H�J-(��=�y��0�6�AOZ8�4pp��0��F��67���������E� +��a��g�ݶ�9R��<����OƕP�*�i�t��!�l��p4y'B>�D�*,��̎FѐV�%��>�#�Z�{x�E�]� +����0+r�66�l�(,~��oV�6�=�z�S���B#�J��W�{eo^nϞ9���!�.��q�$��)h��ld��'>`���y����Ɵ�5vm�H�ѣ�7cɐ��<�����b�\E�O-: }�@FH�'Ŭ�X��:Z�h���%in����η�/�{v�MR�V�Sn�9�>��]�F)1��-o�g�YR�T2ϓa�)e���39�/��2�_��U���e���*UJ���]1��F���u�b�����/�Ⅽj��Z��� n-JCVj*�x�U<����Z�VO��q��;���8 M�V��6�Q�J�P[�N�Z'0�1F++.��j���t��rfs��)�B��H��_�J#�Sr�+���3WK��3Ǐ�����v�͌ĺ#���Aݏ��B���~c-�^�� +I+�Bb���^���ЋqM�%���ri˓-��be����.��$i!mYM��fei�d�� v�&���4�!�*H M�5d\�����I ���\��q��߸�ȗˍ���OwK��mg�Bw6UV�++��>È:v���L$�\ۉXº6���21-��V#.�jI�q//�3�`N]�M%����HlvENm�;��與�;�wf6Nɶ�y���dʌ��hN<ۚ�Lt��XWwqsHowZ2�f�A���M��`�$˛��]U:Д�1Y ��`t�6��(H�f�2r���8�!�~1��]�Q���#h���(B�#�A�����q�ET�@�Z���,$�s�̙�P��Ƒ� ���&� �A�=x.�R�h��Ӕ�&�c�C���F��b�H���H5.�D�6�L��¼���0$Be��@vy��K6*�!���J��ѿ��U�@�'�� +��h��t_�K'َ��4���Ixpx��J�R"չm��Z��y�^�t;�������Os�4��(t�J�*����8Q�GE�����E\q��2�D�9U\����R�DZ0��O���M��J�C���b#&{%�R�`�E��&���kC�J� /�=Kn� n��x�Y���lh�Li��$�nm��[�oN����q_u�>\�����܅�����CFI`���Z�{J51�Z�5�:��z���.[\eή)����j�:�玏�>�T��JCd�O��a�!�%,�$aqtDL-�>�!<̩�ڨ��z�*m�7ssG����P����0wˆ�`��W"#��'���ᄉG6)6�Yi@��E���8��Y���uI���{#����3i��Ĕ͗��}U��c�\%�gt�Π��~x��m�jpe8tf�)��g��=1goO$3P�=���Ġ�8J�}����Zi/��s��UB�G��t��a����z�5��04�� +.�"�OSDSzߔaN��?A%�n���JpII���a���d�������ioh�$(J&i���F��vA߈��OE�UF�u���ɨ�JKe� �7�kb�D�r�נ��1C����M���a}G^���W�ά�6�T�!��=c�Ғ���C��]<��;k��i�F&�h����K���i֗�*u{���wz\�97����=/�]�5�h�/�wo�}�(���Ųq� gqH�CR����8���b�K�^��9��>�.6����� +�,$N��V��!m!C�B��4�"�1=j[��9�qJ��>*ea����uJ��/���eݒk���~�������.�]���iE��[��և�r��+[f�:��xGӞE�%��5��,Y������`�"t �7�i�L��c�S�h���̢o3��0��NW��UM:���CM&[5���Cq=�`@�Uy�9��&g�4�o'�����}+B\q�眙0(��������/&�����������1�[��6w{�"���mj3{�מ�����<x�͉�iK��~��/dX_U�����5՜��������c\��\��\��\��\Ü1��Y�ѨH�Q���T�N*b'�ӜQE�� f�u�vm�Q�/�fuxl*���7C�ł� �X9-Z\L��I1X�����d?�b���IR0� ^��oVpcż��X�-jn��bB�e�{�� ӡě��J��r�һ�[4H�}y�8@ D#�,;8��`N�ƕ��j�`z�S�4{�,��|���5�8�����g�^4���6Ӥ�v��j0��@�c�5YI��8���Sl5y����L�2�!N�T(�L���tJ��>�ң�gz4�l�F�R��䷖�&�ޕ��Ն��B�R�ܴ?eØk�AQt�qT n��*��O���|쀇}�x|��&�%X� +I�C: �� +��.Sc��@v�즀��i2N�ʘф+��� p/8 $� +�,,t:9a8 +#�n6�@x%�|�����j�o^���@�;��������$��HTF��4qʱ�suf�����x��@�Tc��c�!�Y+�e*��n��>�����}r������ȍT)�= ^9-LԜ\N�q�yb+a�Lg7^#՚�f�]�%W��.g�]}��$?���\� t@l���d2���A��vh�\����BL���V���^�NE:��k �Ȗ �G�$���I9�r�W�8l�YR���2pf���L?� �>���a=������3q�����A���ٸ�����~R�n�g5�ծ&5���V��� sG��a2���Xhaa�f� ��T�f{�Yܤَ9�;-Ѻ��ӳ�:�؋)V��vO�"�1 �%�2���t���G�Ti�_=B"b�B���hLJF;�K�����(xN�F��s�A�T����D�be��x3�f�f�?��ϙK<a.q��B���Gk#�G�X�(\)����D����Z`�H������l�� wR��H�D�}#��x�_�F��� aa��]�B��7#t66��NC�O +�燌�5\&lz���a�h*�~MG|qST#W�x:~������R��������=�o�<m~u�qa˖��V�U�s��f�F�t��� o�p�����w����o]RNm�6�S� +Vb��ڸ76�ݕ�T�d�$�o%�W*� +O���(5UT����4#ƨ�}��bк��ʰ[���P�r4C�)9�k<Ȉ��`K|�#!,=&&��!`��>�W�Phr�R��)7�B#ͤh88o�9YE�n\ؾ7.�x��|�fgm���i-�=�? N�Y ��m���-�p��N-ג�E+��S�hG�vϒi���Bb/����_�?���L���[My �> +x����[�cĿB:&Z���ȩ��d\�7��v�D_����F��lh�vW����I�2&^B|r���n�� ���A}���h������_��W��ۊ�y���#lDŽX{�5����&��V�E��i8��;��l��lt� ����f����I�cy�l G�&�". M�՜�$�x1�_c�_H+��=�|�m�O/��fMg~�E�]upQ��_�+���%�/k�n�b��86����!j_2��1j�Z��/ۡ�|S˒j7�!�͜���+�c3��9��;�zM�0�-�WW;�����C��mۺ� +��'��*��z�z�GL�q +g^v�uz�������0^����W����_&�eb�P&��2B� ���.�����&�X�4�7��� �ߺ������۴߾���/�T_V��VK�I��ƲZ�]K�%��.\����~w��덡)ٗ�Aqn�l�/��̽ɍu{�H�Q4vF��va�k�� J�� �{M}�M�s�gts�,�D�r㑢�ق[�H�E�ӄ]��F7���1��i��D�����a���O鍸i�O�0*G*����r\'���+Qt�mk����.۹���6����$���vn���tÍ��|_���s���Ğ��Yk�+�j2�:W\���x��#sڪ�2 Ǔ �hmߔ�Y%�������*����`�͗�zm�<#+�^>��|�����������;�f��a6���i��`F�lfUQ�FA����n�����@���)�[����[��n���0O� +r�$�0��A�HY�+4R��k54�p���ÑSşЕ|� QL�h�X:\�/ᮔH2�5=�,��^�0Wjҿ���1��R����@����L�z�]'U����)��^�WL��V�߷���Z���؋���xaz?��RһB�9�r\Ӊ뿾�ښ�}�f����n#k��"��V_���@w����f�>�:,;i������������ـe���L���No��ϫh�ke�[����"R)�ی�l�+�u��j��X�ک��J��U�Yaɭͯ\_GVtr[nM~冯/��o��-0�u�4d����=�<T^�<�z�yfWtzVam�έB � +��E�&�VJ�:LL&���KX�{� �]�yE�z�6��L��^q%�ec�+��^�9�4�5��Rg4��\�B��,?�-��A�/���υ/w�M��c���*l!�-��ۣ���� l����ۜ�Y��E\���?��{�F�C�S��p��4�G�#H�� �U����������7�������*���p�7J�]4.;�v���W��0z�b�J�&9���b6���X#�b�X,v�b!&����"^�!�Ą�� +ڤ���7��cb�Q��1��t\�E����&��E�7.̪�k�!�k-iF���±#l�ç�+z�S�W�M����N�Bp�?��蛙��8r�ڪ����8ۍ��q���LDž��E^ +MqagY�;��ɩ27�Z$��E�1x�]v�嗟�}�� +�q�D���,a6��+�"+,r���l����=�0d��gX�q1��̘�K�4�Ǝ�R�E�+%&?���Iy�^;�ϽfVK�:�Ix�+����^�(#n��p�I8�4Z��[��+P,���tJ���M���%��'R�����o�<)�y�&�Y×uV�y+;��Ґf��8��z_{}l�/4F���)�K��7}�//��d��7�{f��H-ȅ�#+�XV��Y���(g<���N�0�ɺ�l�M�%���H%��o�(���S�l�%���[�ye�bq��ް� ���}Jc�������\���M�1�T�}fR"�0Vĵ�C�d� �PH�X%���G��~n]��Iwޓ�.�!~���!Qi�7۳���R�V!%���d8^@O���a�V%i0�M +x�=a/D��ۨ[ mf6��B�fU DeI��fԍ��h'��UM�Kҷ8����c��̶�l=����m�?�׳��ya��t�_�u0'O�a�)=�����&t�A ��{3�������������ʠ!���=�%"��}����_���N�ע4���j�^�ʤ�qR��e)�'*s�V�����o-��ޛ�m�r[��K��� �ڥ5�3��e�����l��;8Q>�7'����.P�vNq�~p��E��e�Ν��k����#sr��Yq�Y��N�p:��*�.P��1%�nˮn_�s�i���x<�S��p�U�f�̎��l{����|_,�`{ɒ]R#Y����� �Y+����&��}����/"˕"����"x�UD.1��NU�>,qft8�# +Ʊ�ˤ��h����*����bh��Фq'٥����p `[�q���u8�&E����z�x����Ё9������8 +��(̽]�sj��_����%�fe������K����ڹg��3�?�>�]�q~T|��o�,��י��Z��>/R4�����2Si ��̈́�M��(�5f����b��H8C�ݚfTp�6rεo��WK!��j������_���4����$���a�v�>% e�-C�2�]ebe�W��^E&���4���!��!N�#8m��y���2���L� c�ak����5�%0�+¬{�?�����%����r3$'�9.l�i[��5���9}���1sY}&����T��O��C�����[累,э~��08�^�����Y��E�~/rV|�+<���~���P��<F~e��l�蹟:}��Gz�0eXJ��N*���&�f�#�]r=�� y��'��fb_3���BVd@XO�OpEp���%� ��9���:`��v�ɱ�+��Vk������g?��c�������h��G�|rhǣ�*����N���|���G/o��X����������PM=���H �& +�K��JN4cQ^7B�BE8�w���@\h�� s?���<���B���L�S��fu�-^��R��̵�����m��\$�7���4��fs��� �@r��f��v�a�V��M������~��]�{�_�~L��Œ��c��Ê�-L��b� ��+�Y^_�C�td��YN�i���u���\_F��,?����\�+��gp|DrV��#��:�r���a�8����W�����o|O|�+F*���)}W�D5t�\��`��[��J�6��ց�^�����[�e����֬�mavh�w�}Aw�]_ -������Ʌ���#���ڙ�םX���m��?���J�l��%���YXTMZQ<�r�����]ᝮ�� ov�*��n����=�לY?��?5�f�0��㥮�z��6�nh�/^�N�ki������g��#�BЈ-�[T#>�F4�F���8�4{��a`/��Lz����ɿ%�1�F�a��O�O�9{N'�Vs���|F�5��� ����Τ���s�~���`@���zxN��gQ�f>���\��3��ޔ����=���OxY��$�"���^ܓ��w{8�=�bY�8����0�����0���G/�s�~��#�\��HFFe��V!)R�p�첀冢�p}�n�O��畾�SlC0z�.[ݟ������.�d�}��b�=�)V��%U�K�^1!$Q�;�6��4e��Ņ�~���}���мgI�K%Y`������}Ϯ�q��Z�o����P�LcfWȓ���=��ۿH�ٮ�>R��c&�$��$�#Y��E8��Yv�[�\'�u`'{�%��,����d9NG(��tHMtn5ѷ�����`�X�it>���� @x����a�����Ϗ�*�)+#�oRJ�z�W� +Kf�7S�+�ɋ@,��A�~<˒/���H>��yƁ�%i:�D�����D�~�AD��D�'��Y7 +�_��]�8���?��M^� }�9U�k���]�:<$N���no����ۺn�ե+�ֻR�8]Q��������0�m}G�^Q�1�ä�d����r�}_=9���q� ~�����h�������K���!�1��J|7�$a4Hn����e g<���t�����f�lg&��� 0z�Xy~x�B�`��aQ)������ӟ�[�̬rO�!�k�Y� +]W9���@� ��� D���RB�$�L�td����.<���]�&������7���?c|��7�^܉���N��WN�����xߎ��wÿ{�?�����aҵ�E�eZ�\�Zf������9�C��� O�����B�&�$�KSB4��h��k^ȕ RC Gn��!'2B>Y/������ߍ����e�B+�z��v�+�~t3z�-B{AD���#(�~�^@��߬��V�*��x[m�ƿ{0#�\�͐2K|�r� �]�����ㆱa� ��{��ː�<:�#��2�����D~�ؓc]`�4�C�Q�G����r�,s��B��K��28.��B�j�"��U���:�mD������9�VHoD����mCۅ#z�,��3ۄ��.���eh��Ӝ��rt��U�jt�L]3���k�u���A���^��w#� ��t����t����oGw�{�ϐs�@�=�"g�A?EG��I��`�A����R��k�;� �N�1��� k�g'϶O|�-��g��D;�+������X�x��=M�"<����V�O��wN��B��s�Mߊ�x�U��h������'��WHݏ��xHP�i�B��~�u�c��dE� ���rI4�R�0:-�:�����t���������itzȳ�$x��?���{N�=%���Џ!M���������9��%z �R/ +��!u��~�^�ZP�B��q�����I�;߉����͟7��'����1�}f[kKsScC}]m͌��X����S*+��J��y�Y�`f �� z�Z�T�eR ���U���%C�II(�ؘGҁ���џ�AV���$}��e��ÕK/�2N��O\� �*T������k�a<�����@�/9"�6AKBBB X���|u�嵾$���%�7-�W�_� �U5��%��\4�R�T�Jf��j,.�n��Z�I>X7�89�������� +y�F(+)�Iʅ�|+H�ѵ��ܓ��6�E������=I~�n�����wU�Ifj�����G^�� ��%#(��s�pR4|�������sdAÿ��'��FP7�!<��O�r�p-�DrwGM��"w +ţ��$�OΜdg� rf7;3q{�O���_�۴ܑܽȗ������}I>Կhp9�%����n�=�x-�����uCQ�~�b1CGO2X��f� �G�`EW�p�x[�R�D���]�h]-���n_-� )+��s��=T�s.F%���#i��F ���Y�4��w/�������'�`��@ϒ^�JC2�m�:����]�l\�.&O.*|=���%��z8fT� 4��$-:��׃݈]�"^A�y�@��4�S<�����������[��4�TL*��u���U�W� +e���N��y�J� +��}s=9b��i�Fv��ȅ<��H+:|I4��X� @���!�Fl-�oKW��cn���b/�>/E�W�T��4Kp5��#n֬B�AHO$/8��N��)-]�H��@�-5 \[a*��Y�-P?�|����w/�7��[S| +)#дx_����-Ե�g�{�*j�-�3�r��� +�;���ꮹ=�a��'�a��F�P&��9�C(.�r$�d���$HI��P���-��Bzp#!O��0�h���q�'�yq!�|������n�|�I���]����.d���?�āj���C��i����Iu`ɏ��͗�|9tl�`����OA��AnL�"O�� ��w��O�Gz������$����`3\�@�� �݃�(�C��{�۲ᒦ�JP�%���=�;�M��6Ѐ���!��ݛ썐/�Y�+tgC5�@��2�!�E��}�@�06a(��WRB�PW�qC���I�����`��-A�]�թ/U�i�p���*�x���j�*�̇�hu>�Ҡ���V^H]%^��mH��F�I�o����&R�� +�J.�!)�cu��g!�J���6�4�Οޯ��@�YA|�Z,�͕�'׀��`���C���I�����H�D��бQ�3��"y��s�B��} +�7�@���N0��������!���yx}t���_�)�B'>��K¯�����e���9��>C����/���^�b��OT���3У�ȏ_CW��~�!�$%�����h���%i���1�琿e�q��_B��e�_�>8�ϟB��}��n- +����>��Gu��{P� +]�������1�F��(s�&�����$¹l��e��V4Hʓ|�j�<�>�!�EP�c�p-B�|�E7B�F�xjH˷ �x�q!58!MB�~�t� �O"d��%��2�E��@��O�Y9���WJ� !�0�,A�[B7`|� ����F(x9B!��0����eA~6|gN.B�/wBy�ʇ:E�'� �5�؇Oˡ�(��@�n�{`Dᔒ� s�Q:p3��L�a�2&v3q)�����&�3����Llab3�����&�3���5L�f�&V1q11���L,gbK�X��b&�X����L,db}L�gbs��e���9L�f"�D7]Lt2���,&ڙ��D�L�0��D�L40Q�D�L�01���Lę�1Q��4&�����&*��`���2&J�(a���"& +�(`"�D>yL�2a"��l&��3b"�D&&2��3�c��D:&Ҙp3�b�Ʉ� ;6&�LX�03ab�Ȅ� =:&�Lh�P3�bBɄ� 92&�LH������L Q�q&Ƙe�+&�d�&>g�3&��ħL���2�&���'L|��ߘ���&>d�&�g�=&�2�.e�/L���?1�G&�a�m&���[L���L����1�[&~���L��īL��į�x��_1q����x���L���_0�s&^`�y&~��O�� ���1?b�L�d�9&�e�L<�� &�f�8�Lc�)&�2q���L��b"�ēL<���L<��!&e�&f�!&d�&�g��L|�������{���������;�����L���w����[�8���L��čL����L|���L\�ĵL�c�&�f�*&�d� +&XYYYYYYYYYYYYYYYYY�1����������������������������������������������������������������������̢̢̢̢̢̢̢̢̢\s���S��^��S�V�=4uY*} +�n���ҮT�h'M�����6J[S��@[R��͔6Q�H�m������̵)��5�VS��^���Ŕ.J�������rJ�(-M��-��Ŕ)-�4@���BJ�}}45��<Js)�R�4��lJ Jݔ�(uR�4�R;����(�Rj�Ԝr75QjL���(է�-@u)w+P-�J3����8�����4JU�ʩ����+)UP*�TF��VB���RD��R-,J)�ޗG)�R�R�lJY�´�� -3�R�R-�O�G��RJ�䡔F�Mɕr�rRr�\�@vJ6�i�d��fJ&JFz�@IO3u���4��������SP�S������)g��O39��@x�Ҙp ���(}I�z�s���ҿ)}J�_)G7�?S�.����)}B�cz�o4��J�sPz�f�G�,�w)��^���3M����H�Jo�s���|���~O�w�����o(����z-e� �*�Wh�)�L�W���K^��"�<M闔~A����(=O3F駔~B���+DS?�t��s�ܳ�~@3��t��Ӕ�S�W���(�t���-�J�� QJRz������C�M��_�Gh)Sz��{�����}Jߣt�{)�C���r�;�;(�N� ��� ߥ�[)�B��=w3-�&J7�s7P���w(��t��Z��G�JWS��ҕ)���)�"��)�MY���tYʚ�ڝ��3Ɨ��e@�(�����m��-e]����fJ�(m����zZ�:z�ZJkR�A�մ�K蕫(]L�"J+)���-����l)�} ����AJ�( P꧴����}�f�)ͣ=��K����Z�����nJ]�:)u�,q�Y)�����t�)�^���%��^�B�9e���7�T#��Y����KY��MY.�IYv�H�ꁦS�S�Q�N�`~��h�*e��JiJ�H�F%�����<e�*K���s%��S�\�"zea�H� e$c3J)�ޞG�!�R��C)��E)L)D)�2+eR +�23h�~Z���⥔N��PJ����L��)� {ʰ�F�J�B�L�Do0�4SOIGIKIC�T�+U4SIIAINIF���+%4���QP|\��K0���{��%�������)�_�B�?��s�@�c���F �C�p�}H�8x�W�2�_t˽� �G�;��6��oބ�����[�o�y_�z_~U{��m��k�ˠ��x��^��OC�/������s�/�~^���3� +�O�˽?�.�{���C@|�$�<��f���:� �z�Ӛ ��a�1� +p��s�!/$O��z�Po�>���}L��{H���(��À��P�y��>�{p�}���/���n�w�}�u;�uʺ ��p���f�MpߍP� ����U��猪y���^�z�{�^�Wx�� +����e�v'.M�L�:�3�މ�;�;[vn�yh��w�M2ՎĶ��C�[�[mN<�]��rWī�mLH6Z6n���s#>��n�1�66�6� �u����%кY�v�K��LM�{{��a�?_>�Ν^O��;�i �k�k�N\�tUb%TpEŲ��C�K+'�Z��X���O,��K,8ԗ�_171���DoEOb\?��;�8ԝ��Ht�H�W�L̄����D롖DsEc��Pc���>Q��i�4�@*03 j��xF�;�~���[��I�I7oһ�..[��5�N��y��z'�w������z��%���K�q{v~=�l>o%�fk�8VK��Tx�6[ T��b��k��V��o?6���/8����z.����:��#�q����^-G�Z��B)1���]�W{�\"�nWsqu��>��+�G<�a���W�Z`����a�b�χ��"��a�lI*f�K⫓�.r�w�MʮN���y=C�ws5�IyS/��ؿ��$=]=�{=�-�� �D��@�!��Y�~��Hd�8,X�!"�A +o$��$�7@���(�Q�?~�e@��g���������+�?�3�ȏK��s����^��e�݀K��;;����[[������kk����V.\X XXXX +XX,���}���y���^@``6 �t:�Y�v�L@��h4 �z@�P���b�j�4@`*` +�P(�J%�b@�P���y�\@��d ���?���@� p�������0��@��� @ P��@�����q8���-Ɛ�������_��|��o���� ���O���0���}�{���w��g����x��[�7o�~�ව��^�x� +�׀����xp�K�/�?��x�3�O?���#�'�������i�q�0��)�Q��a@ +0H�<x���Q�#��<���}�������p�N������p���f�M�7��|�p�Z�>�5��W�\�Oߍa�c��?��a�c��?��a�c��?��a�c��?��a�c�x�|���`�|���`�|���`�|���`�|���`�|���`�|���`�|���`��?��a�c��>���a�c��>���a�c�������������c����# +endstream +endobj +3821 0 obj +436 +endobj +3822 0 obj +14241 +endobj +3825 0 obj +<< +/Length 1687 +/Filter /FlateDecode +>> +stream +xڽXmo�6��_!�_d��E�+�fm�um�"10l�0�cq�DM����~w:ʖ�4 t_,���=<�Z_|��V?s���Xo_�8�ϛg?����n�Iȭ��9,C+�Ɓf�[��WE�t�],]7����/Gr!��<'vQ�c-C���/��C���$�VY_��K;���=n�+fIzFU�0!U���P-�=��:w� /X�{��w|����Rp��L��(�ߥ��(mu�EwY�y��K���C���3̎�̝1����Z/���B�% �Y^yK��~����Ưg�5�U#�V}� �(�E ���wDv���jiBT�x����Z��Фun�U�<l��r+�"ȅ��Z��)Z��.+h�ƴV���V,�k��s��� Q��9����� +��W�89��ڈ<���@od&�|b���������}��iU��zK���0���`�N|��N?�O'��ϋ��ި-��ؕjY�ٲïc7��� Q������\6=%�QZ��ĖUS +��+G 7�]�vD7�?�d)�� �ݻno�c�h���i@�VlQ=dC�C{쫮�� +��� 3��,�aAkW��v�b`|�~��R�qT1��4�Cw��Y_��A���E�D�VU�v����h~>+������+����9.�)�Tݵrj�y��q�oV��uߡU9r�u��#����z�c\RR���xO$/�=S���E�2��_,P&w����S���dV�-�(��q�y��Օ�s��� ��Q�*E��gl�}P1��6 <PP��K"���xY48��G�� ��↘ף���`����of����: Fz�{����GCH{6 j�ޕ��;Z,�OZ����A�2�5!@B�D���{VȒȋ�+HX�ݸr|�9��p�͒f���27�� ��W����ҏ�A<�c �',� �)���s�ot�W<fV݃a�=5�+�h��V�n�4S��1����SS�P������T�*� �zM(.�~\��״A�ܾ5�2eE���4%4�X��K�r��/l�8@"8����kS�u�.�I�6J��S*ՀTn�ӱ��Y!���pU �ca,��8`~�?�0�ޤ�L7x� +�x<5��<�H�$`.lL��������=�rq#ʧՇ�=�5���~ǵ��n�̥�z�i���fZ�Z�G��膛Onw� +`ʐmG�G��%���(<�Fc�Q�m~����״m��P� WI���C)��o`�\��ŤY7�%ƎI,�t�mY�<�AJy���_v��z)�kv�/7��F����=���0H��.��]�z�c�� &��i�v�u��=ץ��s� 3 ��iy����2T�B����#Vu?<�`��*r�# .�<����D�s`���A�0��p'-0��ʘ���Wx*���1����w��~�&���O�����0>td����V�91��[�C*#���->��Y94�8���� +~�~à�\���^~��l��ܜ������d�N��T5��5`�,!/�� YNd(�����Bd��g���O�g��?/�ޟ�^��80��g�7'vc���[{��u�c������Y�e'�w߈��<p�Fq��ϝ���rԫ\\� u_x��L�S����*g�g��o�0 +endstream +endobj +3824 0 obj +<< +/Type /Page +/Contents 3825 0 R +/Resources 3823 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3406 0 R +/Annots [ 3410 0 R 3411 0 R 3834 0 R 3412 0 R 3413 0 R 3414 0 R 3415 0 R 3416 0 R 3417 0 R 3418 0 R ] +>> +endobj +3410 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [250.71 309.559 294.546 319.827] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT)>> +>> +endobj +3411 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [448.712 309.559 525.406 319.827] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki/Contributing-to-RIOT)>> +>> +endobj +3834 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.777 299.337 144.59 307.855] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki/Contributing-to-RIOT)>> +>> +endobj +3412 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.777 277.954 156.545 288.536] +/Subtype/Link/A<</Type/Action/S/URI/URI(http://lists.riot-os.org/mailman/listinfo/users)>> +>> +endobj +3413 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [166.52 277.954 276.109 288.536] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:users@riot-os.org)>> +>> +endobj +3414 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [274.279 266.107 383.868 276.581] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://lists.riot-os.org/pipermail/users/)>> +>> +endobj +3415 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.777 246.564 156.545 257.039] +/Subtype/Link/A<</Type/Action/S/URI/URI(http://lists.riot-os.org/mailman/listinfo/devel)>> +>> +endobj +3416 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [167.308 246.564 276.897 257.039] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:devel@riot-os.org)>> +>> +endobj +3417 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [265.295 234.609 374.884 245.084] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://lists.riot-os.org/pipermail/devel/)>> +>> +endobj +3418 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [182.573 216.771 334.005 225.542] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +3826 0 obj +<< +/D [3824 0 R /XYZ 69.866 801.979 null] +>> +endobj +2 0 obj +<< +/D [3824 0 R /XYZ 70.866 771.024 null] +>> +endobj +3828 0 obj +<< +/D [3824 0 R /XYZ 70.866 573.966 null] +>> +endobj +3829 0 obj +<< +/D [3824 0 R /XYZ 70.866 528.253 null] +>> +endobj +6 0 obj +<< +/D [3824 0 R /XYZ 70.866 521.025 null] +>> +endobj +3830 0 obj +<< +/D [3824 0 R /XYZ 497.173 422.157 null] +>> +endobj +10 0 obj +<< +/D [3824 0 R /XYZ 70.866 403.929 null] +>> +endobj +3835 0 obj +<< +/D [3824 0 R /XYZ 70.866 210.563 null] +>> +endobj +14 0 obj +<< +/D [3824 0 R /XYZ 70.866 201.534 null] +>> +endobj +3836 0 obj +<< +/D [3824 0 R /XYZ 70.866 70.758 null] +>> +endobj +3823 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F29 2678 0 R /F37 2725 0 R /F55 3831 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3840 0 obj +<< +/Length 1459 +/Filter /FlateDecode +>> +stream +xڭW�s�8�_�Gg�ږ?y+Ca���07��&:+������j��N�r�ݓ��~�O�����C��Y�{3{����晗�"M�����i�eE���[V�'?�Y��8�Y\���]��;ѭ���|e��ʔ�F֝蔩�v��}���x�Nk��<��r3��%�*�{���wo97^�p����w3���t��EA�a�����o3�1�a�k�1G8�܄�+�?i^8Ջ���<�y�x�{i���甕�j�7�2��~.�f���ѷ�B/��Q��FWDӦZ��ZJ��vrc�y��N�"�g_�O�-xƂ,%�B�a�M��e�ށ���Q1�%���eyDB˵j�}Y���/�W��h��iѭӯִ�c�s��AU׀'�� )C_)Z���sDu51ь��y�;V6VU?c�4��x+Z�j��4�qV�!��~��R�Q;͛�i�Ή!"ȇt��y���}1)����R�Y����(J�\�I��W����A蕼mP���B8�،���zo���]�a�i]����@�J�<�a�I`��R����o��}��G��Q%�N��Ą&ع��QZ B?���q�%���l�t��5�Zs���.��{̏�zJ5��?\�|��%��Q`CV$ ������w[w�8@��Ueö��l��N��NV+WS��G��i�/�HN����p�hab���϶1C���>C�� rH�j��N�q����?B��@��'E�KXS�<�g#[U<N�����pg+���{��l��f��8n?� +�I ��X_��Aޫz5T�u�^)���E8��S+� ���ї�����`q�QN���lz���yA��R��C��%�Iȋ�<±h'Ҹ���R}hD�����W�ţZ2�BT�8��ڎ0��֢#6�a$�[Y*�:�c1��X�v�����`�����-��^�� �_�m����*�R�N����P��!�w�nK� K +��A-!ʶ:C�0�a����SO,��'�'Z�{$��z�����^wj�U)F6�� �[�V�A�+ +��D�B�P�Fg�P��؇6�q�]�(�C���@�����W�mH���ە�Q��!i0�8î�)?ڱ*;˲�8��ȉ����+��� Ǯ�6ǃ�V� +��|E�aD���֦jia�8�4�sK{�lǚ15@T��H}��s���X(3\%�G��y`�^;F�T +�W=ו�_�ö�]��'/U!Kr����%���@��ݑ���ѻ1��'נ�0�o����5{�`�&~���=|h0훸� ���?��g����F��Q�o�t��A����*EMW��/ί�:�zs�����,MTB���S�2UOz��������?~'��Y9�jN2x4�Λyx��,��h��,Ib��4uw�7���膫�-b�qx��n��r}��O�?7 +endstream +endobj +3839 0 obj +<< +/Type /Page +/Contents 3840 0 R +/Resources 3838 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3406 0 R +/Group 3843 0 R +/Annots [ 3837 0 R ] +>> +endobj +3837 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [88.313 68.794 170.033 78.457] +/A << /S /GoTo /D (group__linear__algebra) >> +>> +endobj +3841 0 obj +<< +/D [3839 0 R /XYZ 69.866 801.979 null] +>> +endobj +3842 0 obj +<< +/D [3839 0 R /XYZ 70.866 777.001 null] +>> +endobj +18 0 obj +<< +/D [3839 0 R /XYZ 70.866 580.024 null] +>> +endobj +3844 0 obj +<< +/D [3839 0 R /XYZ 450.943 332.956 null] +>> +endobj +22 0 obj +<< +/D [3839 0 R /XYZ 70.866 315.811 null] +>> +endobj +3845 0 obj +<< +/D [3839 0 R /XYZ 391.712 70.866 null] +>> +endobj +3838 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/XObject << /Im1 3419 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3858 0 obj +<< +/Length 2156 +/Filter /FlateDecode +>> +stream +xڝYKs�8��W�hW���ޛ;Ig3e;3�k�=��%�V�$z,i2�_��A=�8ٽX �E�(�>�j���4��i�]}�^}�f�F�Bϳ���,�<�9�,c��gs���o� �:�ͤ��&�)��T�?���0� ���m�������+�L�je�c����?L#��_��a`�*��p\��� ��x���Lo�d�z}�=������e��l#��*-D�U_f{\���)B�|�a�����L�i{�h6+�M���{���E4�ˤ��?�eQEiQ��K]��%�ZIz�2�k�ݙ�#�:�҅�E9�;K��j���Q�ԟE��+rYV�ZJͨ:�:'�вX�zd!��{��gǓ���f"/iF���$���$�\͕��ա� b�ۜu�ٳ�ɫ +h�|�!86Ux�q�"+%�DiM�w&���$�U����"���%� ~���qn��sP��"X�<x���8xS��h\�d$�Ϧ��QY�� �䤴���knVO�hc.��L�jY��L��e���DB�wQ]�?8�6y��mC1w��Cw���O�:�=�b'N{乎N�kR12Y���}�P> I?��.p7���W<m|&�_i�F��b�m��W��j.�L��W<� ��nAT�S!N��1?�!�mf[�v�����u��S����|L64��7��Ēs<QŀqǺ,���=� k��M��$����B�G�=�5�>*AH�y�<��7����������r��;��1�^[�����!��V0�!8�'l����Ჭqy%�(�e�;8�{8�-g�����Vo�W���^|E��g,�c]i~m<�2�X"b��(a�f�>�|Jc-QC�ZJ�**bM�0�'������]|s�8�Y)���p�Q�1�""���MھN\k w ����l�N����s�K�Qx��KbC) �ȄE��5R���- 9�&h��+=���p8!��0�T4��tó� dt�p�ڡ`�k���.i%"R��~.T�X��*h���^U �r��+�Ǩ:h�8��I#F��}U��U�CJ��\O'�=�j:j���#�<�*ø���k���s�x��DZs̶GC�IR���T��Hԛj�j|�ji�<�o6�&���� o���g@դ�b�B��&P�o�B���a�R�q(P��D���i�C�����rs}��u�t{3F>��(����l���2 +g��$��aG��oP��o\mqg�����d;���v`_6��˻����z�ddљ�I��*�&����y/�(��C�I�Ch)�@�^�h^j%�:l�f�Ç����s,s8T��'�� :hB��S> ]\�O��_�������z��9/>��h��Q�z�Հ�c�@%�M������� ǂG�����ۗN%a �A?G%�n���Y����� 0��'��KM�ˊ��AFy�] ��N�vY܇]�j\y���&�B�������t-H���{�-th��`�}��on.�6�:�Q�y13�`�p�\��{��?ϊ��f.��O�D����t:��TM��w����_�YC��/����A[u�8U�����G�)U�BE +����,��rice�*%���4>� ���w�9�d�"�j�nں��c��!:V�n;�o\�� �P�r +o��uq)�ƞ)h�"z�LڦF+���Q�E5q��b����}��9PPjk�����~�c�[#IA��.M���^�Ո ��{�p4�Ω���!jP�Q5��6I�S�V �ɺ̴��o�7�[�'1���m�02������!=��5E�����*��2d "���=tԘn���:�C|mK��E�-y���&�ibѻ��0$^���b� ��E�F����&t��'p��8���sw։J�Cg��iF�d�w[�q�yV��wF*�0��G���(Z:�}�oyp����7�O����uY��YWp��L_*���vQ5��B�y�=fB /V�O���_�go��������*���o��އlun���������v�w��d,�ET](v�5C$#������w�{����l��I��{ܤ��?\<�����o�����(��u�N���q�=W�MM�?Cg���J�m +endstream +endobj +3857 0 obj +<< +/Type /Page +/Contents 3858 0 R +/Resources 3856 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3406 0 R +/Annots [ 3847 0 R 3848 0 R 3849 0 R 3850 0 R 3851 0 R 3852 0 R 3853 0 R 3854 0 R 3855 0 R ] +>> +endobj +3847 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.747 621.692 215.376 631.355] +/A << /S /GoTo /D (group__non__linear__algebra) >> +>> +endobj +3848 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.696 497.695 208.402 507.358] +/A << /S /GoTo /D (group__distance__based) >> +>> +endobj +3849 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [138.456 485.74 223.153 495.403] +/A << /S /GoTo /D (group__magnetic__based) >> +>> +endobj +3850 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [309.024 473.785 412.658 483.448] +/A << /S /GoTo /D (group__pos__algos__common) >> +>> +endobj +3851 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [103.269 367.651 170.033 376.422] +/A << /S /GoTo /D (group__localization) >> +>> +endobj +3852 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.029 248.187 405.719 258.769] +/A << /S /GoTo /D (creating-an-application) >> +>> +endobj +3853 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 110.106 155.937 120.688] +/A << /S /GoTo /D (getting-started) >> +>> +endobj +3854 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 91.865 188.466 102.447] +/A << /S /GoTo /D (creating-an-application) >> +>> +endobj +3855 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 73.625 167.028 84.207] +/A << /S /GoTo /D (creating-modules) >> +>> +endobj +3859 0 obj +<< +/D [3857 0 R /XYZ 69.866 801.979 null] +>> +endobj +26 0 obj +<< +/D [3857 0 R /XYZ 70.866 771.024 null] +>> +endobj +3860 0 obj +<< +/D [3857 0 R /XYZ 337.01 623.764 null] +>> +endobj +30 0 obj +<< +/D [3857 0 R /XYZ 70.866 608.241 null] +>> +endobj +3861 0 obj +<< +/D [3857 0 R /XYZ 319.714 368.831 null] +>> +endobj +34 0 obj +<< +/D [3857 0 R /XYZ 70.866 354.2 null] +>> +endobj +3862 0 obj +<< +/D [3857 0 R /XYZ 404.722 251.178 null] +>> +endobj +38 0 obj +<< +/D [3857 0 R /XYZ 70.866 234.736 null] +>> +endobj +3863 0 obj +<< +/D [3857 0 R /XYZ 121.179 180.614 null] +>> +endobj +42 0 obj +<< +/D [3857 0 R /XYZ 70.866 164.84 null] +>> +endobj +3856 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3874 0 obj +<< +/Length 223 +/Filter /FlateDecode +>> +stream +xڕ�=o�@�����}�>��R$T$JoC!��&�m�¿� +K�N���L�f���f��`�Ȧ��C��9�����B�Sk�r��c��W�lSի�?��b�}�O��M]_��Sw˳yd�L�����AT-��$�y����;$[ kВ�����ǧc�ô>#�C�j���L��Z�]&��ԥ��O��o/���U�ϗFL���;����|�Qf +endstream +endobj +3873 0 obj +<< +/Type /Page +/Contents 3874 0 R +/Resources 3872 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3406 0 R +>> +endobj +3875 0 obj +<< +/D [3873 0 R /XYZ 69.866 801.979 null] +>> +endobj +3872 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3885 0 obj +<< +/Length 2057 +/Filter /FlateDecode +>> +stream +xڭX����u�PH����.����u�>)E�N�)R �����{gvf��h�����}���fv^˫����н��sn�_����?m^\� �#c$�t6�N�8�0����&w~v�w�/��Z��U��o�|��0QJh/V��s�A($�n��/�:���{8TeM���˰��X$a���X�~@�^����]��3VWoT29�}����e��c +���-S��ۗ��Y3�����*��,����4E���~�=�iyr�����E�` �^[tͱ͊uU���x^��_ˬ�V�U ��7:r���[F'0�T jy�7����dI���Z��l� �@H����J��b���Fs�(�5�}Q#�X�}C�ǎ��]�W(���|t���@��n� +Q��Z���-#�&��� Aٷ���<�`F��x+��������7d� +ܢjE�Ɍ>� +���X���m�j��nv�fW�U��4{�S)r=���X�H&0�" ���VZ'�#;j_��dn��ڟ �� �? �-;�1̀�p�ϸ�����Q(B�6��¥�"������d� �`�i~r�#~@��n49�y�Z�ۜy$�$ +-����(���%8h�wk.�l@�z]7 ��+�\�Y��~)� [Jw��P����<��n��}Z�Ƨ������Ǫ/�uh�~�*����?I��~G�S�.%�� +d��n��]��i���x���n����`n@��I�62��\�ӵ����Dc5�&?��?�Dkv#9��$:\��ˍD�'��8 +�Z��=:�tEb�<�?N�K�ۢ��x�ZB#�PD��|8+�~w���6U�$ +��� �%�6���C��ˏd�g���ˏ��Z����������2[�>� �ܑyM�������6Ǭ�C�r^�G"�3z���y.� �1�r�{���8�m)�u�|}�I��>�;�170M>q�8���zQ! g�s'�D߿��c�0(��܄�؆�h*�RW�p (�90��=��$�y��}~�kjۧԔ!�G�tF9s����y���P�C�A �,4A�h="�YId +'u4$e�9gcن�,��w��6h4�d��f�hR��Q��W������"�0�5���fb�!���My��\�,<���˅Q���|�~�S�fo�#�4�H0q��f�TQ�Tqߕ�Uj�d a~�_����?�Լ���ڡ��3���C�������v<� ���1�P"�z�x|��� �#���zk?�BF�<�|E��rK�o[���9}���^���^�%:{Oh���4���B���ݗ���~��o�~-I�r]�h�DO6��* ns�c� �+Qn�9?���Cvzz�@�aF����˴*C�-LmR k9�G�i�K縔[Q.A����恳����i�L<�J#"��[(�Jf���*I M��|�?�I{%�r�f�yn�n�{QԴ�TޥR!��ծ|���\#�ܲ +�����C��:L�cj�n6a����zj��'$�X� Ja0�Ҫ�p�;�BCZA �<M��t�x|ZrD`� �7;�w3ê�1䆖��On2d]X}�3}9?�����n��M�pϥ?�v����W:�h�-UM6~����C%����D�l!=�s�FR�W!xi +Ȉ��*pZ�4[yKxL�d��PqH�\�_�Yu��{��>/��z�}��� ?��%s�Ҁ���Ϡ�}[~���x���s���/�k��?���i0�Ͷ +���Kf,�~���ـ���`���h����kcs.��fI�; �t�~8��(��9d�q��"?����8���%,�F�5,�]���XnL&ő ul�Jf�/Y#����ɏU�����ť�$M\t�7����#=�H�1knL0̘��-I<ۢ?��������旻��o��^��ɍr�k���P�ⷁ�[�rӭ)o������sg"�n�K>R��,���t�X |s��|���>�nw��np��q��bA�Jm��\��6��:ҕ��!:U�O�<Ƕ��f���{+� +endstream +endobj +3884 0 obj +<< +/Type /Page +/Contents 3885 0 R +/Resources 3883 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3894 0 R +/Annots [ 3876 0 R 3877 0 R 3891 0 R 3878 0 R 3879 0 R 3880 0 R 3881 0 R ] +>> +endobj +3876 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [177.344 451.147 251.068 461.729] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://www.eclipse.org/)>> +>> +endobj +3877 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [490.555 310.583 525.406 321.057] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://git.imp.fu-berlin.de/zkasmi/my_lib_full_fledged_devices/tree/master/RcdMathLib_app)>> +>> +endobj +3891 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [69.87 298.981 179.459 308.879] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://git.imp.fu-berlin.de/zkasmi/my_lib_full_fledged_devices/tree/master/RcdMathLib_app)>> +>> +endobj +3878 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [111.713 178.851 168.101 186.221] +/A << /S /GoTo /D (matrix__test_8h) >> +>> +endobj +3879 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [111.713 170.881 168.101 178.251] +/A << /S /GoTo /D (vector__test_8h) >> +>> +endobj +3880 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [86.607 131.031 134.627 138.4] +/A << /S /GoTo /D (matrix__test_8h_aad3d0f4acb79e8a9b61eda59dc3a12b2) >> +>> +endobj +3881 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [86.607 123.061 134.627 129.858] +/A << /S /GoTo /D (vector__test_8h_ab0aed13072bc11b97766634c625d6f21) >> +>> +endobj +3886 0 obj +<< +/D [3884 0 R /XYZ 69.866 801.979 null] +>> +endobj +46 0 obj +<< +/D [3884 0 R /XYZ 70.866 771.024 null] +>> +endobj +3869 0 obj +<< +/D [3884 0 R /XYZ 70.866 579.14 null] +>> +endobj +3887 0 obj +<< +/D [3884 0 R /XYZ 359.721 523.079 null] +>> +endobj +50 0 obj +<< +/D [3884 0 R /XYZ 70.866 505.391 null] +>> +endobj +3890 0 obj +<< +/D [3884 0 R /XYZ 452.996 394.363 null] +>> +endobj +54 0 obj +<< +/D [3884 0 R /XYZ 70.866 376.782 null] +>> +endobj +3892 0 obj +<< +/D [3884 0 R /XYZ 180.955 301.511 null] +>> +endobj +58 0 obj +<< +/D [3884 0 R /XYZ 70.866 284.284 null] +>> +endobj +3893 0 obj +<< +/D [3884 0 R /XYZ 220.637 70.866 null] +>> +endobj +3883 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F29 2678 0 R /F37 2725 0 R /F55 3831 0 R /F14 3888 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3901 0 obj +<< +/Length 1796 +/Filter /FlateDecode +>> +stream +xڽXKs�8��Whf� Ϯ�zw��ɣw�M6qNM'#[��YYr�H��� ɒ�6I=� ����X��X��qr��|�}#`�������-x�ᇂy�X��ӛ~]|6l�av��"2��l=� ?0����m��`!ϐi�~1�6��c�,���L�|���>��G�sc8��\džqj\M�}�.,�����qf5 +�Lgܲ,sq/�(vc�~��g��ƲD*Q[-�b�z(�2f���0l�2>��I�d���D�q,J�,p-����rˬ7�P5�A�TXf#Q���[n,�*�:��^����'��飬�ЕUTLg�eV2&6�lP�q�+�2&�U���J�LԾ�ږ��i>�����VE^���=�>8F0?$�n�p{�>����B%`\4Axxqq:?>\������v����c�gU�d�@�,�\�C��u1ح 3�f�o3* +��6\��G�W�Gp|H���6��r+W :^���L��on��H���M��*�"4;=C3{���`�Ʌ��eR����`pey%ٿ�$�ݳ�Ɨ�����D�Sn�]j�(�N��5��Eꎙi�g���%_2�7{4TEf��_�����p��t~4�2��z�d��@�MH(R>Xڃ |A��Y�\�g�|�,�� H� |Gp��A�/ [���Za@j)w�]=�{����W@�^�������ӱd���C��g���NBo�ޚ�b�U��o���|DwGYտ��ڕ~�|˥�L�EB�ѳ��F()d�����Ɉ���T#��$ �`��QZ����P��,nȫ|��Y,����祬4AG�@M!lf�!�!�cU�����%zo���RU��N+�+B_��Uߎ15�Cm�@2�Pw� +MU\t8�0I�H�Oi�c�9��j��ca��߽����m�ȷ��:a6��ɦp���a'X�4�����8�L*}:ډ�=JJ��V�UZ��g� +z� �1�T�����a�l����"����-���YJ�aJ�8R�\�7�3ϖ뽴��.g�,@·�@Z0��������p�F+tŁ�.�8����N�:uʵj9��ڋ� j�[����%4CO�� +s:&��W�"�ZB�~S�l����"� �1!����i@�`ƌ(�9����MV��h��G4�H��(-�<�+���eh7v�DI�#b�$�nD�Nu�Y�'ֲ��˓�%��:�^� p_fD�s�Q(��9m���{?)�dV��C#�G0:���#�3�V�N��}��j�����~38-���RP�"���BD�iڧ>ˮ�,�t2<����X���"����We�:�����v����^a�g�ZMh�#=�6/�dU�8FbL����f�i��]Yɍ��Rם��"#����M�">m5/ǒ��벬�IK���.Δk/p߉��R6"��B6�� �L�~&ߣ�6mV�cX�=A�*=��r�]���h7���ӂs=o��.��Xʬl����'�Oo�����o �S��3|�ܑ�1�2_�4N�L���2����_tߔ��O��^g��6�>x�Th^�Y�����*�}��Q�z�� +"a�C�;C�q���5�I�m����^���To%xkkٞ�4\��-e�3����+�z�(��P3�TG�o��CO�%��z9�]����$� +�͖�*�otc��v�<e�KCB��6��_�VW e[�U8���U^��?�1�{��9]�g�����(3YD���y���$W�[c��m���rZv� +endstream +endobj +3900 0 obj +<< +/Type /Page +/Contents 3901 0 R +/Resources 3899 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3894 0 R +/Annots [ 3882 0 R ] +>> +endobj +3882 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [257.963 688.617 319.123 699.199] +/A << /S /GoTo /D (getting-started) >> +>> +endobj +3902 0 obj +<< +/D [3900 0 R /XYZ 69.866 801.979 null] +>> +endobj +62 0 obj +<< +/D [3900 0 R /XYZ 70.866 771.024 null] +>> +endobj +3903 0 obj +<< +/D [3900 0 R /XYZ 70.866 747.603 null] +>> +endobj +66 0 obj +<< +/D [3900 0 R /XYZ 70.866 747.603 null] +>> +endobj +3904 0 obj +<< +/D [3900 0 R /XYZ 70.866 437.812 null] +>> +endobj +70 0 obj +<< +/D [3900 0 R /XYZ 70.866 422.572 null] +>> +endobj +3899 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3909 0 obj +<< +/Length 1671 +/Filter /FlateDecode +>> +stream +xڵXKs�6��W��5S� A��ةZ?2�2�i��P$l��H I%q}w��%J��d�'B`����t����;��w��~Y q���GoG���w���4�Ńs�D��1K�p���=}�ֽjg^$�����uO�VL�$@%��d 0�[��e�H +VM��T7��uc�! K�H�3"�d�'� t7�SӒ�=U��A��l ����y(I���\їn���q���u��9�Y�,���g�����B�qԪ�yB�.���mH�7��QYӷR��&/.���\ډ��Ѻmf`�����hG����A���Vufek��:��ݦ�zk�5 ���a3O�����X�� +�"I}�;r�����5-���g~�>KeD+��#�eG_2�[fZ���6��Y��A�(�W#� GSU�/�:T��շ��7#�8~��$��.�x�'O�Ƚ(k�\�fU�j��|�f����"���\�-I_�|���+�c�P}��YU��،� �������,����ΫM��Ǻ�ҳ� �����nn��B�YYٝ�^�;�Ӣ�8�Ѧゅ�m�S�nrd�� �1��Qj�Fv Bʐ��jz��ye� b�\;K�:יV������gA�7�6W^U�����dP��� zF�,����ԱgL)�prηF>���j�j���}Ѐ��� �.��=�& ��([���ɭv. +�;�o��ي���'���1�n��� H�ciF����Y�Ӵ�&9���r�A��I�Q��Ҝz�an��j,)b�Ib��;E�B�zβ� ��plﶍptY����Уk`�A,�� ˵j��<o�8������8�]M���j]YL�ħ��C.0AX~�������Q^����5M�DM���xDžoOn����nN����t�w��H:�� ���[�Ȱu�e�γ��b�c(5e~��Z:Evt���%��%nKl���ȑ`>�;�@75$O5*(�!����BB���9S�Ni�O������{Eڀ��12��ʞ��6��).F:�� F�-(w\� ��d��צ�i�V�0���6&p�$��Z��CY)�]ń� g|0]���!����rƂ,j� ���zIf,�f%#�r1��i�_M�D,Y"��)�''T�,5�`)O�pt��IM���Lؒ���g�"b�פ���;.9 ��P?��|���뫻O�]�,~��������8z_(�Kb���9�ZO���HXLf+pc�=̍������C@%��*����#"���vK�dKz�̠�Z�.|�k�m���1 +� ++��z��3�0Z��( +���� +��L�Ϙbl�L�9��l�h�(�}՚���Y���F���L��%BO�=����Z�.�1�(V�نg5$�ǟ9���"N�����w/�&\+R��t��� tl����D�',J��M�EBy�S�qaB���P�m%)�Su��Ү�r�k�q~_�L��Lf�1k<����; ��*/��R����Y�[�Kl��a��T�૯>�)�Dj�8H�*��r~uz����-���f��K�aChP��>�=�{N4���0$�o-K^�_0>d���g/PF,������-S1Fl(I�{U�1�9��d�?�f;[��y�� +endstream +endobj +3908 0 obj +<< +/Type /Page +/Contents 3909 0 R +/Resources 3907 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3894 0 R +/Annots [ 3905 0 R 3906 0 R ] +>> +endobj +3905 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [319.121 407.052 449.321 415.742] +/A << /S /GoTo /D (index_structure) >> +>> +endobj +3906 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.554 257.845 435.231 267.508] +/A << /S /GoTo /D (group__basic__operations) >> +>> +endobj +3910 0 obj +<< +/D [3908 0 R /XYZ 69.866 801.979 null] +>> +endobj +74 0 obj +<< +/D [3908 0 R /XYZ 70.866 771.024 null] +>> +endobj +3871 0 obj +<< +/D [3908 0 R /XYZ 70.866 574.897 null] +>> +endobj +3911 0 obj +<< +/D [3908 0 R /XYZ 70.866 356.283 null] +>> +endobj +78 0 obj +<< +/D [3908 0 R /XYZ 70.866 347.732 null] +>> +endobj +3912 0 obj +<< +/D [3908 0 R /XYZ 172.928 70.866 null] +>> +endobj +3907 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F37 2725 0 R /F55 3831 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3916 0 obj +<< +/Length 700 +/Filter /FlateDecode +>> +stream +xڕTKO�0��WXj�J��q*���P�� P�nD6Y6Y���w{C8�C2��<�y�0����y4G�_����'H�T)��J�J�$eXQ���:��mv�x�`M%� �ok��U3�b��pٖ��tV18���Att�5�L�b\�T��"��=�K$$�Rp�kt�z�2�R�?��(&;��(����|��p�fe��4E����t�,A1�X�|d0L�t<�G��[wp��6�����u�з��pY5ղ�Qz�E[z�ܬꪀB� ��D3��3�`� ���� !�1Jո�D)$ǔO�R��lH�<�7��6ܾQ�D` ��}����`���2�u��D��wۦϟ>��N���ػ�9�լ1Q��K7D�����z[@+ݶ��WEwyuy|�����1��s��f��z6�GG�a�5�*��y��?}q +!�$�A��&=���ױ���A9� ��A 1�N�= �I�Zr ++!�A��/����z�bBðp1�wN �Z��)����p�n�uv��m��� +�dvG�!�a�����T��n��]�HX��%�N���!wd�u�bQn��;�u�lHEMK�9Ô����uڱ |��g�.�jS��קZ��A�^��z5%������[�0K��ȅXJ+培SӘu��\C���?jm��s�������u�� +endstream +endobj +3915 0 obj +<< +/Type /Page +/Contents 3916 0 R +/Resources 3914 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3894 0 R +>> +endobj +3917 0 obj +<< +/D [3915 0 R /XYZ 69.866 801.979 null] +>> +endobj +82 0 obj +<< +/D [3915 0 R /XYZ 70.866 771.024 null] +>> +endobj +3914 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3928 0 obj +<< +/Length 1406 +/Filter /FlateDecode +>> +stream +xڕW[o�6~ϯ�=H@E���6�K�,m���b[� K�-T ]�f��������Ţ�!�s�(��7�Yu'�Y9ܹ|z� �%>.O~���."ሔEY,���I8K�؉��%"q��{�η�j=?R7����;�1 A�$O�KJ{�R�}լ�|��$b�W���6�R�ű�D,A�h���ЯuK�P�� �9����!vF�{��8�U�&��>�6��. �L�O��x�2���!p�s���<4��K��n���_��^�R��_��Y���扐�z���'n�7�Ћ>��_+Z�y����ƚ'\k�F�f�l���c�X��g\��lGN��I�X$PQU�~=,�2}I�Y(������6���#YW���������8ˢt/�N�c(���0���)�Y���v�i2�v���Ka�1I6����z�]�d����������'�OS�_tK�8�3 +7%� �~��6�+� J���L1,{���x��hm�W��ܜ�����U�K@����<}kK�e<�i�1�UW�� +�����{�z�y)1J�L}�7�-�ً6s����&�H}���6��Bo6�wJSҘe�L��B(�A%mzq ���le����<���̓�#,� &�s�7۪>F- +g ���()0�2������2l�i��.���� ����v��C]��9��\!�k� + H�}U��?�-`qfgq�Ñ�B�H�T6�ꆤ���.��.���M�P�I�[IN�/w�N7yM0����P��G��~����� ýD��`��)ݫ� ���4�DH|����_�Gވ���R +IM��Y��$�G�hn�n�P�Ī���H7��� %��ނ�P���Tw�4�_�Q���D���3c�q K�t�߃h?��9CF���� +dO��f[�m���� r7�yg ��&|6ʮ������F������4$`�j���OUSt��DJ��ڃ�BPMy�x���1(M��%�v��*z�l8*���3�i�$�L/�A4̓�]��H^8��]��漨���E3Wo�Ɍuk����j�`������U f��juv{R�����L1kE���꒶-F�����H���� ��܁���=��Т�IS]7����mU� ��[��&�S�Sy�>֓#��j�ª��zn˴�y,�4��h�FxK���G)����u����0b)�w�`�!,������Ng[`�Y�g���A&�+�9�4I8��zZ���ro�����MO{�[T�*�n�����]�i�V�x*��t�� 9���m�Ñ#aI8}~�)� �B���B�[d�\�Q4�8�����^��M���,�r���_��~2�r��������ɿ[�z� +endstream +endobj +3927 0 obj +<< +/Type /Page +/Contents 3928 0 R +/Resources 3926 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3894 0 R +/Annots [ 3919 0 R 3920 0 R 3931 0 R 3921 0 R 3922 0 R ] +>> +endobj +3919 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [296.404 437.737 340.24 448.212] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/)>> +>> +endobj +3920 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [427.772 437.737 525.406 448.212] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/releases)>> +>> +endobj +3931 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [69.87 425.674 155.549 436.05] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/releases)>> +>> +endobj +3921 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [224.147 425.674 315.803 436.05] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT)>> +>> +endobj +3922 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [271.796 400.095 441.161 410.677] +/Subtype/Link/A<</Type/Action/S/URI/URI(http://git-scm.com/)>> +>> +endobj +3929 0 obj +<< +/D [3927 0 R /XYZ 69.866 801.979 null] +>> +endobj +86 0 obj +<< +/D [3927 0 R /XYZ 70.866 771.024 null] +>> +endobj +3870 0 obj +<< +/D [3927 0 R /XYZ 70.866 564.466 null] +>> +endobj +3930 0 obj +<< +/D [3927 0 R /XYZ 70.866 515.123 null] +>> +endobj +90 0 obj +<< +/D [3927 0 R /XYZ 70.866 508.522 null] +>> +endobj +3932 0 obj +<< +/D [3927 0 R /XYZ 70.866 382.087 null] +>> +endobj +94 0 obj +<< +/D [3927 0 R /XYZ 70.866 365.259 null] +>> +endobj +3933 0 obj +<< +/D [3927 0 R /XYZ 70.866 321.035 null] +>> +endobj +98 0 obj +<< +/D [3927 0 R /XYZ 70.866 321.035 null] +>> +endobj +3934 0 obj +<< +/D [3927 0 R /XYZ 70.866 58.644 null] +>> +endobj +3926 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F29 2678 0 R /F37 2725 0 R /F55 3831 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3943 0 obj +<< +/Length 2406 +/Filter /FlateDecode +>> +stream +x��Y[s�J~���� �.�ak�����$k+�)Fc�5-�8ί����*,+�T�0����ף�ˏ�uW�p����ۓ�˓�^hE,�ҳ��V�Y$��.��Z��϶��?��[^� a�}��&+��Fv�$�q�Q+\|r�<�߉����(b��[�����Z���g^Yz������uu��=>ga�!�R0�r�3��Gp���!�-=z4e����u�4t���ˊ>*U�� +GR���&C���J-D`�RU��//�x�<n9"b�ڪbEL��]�Q>��V4�N���K*ES���M�T��WSҒ]�Yx_A0�م�l�ܭjC!+�LyN -H� +�ݖ6�rP1l�x�oZx�6W*-7��]���A@r#����.o�i֝�3�����`W�� +]mV?���}�|�t�_������E�c�t`���!k��n�E���5 E� �F�6O���/������/<�Z��5�{�i��eEIDީ����@rX,^�>![�&�O;ܣ���>��!��u ꤌ��%I��<ٞKgx2�=ϐBڧ�����H����Ը�����%�3�`|�f�e��A��0� +<��nԆ�A��w_���a��!1�7�2���X�x\6�c�)2�T�Y�4����~ ,8 l�-�Yn_��N��-''f��'I� +{��V��&)�;�o�v��z�бE0�]��J0]Ў�(= Jc7�$���'�(�<05R��M�4I}Oʇ�d�ͳ�Q5�`��3�`���~��@[�y�~��3z+�f��s��5t�f�zwC�[PQK�h �ԣ3�1�n[�F^�ٝ�Y'&X��$���Mb�� |<�7����Y�F����Q9�e�09����UG�0�3�J�6�&���%�%�DYm� ����R��,���%�B��/d�٨�x9]n0��u��y_դԌ1V�(�-("Lr��:j��n��vYn`C�����.��ҞZ�! �����t�.i���0yL�/7��g���]M9��?R��0λ�|���+=Z�����"-#����.����g��F�o&��uق��� V��f���!� ���Z`�# ��:�ܖ�fLx��pOu��5�h�ctb��0sҀI)�kr4 ���Y� +��}���!'s�Gb���YQ])�2Y�v��$ꎽVd��X˂}϶�� "�ԋ[B� s#�vGx�Z9�+�/��rҼ,�{g�+�J��,��xe��!0A�0����?&d�;�FU`�R���'�&{ـ]�7��yv�p���`8a���V�/]����5Tx7ٴQ:0�O��v��(M�!l;Ol\�n̂]�wR����C�r�2"\'�04������U*iԨ����$Pr_o�T��\�Z�G�U���*�F#\�!�8b��S�;��n}R3��0����vTۻM��Z���b�>̿7��{�}����\S�A�>�D�m�yC�]�]n�~d��A����G�������]��/����R�J��7@��꾗�P���dEk�OmRx +m7����rW��.�>eߡ!>l�����u�۬Z��}N�Q�#I��Jצ�hU�ɳ�vf�!�� �6����u��Px���?V��U�)��]V����o@�V~HID��E����³�ʽI�]�Y���čy�X%�J�@��#|X��ؖܚQ�˽�E �^7�Y���Fw�z�&��M�$��`)��. *�8 蔧��ַH�:��������d6� �< p��_�����҇�����p0�x*�?[O�%O|�����ŕƶm��1��i"]�%E�h��o�fxW�ҋ�����Z�kM/W�6���<��q�&��.h ~*��4��\���������Q�����ZRW�Q�=&�Bv y�:�ʺ&�ޞ�͜H���J;�2w��c=�C�Dc�z��%r��@S�{H�]o0BT5Z��Cr +8��x����X,DW,�R],��T�?�궦r��B ^��wh��.!��\9��NM9�T�]9{��~�����Þ�Ŷ:lNfE��V����f���m���{ҲЕ�K!����ݮ�`l�U�Ō�H���*��zB��'D�0t�a:9D.7�M:X7��52郞a��|�Ex��:��e�a�0���´Ρ=m\G���ä5��O���O�sK{m��}h�$ �B�����ZRyRq�@*��m4�T�J.��!���G��1�"~ca,k�l�~�Xh�x�g�Ŗ��W��*�h<I�����qz9}͆}�A�8�Gf��B�si�oՏ����� �#8�����=?`R�A3�7�-���7���Gs[XLY�? ]{� +endstream +endobj +3942 0 obj +<< +/Type /Page +/Contents 3943 0 R +/Resources 3941 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3894 0 R +/Annots [ 3923 0 R 3924 0 R 3925 0 R 3935 0 R 3936 0 R 3937 0 R 3938 0 R 3939 0 R ] +>> +endobj +3923 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [111.718 715.566 161.532 726.149] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://riot-os.org/)>> +>> +endobj +3924 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.777 635.488 216.321 645.386] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki/Family:-ARM)>> +>> +endobj +3925 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.777 617.246 156.545 625.764] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki/Family:-MSP430)>> +>> +endobj +3935 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.777 596.245 174.478 606.143] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki/Family%3A-ATmega)>> +>> +endobj +3936 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [94.777 578.003 138.612 586.521] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki/Family:-native)>> +>> +endobj +3937 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [208.898 505.01 282.622 515.592] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://www.eclipse.org/)>> +>> +endobj +3938 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [303.366 493.162 490.664 503.637] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://git.imp.fu-berlin.de/zkasmi/test_my_lib/blob/master/RcdMathLib_eclipse_version.zip)>> +>> +endobj +3939 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [180.359 320.629 367.656 331.211] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://git.imp.fu-berlin.de/zkasmi/test_my_lib/blob/master/RcdMathLib_eclipse_version.zip)>> +>> +endobj +3944 0 obj +<< +/D [3942 0 R /XYZ 69.866 801.979 null] +>> +endobj +102 0 obj +<< +/D [3942 0 R /XYZ 70.866 771.024 null] +>> +endobj +3945 0 obj +<< +/D [3942 0 R /XYZ 70.866 569.795 null] +>> +endobj +106 0 obj +<< +/D [3942 0 R /XYZ 70.866 563.901 null] +>> +endobj +3946 0 obj +<< +/D [3942 0 R /XYZ 70.866 435.523 null] +>> +endobj +3947 0 obj +<< +/D [3942 0 R /XYZ 70.866 415.901 null] +>> +endobj +3948 0 obj +<< +/D [3942 0 R /XYZ 70.866 396.387 null] +>> +endobj +3949 0 obj +<< +/D [3942 0 R /XYZ 70.866 376.765 null] +>> +endobj +3950 0 obj +<< +/D [3942 0 R /XYZ 70.866 357.035 null] +>> +endobj +3951 0 obj +<< +/D [3942 0 R /XYZ 70.866 339.019 null] +>> +endobj +3952 0 obj +<< +/D [3942 0 R /XYZ 70.866 317.792 null] +>> +endobj +3953 0 obj +<< +/D [3942 0 R /XYZ 70.866 256.145 null] +>> +endobj +3954 0 obj +<< +/D [3942 0 R /XYZ 70.866 229.366 null] +>> +endobj +3955 0 obj +<< +/D [3942 0 R /XYZ 70.866 197.329 null] +>> +endobj +3956 0 obj +<< +/D [3942 0 R /XYZ 70.866 177.354 null] +>> +endobj +3957 0 obj +<< +/D [3942 0 R /XYZ 70.866 145.669 null] +>> +endobj +3941 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3962 0 obj +<< +/Length 2850 +/Filter /FlateDecode +>> +stream +xڽZ[o�8~ϯ0�� ckF��V`�H���٦�&.�a:(2k#KIn����!u����>�x9<<��|�r�������ȟ=��ه�wˣ��<��$ C>[��"��a8�FB:[�f�y����E�wZm�y����&[]���c~7�}��LN���\=�R�zt�<��B�?�Nx���Y�9��w���_f>�I<{�#73�0���ۣ;�����x� �b���V�h��o� �6���i�Ѯ��i]ٶm]�Gf�h�?[И��H�&�_)�m^�i�v�X��r[��5����6i^~����~Wfj��k3h0�d����۫��ج�J�2�=龯sx�np!�sQ�����X�l.W A��2"�6MIf�+�&}�3��i�i�L�ď��_�}��^snd���Ym:/[ ˂:�Ņ�nek�춝g��M=��ӿ���Q�g�r?�SAh��<+�m6 }8;xj9aL�p3�ƬmlS���S�v��M 1�1���Z�*&��h�槔s�{O�%�NMF�x�d�jp��/��!�����]��%�M���7���vmz�V)�Vd2)Cc��ڬ6دU]���ɧ��tj~�Q-o`GD���{c"C��P!�Ad��4��gQ�7ۊn��$bV�i]5�Q����20�%�_�)����E��L�"��Q�G�g��4�}�5�W�1� �0���:i�W�K��T����-�m����������·[����b�נF5�d{5�ڦ��C)��E��Z�(t]�1�[�4N)[�+]n�ֱ�Qxo�B�x��=���U0�+����)��Y�[���7V�T�]!;a��Q��4�5O@[��o����Zi�-�"��ysW��O����A}��*����$��#D��h�j�j�(�ynZ���LyR/�l�]�Z2�(�M�J� ��T���kCb3��5���Ȼ��R;^bj^_y(�K8d�vQ�I�Ke'��C�Ug`��ALyt&k���ۚ1Oj�i?3��(�����n���"��Q�k� A���=���`�5�śq-O��e���(��5�xp��=�مL�v����hv�B�@kn�nS("q�� +#��/�#G �{r}����dyq�i"����1`L�f]�lt#�!U����ϝT0d��t3�g� ;L��ӆ�q �c̏���������XB�8�m+�\�R6�=(��^�c6������n:y���"��JwE;2�Bߏ��1���Nn�'�!"8�О=��C{p���A��kl�L���\]Uݚ�wݬL�U�� +����Z���<���`�4�q�Le�z�Cрr+\�2-�9$��)������k��u�=�����zvy����Ż)���( +���m�Y�jԕ�� Ä�ukƄT��,F@ B���A]�1����67�k`�S[�>�|{~yu���T�)=J^ +��|�3a�-�|���J��}e;�=X� +c��=n�d����PB������u�-�s˵�q����|g�n�j.�S�M�$�;$�r�+*�BJ��,���#����;9�Z-V�&�U�y�Vrx|g�p1:韠��7o���lO���6L�ui�t'ѐ$� +H��"x1���ЧY�]]��WW ��z)�B�����[l&��~��C��SJ�dK��0�w��o�.nT&r�NL����7m1]z���@)wi�g(J����Ot�����^�Y�U�^���S��c���hD��� M�\D"�� �6q慄��6T�f�(�C���~�]z���R!$�oji��fx��V{���C���1R�w_W�V77�(��0ux�.M�.8���x���s�-8��R%3�dkr���U���SG�:(�̨���Ngs���˜�{���_�t�T��i7�U�d�WY?�5������F��M������¼h�=W:n��]��[L5̊�Y|#`�����x���j��(��ii����i$���HV�@7�����X�O)����n�m�@#8�Y<4�nY�S�� �z�f�x����Rxu\U��XCS�k�"W���!��zc/�T=����U������Z�4�-X�%��\�2�>MQ�}k�dH�����`&&#o������� +HF�A�9�'p�j+�2YC���]��xKL&@u�e�P�X:�x���T�&+�l'�|��[,R�Ju|� �{zDd���I�f9+dZ:�/���$�� ����Dg=�Dž�� �B"�K�U���G�z�E�Aw��L������PD0��®r_��zB�����UQ8Y���U�V֛);�$�T� V~��:G��T��GTf�\��R��î��\hQ߷`�D�w�.��~�~�m��Uј��C��à:���� +�!����npN��s�V��%ք)��vs}u���e�;[�m�π�?h�UALJ���*V���oNt��N ��Ad."L�O27Hc��c����ZM��h�_P'��+�w7w8@� >��k��FB��h����W�F����>3,^�O�2�I��\�*Lec��֟��1C��;�1u�����2՟�`����&���;�1,���;r�V�E�ދR�}x�y[�/=�/,���L�# w�S%è.Sgx��]�K��u)8!���!n� 5�����F?}͛����aL��Պ_����/q��}Hīq��n�gm��]�_���e�&Ɩ��s�yj��9�5?����N�lF���H�3>�R�]-Y�ܳJ������r������ +endstream +endobj +3961 0 obj +<< +/Type /Page +/Contents 3962 0 R +/Resources 3960 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3973 0 R +/Annots [ 3940 0 R 3958 0 R 3959 0 R ] +>> +endobj +3940 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [202.748 704.794 276.472 715.269] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://www.eclipse.org/)>> +>> +endobj +3958 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [178.134 536.395 233.925 546.87] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://www.gnu.org/software/make/)>> +>> +endobj +3959 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [132.66 67.983 164.541 78.457] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki/The-Make-Build-System)>> +>> +endobj +3963 0 obj +<< +/D [3961 0 R /XYZ 69.866 801.979 null] +>> +endobj +3964 0 obj +<< +/D [3961 0 R /XYZ 70.866 771.024 null] +>> +endobj +3965 0 obj +<< +/D [3961 0 R /XYZ 70.866 755.961 null] +>> +endobj +3966 0 obj +<< +/D [3961 0 R /XYZ 70.866 697.91 null] +>> +endobj +3967 0 obj +<< +/D [3961 0 R /XYZ 70.866 669.308 null] +>> +endobj +3968 0 obj +<< +/D [3961 0 R /XYZ 70.866 649.195 null] +>> +endobj +3969 0 obj +<< +/D [3961 0 R /XYZ 70.866 630.815 null] +>> +endobj +3970 0 obj +<< +/D [3961 0 R /XYZ 70.866 612.328 null] +>> +endobj +3971 0 obj +<< +/D [3961 0 R /XYZ 70.866 592.281 null] +>> +endobj +110 0 obj +<< +/D [3961 0 R /XYZ 70.866 582.647 null] +>> +endobj +3972 0 obj +<< +/D [3961 0 R /XYZ 360.997 70.866 null] +>> +endobj +3960 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3977 0 obj +<< +/Length 1293 +/Filter /FlateDecode +>> +stream +xڥWKo�8��W=IѤ$�@i��6H�5P,�b�H�͍^�J��ÇT)Q���b���7���z��%ξ[ag�`�j�r�Z_����,�Cg�s��8v�,@1q����%��y�� ��,;-��R�z��A���d-��+y��W��?+��!�i�� r�j��3v +�{�`f��5+'�!�Q��y���N�QB�x +4&H# ��c��EY��Y]��u�x�<��d~:ͪcɍ`�ATMk���k�VIr*\=Sh���Nſ�� ���C�R����f��N�y~��m�u�Z�̧V8���#.o��ٙ/�Bl�ZQ��<p�R'��+�)�q0�����4A$5��\*�� �ay>��^<x5��8'SX́�C�\�����2�S�b��,r|BPFc�������à��^�N�m�N{���tzK�k��g���ԭ��ŗ�)U6����`�;���[�=���2[ +��� �zc�3k}��I��&[�aओ��٧���&*;K�3)+r��ѩ<$��ɪ��*��D�Q����������bu�n�7��:Y��.*D�7�=-�z�97��v������_Բ1�͉��,�@���#J�h}�8d�� ��x\0�i�Z[��;9��<�]���J����P� �!]r�Lݓ�&�{2�q��4`��;�T,��xx`U�R���6��Z�}7�J��R��z���_^6 ܃Q���f�]��(£R��'Kw�؝~�b? �� �䧩�s*��u��R��_]��܁ +�� 5a�y +Ayl �' ���a��t�I�� +�ہ�q�M���Ɲ굨KJgr$��&��o���1��xTuZ �<��͍�dk�k�a��Lt;��[��k�4e�6�-]�~Q�Eɼ��J�IlL2�䇦�9 c�>����Vk��(4{uZ�ê%:�a�q�9�ȇ��������R��NF�O�bs���FVsn%w:� �����w�W�|�(ɦ>�i "�Ci:g^��'J���|��h_��_5��M{ef=9fzQN%q�H����K"(��ί=��j�Q����B�����$�a������!�I~]��d]�Ag/��PB 0�,�wRb��b�ؐ%��O+�m��P�D'�H�ԫB��a���IJ�)J⑱�^XK��n�6�0��^�iT��]��Y�0�B�n��S@7�S�K�"�!�x ��I)�� �#��8��Z�[6�P����F����z+��~ +�_v�� +endstream +endobj +3976 0 obj +<< +/Type /Page +/Contents 3977 0 R +/Resources 3975 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3973 0 R +/Annots [ 3974 0 R ] +>> +endobj +3974 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [132.66 432.921 164.541 443.503] +/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/RIOT-OS/RIOT/wiki)>> +>> +endobj +3978 0 obj +<< +/D [3976 0 R /XYZ 69.866 801.979 null] +>> +endobj +114 0 obj +<< +/D [3976 0 R /XYZ 70.866 771.024 null] +>> +endobj +3975 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +3997 0 obj +<< +/Length 643 +/Filter /FlateDecode +>> +stream +x��X]o�0}�W�1y��w�0,SB�$Tժ)��*�u�N�ϟ�MKQG b���;B�v���\����n�C� 0y!���&�A��98�\ +�[" DH!����~���X�!���/���8� �@�"�A �P�������¼�|�/|��_���n�?�!�J�� ��%Xd�q���#�l�u�?&DP +A�+�C��|\����Ȼ_��������=��?�K3�f�0��`qHA@�6���8+RU�AH���snq�'�6D ���e�������3�<B_e�1}$0��sCV�LU\6q:Q�2�Y��r^Z�aZ6��47Jnq���Pe\'������y��L��z��dfq]&W�H �ȫ�!�����N����l�7��R��ҧ]��T���M�<�T��u1ۖ&��m�Y'�gu����%�=�NRߍ,q����0[���8M>o��Q�N�w0P���`��6o�K8�Κ<�Ntw�6��v������P5�ݪ�����Y����7Y<��Z7���N�\��fp�ʔ�FwY�����7���A�)9F�����i@^�I�$ڔ2wڻ�{��+�K���~��鹱sF������g_��u��C��k�d�N����;TM�9l�U�� �c +endstream +endobj +3996 0 obj +<< +/Type /Page +/Contents 3997 0 R +/Resources 3995 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3973 0 R +/Annots [ 3979 0 R 3980 0 R 3981 0 R 3982 0 R 3983 0 R 3984 0 R 3985 0 R 3986 0 R 3987 0 R 3988 0 R 3989 0 R 3990 0 R 3991 0 R 3992 0 R 3993 0 R 3994 0 R ] +>> +endobj +3979 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 478.542 525.406 487.107] +/A << /S /GoTo /D (section.8.3) >> +>> +endobj +3980 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 466.771 525.406 475.152] +/A << /S /GoTo /D (section.8.4) >> +>> +endobj +3981 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 452.823 525.406 461.204] +/A << /S /GoTo /D (section.8.1) >> +>> +endobj +3982 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 440.868 525.406 449.249] +/A << /S /GoTo /D (section.8.7) >> +>> +endobj +3983 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 428.729 525.406 437.294] +/A << /S /GoTo /D (section.8.13) >> +>> +endobj +3984 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 416.774 525.406 425.339] +/A << /S /GoTo /D (section.8.14) >> +>> +endobj +3985 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 404.819 525.406 413.384] +/A << /S /GoTo /D (section.8.16) >> +>> +endobj +3986 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 390.871 525.406 399.436] +/A << /S /GoTo /D (section.8.5) >> +>> +endobj +3987 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 376.924 525.406 385.488] +/A << /S /GoTo /D (section.8.10) >> +>> +endobj +3988 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 364.156 525.406 372.537] +/A << /S /GoTo /D (section.8.2) >> +>> +endobj +3989 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 352.017 525.406 360.582] +/A << /S /GoTo /D (section.8.6) >> +>> +endobj +3990 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 340.062 525.406 348.626] +/A << /S /GoTo /D (section.8.12) >> +>> +endobj +3991 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 327.11 525.406 335.675] +/A << /S /GoTo /D (section.8.11) >> +>> +endobj +3992 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 313.163 525.406 321.727] +/A << /S /GoTo /D (section.8.8) >> +>> +endobj +3993 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 299.215 525.406 307.78] +/A << /S /GoTo /D (section.8.9) >> +>> +endobj +3994 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 287.26 525.406 295.824] +/A << /S /GoTo /D (section.8.15) >> +>> +endobj +3998 0 obj +<< +/D [3996 0 R /XYZ 69.866 801.979 null] +>> +endobj +118 0 obj +<< +/D [3996 0 R /XYZ 70.866 771.024 null] +>> +endobj +122 0 obj +<< +/D [3996 0 R /XYZ 70.866 570.668 null] +>> +endobj +3995 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4001 0 obj +<< +/Length 218 +/Filter /FlateDecode +>> +stream +xڕ�=o1��� +�ɀq�ɭU[T�J�Ȇh�����¿o8t,�:ٲ_?�3�O�OE��B]e5��v"�D�$�s(r���l�y ����8�ߗ�m53��J56��)�n�zW��셗&��S�5Ai�%�.�Ϙ���}��/?N�3Ć�q�tQ�dˁ1n�G�E��櫖�ۋq����zo<�ñ73K����_��JM� +endstream +endobj +4000 0 obj +<< +/Type /Page +/Contents 4001 0 R +/Resources 3999 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3973 0 R +>> +endobj +4002 0 obj +<< +/D [4000 0 R /XYZ 69.866 801.979 null] +>> +endobj +3999 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4007 0 obj +<< +/Length 364 +/Filter /FlateDecode +>> +stream +xڵRMs�0��+�b6����/m{�Xn�㠠2S��0��$����m�}o�$��"l��(�~*a��}�9w�3�r�W!ހ�$�H(�),��]��Y���E��>�3�A�1Ј�"|�������۵n�̴�e�y�����x2 $ # +�[�Σ#�-z>RJ�)�dJ��N�LAD����j�=e�����@�,H�ݥG��!�;�V�m�m,1k��h��lnL����u��`>s�C�2���$bh,����i^,�/1$�B>"Q���%�6]5z|���������25`]}�Eip�!u�b5�]_��vU'n��\���9���~b��g�CE�@^�Sc�\V�k +endstream +endobj +4006 0 obj +<< +/Type /Page +/Contents 4007 0 R +/Resources 4005 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3973 0 R +/Annots [ 4003 0 R 4004 0 R ] +>> +endobj +4003 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 477.65 137.484 487.107] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +4004 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 466.587 525.406 475.152] +/A << /S /GoTo /D (section.9.1) >> +>> +endobj +4008 0 obj +<< +/D [4006 0 R /XYZ 69.866 801.979 null] +>> +endobj +126 0 obj +<< +/D [4006 0 R /XYZ 70.866 771.024 null] +>> +endobj +130 0 obj +<< +/D [4006 0 R /XYZ 70.866 570.668 null] +>> +endobj +4005 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4012 0 obj +<< +/Length 224 +/Filter /FlateDecode +>> +stream +xڕ�=S�0�w� +��PU����+���[�Cژ,4!=���\�01I��>�g��^4�߂���xHb�dD��-�w��Be�5�vR�ڧ X�X�Xr��j�0!��П�ù����5Yi//��xL�K�"�wx����I��M�����"���'pޢw����������CA��8�3����C�]�ȅ8Z�s��z���vP��u�W�ʒ�\[��$s7����_��Q� +endstream +endobj +4011 0 obj +<< +/Type /Page +/Contents 4012 0 R +/Resources 4010 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 3973 0 R +>> +endobj +4013 0 obj +<< +/D [4011 0 R /XYZ 69.866 801.979 null] +>> +endobj +4010 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4056 0 obj +<< +/Length 958 +/Filter /FlateDecode +>> +stream +x��Mw�(���,�� R�3���̙���%=9X"��������r�'J#������ +��W̏g\� ����j��8��1�L)8�4a��G0f0Na���x�b����=�����sBQL�� g��?-Ji;��2�c�}��I?ăi�&0����b���:��F�ny��U��x<���0a,t=��~od��eKa��t�j����,m%���RV����)B������mm����+��I���U[ԕze'|���Š1�r|48���@�����z�(*���e�|]��OrG 0� ���(�u)Z7�U�T�� �r�^$Z.�:�"F�~���z�ș!�`����E�� ���u�ae�GC�u>�|I�=F��N�;����q\��W��yl���C-Egl��kG��+�����J�RYeEu��7� rƘ��Rj�?��h݀|�(A^�l�����8��^W(o��|g���� t`���y~�GF��9˕��*i�~n���1��*Wu5d#y�\��l�V�6wc���龍�c��O/��l�p�Sb�����*��Tn��n(��à�q��\�l!�c��;׆[\�Mct4�����r� �ST�:�.�SQ�ĥ���Z�T&��'���;!0`!� X�M��B:#ޙ��ُC��OD}�3���w��~4��:�R�!�?uZ�_����I���$D"�����h�j�E_�IP���)��<t��>6�el��_$-C;�vH���}�~�� �'���u�����yN��(�7��Y#�Bm�OE3�v]��J��$�Fƅ1 ���� +#ƹ���|��/��#�t�D]�{�u�A�*�#�����ʢ��}��������}h�]���hF@���]Gst�1m�l�W�#�Y�,y�<2az�$�����|����f +endstream +endobj +4055 0 obj +<< +/Type /Page +/Contents 4056 0 R +/Resources 4054 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4059 0 R +/Annots [ 4014 0 R 4015 0 R 4016 0 R 4017 0 R 4018 0 R 4019 0 R 4020 0 R 4021 0 R 4022 0 R 4023 0 R 4024 0 R 4025 0 R 4026 0 R 4027 0 R 4028 0 R 4029 0 R 4030 0 R 4031 0 R 4032 0 R 4033 0 R 4034 0 R 4035 0 R 4036 0 R 4037 0 R 4038 0 R 4039 0 R 4040 0 R 4041 0 R 4042 0 R 4043 0 R 4044 0 R 4045 0 R 4046 0 R 4047 0 R 4048 0 R 4049 0 R ] +>> +endobj +4014 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 488.198 148.315 496.682] +/A << /S /GoTo /D (combinatorics_8c) >> +>> +endobj +4015 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 476.162 525.406 484.727] +/A << /S /GoTo /D (section.10.1) >> +>> +endobj +4016 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 464.287 148.817 472.771] +/A << /S /GoTo /D (combinatorics_8h) >> +>> +endobj +4017 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 452.251 525.406 460.816] +/A << /S /GoTo /D (section.10.2) >> +>> +endobj +4018 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 438.593 196.41 448.861] +/A << /S /GoTo /D (damped__newton__raphson_8c) >> +>> +endobj +4019 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 428.525 525.406 436.906] +/A << /S /GoTo /D (section.10.3) >> +>> +endobj +4020 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 414.682 196.912 424.951] +/A << /S /GoTo /D (damped__newton__raphson_8h) >> +>> +endobj +4021 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 404.431 525.406 412.996] +/A << /S /GoTo /D (section.10.4) >> +>> +endobj +4022 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 391.584 145.84 401.247] +/A << /S /GoTo /D (dist__based__fi_8c) >> +>> +endobj +4023 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 380.52 525.406 389.085] +/A << /S /GoTo /D (section.10.5) >> +>> +endobj +4024 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 367.673 146.342 377.336] +/A << /S /GoTo /D (dist__based__fi_8h) >> +>> +endobj +4025 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 356.61 525.406 365.175] +/A << /S /GoTo /D (section.10.6) >> +>> +endobj +4026 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 342.951 174.747 353.22] +/A << /S /GoTo /D (dist__based__jacobian_8c) >> +>> +endobj +4027 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 332.7 525.406 341.265] +/A << /S /GoTo /D (section.10.7) >> +>> +endobj +4028 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 319.041 175.249 329.309] +/A << /S /GoTo /D (dist__based__jacobian_8h) >> +>> +endobj +4029 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 308.789 525.406 317.354] +/A << /S /GoTo /D (section.10.8) >> +>> +endobj +4030 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 295.131 172.255 305.399] +/A << /S /GoTo /D (dist__based__position_8c) >> +>> +endobj +4031 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 284.879 525.406 293.139] +/A << /S /GoTo /D (section.10.9) >> +>> +endobj +4032 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 271.22 172.757 281.489] +/A << /S /GoTo /D (dist__based__position_8h) >> +>> +endobj +4033 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 260.969 525.406 269.534] +/A << /S /GoTo /D (section.10.10) >> +>> +endobj +4034 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 248.121 175.249 257.578] +/A << /S /GoTo /D (distance__based__test_8c) >> +>> +endobj +4035 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 237.058 525.406 245.623] +/A << /S /GoTo /D (section.10.11) >> +>> +endobj +4036 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 224.211 175.751 233.668] +/A << /S /GoTo /D (distance__based__test_8h) >> +>> +endobj +4037 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 213.148 525.406 221.713] +/A << /S /GoTo /D (section.10.12) >> +>> +endobj +4038 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 201.193 110.827 209.964] +/A << /S /GoTo /D (DOP_8c) >> +>> +endobj +4039 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 189.238 525.406 197.803] +/A << /S /GoTo /D (section.10.13) >> +>> +endobj +4040 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 177.283 111.329 186.054] +/A << /S /GoTo /D (DOP_8h) >> +>> +endobj +4041 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 165.327 525.406 173.892] +/A << /S /GoTo /D (section.10.14) >> +>> +endobj +4042 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 153.453 116.073 162.143] +/A << /S /GoTo /D (fsolve_8c) >> +>> +endobj +4043 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 141.417 525.406 149.982] +/A << /S /GoTo /D (section.10.15) >> +>> +endobj +4044 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 129.543 116.575 138.233] +/A << /S /GoTo /D (fsolve_8h) >> +>> +endobj +4045 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 117.507 525.406 126.072] +/A << /S /GoTo /D (section.10.16) >> +>> +endobj +4046 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 104.659 135.646 114.323] +/A << /S /GoTo /D (fsolve__test_8c) >> +>> +endobj +4047 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 93.596 525.406 102.161] +/A << /S /GoTo /D (section.10.17) >> +>> +endobj +4048 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 80.749 136.148 90.412] +/A << /S /GoTo /D (fsolve__test_8h) >> +>> +endobj +4049 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 69.87 525.406 78.251] +/A << /S /GoTo /D (section.10.18) >> +>> +endobj +4057 0 obj +<< +/D [4055 0 R /XYZ 69.866 801.979 null] +>> +endobj +134 0 obj +<< +/D [4055 0 R /XYZ 70.866 771.024 null] +>> +endobj +138 0 obj +<< +/D [4055 0 R /XYZ 70.866 574.498 null] +>> +endobj +4054 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F37 2725 0 R /F29 2678 0 R /F1 4058 0 R /F10 3833 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4136 0 obj +<< +/Length 992 +/Filter /FlateDecode +>> +stream +x��]s�8���+t 3kU߂�v�l3�N��ݛ��!��p7����8�Cj�I�p%>�ztΑЛ��O��� p<z;�9�x����%�zB��(0�����=���0L �R?��z/�;&�s>�s�b�\�j�����ֵ�k�=��,�}A`����u�0N!gT/���?6ox�4v�n�s����CD} ���Ds wTZLKU�p�~��*�z�c���y���� Y.TQ�2���2��}��X��0�ݱ".�D`��9[���)LW����gc�|�H�%�~�`�a@ ^;�h��/6j[�� +e���m ��nM�140:�Q40�Lj�HVz�K�S;����$ȿ��|��!%��?X�J�Nw͞"N�U�s��ǿOu��Yr�dZ�tH�2����f�0X�4U.A�U��]��}H��-�����v�%��·y�?N�#p2�.�0��(�̊����ٲ���ߠ��a���'֔���e�_�ӡ�B穣˃���~z[���\Ͳd�R�f�o����*�$�Vܿ��2���n��e-鵎����S;I��h�;�ُ��Eck~�0js7W���5��MV�i�+QF_h���������$SUƳ�EP���!�iH�y�/W��W���x�Zh��4έj�:әF�js��)J�i +!�eo�G��������`�]�A�i�������@�%{����� ⷋ�S�`D��Q;�7�i��ݣZ�P}����O���������`ԇ:lJqW��du�z��x�����:}�%S4�.*�M�h�PQ7�]����WL�g���v����=���F��eȨm���d^���KKbK)��k���Ӳ4'��Y�I��#�����\�p1K��\M�*ͳB�qj��f�7ʩ�n�}r9r�F�ًG1y����Ķ��\KL�1��2/ �����3�9�%�^�*UyP6S����^������c��zU����>�� +endstream +endobj +4135 0 obj +<< +/Type /Page +/Contents 4136 0 R +/Resources 4134 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4059 0 R +/Annots [ 4050 0 R 4051 0 R 4052 0 R 4053 0 R 4078 0 R 4079 0 R 4080 0 R 4081 0 R 4082 0 R 4083 0 R 4084 0 R 4085 0 R 4086 0 R 4087 0 R 4088 0 R 4089 0 R 4090 0 R 4091 0 R 4092 0 R 4093 0 R 4094 0 R 4095 0 R 4096 0 R 4097 0 R 4098 0 R 4099 0 R 4100 0 R 4101 0 R 4102 0 R 4103 0 R 4104 0 R 4105 0 R 4106 0 R 4107 0 R 4108 0 R 4109 0 R 4110 0 R 4111 0 R 4112 0 R 4113 0 R 4114 0 R 4115 0 R 4116 0 R 4117 0 R 4118 0 R 4119 0 R 4120 0 R 4121 0 R 4122 0 R 4123 0 R 4124 0 R 4125 0 R 4126 0 R 4127 0 R 4128 0 R 4129 0 R 4130 0 R 4131 0 R ] +>> +endobj +4050 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 758.07 138.138 768.446] +/A << /S /GoTo /D (givens__test_8c) >> +>> +endobj +4051 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 748.11 525.406 756.491] +/A << /S /GoTo /D (section.10.19) >> +>> +endobj +4052 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 733.847 138.64 744.223] +/A << /S /GoTo /D (givens__test_8h) >> +>> +endobj +4053 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 723.703 525.406 732.268] +/A << /S /GoTo /D (section.10.20) >> +>> +endobj +4078 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 710.543 161.791 720] +/A << /S /GoTo /D (householder__test_8c) >> +>> +endobj +4079 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 699.48 525.406 708.045] +/A << /S /GoTo /D (section.10.21) >> +>> +endobj +4080 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 686.32 162.293 695.777] +/A << /S /GoTo /D (householder__test_8h) >> +>> +endobj +4081 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 675.441 525.406 683.822] +/A << /S /GoTo /D (section.10.22) >> +>> +endobj +4082 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 661.178 177.733 671.554] +/A << /S /GoTo /D (levenberg__marquardt_8c) >> +>> +endobj +4083 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 651.218 525.406 659.599] +/A << /S /GoTo /D (section.10.23) >> +>> +endobj +4084 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 636.956 178.235 647.331] +/A << /S /GoTo /D (levenberg__marquardt_8h) >> +>> +endobj +4085 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 626.812 525.406 635.376] +/A << /S /GoTo /D (section.10.24) >> +>> +endobj +4086 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 612.733 167.09 623.109] +/A << /S /GoTo /D (loc__gauss__newton_8c) >> +>> +endobj +4087 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 602.589 525.406 611.153] +/A << /S /GoTo /D (section.10.25) >> +>> +endobj +4088 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 588.51 167.592 598.886] +/A << /S /GoTo /D (loc__gauss__newton_8h) >> +>> +endobj +4089 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 578.366 525.406 586.931] +/A << /S /GoTo /D (section.10.26) >> +>> +endobj +4090 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 564.287 194.177 574.663] +/A << /S /GoTo /D (loc__levenberg__marquardt_8c) >> +>> +endobj +4091 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 554.143 525.406 562.708] +/A << /S /GoTo /D (section.10.27) >> +>> +endobj +4092 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 540.064 194.679 550.44] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h) >> +>> +endobj +4093 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 529.92 525.406 538.485] +/A << /S /GoTo /D (section.10.28) >> +>> +endobj +4094 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 515.949 136.551 526.217] +/A << /S /GoTo /D (lu__decomp_8c) >> +>> +endobj +4095 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 505.697 525.406 514.262] +/A << /S /GoTo /D (section.10.29) >> +>> +endobj +4096 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 491.726 137.053 501.994] +/A << /S /GoTo /D (lu__decomp_8h) >> +>> +endobj +4097 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 481.474 525.406 490.039] +/A << /S /GoTo /D (section.10.30) >> +>> +endobj +4098 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 467.503 156.304 477.772] +/A << /S /GoTo /D (lu__decomp__test_8c) >> +>> +endobj +4099 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 457.252 525.406 465.816] +/A << /S /GoTo /D (section.10.31) >> +>> +endobj +4100 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 443.28 156.806 453.549] +/A << /S /GoTo /D (lu__decomp__test_8h) >> +>> +endobj +4101 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 433.029 525.406 441.594] +/A << /S /GoTo /D (section.10.32) >> +>> +endobj +4102 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 418.95 168.265 429.532] +/A << /S /GoTo /D (magnetic__based__fi_8c) >> +>> +endobj +4103 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 408.806 525.406 417.371] +/A << /S /GoTo /D (section.10.33) >> +>> +endobj +4104 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 394.727 168.767 405.309] +/A << /S /GoTo /D (magnetic__based__fi_8h) >> +>> +endobj +4105 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 384.583 525.406 393.148] +/A << /S /GoTo /D (section.10.34) >> +>> +endobj +4106 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 370.504 197.172 380.88] +/A << /S /GoTo /D (magnetic__based__jacobian_8c) >> +>> +endobj +4107 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [513.443 360.36 525.406 368.925] +/A << /S /GoTo /D (section.10.35) >> +>> +endobj +4108 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 346.281 197.674 356.657] +/A << /S /GoTo /D (magnetic__based__jacobian_8h) >> +>> +endobj +4109 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 336.137 525.406 344.702] +/A << /S /GoTo /D (section.10.36) >> +>> +endobj +4110 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 322.059 194.679 332.434] +/A << /S /GoTo /D (magnetic__based__position_8c) >> +>> +endobj +4111 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 311.915 525.406 320.479] +/A << /S /GoTo /D (section.10.37) >> +>> +endobj +4112 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 297.836 195.181 308.212] +/A << /S /GoTo /D (magnetic__based__position_8h) >> +>> +endobj +4113 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 287.692 525.406 296.256] +/A << /S /GoTo /D (section.10.38) >> +>> +endobj +4114 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 273.613 178.235 283.989] +/A << /S /GoTo /D (magnetic__based__test_8c) >> +>> +endobj +4115 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 263.469 525.406 272.034] +/A << /S /GoTo /D (section.10.39) >> +>> +endobj +4116 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 249.39 178.737 259.766] +/A << /S /GoTo /D (magnetic__based__test_8h) >> +>> +endobj +4117 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 239.246 525.406 247.811] +/A << /S /GoTo /D (section.10.40) >> +>> +endobj +4118 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 227.059 117.552 235.543] +/A << /S /GoTo /D (matrix_8c) >> +>> +endobj +4119 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 215.023 525.406 223.588] +/A << /S /GoTo /D (section.10.41) >> +>> +endobj +4120 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 202.836 118.054 211.32] +/A << /S /GoTo /D (matrix_8h) >> +>> +endobj +4121 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 190.8 525.406 199.365] +/A << /S /GoTo /D (section.10.42) >> +>> +endobj +4122 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 177.641 136.99 187.097] +/A << /S /GoTo /D (matrix__test_8c) >> +>> +endobj +4123 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 166.761 525.406 175.142] +/A << /S /GoTo /D (section.10.43) >> +>> +endobj +4124 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 153.418 137.492 162.875] +/A << /S /GoTo /D (matrix__test_8h) >> +>> +endobj +4125 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 142.538 525.406 150.919] +/A << /S /GoTo /D (section.10.44) >> +>> +endobj +4126 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 128.276 189.515 138.858] +/A << /S /GoTo /D (modified__gauss__newton_8c) >> +>> +endobj +4127 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 118.316 525.406 126.697] +/A << /S /GoTo /D (section.10.45) >> +>> +endobj +4128 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 104.053 190.017 114.635] +/A << /S /GoTo /D (modified__gauss__newton_8h) >> +>> +endobj +4129 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 94.093 525.406 102.474] +/A << /S /GoTo /D (section.10.46) >> +>> +endobj +4130 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 79.938 196.49 90.206] +/A << /S /GoTo /D (moore__penrose__pinv__test_8c) >> +>> +endobj +4131 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 69.686 525.406 78.251] +/A << /S /GoTo /D (section.10.47) >> +>> +endobj +4137 0 obj +<< +/D [4135 0 R /XYZ 69.866 801.979 null] +>> +endobj +4134 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4220 0 obj +<< +/Length 1367 +/Filter /FlateDecode +>> +stream +x��Z�r�8��)t�U�p���d�ݩ�V��-��(�*@��d�~%�!Nl�8�I|jRK�D�NƣK&��� ��|��xprf��1\JM0�64J��b�"0��fh�c���℩��~�e�6��+re���x�m�D#h��q[ H�_!ŷ/�����g +,"�Y�Y�\�W��J����`T��K�p�M���H�yμ)�r^gC��^Ɋ҈��73��6�:B�K����O� +����eT��Br���^ ��$ꋟLx>���2JŃ��fuB�"�o;k%�.��ZwMKC6m�q=r@��&$+�*�,�^����B�B�F�lT��� +N�h���d��J��JZ +�+������,�sՐ�e=ك ;}��~[�o`-{K��6jN?��fIO�2��<.Q�ϼL +R�#�B�s�ʂ�]�3�l@wCj<��J�'Y\�<��fa��h����$�ͨ&vW1�"\�m��������Q�<�ཐ�b�b��bߛ�����ee7��%t*���x�L��EG�7�����A�j`]!�� �����-�~<�d��/�hs)wk��,��eh)�ϜR��^O���OxvP�#<<�xZ��S/Y�MX�^��!��D��Š8�(H��I��P��P��l����,�u��*G�ފ���|����G��-:��n�D+>-�4�Q�m�D:I�eV�ܟ����p�<T�=A��*�o8�E��YxOӝ-K1y�� ���k�X�LvC�Z���#Wc1x[�����a�I��%L�Z쾼�s(DG��Bc;e�?��cw��1�y?��oyC6��|���� +����n!�\�����&��Ͽ.ً�Z�,[�Fz�d��6d�{�%�e^����!S2����+��Q�MY�U��5��E���5�S��Nr\靔�H�Sи�YQ�����j+�����J��� +���j�@ �߰�~���|���m/J��� +�vtH�{�C�M�P�.G�hW]�I�zYB]V��TӦ]�M������{�Q�EMG�C}�]���o�h��YݦH\3�3Ee�"�k;9Cp �b*�` + �t��6�lU�֭���>��}�`-g��eeE>I, _ʈUr�� H:�#��,͊��)���l�F\�@Z�h`�6R��tʚ�g���/Y�����z�o_�C6�����&iӣ�C;�G;>�[��q�g�x���V- ��2Iג�ry�#�����Gt��5x���x���;_������R�������P�}�F߷��P(��j=���\�o��Se��t��"�t�r����UY����r�'��Tk�b����; +endstream +endobj +4219 0 obj +<< +/Type /Page +/Contents 4220 0 R +/Resources 4218 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4059 0 R +/Annots [ 4132 0 R 4133 0 R 4166 0 R 4167 0 R 4168 0 R 4169 0 R 4170 0 R 4171 0 R 4172 0 R 4173 0 R 4174 0 R 4175 0 R 4176 0 R 4177 0 R 4178 0 R 4179 0 R 4180 0 R 4181 0 R 4182 0 R 4183 0 R 4184 0 R 4185 0 R 4186 0 R 4187 0 R 4188 0 R 4189 0 R 4190 0 R 4191 0 R 4192 0 R 4193 0 R 4194 0 R 4195 0 R 4196 0 R 4197 0 R 4198 0 R 4199 0 R 4200 0 R 4201 0 R 4202 0 R 4203 0 R 4204 0 R 4205 0 R 4206 0 R 4207 0 R 4208 0 R 4209 0 R 4210 0 R 4211 0 R 4212 0 R 4213 0 R 4214 0 R 4215 0 R ] +>> +endobj +4132 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 758.177 196.992 768.446] +/A << /S /GoTo /D (moore__penrose__pinv__test_8h) >> +>> +endobj +4133 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 747.926 525.406 756.491] +/A << /S /GoTo /D (section.10.48) >> +>> +endobj +4166 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 733.917 223.542 744.185] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8c) >> +>> +endobj +4167 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 723.849 525.406 732.23] +/A << /S /GoTo /D (section.10.49) >> +>> +endobj +4168 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 709.657 224.044 719.925] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h) >> +>> +endobj +4169 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 699.405 525.406 707.97] +/A << /S /GoTo /D (section.10.50) >> +>> +endobj +4170 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 685.289 239.519 695.665] +/A << /S /GoTo /D (multipath__algo__own__norm__distr__test_8c) >> +>> +endobj +4171 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 675.145 525.406 683.709] +/A << /S /GoTo /D (section.10.51) >> +>> +endobj +4172 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 661.028 240.021 671.404] +/A << /S /GoTo /D (multipath__algo__own__norm__distr__test_8h) >> +>> +endobj +4173 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 650.884 525.406 659.449] +/A << /S /GoTo /D (section.10.52) >> +>> +endobj +4174 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 636.768 232.956 647.144] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c) >> +>> +endobj +4175 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 626.624 525.406 635.189] +/A << /S /GoTo /D (section.10.53) >> +>> +endobj +4176 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 612.508 233.458 622.884] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h) >> +>> +endobj +4177 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 602.364 525.406 610.928] +/A << /S /GoTo /D (section.10.54) >> +>> +endobj +4178 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 588.355 159.03 598.623] +/A << /S /GoTo /D (newton__raphson_8c) >> +>> +endobj +4179 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 578.103 525.406 586.668] +/A << /S /GoTo /D (section.10.55) >> +>> +endobj +4180 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 564.095 159.532 574.363] +/A << /S /GoTo /D (newton__raphson_8h) >> +>> +endobj +4181 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 553.843 525.406 562.408] +/A << /S /GoTo /D (section.10.56) >> +>> +endobj +4182 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 539.727 193.585 550.103] +/A << /S /GoTo /D (norm__dist__rnd__generator_8c) >> +>> +endobj +4183 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 529.583 525.406 538.147] +/A << /S /GoTo /D (section.10.57) >> +>> +endobj +4184 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 515.466 194.087 525.842] +/A << /S /GoTo /D (norm__dist__rnd__generator_8h) >> +>> +endobj +4185 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 505.322 525.406 513.887] +/A << /S /GoTo /D (section.10.58) >> +>> +endobj +4186 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 491.314 160.285 501.582] +/A << /S /GoTo /D (optimization__test_8c) >> +>> +endobj +4187 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 481.062 525.406 489.627] +/A << /S /GoTo /D (section.10.59) >> +>> +endobj +4188 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 467.053 160.787 477.322] +/A << /S /GoTo /D (optimization__test_8h) >> +>> +endobj +4189 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 456.802 525.406 465.366] +/A << /S /GoTo /D (section.10.60) >> +>> +endobj +4190 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 442.685 192.68 453.061] +/A << /S /GoTo /D (pos__algos__common__test_8c) >> +>> +endobj +4191 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 432.541 525.406 441.106] +/A << /S /GoTo /D (section.10.61) >> +>> +endobj +4192 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 418.425 193.182 428.801] +/A << /S /GoTo /D (pos__algos__common__test_8h) >> +>> +endobj +4193 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 408.281 525.406 416.846] +/A << /S /GoTo /D (section.10.62) >> +>> +endobj +4194 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 394.272 196.167 404.54] +/A << /S /GoTo /D (position__optimization__test_8c) >> +>> +endobj +4195 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 384.021 525.406 392.585] +/A << /S /GoTo /D (section.10.63) >> +>> +endobj +4196 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 370.012 196.669 380.28] +/A << /S /GoTo /D (position__optimization__test_8h) >> +>> +endobj +4197 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 359.76 525.406 368.325] +/A << /S /GoTo /D (section.10.64) >> +>> +endobj +4198 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 345.751 156.268 356.02] +/A << /S /GoTo /D (pseudo__inverse_8h) >> +>> +endobj +4199 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 335.5 525.406 344.065] +/A << /S /GoTo /D (section.10.65) >> +>> +endobj +4200 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 321.491 140.344 330.159] +/A << /S /GoTo /D (qr__common_8c) >> +>> +endobj +4201 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 299.284 525.406 307.849] +/A << /S /GoTo /D (section.10.66) >> +>> +endobj +4202 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 285.276 140.846 295.544] +/A << /S /GoTo /D (qr__common_8h) >> +>> +endobj +4203 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 263.069 525.406 271.634] +/A << /S /GoTo /D (section.10.67) >> +>> +endobj +4204 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 248.952 131.521 259.328] +/A << /S /GoTo /D (qr__givens_8c) >> +>> +endobj +4205 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 215.082 525.406 223.463] +/A << /S /GoTo /D (section.10.68) >> +>> +endobj +4206 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 200.782 132.023 211.158] +/A << /S /GoTo /D (qr__givens_8h) >> +>> +endobj +4207 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 166.911 525.406 175.292] +/A << /S /GoTo /D (section.10.69) >> +>> +endobj +4208 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 152.719 154.86 162.987] +/A << /S /GoTo /D (qr__householder_8c) >> +>> +endobj +4209 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 142.467 525.406 151.032] +/A << /S /GoTo /D (section.10.70) >> +>> +endobj +4210 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 128.458 155.362 138.727] +/A << /S /GoTo /D (qr__householder_8h) >> +>> +endobj +4211 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 118.391 525.406 126.772] +/A << /S /GoTo /D (section.10.71) >> +>> +endobj +4212 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 104.198 141.671 114.466] +/A << /S /GoTo /D (qr__pinv__test_8c) >> +>> +endobj +4213 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 93.946 525.406 102.511] +/A << /S /GoTo /D (section.10.72) >> +>> +endobj +4214 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 79.938 142.173 90.206] +/A << /S /GoTo /D (qr__pinv__test_8h) >> +>> +endobj +4215 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 69.686 525.406 78.251] +/A << /S /GoTo /D (section.10.73) >> +>> +endobj +4221 0 obj +<< +/D [4219 0 R /XYZ 69.866 801.979 null] +>> +endobj +4218 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4292 0 obj +<< +/Length 1465 +/Filter /FlateDecode +>> +stream +x��Z_s�8���fj�$�f�Л���^���K����0�Z�>����Ƅ�N�'����V�����jW�dv��X�j�Y˳�L��MN^�Њ\�9�fWV��V(�ˉ5K�O6��/�w�O��H�4�u�KgJ��~[$�!��Vl�W��� .�"iQ�FԷ��ɧ/��@�;�s����si�s��wn�M>lfx�TrW3��Y�5D��1a���^������J6Iy���o l����ݹ�z;��B7�5%�A�>��j9/��e��YY )��ʙ���N��K���FUuj>p.��\t[ye�b��k#|�Ly(lי�"ػ�C\y_�֧�`�M�{�aM��w���;��o��Q�_�2�/*�&߳�}����:�KY�=՝)Q���7��3�`{�������A�K��86pe�~��qp���Ry�\�<�VVo�Z�^��UyV�x���k+�hX^��|��%W����������?�>{l�#>{����E-���W�Xy��敜�X��j�E����9${mGH~�H���d���w�S�w<T0H��3���c�ئ�� =���~�xg�/� .RޯJ�U�e��Uȹ�*3�y�����2Q�!�R �Ѻ�7��5�)2�5O<�U%�a`�*�R����&Ž�~��ϱ����5�-i#�*m$��0�Ip?{C����wEDZ��10�!��<��M���=�+�3�����Y���?�ؐ+�%��.-e���Q�$�HP2�J6]t&��ܥ������,n�a�� <X�f��0��8`_9��X[��1(<.�7��Ƭ�*zV�Hd�RP"ZLgZ������͐ 6��[,d�Cj�)���3���8��q*������U�:�kl��܄��w�4HJ��x�ƕ����0f_f�����Ci�@�xg���d�̷�^6�����Tjrf5�K\��Y���:�ݏ�I�kC�:k���}W�q��`���P�B�Q�V�ʛ�Є�_Q���?p��^����5��G{T�q-W�Ӈ�C.�%#)hp�nd��#t�N��%�:˫}_�>3��O2�l���MJ��!y����@��=o�WM17�X�Q�-л�2� M$��0q+�v�O�e��'��]�����P��$��E�_5*�fV���x?��C��)ZS�Gq[kJ�eM�B��On�/#Oa�>������]�W����70o=���c��x����K�y /��:}ϝ�3=�a�K����<���N���'$ag�<o�����N�e�G���$�'ೖ��^� 5�JnV�{�*խ��n!)��h���Cz��~=L�k��o2��"��S���ё��o�:�0.��+�_~=buVé���(�������W�Ґ��Q.�� �t97���p�ŵ�g���g��z�����B��a�bg�0��ҙ1 +endstream +endobj +4291 0 obj +<< +/Type /Page +/Contents 4292 0 R +/Resources 4290 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4059 0 R +/Annots [ 4216 0 R 4217 0 R 4248 0 R 4249 0 R 4250 0 R 4251 0 R 4252 0 R 4253 0 R 4254 0 R 4255 0 R 4256 0 R 4257 0 R 4258 0 R 4259 0 R 4260 0 R 4261 0 R 4262 0 R 4263 0 R 4264 0 R 4265 0 R 4266 0 R 4267 0 R 4268 0 R 4269 0 R 4270 0 R 4271 0 R 4272 0 R 4273 0 R 4274 0 R 4275 0 R 4276 0 R 4277 0 R 4278 0 R 4279 0 R 4280 0 R 4281 0 R 4282 0 R 4283 0 R 4284 0 R 4285 0 R 4286 0 R 4287 0 R 4288 0 R 4289 0 R ] +>> +endobj +4216 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 758.177 168.722 768.446] +/A << /S /GoTo /D (qr__pseudo__inverse_8c) >> +>> +endobj +4217 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 747.926 525.406 756.491] +/A << /S /GoTo /D (section.10.74) >> +>> +endobj +4248 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 734.267 169.224 744.535] +/A << /S /GoTo /D (qr__pseudo__inverse_8h) >> +>> +endobj +4249 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 724.199 525.406 732.58] +/A << /S /GoTo /D (section.10.75) >> +>> +endobj +4250 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 711.168 131.736 720.625] +/A << /S /GoTo /D (shell__sort_8c) >> +>> +endobj +4251 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 700.289 525.406 708.67] +/A << /S /GoTo /D (section.10.76) >> +>> +endobj +4252 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 687.258 132.238 696.715] +/A << /S /GoTo /D (shell__sort_8h) >> +>> +endobj +4253 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 676.195 525.406 684.76] +/A << /S /GoTo /D (section.10.77) >> +>> +endobj +4254 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 664.32 113.58 672.804] +/A << /S /GoTo /D (solve_8c) >> +>> +endobj +4255 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 652.468 525.406 660.849] +/A << /S /GoTo /D (section.10.78) >> +>> +endobj +4256 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 640.41 114.082 648.894] +/A << /S /GoTo /D (solve_8h) >> +>> +endobj +4257 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 628.374 525.406 636.939] +/A << /S /GoTo /D (section.10.79) >> +>> +endobj +4258 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 615.527 133.153 624.984] +/A << /S /GoTo /D (solve__test_8c) >> +>> +endobj +4259 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 604.464 525.406 613.029] +/A << /S /GoTo /D (section.10.80) >> +>> +endobj +4260 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 591.616 133.655 601.073] +/A << /S /GoTo /D (solve__test_8h) >> +>> +endobj +4261 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 580.553 525.406 589.118] +/A << /S /GoTo /D (section.10.81) >> +>> +endobj +4262 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 568.679 106.963 577.163] +/A << /S /GoTo /D (svd_8c) >> +>> +endobj +4263 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 508.822 525.406 517.387] +/A << /S /GoTo /D (section.10.82) >> +>> +endobj +4264 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 496.948 107.465 505.432] +/A << /S /GoTo /D (svd_8h) >> +>> +endobj +4265 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 484.912 525.406 493.477] +/A << /S /GoTo /D (section.10.83) >> +>> +endobj +4266 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 472.065 126.402 481.522] +/A << /S /GoTo /D (svd__test_8c) >> +>> +endobj +4267 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 461.186 525.406 469.566] +/A << /S /GoTo /D (section.10.84) >> +>> +endobj +4268 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 448.154 126.904 457.611] +/A << /S /GoTo /D (svd__test_8h) >> +>> +endobj +4269 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 437.091 525.406 445.656] +/A << /S /GoTo /D (section.10.85) >> +>> +endobj +4270 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 425.217 137.403 433.701] +/A << /S /GoTo /D (trilateration_8c) >> +>> +endobj +4271 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 413.181 525.406 421.746] +/A << /S /GoTo /D (section.10.86) >> +>> +endobj +4272 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 401.307 137.905 409.791] +/A << /S /GoTo /D (trilateration_8h) >> +>> +endobj +4273 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 389.271 525.406 397.835] +/A << /S /GoTo /D (section.10.87) >> +>> +endobj +4274 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 377.396 108.819 385.88] +/A << /S /GoTo /D (utils_8c) >> +>> +endobj +4275 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 353.405 525.406 361.97] +/A << /S /GoTo /D (section.10.88) >> +>> +endobj +4276 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 341.531 109.321 350.015] +/A << /S /GoTo /D (utils_8h) >> +>> +endobj +4277 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 329.495 525.406 338.06] +/A << /S /GoTo /D (section.10.89) >> +>> +endobj +4278 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 316.648 128.392 326.104] +/A << /S /GoTo /D (utils__test_8c) >> +>> +endobj +4279 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 305.585 525.406 314.149] +/A << /S /GoTo /D (section.10.90) >> +>> +endobj +4280 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 292.737 128.894 302.194] +/A << /S /GoTo /D (utils__test_8h) >> +>> +endobj +4281 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 281.674 525.406 290.239] +/A << /S /GoTo /D (section.10.91) >> +>> +endobj +4282 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 269.8 116.754 277.979] +/A << /S /GoTo /D (vector_8c) >> +>> +endobj +4283 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 245.809 525.406 254.373] +/A << /S /GoTo /D (section.10.92) >> +>> +endobj +4284 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 233.934 117.256 242.418] +/A << /S /GoTo /D (vector_8h) >> +>> +endobj +4285 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 221.898 525.406 230.463] +/A << /S /GoTo /D (section.10.93) >> +>> +endobj +4286 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 209.051 136.641 218.203] +/A << /S /GoTo /D (vector__test_8c) >> +>> +endobj +4287 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 197.988 525.406 206.553] +/A << /S /GoTo /D (section.10.94) >> +>> +endobj +4288 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.043 185.141 137.143 194.598] +/A << /S /GoTo /D (vector__test_8h) >> +>> +endobj +4289 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.458 174.078 525.406 182.642] +/A << /S /GoTo /D (section.10.95) >> +>> +endobj +4293 0 obj +<< +/D [4291 0 R /XYZ 69.866 801.979 null] +>> +endobj +4290 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4319 0 obj +<< +/Length 565 +/Filter /FlateDecode +>> +stream +xڭ�]o�0���+|i�al��˴i�n�Z��k���XK +P����$(��v��y��s^H��#o��7���NJ(��_ngW�,Yr�B\�5�)!��)bR���/�zc�<D1� +��{�y��!��+�!Ă"!uȿ��n[��E�w�rߚ�V�3���d�J@(҄�� �R!�c��Ow�?oV�����g&K��BZ�t�M9x(��¡��4I���!�jW'����D� +@�#��4E�����۲ Ŝ���� �)JB�+�|�^b�|Ř�n�8�m��3^���A�k�tsU-�7$�S�4c��W��k'-�TZ|B�a��P�{D9,�:D�/�9Rx�]�n:�8��a��乓�ek�Ћ�\�M~����g�G������u!��Ɲ���/����� �(��u���l+�J��XG)�}C8܅ݣ +=rWx1�տk�|"�\H3Ea}Ƨ(N1u9D�mm���9m�A�.�7�hB���϶���6v�Ѹ�~��hQ�v��;������s����2C�&�iv�,�&���Y� +endstream +endobj +4318 0 obj +<< +/Type /Page +/Contents 4319 0 R +/Resources 4317 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4059 0 R +/Annots [ 4315 0 R 4316 0 R ] +>> +endobj +4315 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 436.57 142.739 445.054] +/A << /S /GoTo /D (matrix_8h) >> +>> +endobj +4316 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 408.674 141.941 417.158] +/A << /S /GoTo /D (vector_8h) >> +>> +endobj +4320 0 obj +<< +/D [4318 0 R /XYZ 69.866 801.979 null] +>> +endobj +142 0 obj +<< +/D [4318 0 R /XYZ 70.866 771.024 null] +>> +endobj +3913 0 obj +<< +/D [4318 0 R /XYZ 70.866 570.668 null] +>> +endobj +146 0 obj +<< +/D [4318 0 R /XYZ 70.866 570.668 null] +>> +endobj +4321 0 obj +<< +/D [4318 0 R /XYZ 70.866 476.437 null] +>> +endobj +150 0 obj +<< +/D [4318 0 R /XYZ 70.866 377.891 null] +>> +endobj +4317 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4327 0 obj +<< +/Length 668 +/Filter /FlateDecode +>> +stream +x��UMs�0��W�h�H�$�ǖ$e`�����Q�1���(���%�ML�dK���o�v�����#�@���3o��b��T�e7(&8��)Ò�l��}Ƃ��E�cN#�vߵ���A���_��X�fPC�6��[e�W��-A�>f���q����%A8;AGi��O�5�"�;*t�}|��2�R*��i�YRB��|s����:>:[- �Ś���$(��DZϪ�UU�� L9��h;�&�r�ֽ�lo�)�A5��U�7v�i���4�Bl!��E*�0�Ű.+�O��i�a��I�BƁG��cb���BH���'�]�q:��Y\M\s�� ��.�@sd���fi�B�qʹ��:Ù�}36����w|��@�e �����T����r0�ۀ�����(=�m_���g���+�,�RL�ݗ}ӹS�A��s�ϻ�v�c�ʼn���i�K?�lk�n��vj(�ܕ�7o�#��Ƀ���К5��v����+��:�KwX���6:�������ؗMa��d��V��i3#�9)JA��&E���&� �i�%A����� r0��*pH�{�!r�C�&w(>�/�UO�b�U}]�D;4�D����6�3�Y,�A�a� +���$�Lz�ݩa�ʵi"w��5���+��}��C��5v +endstream +endobj +4326 0 obj +<< +/Type /Page +/Contents 4327 0 R +/Resources 4325 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4059 0 R +/Annots [ 4322 0 R 4323 0 R 4324 0 R ] +>> +endobj +4322 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 656.509 171.027 666.172] +/A << /S /GoTo /D (dist__based__fi_8h) >> +>> +endobj +4323 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 627.802 199.934 638.071] +/A << /S /GoTo /D (dist__based__jacobian_8h) >> +>> +endobj +4324 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 599.907 197.442 610.175] +/A << /S /GoTo /D (dist__based__position_8h) >> +>> +endobj +4328 0 obj +<< +/D [4326 0 R /XYZ 69.866 801.979 null] +>> +endobj +3865 0 obj +<< +/D [4326 0 R /XYZ 70.866 771.024 null] +>> +endobj +154 0 obj +<< +/D [4326 0 R /XYZ 70.866 771.024 null] +>> +endobj +4329 0 obj +<< +/D [4326 0 R /XYZ 70.866 697.349 null] +>> +endobj +158 0 obj +<< +/D [4326 0 R /XYZ 70.866 570.907 null] +>> +endobj +4325 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4349 0 obj +<< +/Length 986 +/Filter /FlateDecode +>> +stream +x��X]s�6}���#<����v��d����C@ƚr@$���JH�q3ٍ?�qu����GӫK�� p6�m:9:�B��Lg D0"�1����X�l��u������ɵ�}����Гa�N�S�����~��F�1V�� �&7�����A/��c߳~ ��*X �'_^�s1�]7XH\�V���G�8^b����0A��9��V�����高S}s������;�G��� &C���T�S��)�k�\�(�� ����`�p��n�%5o��MaD���(�U*I;�؏D�V��J���ѩ�+��šB#Q����C��4YG7d�Zt"�-��k��q �(�?��ov��y��@�`O���h��q<���7&�j���k霗9�3n������<��(�$��z�%�]�?�kk��(o��B��V�U�}�����>>��W�74Yк᭼����zH�����^�'�v�,����7�J�E�/W�]���x��]����W6A����{Ey5MR��E�JV���&�}�o���S+h��ۥ�~:��v� +��PC1�f]��J���9kEZg4�M��]r��K��%�wi�WM��}����x��磏�*-j*X�!��}L�$�D�o��T�xz�7��R����v�Օ�-䁲WKm��v}뱖wIݟ1�J�:i������֦�nf{��;c�F��E͖�ZV��XRx��!,�����0���#��OÊI�B�J�B�S~�a�0���J_�}[�݂f��NR�CJ�w����R�ͩT�k����zAJ��P�Z���]S;�"e尉�6kآ��Z�c���jYAU�L��:+�|�@��7�L�r=�-�Bӫ�y�>y�q�n�E�F a���'�2o�Km��5%$ _ͤ�\߈�-�'5�L5�?Ӷb+�6UB �Lt��C�/�?��b��ִI�0�w�Db��c���T(ȣ�:���\�o� +endstream +endobj +4348 0 obj +<< +/Type /Page +/Contents 4349 0 R +/Resources 4347 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4353 0 R +/Annots [ 4330 0 R 4331 0 R 4332 0 R 4333 0 R 4334 0 R 4335 0 R 4336 0 R 4337 0 R 4338 0 R 4339 0 R 4340 0 R 4341 0 R 4342 0 R 4343 0 R 4344 0 R 4345 0 R 4346 0 R ] +>> +endobj +4330 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 664.745 162.177 674.202] +/A << /S /GoTo /D (matrix__test_8h) >> +>> +endobj +4331 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 637.465 161.828 646.922] +/A << /S /GoTo /D (vector__test_8h) >> +>> +endobj +4332 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 609.266 163.325 619.642] +/A << /S /GoTo /D (givens__test_8h) >> +>> +endobj +4333 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 582.905 186.978 592.362] +/A << /S /GoTo /D (householder__test_8h) >> +>> +endobj +4334 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 554.813 181.491 565.082] +/A << /S /GoTo /D (lu__decomp__test_8h) >> +>> +endobj +4335 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 528.345 151.588 537.802] +/A << /S /GoTo /D (svd__test_8h) >> +>> +endobj +4336 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 500.253 221.677 510.522] +/A << /S /GoTo /D (moore__penrose__pinv__test_8h) >> +>> +endobj +4337 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 472.973 166.858 483.241] +/A << /S /GoTo /D (qr__pinv__test_8h) >> +>> +endobj +4338 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 446.505 158.34 455.961] +/A << /S /GoTo /D (solve__test_8h) >> +>> +endobj +4339 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 419.225 153.579 428.681] +/A << /S /GoTo /D (utils__test_8h) >> +>> +endobj +4340 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 391.944 200.436 401.401] +/A << /S /GoTo /D (distance__based__test_8h) >> +>> +endobj +4341 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 363.745 203.422 374.121] +/A << /S /GoTo /D (magnetic__based__test_8h) >> +>> +endobj +4342 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 336.465 217.867 346.841] +/A << /S /GoTo /D (pos__algos__common__test_8h) >> +>> +endobj +4343 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 309.185 264.706 319.561] +/A << /S /GoTo /D (multipath__algo__own__norm__distr__test_8h) >> +>> +endobj +4344 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 282.013 221.354 292.281] +/A << /S /GoTo /D (position__optimization__test_8h) >> +>> +endobj +4345 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 254.733 185.472 265.001] +/A << /S /GoTo /D (optimization__test_8h) >> +>> +endobj +4346 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 228.264 160.832 237.927] +/A << /S /GoTo /D (fsolve__test_8h) >> +>> +endobj +4350 0 obj +<< +/D [4348 0 R /XYZ 69.866 801.979 null] +>> +endobj +4351 0 obj +<< +/D [4348 0 R /XYZ 70.866 771.024 null] +>> +endobj +162 0 obj +<< +/D [4348 0 R /XYZ 70.866 771.024 null] +>> +endobj +4352 0 obj +<< +/D [4348 0 R /XYZ 70.866 702.936 null] +>> +endobj +166 0 obj +<< +/D [4348 0 R /XYZ 70.866 198.954 null] +>> +endobj +4347 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4361 0 obj +<< +/Length 948 +/Filter /FlateDecode +>> +stream +xڵV]s�8}���#�E��iH�։S�tv6�0�)6�������b�xw&�x���=G��$�^S�hG-A��ttr��(���(}@>���!?dأ(��[�q�K���cN]X�l�ۺ���YSl��˻�Y��Q����(�D�sG�rt���9|��v����G..\��F�ѧuR�CJ�~���T`n;�b���8�f��">�F���s��$�q���V��U�o��^���+W/�u��^kSaa�QVD�/BO������tEP���Ɓ��11X�8�,4�Ӌ�u���h���&��4J�ɕM�����xr<�V�˟3�Y�"�rr�k�; �V?������e9��a�ī�]F�4�+;��O.�'��I���,��i��wM4:�{\�*{-��Y|s6ɒ���t�*���Qר���b[��m���m��7N�����LX��ߚ͊�;����&��q�e����~Kī�^���p�6�B��OmW���M�߶Z +�4���NG �K�F����ݤ�8I��� ���`� ����Q;t��@{"6hL�E��]^��\!e[l��9@��5ŁI�3n-s��l��~�0��0Y�nN9�X4p�U�~��a�*��ô�}�;�f���벨�a��jԨ��z^�7�j�>,�/^�yc;.�f ��,\[���I(�Ǹq� �6*���3b7d�y�Rn��I1�Q�2�����^-n�ڎ�:<��?�x��>�l`��R���v����C� d;pα����Ntً���q�t��������*h���lg� �/��h����`&��F=�}����D6��:������7(�����k��ׂ����j����M������̝����x�mp��a/O�(W����M����*���xZHð��a����K +endstream +endobj +4360 0 obj +<< +/Type /Page +/Contents 4361 0 R +/Resources 4359 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4353 0 R +/Annots [ 4354 0 R 4355 0 R 4356 0 R 4357 0 R 4358 0 R ] +>> +endobj +4354 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 656.509 187.453 666.172] +/A << /S /GoTo /D (group__basic__operations) >> +>> +endobj +4355 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 628.614 217.831 638.277] +/A << /S /GoTo /D (group__matrix__decompositions) >> +>> +endobj +4356 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 600.718 178.98 610.381] +/A << /S /GoTo /D (group__pseudo__inverse) >> +>> +endobj +4357 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 572.823 221.839 582.486] +/A << /S /GoTo /D (group__solve__linear__equations) >> +>> +endobj +4358 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 545.82 138.623 554.591] +/A << /S /GoTo /D (group__utilities) >> +>> +endobj +4362 0 obj +<< +/D [4360 0 R /XYZ 69.866 801.979 null] +>> +endobj +3846 0 obj +<< +/D [4360 0 R /XYZ 70.866 771.024 null] +>> +endobj +170 0 obj +<< +/D [4360 0 R /XYZ 70.866 771.024 null] +>> +endobj +4363 0 obj +<< +/D [4360 0 R /XYZ 70.866 697.349 null] +>> +endobj +174 0 obj +<< +/D [4360 0 R /XYZ 70.866 515.02 null] +>> +endobj +4359 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4372 0 obj +<< +/Length 854 +/Filter /FlateDecode +>> +stream +x��VMs�&��Wp�TE ��c�l쌳�i������>fJ����@�y���j+'!�i^�~��E���FG4�����2��N3�Â��� C0�d����q�&!Y���]�n?^���O�O�{@i +Y��P�#an7���>G�n"�_��9� U=~B����������g(���ւ���71���$�����70/�Iq�!I� Gܟk�J��/a���4E_��p0�;5��0�kX�̾����k���+���t��QU�$�{oo�/�H�Ɔ����<��"�z�wC=�Rτ/L��fyB-���_H(�r�WilB�>�D�1a������c���ۛ��������!��(2w/!�)H0��_e��Q�5��W�VZ��3��/�w� ��h�pu����[~�%iQ~*:�c�.��F�v�%u5���|�a�3��n9�sn��K��������skWCo�起<O}��¯����dB<���n�)-FwÓj�-7)�WU�qҪo�)I��Qv�7�~K]Hc��0��%����|g�8y���1K�jz�Z�4�,J{�k��UF��X��j�Z�U ٹ�k�j�ڇ1���'�!,���۔�N��'1��$� )q8��pӂͬ�]��Ld����V��Za�:��R�1����wZ{��P�Ny +ܮ�7$@Z�\{��4��>���QVC�������Yp��d��r:�`O�Qa�~K��0.mү�U9��>W�0�t7�^�1��g���x�Y�g'�j�IGݠ�����>��D���~�S'��=&X�z�<%�'�$���A�C������� �'Wϗ0���?_7��$��h�x� +endstream +endobj +4371 0 obj +<< +/Type /Page +/Contents 4372 0 R +/Resources 4370 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4353 0 R +/Annots [ 4368 0 R 4369 0 R ] +>> +endobj +4368 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 656.509 175.501 666.172] +/A << /S /GoTo /D (group__position__algos) >> +>> +endobj +4369 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 628.614 208.371 638.277] +/A << /S /GoTo /D (group__position__optimization) >> +>> +endobj +4373 0 obj +<< +/D [4371 0 R /XYZ 69.866 801.979 null] +>> +endobj +3868 0 obj +<< +/D [4371 0 R /XYZ 70.866 771.024 null] +>> +endobj +178 0 obj +<< +/D [4371 0 R /XYZ 70.866 771.024 null] +>> +endobj +4374 0 obj +<< +/D [4371 0 R /XYZ 70.866 697.349 null] +>> +endobj +182 0 obj +<< +/D [4371 0 R /XYZ 70.866 598.706 null] +>> +endobj +4370 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4382 0 obj +<< +/Length 707 +/Filter /FlateDecode +>> +stream +x��U�o�0��#Hñ�m�m�j�:m-Ok��%�x�#d[��IhUij�=|_����n�\}�(o�rDйs�8�y��R(Y���HJ�K���q����9 ������"�|F�N�eV���ue��Y�|w(�D}F�Gi������"8�#���,��(е�� N�pL�8*)&�Kϧ������,yvzr=�H�9��$��DZˢNU����T���&\ݮ��^�K{�*��V���j���{��5m��[&�C�g���b��"k:���G���a"�q�O��1qd�n|!�{K��X�)�&�q��fq�eqoL�G�Ց��9��p�c���)�1��l�1ԙ�m�� 蛞��m1���2��%n�G �"��������~Ъ¯&��c�U��剽9Ok��n���z��=+���ĘD��� ��<�f����?�i֤���3���H�8ZL�ñ��`4sBG�R)��m�i C[~�d����zP*��6�:�ޭ��?��@XBc��"����iq��*��jcN�զ�R��bgm��6-0�gG)���ٽ\�F�*���;3a>�a�O�Q��2�!N<��m��B=�ģ�C�rӻ�μ��E}S}����A5�>��ܖ!T�ov�%f�� �M-��8,8�/�s�i�g���L�ݰ�M�~�r��nV�!���� +endstream +endobj +4381 0 obj +<< +/Type /Page +/Contents 4382 0 R +/Resources 4380 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4353 0 R +/Annots [ 4377 0 R 4378 0 R 4379 0 R ] +>> +endobj +4377 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 655.59 193.452 666.172] +/A << /S /GoTo /D (magnetic__based__fi_8h) >> +>> +endobj +4378 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 627.695 222.359 638.071] +/A << /S /GoTo /D (magnetic__based__jacobian_8h) >> +>> +endobj +4379 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 599.799 219.866 610.175] +/A << /S /GoTo /D (magnetic__based__position_8h) >> +>> +endobj +4383 0 obj +<< +/D [4381 0 R /XYZ 69.866 801.979 null] +>> +endobj +3866 0 obj +<< +/D [4381 0 R /XYZ 70.866 771.024 null] +>> +endobj +186 0 obj +<< +/D [4381 0 R /XYZ 70.866 771.024 null] +>> +endobj +4384 0 obj +<< +/D [4381 0 R /XYZ 70.866 697.349 null] +>> +endobj +190 0 obj +<< +/D [4381 0 R /XYZ 70.866 570.811 null] +>> +endobj +4380 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4392 0 obj +<< +/Length 1033 +/Filter /FlateDecode +>> +stream +xڽVMs�8�ϯ���, ����7�'�=3Im��r��0��I��vK��xk�v�$ђ�^�k5}4�^q�l'�, #g��擣S_���a��=Q�FaHT,h��<%7ND�� 9�����w'o�\^\]���������$|*����Ph���O�N8�[�(��Ȣ��|f$����Q?��7��$����Vd6�~D�s.�ن��]�{��ѩ��|f��% Yh�.���ߍ�i���u�]QWƔ������e�d$Ȩ�qh�A�� �i��Z��S#*<�*R�D�:t+��!7���s˘XevC�,m��z�\�w����|�3�N!�2VHE*b�x<�q*o���� �噙����@�����.���"�m�����ks�ʺz�0��� ���J��SR�8QNQ�WY�U]ҹ��lPν�3�w����z� H]��}窩1��43��l��m��9[f]^����6�.������3 �_.$(�k,c�����بݷE���-�WH'��{�tg;<x�j���m+~hypr@�<�o,ڶ�h�ڌcy�%���)���5�A�䐈y�45$��>]�<%}��,�6�����|˳&�63D#�}�$+M�S̈�ʥ�C�����H4%����{�~��@ 3�0����k������W=�����K͙�>�`@�:D;�T��i�~��-��G>��?Tb�YR-�������E�S^�m�hK���g?�w{�~�ƶ+y�?��o�W���!}~A9���Ί�,��*������_'���� f�����cʢa����9ɺ��tsA�h���?�qI���t�b��9>E_0���$�9wֻ�iW�pڈ�n�\�AS�/r�;��� ���O�~u@kī����/އ$O*o�U�ȷ�C���<��.����L#�G����� W@%�"��őR��� d�&�J�N6��h�!i�b�v�� +U��N|Ӂ�T(S>-R��sh�糬ʚ����W�.s�Ƈ���33�o� � +endstream +endobj +4391 0 obj +<< +/Type /Page +/Contents 4392 0 R +/Resources 4390 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4353 0 R +/Annots [ 4385 0 R 4386 0 R 4387 0 R 4388 0 R 4389 0 R ] +>> +endobj +4385 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 655.698 161.738 665.966] +/A << /S /GoTo /D (lu__decomp_8h) >> +>> +endobj +4386 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 627.802 165.531 638.071] +/A << /S /GoTo /D (qr__common_8h) >> +>> +endobj +4387 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 588.84 156.708 599.216] +/A << /S /GoTo /D (qr__givens_8h) >> +>> +endobj +4388 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 539.135 180.047 549.403] +/A << /S /GoTo /D (qr__householder_8h) >> +>> +endobj +4389 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 513.024 132.15 521.508] +/A << /S /GoTo /D (svd_8h) >> +>> +endobj +4393 0 obj +<< +/D [4391 0 R /XYZ 69.866 801.979 null] +>> +endobj +4364 0 obj +<< +/D [4391 0 R /XYZ 70.866 771.024 null] +>> +endobj +194 0 obj +<< +/D [4391 0 R /XYZ 70.866 771.024 null] +>> +endobj +4394 0 obj +<< +/D [4391 0 R /XYZ 70.866 697.349 null] +>> +endobj +198 0 obj +<< +/D [4391 0 R /XYZ 70.866 482.143 null] +>> +endobj +4390 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F70 4395 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4400 0 obj +<< +/Length 920 +/Filter /FlateDecode +>> +stream +xڥV�r�8��+p$���㨔e����H�b�\�K���!�x�_�3�ĥdo�R9����f����'N�z�Ȟ02�|�L.��4��l�H�h�$��9��ȝ'R���# eD#�9�iv}��@$�w�l�J�]�M��'������^F��3Mi*"��&w����G�h�����H$C*#��$���78���r4��B~?��1oy�|X\/g���t1�}XM�ŕ�F�2���,���M�E���V��{����y� 4��N�L�s�Q��1��,vi#A��DiC˱�3 <�I��@D@���^yr�r�������R������������vyv�t���R�+K�V!��B��fQdo]7叢��z�����+U�Ovl��h����MLWM���y��������s��gLt�?�%�k�����v�e�0(����a��O���w��չ��Q�5�`pTi�<�eW&���y�����ǚS�{k"��Uw���)-3��S��(w.�T]^�ʽ�K��m�|��;f�4���̀y��m��x��c�C>����@��I�%�^R@V����[{��"�8��6�B�0��H��7�.�fQe���K�*},�sУ���P�3�` +��1�6rN�c���1x~� JB �p7����ԍ���>� tw�IT�?Nw��R'�U�F^�e�����;�y" �.l17�ڕ^۞��Q�|�r��]kx����d��nW+���[���`ù��d��y�k �"^*��Y\�I<_����8�f�a���5ԏ��cΛ�E�����$[|�qX���9:�.C��G��H~fCAy�XHS_D^ŷ�6�3C���OA�\M_�+X|�*N����� z�>��OtLEG�&�)#i;��U�Z�kI�N�O������}�_��9� +endstream +endobj +4399 0 obj +<< +/Type /Page +/Contents 4400 0 R +/Resources 4398 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4353 0 R +/Annots [ 4396 0 R 4397 0 R ] +>> +endobj +4396 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 657.401 160.537 666.172] +/A << /S /GoTo /D (group__optimization) >> +>> +endobj +4397 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 628.614 246.747 638.277] +/A << /S /GoTo /D (group__solve__non__linear__equations) >> +>> +endobj +4401 0 obj +<< +/D [4399 0 R /XYZ 69.866 801.979 null] +>> +endobj +3864 0 obj +<< +/D [4399 0 R /XYZ 70.866 771.024 null] +>> +endobj +202 0 obj +<< +/D [4399 0 R /XYZ 70.866 771.024 null] +>> +endobj +4402 0 obj +<< +/D [4399 0 R /XYZ 70.866 697.349 null] +>> +endobj +206 0 obj +<< +/D [4399 0 R /XYZ 70.866 598.803 null] +>> +endobj +4398 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4409 0 obj +<< +/Length 740 +/Filter /FlateDecode +>> +stream +x��UMs�0��+t��$��c:�=N����1b+�)���� +�N��t&��$v�ݷoߢQz���\9删��!uF� B1N�Pz�"�c!P�0,(JW����(v�>�����Q:=�{�� +���(�P�A�h��1u� +F��.^㘅hY9����w��='+r�`%Z8_^a�'�� �d%%���9��E��ǂsoєE�� +7ms�1▲R��ܙ���G ,JMml�j�n����+�Y����}�w��]º�bIDp�a1�L㢔j�rK�A T�(���B`�p��.}�Ő��֣[��7����;���l�*k���]y���z/��:Cb�Dil�a�ȧ!N��`�V�T֝!�[[Vf�y�qjSw[�8�}=��Z�˼�)w�n]�������x�;U5�B����<땺����c��Q��#j��ir��|�/�8�$��� +�0��r,�g�{,ղ-6�V���Cq�� b����HD�nN ��/�1VYg�2��T�i�ʪ�� �˝�m�� �%����ΆVM�?_b?O��z�y��~Y�2k��Lf�3�Z��b�����mm��V�ߩ�ݺYY:U�\[���Y���N3�?ϐ��{O��`�?�3��z����@KS�R�<�=�۾9DB�� ���8�V�ٷ̢��O����ho�M<�Z���i�" �"�x�BxW���Dֲ���le2����S��>D��l� +endstream +endobj +4408 0 obj +<< +/Type /Page +/Contents 4409 0 R +/Resources 4407 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4412 0 R +/Annots [ 4405 0 R 4406 0 R ] +>> +endobj +4405 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 655.59 202.92 665.966] +/A << /S /GoTo /D (levenberg__marquardt_8h) >> +>> +endobj +4406 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 627.695 214.702 638.277] +/A << /S /GoTo /D (modified__gauss__newton_8h) >> +>> +endobj +4410 0 obj +<< +/D [4408 0 R /XYZ 69.866 801.979 null] +>> +endobj +4403 0 obj +<< +/D [4408 0 R /XYZ 70.866 771.024 null] +>> +endobj +210 0 obj +<< +/D [4408 0 R /XYZ 70.866 771.024 null] +>> +endobj +4411 0 obj +<< +/D [4408 0 R /XYZ 70.866 697.349 null] +>> +endobj +214 0 obj +<< +/D [4408 0 R /XYZ 70.866 598.706 null] +>> +endobj +4407 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4418 0 obj +<< +/Length 692 +/Filter /FlateDecode +>> +stream +x��UMs�0��W�hfj!ɒl ��@|j��(�q4�Ev[��+a9BgBshO����۷O�����L9d���s;�K?�!�8�A�C�A�1�W���Q�.�>��b_��Ngժ�ӞG��UIS�e-jY�����Wk[�s�0�!� )��;V��@ЏB�}gY��|Ȩ�#K�����c��c�:�!Ĩ�a��{�XN��b~?�0Y, ��%��E��䈷�y��\�l3�%%���h̕�S����]WRբLR�ږ���Y��2��J����j��T�Աa��`�"n�Q���V;b;F���a�<B5Ŗ�τ����̖�f�[�1�x0��/�����p�_j�CMy�{ �$�)�(}�gQ�'"�gDZ*�l&f��|O������� �2�P�v٬�����t��x�Ϗ +����~0Jk!��Q���\w��Dk�0d�?h �����L� _��B�k�z�T�!�R��ǦL���֕YmT���z�vYWJ���KK[ڟE� �Vi�G�7��}�d��� �)�٤fD�.)��*Y��!sW���nr�λC�,52+E~B�f>�b���Q1 �<h��u��I_yJ�GJ�*�F�Z��b�$�[{��z/T!���~,�E<g�u3�Cpj�P=��V%�s�۹5I�t#�NP=��m7�My~l3�ܴ<��5� n +endstream +endobj +4417 0 obj +<< +/Type /Page +/Contents 4418 0 R +/Resources 4416 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4412 0 R +/Annots [ 4413 0 R 4414 0 R 4415 0 R ] +>> +endobj +4413 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 656.509 177.483 666.172] +/A << /S /GoTo /D (group__distance__based) >> +>> +endobj +4414 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 628.614 179.473 638.277] +/A << /S /GoTo /D (group__magnetic__based) >> +>> +endobj +4415 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 600.718 198.41 610.381] +/A << /S /GoTo /D (group__pos__algos__common) >> +>> +endobj +4419 0 obj +<< +/D [4417 0 R /XYZ 69.866 801.979 null] +>> +endobj +4375 0 obj +<< +/D [4417 0 R /XYZ 70.866 771.024 null] +>> +endobj +218 0 obj +<< +/D [4417 0 R /XYZ 70.866 771.024 null] +>> +endobj +4420 0 obj +<< +/D [4417 0 R /XYZ 70.866 697.349 null] +>> +endobj +222 0 obj +<< +/D [4417 0 R /XYZ 70.866 570.811 null] +>> +endobj +4416 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4426 0 obj +<< +/Length 788 +/Filter /FlateDecode +>> +stream +x��V�n�0��+x���&)R�1E��i����C���B�8��4���"�Eu +i��!5�潙G��%ic!�N���5{a���@�`�� ��1�pk�c�%Ah_^\O������2�L'7Gj��ǧ�R���N�_<��֧�z��4"�7�����Ea��#�ȳS���Y�ʤ3�������ZL`�1ۅ�c���b��ˀGc�d���1�#_{XUM�fU���VmVd?���A�Iִ�\Woy�菂��h��;�0��Z�|�K�ܴ�h�l�1��X�P�@�< j���h��$�}�p �.�a{��[�1߾C��(u���t��1�g)_7ͬA�S[�p��m���R�PJ +!�Dp1��ѤX�e�Ih�B��H�� fX�Ӫ�z2;k���=8��Um^V��.w�N��K|�;�w�0[�sQ���k�`�N��c�lW19�B˸��b���T.�m��d^G.y;�������l���L5�,�8D+ +ᬐ@S-���<������~��f�tl����������(p��p�1�A'�s9�K���U���0d�;�bwP�ɑ7Q���unNE��j<�Q����PeT��ɣ�<�z��sx�b̳>F�{)딕g�&+Ss{�cml��ɍe3��L�Rc:��|��B�{߅��T�V߶g a�S-�s���tZG�T�K��P� jP�U]'�^n�7n���?����zP�@V�k��3$���+��'�o��'�5o�����p])�~<����dC����k� +endstream +endobj +4425 0 obj +<< +/Type /Page +/Contents 4426 0 R +/Resources 4424 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4412 0 R +/Annots [ 4421 0 R 4422 0 R 4423 0 R ] +>> +endobj +4421 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 655.59 192.277 665.966] +/A << /S /GoTo /D (loc__gauss__newton_8h) >> +>> +endobj +4422 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 627.695 219.364 638.071] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h) >> +>> +endobj +4423 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 599.799 258.142 610.175] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h) >> +>> +endobj +4427 0 obj +<< +/D [4425 0 R /XYZ 69.866 801.979 null] +>> +endobj +4376 0 obj +<< +/D [4425 0 R /XYZ 70.866 771.024 null] +>> +endobj +226 0 obj +<< +/D [4425 0 R /XYZ 70.866 771.024 null] +>> +endobj +4428 0 obj +<< +/D [4425 0 R /XYZ 70.866 697.349 null] +>> +endobj +230 0 obj +<< +/D [4425 0 R /XYZ 70.866 570.811 null] +>> +endobj +4424 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4433 0 obj +<< +/Length 626 +/Filter /FlateDecode +>> +stream +xڭUMs�0��+t��JHBӤ�4mj7�T'ӡ��L���u}W ��3���i�����z?LY��r뼋��8���R�_HT+ES�H<'37��s|G)�`��v�y[d��C��Ti[f�&i�je������a��rjM5$-��3�9���A�ɯ.�$BT +S� �ΗW8�c��b��2��������է[�����O>T�1�Z��*P���,}�PR,� f�n�,˺߬^���Ҥ����v;��n2�x�2X��2R���d�W�EVw4 �� c��:$>H���syt��|)���Q��İ�YX���N���c\�<�p���H�F:�Р���( >4bGҺm����>L= nU�{Fn�ݿ �M7Y��'�0El�2�?>��_^��Ɗ[$M������}(�Ef>���Q���Z�" +��G��Y��dM���[��:����{<�|F��w�Iݹ��/s��<i��"_��۾�K�JMr{T���ª�@�i���D_��(P.ͣY�1$;!�������m�%�:g�q�T�x +m&�@_���7�}L�2?�vn���(�y;�YEy��A#p�K)p�J�~n�U�Aޭ{���O����.�+�lu +�/7隄 +endstream +endobj +4432 0 obj +<< +/Type /Page +/Contents 4433 0 R +/Resources 4431 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4412 0 R +/Annots [ 4429 0 R 4430 0 R ] +>> +endobj +4429 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 657.401 136.014 666.172] +/A << /S /GoTo /D (DOP_8h) >> +>> +endobj +4430 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 629.587 162.59 638.071] +/A << /S /GoTo /D (trilateration_8h) >> +>> +endobj +4434 0 obj +<< +/D [4432 0 R /XYZ 69.866 801.979 null] +>> +endobj +3867 0 obj +<< +/D [4432 0 R /XYZ 70.866 771.024 null] +>> +endobj +234 0 obj +<< +/D [4432 0 R /XYZ 70.866 771.024 null] +>> +endobj +4435 0 obj +<< +/D [4432 0 R /XYZ 70.866 697.349 null] +>> +endobj +238 0 obj +<< +/D [4432 0 R /XYZ 70.866 598.706 null] +>> +endobj +4431 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4441 0 obj +<< +/Length 624 +/Filter /FlateDecode +>> +stream +x��U�r�0��Z�Yo`��v����fQ'�!���b��n����d��t��Ɠ���qu�9G��x6� �R����>vc�FBP?���PD +�5X�!���I��������㗛�l>���k��<�*[��R=�b���j|J�0$������Z��(O��-`\%c:Y���7���c~�S`��@1B��`L��:�)� s�]��:�ݬ�l+Sn]��J��!Oji�7v���a]���#����ʲ�kŃ�� ۤ�韡A��A0���p��Sg��j�<RЁ�����)Nm�������9�-B$�vER�V�Y���W�\��,*U�U�-��� +�uI7�J�P�(!�D����1���L��#��i�j��Q���������O����+�k0^��o� +�V��%���L}k��STY��>�U�Y���4�(l�w�sAl�������&�PV�2�7���1C������A���<Krf���- ,�*ۥf8��=z�u���ֆj� ��:h7q��@,˩G�{�7*c�%;�(+2�DeN�M��ɏĢ�4~J�m����0y����vyl��@��.�T���]ɝ,���Z�k�£�}~I�տ�E�,�� +endstream +endobj +4440 0 obj +<< +/Type /Page +/Contents 4441 0 R +/Resources 4439 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4412 0 R +/Annots [ 4436 0 R 4437 0 R 4438 0 R ] +>> +endobj +4436 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 655.698 248.729 665.966] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h) >> +>> +endobj +4437 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 627.802 180.953 638.071] +/A << /S /GoTo /D (pseudo__inverse_8h) >> +>> +endobj +4438 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 599.907 193.909 610.175] +/A << /S /GoTo /D (qr__pseudo__inverse_8h) >> +>> +endobj +4442 0 obj +<< +/D [4440 0 R /XYZ 69.866 801.979 null] +>> +endobj +4365 0 obj +<< +/D [4440 0 R /XYZ 70.866 771.024 null] +>> +endobj +242 0 obj +<< +/D [4440 0 R /XYZ 70.866 771.024 null] +>> +endobj +4443 0 obj +<< +/D [4440 0 R /XYZ 70.866 697.349 null] +>> +endobj +246 0 obj +<< +/D [4440 0 R /XYZ 70.866 570.811 null] +>> +endobj +4439 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4447 0 obj +<< +/Length 660 +/Filter /FlateDecode +>> +stream +x��UKO�0��W��H���$��b�By.i�B��F�Ɛ�_;v(IQ%n�f�����g���0�4����%�fK�&BP�ށ�X% +�5��)��C@9�S}��z��])��D����n'�6kU�do�zֹ���qc�@��.�X��!@�&1��g���rf�(��w�NL`�1 T`��1�,1Bȿ8=���9:8Y�W7���������`�-I�aBʡ@XT�m@�_����*kU>�����i���;kˢ�Ym}����p)�'k?[sk�]@��܉'h�>�x">F ���[��0�I?X�(�@H����!|t\��� +!�9��T�q����qߘ�p;*3���f"�|$��B$ !f0a��7� D�x�FG;%��6�C_;��&���A�o� Ø�Ҭ���I��BJ������N#K���ﱙ�5���5+7�}k�;w�˷.���c�j��'��|Yժq��2C���^X�t�ῇ��\UUO�հ�V�롑 :�<�0������*\�\��US������S�`̬�xk ��5���i%��h�w�V�~k�&����̺� d��ٯ�����5�bT����GF4�x��Z@ f�0����i�p���J�Y;,S���?�����1k���B�?�� +endstream +endobj +4446 0 obj +<< +/Type /Page +/Contents 4447 0 R +/Resources 4445 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4412 0 R +/Annots [ 4444 0 R ] +>> +endobj +4444 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 657.482 138.767 665.966] +/A << /S /GoTo /D (solve_8h) >> +>> +endobj +4448 0 obj +<< +/D [4446 0 R /XYZ 69.866 801.979 null] +>> +endobj +4366 0 obj +<< +/D [4446 0 R /XYZ 70.866 771.024 null] +>> +endobj +250 0 obj +<< +/D [4446 0 R /XYZ 70.866 771.024 null] +>> +endobj +4449 0 obj +<< +/D [4446 0 R /XYZ 70.866 697.349 null] +>> +endobj +254 0 obj +<< +/D [4446 0 R /XYZ 70.866 626.698 null] +>> +endobj +4445 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4455 0 obj +<< +/Length 633 +/Filter /FlateDecode +>> +stream +x��UMs�0��+t�����;�3N3vc��d<4V0S>�M��+!��ؓi�dz�@������^8��A\Y���K�Sh���>�� |�����K0�}���Ϸg��o��x2^\�ƃ�t1���G���q)�ٔ;w�5�G��}H߇>a�>��w,��@�>xj����rF�>3��&&0����c�)/ U�zCԌ�K9H�0�<��d��2eׅY�"��nK�9ٛ�N��mT���N��6�y��I.�{�(7Q�yk[�2��4�t}z<-&F ��`&��v�I�,��{�%L���qK?��]΅}�Ie{�*�V�i�Ʒ���\.r��x��|Q�r#��UU�pu����J_Ix!�����1�n��S��[����d6��>��EL�&�9�Ҹh�W|�w�^���9���{3�4�ߑB�NʉU>�'��F��\@�7��? no�YG��Z#^��L� ��/}����A6�z�,��Rv�h��TI�voQ��dg� �z���;��gj�;�ٛz�"�3_G=e:�=�lȸ �=������UYr�܌��5n7�$�`����$ځt)sYF����[�֗�C�����km�w��-�� +endstream +endobj +4454 0 obj +<< +/Type /Page +/Contents 4455 0 R +/Resources 4453 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4458 0 R +/Annots [ 4450 0 R 4451 0 R 4452 0 R ] +>> +endobj +4450 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 655.698 221.597 665.966] +/A << /S /GoTo /D (damped__newton__raphson_8h) >> +>> +endobj +4451 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 629.587 141.259 638.277] +/A << /S /GoTo /D (fsolve_8h) >> +>> +endobj +4452 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 599.907 184.216 610.175] +/A << /S /GoTo /D (newton__raphson_8h) >> +>> +endobj +4456 0 obj +<< +/D [4454 0 R /XYZ 69.866 801.979 null] +>> +endobj +4404 0 obj +<< +/D [4454 0 R /XYZ 70.866 771.024 null] +>> +endobj +258 0 obj +<< +/D [4454 0 R /XYZ 70.866 771.024 null] +>> +endobj +4457 0 obj +<< +/D [4454 0 R /XYZ 70.866 697.349 null] +>> +endobj +262 0 obj +<< +/D [4454 0 R /XYZ 70.866 570.811 null] +>> +endobj +4453 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4465 0 obj +<< +/Length 862 +/Filter /FlateDecode +>> +stream +xڭVMo�6���Q:�KR$%�:8m�6�\�-ѻB�����}fHJ���DJμy|z�v��/N㆑a�����f�K3��B��H�h�5� +A5'���F����?�TI*y +���?�jnl��,���rnm7���;�o��p�e��9��B����~a����Ѵ�ɓ�l�T)Uk4�f��w8������-Hs�u�p�X�i������ ���Dq�##I��f���4�M=�v��<�)���?4ugM���`��P�1��B��RP�R�vW7��X����5��$B-���B��=�6QJG���_AN�C ���A|e��ם�;WQ]�1�x��r�(,2�$EJ.i!����iʹ1S8��~��X����2Ồ�AgT��dT�@`g>PD�"�]� +C�R� +���O�Q����BI�4G�E��2<���]�<O��1l8�@eT�TO�~�|�}�S�4��0���]Uw���b�"���O�f A�� ��s�UQ{W��t����`cu�Ł�^-��vM�6�"0M��_!� G'�y�U �m ��yn���e�C�VDȝx=w��6�݈�%����s�>6-�77��s���t������N��'�����odoe�IZP��;*�;����d�a����X����y��9͕zF����4�s�0w�7�D�,2�� (�� +��K'�g?_J���K$m���^�=ᒓ���jz + ��=���<� _�k� +eOĖ,�qz +$4�}�� +�8�"� V��%�u�Z/���@N�[���jN���w3��Y�����pJ?q�X.���\w��0R�����C�W T���gd�K�����N� +endstream +endobj +4464 0 obj +<< +/Type /Page +/Contents 4465 0 R +/Resources 4463 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4458 0 R +/Annots [ 4459 0 R 4460 0 R 4461 0 R 4462 0 R ] +>> +endobj +4459 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 657.482 173.502 665.966] +/A << /S /GoTo /D (combinatorics_8h) >> +>> +endobj +4460 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 627.695 218.772 638.071] +/A << /S /GoTo /D (norm__dist__rnd__generator_8h) >> +>> +endobj +4461 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 600.718 156.923 610.175] +/A << /S /GoTo /D (shell__sort_8h) >> +>> +endobj +4462 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.728 573.796 134.006 582.28] +/A << /S /GoTo /D (utils_8h) >> +>> +endobj +4466 0 obj +<< +/D [4464 0 R /XYZ 69.866 801.979 null] +>> +endobj +4367 0 obj +<< +/D [4464 0 R /XYZ 70.866 771.024 null] +>> +endobj +266 0 obj +<< +/D [4464 0 R /XYZ 70.866 771.024 null] +>> +endobj +4467 0 obj +<< +/D [4464 0 R /XYZ 70.866 697.349 null] +>> +endobj +270 0 obj +<< +/D [4464 0 R /XYZ 70.866 542.915 null] +>> +endobj +4463 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F72 4468 0 R /F69 4469 0 R /F68 4470 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4476 0 obj +<< +/Length 601 +/Filter /FlateDecode +>> +stream +x��T�n�0��+�"Ds��(��u�� +W��0T�� h d +��)�r��r��̛y�f�ʷ?18�w�VH����n�5_�6,!S�����s���� /�}��T<Z�-SBd����78!�"I<)'��ׅ-��/��{�w:����uck�fw�z��`�,�<y&��x�b�PR�3ϻ��;�B�1b�o�a�Q�;����$T��K�(�����1�,�$��l�R? D���7]�tO�P4e��۪���o|"}�g��;��h�cj�aH�1�\���DI%�!���W})a|e�(J:������"S�A�<� eb ?/��5�7q(H�iF bt��c�1�*�A狲0�B��.�?�&.�>�4Kz�X�TO`��w��FWB�b�'8��j�&@Bĕ�v&�:NTYr��J�7��@���=ȹ~zwb����TAt#���(��-L�c��yߙ�q�gCɲ�n�nGm⚁Hp��Ke�l8�B{�J��?M#���H������aIQ�v#gs~Q�p��P�ףnWG������o +��*��4���?N[tRJ�߂_i�ٮe�O+�f�~�\�� +endstream +endobj +4475 0 obj +<< +/Type /Page +/Contents 4476 0 R +/Resources 4474 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4458 0 R +/Annots [ 4471 0 R 4472 0 R 4473 0 R ] +>> +endobj +4471 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.678 410.776 165.316 418.633] +/A << /S /GoTo /D (structmatrix__dim__t_a853244a0562d43bfdcdcb704ed707721) >> +>> +endobj +4472 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.678 382.881 162.464 392.338] +/A << /S /GoTo /D (structmatrix__dim__t_aac6b6ff205184047714d5c22019bdbab) >> +>> +endobj +4473 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 212.571 128.787 221.055] +/A << /S /GoTo /D (matrix_8h) >> +>> +endobj +4477 0 obj +<< +/D [4475 0 R /XYZ 69.866 801.979 null] +>> +endobj +274 0 obj +<< +/D [4475 0 R /XYZ 70.866 771.024 null] +>> +endobj +4009 0 obj +<< +/D [4475 0 R /XYZ 70.866 570.668 null] +>> +endobj +278 0 obj +<< +/D [4475 0 R /XYZ 70.866 570.668 null] +>> +endobj +4478 0 obj +<< +/D [4475 0 R /XYZ 70.866 451.617 null] +>> +endobj +4479 0 obj +<< +/D [4475 0 R /XYZ 95.773 424.804 null] +>> +endobj +4480 0 obj +<< +/D [4475 0 R /XYZ 95.773 396.908 null] +>> +endobj +282 0 obj +<< +/D [4475 0 R /XYZ 70.866 354.676 null] +>> +endobj +4474 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4483 0 obj +<< +/Length 225 +/Filter /FlateDecode +>> +stream +xڕ�=o�0�w�������-S[�!��� j����$ +K�N���w�:�� +h�A[���E9�XZ� |�#�ւ+%Z��C�<?�(���˺���R�W��b���N��rs��.��J�kW���>��B�8�=z�����H���U��{��@�F��_`��O/�q��?��E鬾�k���#��8�nc�*�f�;qI�ma劊�[�W��8�.�e�_�0Tw +endstream +endobj +4482 0 obj +<< +/Type /Page +/Contents 4483 0 R +/Resources 4481 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4458 0 R +>> +endobj +4484 0 obj +<< +/D [4482 0 R /XYZ 69.866 801.979 null] +>> +endobj +4481 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4490 0 obj +<< +/Length 949 +/Filter /FlateDecode +>> +stream +x��V�n�6}�W� �Ƽ�7�(zI��R~j��9��د�P�l˖���n�'���̙љNf��3���P�$��W�2l�rw���f2��0�*Ff/DS0J� Xk�lA��W�[��4��$��O��Z�AP� +%�������~�۷�r�ꪦh���yN�B��2&#���xdX�1JiRn_�}U4�ڗ;(э6�C�ݻ����ծ*]p8�rK08�D��c�Ŧ�o�&�~��v�9�4��ˌX��U�+ TI���#�f�(�Z�`��Ĕfи�k#!c�3 F��|}�#�r�H�NX�J�Iv$�'� \10���[�|���.�ڽ�Ʒ_����Z�JW-|��~n��B�:x)O�dL��7����o|Un�7�_ +�(���H :����Y�-��1��QnT���2�R~j�<� ?6g�fA(s�\�P�_�����W�t%�Gۮ�(h��X�Y_�}UdsR��0���yc�x�\LJ��}y����:�6��Q�ST�PYX�2�����9d�~�����A�m��c��Ѽ��tbd�Pl��1�'��:D���[����D�H��!E��i4+�"jSٞ,]�%��(|�C�\Kqv����}�/]3�\*h�w3��`�=���v�e������\|S~&,6\$Xn���0^n]S�0Ytp�nW���^���+B�'�$�W���2�D}�0ɿ�0��^i�'�q�1<�Wȏ)ϓ=2���k�Օqa�yl�"VGё{_�^}DcmU�I�{s���b����:���W/�Ϟ]��tS��s"Jc@�1U�ʾCGU�?�Z��.U���i�5_�Ӥ���aG�ߗm�F]R6��C�K-�Y�i�|+f�S��p��4����� :t�plH��h�Y��#�OC<m�Z'O#�2�uL�p@��4��p +vs���_f7���0P +endstream +endobj +4489 0 obj +<< +/Type /Page +/Contents 4490 0 R +/Resources 4488 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4458 0 R +/Annots [ 4485 0 R 4486 0 R 4487 0 R ] +>> +endobj +4485 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 402.212 198.06 411.668] +/A << /S /GoTo /D (combinatorics_8c_a1bcaeef00a7027e9b9b7694da2efd1b9) >> +>> +endobj +4486 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 374.68 272.058 385.056] +/A << /S /GoTo /D (combinatorics_8c_ae500ce949afe79089e8146eb1fb5cbb0) >> +>> +endobj +4487 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 256.982 297.675 283.522] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4491 0 obj +<< +/D [4489 0 R /XYZ 69.866 801.979 null] +>> +endobj +286 0 obj +<< +/D [4489 0 R /XYZ 70.866 771.024 null] +>> +endobj +4060 0 obj +<< +/D [4489 0 R /XYZ 70.866 581.712 null] +>> +endobj +290 0 obj +<< +/D [4489 0 R /XYZ 70.866 581.712 null] +>> +endobj +4492 0 obj +<< +/D [4489 0 R /XYZ 70.866 437.53 null] +>> +endobj +294 0 obj +<< +/D [4489 0 R /XYZ 70.866 348.567 null] +>> +endobj +298 0 obj +<< +/D [4489 0 R /XYZ 70.866 243.341 null] +>> +endobj +4493 0 obj +<< +/D [4489 0 R /XYZ 70.866 207.827 null] +>> +endobj +302 0 obj +<< +/D [4489 0 R /XYZ 70.866 181.235 null] +>> +endobj +4488 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F51 3827 0 R /F37 2725 0 R /F29 2678 0 R /F1 4058 0 R /F10 3833 0 R /F11 3889 0 R /F55 3831 0 R /F61 3918 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4507 0 obj +<< +/Length 1391 +/Filter /FlateDecode +>> +stream +xڽY]o�8}�WD����ߎ��}��S�H3ӥ�èS! +)�B������Nꀛ�����s����}}7]�`��p�pp�{?���T"-%���(�2P�"I��<��s<� +|Ÿ��O?�I4R�/V��2J�i�R3�w9���#0d��(�<�-{�w8��w�@�a���`Hp����V%FT����jģYr+�z@y��.�<Z�g�� +ҫ��6(��!M_�� ,E�8F&��DZ��$"�P*MIB�($�,oQ�س6� +D%�J)�U � �t���RD@eGN�]N0ìΙ����[w�����~�E9�W�GBw�o���n��0������S؈�c@�n�n�~��O 6��鷑��f�����J۷@��QV: +�Z�Px��NEs�f%�!����j�7ة��N.�l���L���������n��r%<����L��V;�2㴼P�ph,r�%�A�!ڝv8�~�,����._G��TJ��d]/,���U:������嗋�]ge��M�L�����Y���R�@��4��h0d�*�������M��l3�EY��I���QCʡe�E��~`L��E��JO��N�����<��Xj��X�g�9�ЬNVr�����h� i�S[�+��t>�̓�~+�}���U�_G��b��.�֓�)�&���i�����iY�EKEC�GQ�&�ؙ7LyC+� +)����B�y +^Bm`��(�����b��~r%�!!pw�:BA��C�BhgU�M�g5C;��S;�<�=5�*O�|��:��/E�mq�tk�$\s|4Ξ&�;�w��J0����I +;1���!�X���@��M\]Z��ɣ �ۘA6L���cZ�-G;��!�])�71|/����8a3�k�#g��5�U�);� +R���` ;�E�aX) E9���WRX��E��&r9�Lԉ��!��s6���P]�P ���lt��TZ)u�l����Z����H�8�NrY�*cu��u���$�`벃E�[ � +�������y�S0���Z��a!ı'ΐn�����@�I9�vs�r������V}�����"CB)l���1{{"���DR���HRT��m*q��9ŝ�i� +�b]���!�d�T�)=�</?�E�R��C�f�6���d�I@[���*��b�}�u��9����v��8Hh�Yh�&� 8dHr�to�ۆ�u� 7I�B��p$%��g�ز�f3,P9���ů���z?����v�����g\�4�E�<N֜�y�"v�&�&6\u;���d3�<0�(��w�����YBrXrO)T��c�1�3���T����*XC N@���ˮ��Z���p�2�_c�~��J��� +endstream +endobj +4506 0 obj +<< +/Type /Page +/Contents 4507 0 R +/Resources 4505 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4458 0 R +/Annots [ 4496 0 R 4497 0 R 4498 0 R 4499 0 R 4500 0 R ] +>> +endobj +4496 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [96.006 667.169 151.303 676.832] +/A << /S /GoTo /D (combinatorics_8h_a16396d8294127e6ea7dbbdaa3b8132e7) >> +>> +endobj +4497 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [324.464 667.169 404.176 676.832] +/A << /S /GoTo /D (combinatorics_8h_af92c32bbf9a391a055cb472b6f43c498) >> +>> +endobj +4498 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [96.006 309.326 164.752 318.989] +/A << /S /GoTo /D (combinatorics_8h_a1249f9e7a382225c0889b8ef630d6509) >> +>> +endobj +4499 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [228.636 309.326 295.893 318.989] +/A << /S /GoTo /D (combinatorics_8h_a744ae7aa581aa908643d95d470394872) >> +>> +endobj +4500 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [354.772 309.326 434.484 318.989] +/A << /S /GoTo /D (combinatorics_8h_af92c32bbf9a391a055cb472b6f43c498) >> +>> +endobj +4508 0 obj +<< +/D [4506 0 R /XYZ 69.866 801.979 null] +>> +endobj +4509 0 obj +<< +/D [4506 0 R /XYZ 70.866 771.024 null] +>> +endobj +4495 0 obj +<< +/D [4506 0 R /XYZ 70.866 581.914 null] +>> +endobj +306 0 obj +<< +/D [4506 0 R /XYZ 70.866 554.719 null] +>> +endobj +4510 0 obj +<< +/D [4506 0 R /XYZ 70.866 423.408 null] +>> +endobj +4061 0 obj +<< +/D [4506 0 R /XYZ 70.866 213.993 null] +>> +endobj +310 0 obj +<< +/D [4506 0 R /XYZ 70.866 193.763 null] +>> +endobj +4505 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F11 3889 0 R /F1 4058 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4522 0 obj +<< +/Length 1382 +/Filter /FlateDecode +>> +stream +x��X�n�6}�W���%����bw���q�$0�v�r*��f��C��%Kq�K�>�aș3�g�C� 7M�ASDЧ��a��{�ǁR '�#�W +yÊ���9�`�w��;�r�'a�L�(�O��U<�寁��)qt���84p�?��.���{�D�N|�L�hѻ{ h���恏~3HH����{�n{���6O��\QL*��a��q�Y�Z}vłZ�Ta�����)�3&KН�s��2����D��hҩ kPL3L����yt٧�`�}�m��pict���@�d�ap�R�!Jh�af�^N�o��_��˴/��wE뮍2�S�{}3��+^���x�_������ ����[ ������.N���*�t�MV�y�B8�V�0�㓰rji|��b�����y�7��-/q2}���Oe�8ۅ��&>r�D����*���S�)�����廩\�_ 3�����(N⼋�{"Ie�H>����k�8�izN|�<��������<�i���?��Fd��T':5��9eNWˎ�x����|�#Ο��|����1�6Dn�^E�ڃw�ߴ�JB�s��z�[t.t��s�[��Ɔ0G�/e�öb�k��Y?�{���������� ۳ ��4�<�yK�\��ʉ�,��z�^�㳶���R,�\{�v^s�T��4 -�#���/�b��P6 �֦��f�N�몵LǺ#% ,i~��Q������?��CZ>~�3��A����A]B����Yh�#,�} �El��m�U��T�Ɲ�؇&�r�sf��'<Y��:�� 뭼�%���u��YUVڪr�:�Í.m/�ң8��ni��F�;��Q���@�"��Ҷ��]ڡ�u櫶���V�)��AN�+�z�b�:`5��ux�P���\;� ���[��B�s:�K� Ղ ���� �ʞ����;�`�]Z/7&��4\��x�N�[�QH Ȍ7"&8��FtZ�(�T2쩝3�́~eM��F��3��U'�� e�2;ԥ��O!��N�|��ڀ�@���">�F�S��k����*����V�����G��(VF�9py +A��z����-�����[Cu�oih����Ѿ���$}����ae�K�z3����7t��A�`u��t`�k�0��b�;���wh�0��Cx^�1gR���뷲���A�Ub�f裏R��6�dY[���ޣR��QҞ$o=t�^9{Ӌ�Sxf�+���۰�˅��m�c�6��c.�J�8�����vG -t��m8�o�*�b����+u���7"陷�=^���a��9F7�*$\�T���<�WΗ�P�/��O���cwI +endstream +endobj +4521 0 obj +<< +/Type /Page +/Contents 4522 0 R +/Resources 4520 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4528 0 R +/Annots [ 4501 0 R 4502 0 R 4503 0 R 4504 0 R 4515 0 R 4516 0 R 4517 0 R 4518 0 R 4519 0 R ] +>> +endobj +4501 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 734.168 197.917 743.832] +/A << /S /GoTo /D (combinatorics_8h_a1249f9e7a382225c0889b8ef630d6509) >> +>> +endobj +4502 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 706.273 196.428 715.936] +/A << /S /GoTo /D (combinatorics_8h_a744ae7aa581aa908643d95d470394872) >> +>> +endobj +4503 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 678.378 208.883 688.041] +/A << /S /GoTo /D (combinatorics_8h_af92c32bbf9a391a055cb472b6f43c498) >> +>> +endobj +4504 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 650.482 184.468 660.145] +/A << /S /GoTo /D (combinatorics_8h_a16396d8294127e6ea7dbbdaa3b8132e7) >> +>> +endobj +4515 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 568.664 198.06 578.121] +/A << /S /GoTo /D (combinatorics_8h_a1bcaeef00a7027e9b9b7694da2efd1b9) >> +>> +endobj +4516 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 539.85 272.058 550.226] +/A << /S /GoTo /D (combinatorics_8h_ae500ce949afe79089e8146eb1fb5cbb0) >> +>> +endobj +4517 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 401.135 297.675 427.675] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4518 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [96.006 88.002 151.303 97.665] +/A << /S /GoTo /D (combinatorics_8h_a16396d8294127e6ea7dbbdaa3b8132e7) >> +>> +endobj +4519 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [324.464 88.002 404.176 97.665] +/A << /S /GoTo /D (combinatorics_8h_af92c32bbf9a391a055cb472b6f43c498) >> +>> +endobj +4523 0 obj +<< +/D [4521 0 R /XYZ 69.866 801.979 null] +>> +endobj +4524 0 obj +<< +/D [4521 0 R /XYZ 70.866 775.009 null] +>> +endobj +4513 0 obj +<< +/D [4521 0 R /XYZ 95.773 748.196 null] +>> +endobj +4514 0 obj +<< +/D [4521 0 R /XYZ 95.773 720.3 null] +>> +endobj +4512 0 obj +<< +/D [4521 0 R /XYZ 95.773 692.405 null] +>> +endobj +4511 0 obj +<< +/D [4521 0 R /XYZ 95.773 664.51 null] +>> +endobj +4525 0 obj +<< +/D [4521 0 R /XYZ 70.866 609.505 null] +>> +endobj +314 0 obj +<< +/D [4521 0 R /XYZ 70.866 512.491 null] +>> +endobj +318 0 obj +<< +/D [4521 0 R /XYZ 70.866 386.891 null] +>> +endobj +4526 0 obj +<< +/D [4521 0 R /XYZ 70.866 340.333 null] +>> +endobj +322 0 obj +<< +/D [4521 0 R /XYZ 70.866 313.137 null] +>> +endobj +4527 0 obj +<< +/D [4521 0 R /XYZ 70.866 183.637 null] +>> +endobj +4520 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F1 4058 0 R /F10 3833 0 R /F11 3889 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4555 0 obj +<< +/Length 1744 +/Filter /FlateDecode +>> +stream +x��Ymo�H��_�z_�T��Hw��I�R_.�}8�"���j��M��o0��I�*��`vf�y�ٙ����Gb-� ���&//'/^3��/%�.o-#OJ��)�ĺ�[W6���˷�G�KXW�}-�ԡ�g���u��",�4Ѣ�W��&$�E6=y�[�xru��9<{k�F߳�����C�3�^Z�?�^R��KI��<W�S�m��d��ʵ��^� ^�?���~^��y��ş''�..�ۨ|Ol9���=Z��-�����,]qTD��PA<%�^/�hw����OJ��8� Vj3#����۳4����H�h�Q��J���|��� ^�ZGI��ԑ����Z]��A� +�!�����4�ӆ)�!*���o#Si��i�<��@u��0ˮ ��k_��a��� �����o�� �3 +���)�aCqg.��)*Q����T�M �B#]���i�2D�,~�Rn�Y�B�"v^�0L�#��.���R�|�l���:4I�%9���B%�!U>D�J �!JA��D������"�;Ҥl&��s�e�h�M�3�ٱ6[`#�Ժm�ye�mm�*ЮSԗH +��v!�*�a�0z�#�!(�)`L&�{���3�����0:�f/��&�`��qF�t�c�0�p�((=J����2o�U|.Ơ��o��t]@�8��Pjmns����=�:^`5X��!ÖT�)ݿ>�\��.>@V1���u�mU���M-�T�֡f#��fc��lb]5�����}t�n62�\�,�Go�I�a��c�����}'���M������x�ר��o�8u�>l$_Ϡ��o�˪�w��tz(hs������1խ[�ư�~�Qb�K�v��+�0C]� ����h����2j�o�F�U�-�#fB�O�0M(g�3�03���x��� B�H� Wwy��Yes;&j�H�]�C��F�&^-�+;���X]�W����O���ʲ �rQ秸�Ѧ�߲���_�d�\�U�t��7$��G���_��<J�]�"|,��&[� � +L{�ٸV�n��4�T�RI����<����r����а�Z+cZ�E���]Y��hXdѽ��0��+�:��1K_��Y5*5)ޭV���=d^tʂ#�l��ŅI `��F��RP�h�:��͔͌�o�K�,�; -�<�����8��_�Pːn\m���]�X���֚YZ(��`��p��N��m�T�ʒ�������ATIY����!�2��}�6��h^�B�Mx�To�~c"Ǭ�^p�{��Y(�r<ȿ庒��{�u�����p�Z�v�y�CQo�=����������қ(L][-�k@U������]%��5Ғ�ւ���wM�,�m�ng�ȟl��W�h-(���c Q���+FmF�G���S]�Ӫ=�wE�v �7���5n�n-<�[Xߥ�f��u���ۖ���{�8ԧ���� @��g#�����902?k]�<�j��$�W�{~�%@�Qŏ���t��@JQZ-�0�� c���74��l4t����'���%�7kx�!?���x�_��� �ނ�K2K�~C}y��!���K�:�!%�3X#��}�T"�_H/�b�?i��7�aR���.?"��Y����=�z��������6��I미�����lJ�@R� �L}����`�4����z��U�u�_ƓDB +endstream +endobj +4554 0 obj +<< +/Type /Page +/Contents 4555 0 R +/Resources 4553 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4528 0 R +/Annots [ 4530 0 R 4531 0 R 4532 0 R 4533 0 R 4534 0 R 4535 0 R 4536 0 R 4537 0 R 4538 0 R 4539 0 R 4540 0 R 4541 0 R 4542 0 R 4543 0 R 4544 0 R 4545 0 R 4546 0 R 4547 0 R 4548 0 R 4549 0 R 4550 0 R 4551 0 R 4552 0 R ] +>> +endobj +4530 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [96.006 466.02 164.752 475.683] +/A << /S /GoTo /D (combinatorics_8h_a1249f9e7a382225c0889b8ef630d6509) >> +>> +endobj +4531 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [228.636 466.02 295.893 475.683] +/A << /S /GoTo /D (combinatorics_8h_a744ae7aa581aa908643d95d470394872) >> +>> +endobj +4532 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [354.772 466.02 434.484 475.683] +/A << /S /GoTo /D (combinatorics_8h_af92c32bbf9a391a055cb472b6f43c498) >> +>> +endobj +4533 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.974 184.553 230.365 194.821] +/A << /S /GoTo /D (damped__newton__raphson_8c_a0cf3dc5e334091bc43820fa1d8e86c14) >> +>> +endobj +4534 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.864 185.364 377.526 194.516] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4535 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [202.807 173.409 236.469 182.561] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4536 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [384.514 173.409 418.175 182.561] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4537 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.325 173.409 487.987 182.561] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4538 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [175.773 161.454 209.434 170.606] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4539 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.99 161.454 276.001 170.911] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4540 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.27 133.433 202.74 143.809] +/A << /S /GoTo /D (damped__newton__raphson_8c_a46f90a02170f4f35f9b3bdbc5c65271a) >> +>> +endobj +4541 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.417 134.353 328.078 143.505] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4542 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [458.425 134.353 492.087 143.505] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4543 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 122.397 128.438 131.549] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4544 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [245.756 122.397 279.417 131.549] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4545 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [311.973 122.397 345.983 131.854] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4546 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.379 94.377 161.727 104.753] +/A << /S /GoTo /D (damped__newton__raphson_8c_acd5be84f1d01dfb379d85cc8aef8b65e) >> +>> +endobj +4547 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [245.95 95.296 279.611 104.448] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4548 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [406.917 95.296 440.578 104.448] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4549 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [472.936 95.296 506.597 104.448] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4550 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.117 83.341 237.778 92.493] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4551 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [270.334 83.341 304.345 92.798] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4552 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.914 83.341 367.575 92.493] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4556 0 obj +<< +/D [4554 0 R /XYZ 69.866 801.979 null] +>> +endobj +4529 0 obj +<< +/D [4554 0 R /XYZ 70.866 723.375 null] +>> +endobj +326 0 obj +<< +/D [4554 0 R /XYZ 70.866 696.18 null] +>> +endobj +4557 0 obj +<< +/D [4554 0 R /XYZ 70.866 564.869 null] +>> +endobj +4062 0 obj +<< +/D [4554 0 R /XYZ 70.866 401.89 null] +>> +endobj +330 0 obj +<< +/D [4554 0 R /XYZ 70.866 385.851 null] +>> +endobj +4558 0 obj +<< +/D [4554 0 R /XYZ 70.866 222.786 null] +>> +endobj +4553 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4573 0 obj +<< +/Length 1673 +/Filter /FlateDecode +>> +stream +x�՚[s�6���~43�"ɖ/omg�L�3;۔�&�A����%����ȖA��K2c��ߑ�dn�߈��'��ظ��6���Z��!�q,c�6\�<�1\�"���h��錺�� +�-_->%��Y��"��y��e}�m���_O 6yƓ�����e���y~?�}>�1!��6�Π�!���2�<>cc��`����՝�a31ۂ������N��|G��!�a 2������������en�0M��7��WR���E���Z�x�'E��╫ɩ��S��=Q�<�I�? +�M����� {��!|��|�d}�'���B�s�gZ��i�6�̔&b1JeT���j u�&�$M�0��z%���4�Zy��\�P��(o���#���8n��Sj�e� +!�$���`P�����Y-�w�}�v�ח �C�Vs��h�}�0�EZ��0�e������/a�F�r��3��x˵C�f��E=cfS����F%n�e�ܧ�s�,@��V B�\�|�J;t��f�H�1��w1� \�I�-`�UOժ?��PG�� ��cm�ʚOk���6]/"�l��O�f��A��'9*bh���O�&�FdR���H�ڊ2�-s����7���"ȲG�5����/��Y��K�u�XUN�z&�(�W�>MV7�g +�m~�乙���EX,�24l��X���4\54��z�r?���O[MQ���a��҄~,2㱪���Z���>��>mt�e���lX1w�m8��8Li���ɣ~�O�X��ً�"��:���cr4y�/fx5y����FM�N��)Aj: (:������ȯ�P�e��:���e$��Y*���p%oۦ0��q�rf�[�ڥDJ����UW�r%�4` �״����k��]��k�nxI��(���Q3B|%=��t&���}i���q�,�y!ĉ����5Ĕ� ��6�P�~5+� �5D��j����¡Rj��ouX�/�|��7L��]���u�����l��a�!�: �y�9�j�f+���A��,K��ʨ���t1N���rۆ�:�c���.&�����P�!Q��ԺkC��3`fRO�j4��l�M=h��^��BL�66�K����. ANl�O6JCFD�"J������3� 3�L5�ߎx�|�m�z�T�u�G]m�(��HH� -6��+� �3_ 3��I5����4̶���aD��7L6rM�Z�<���}��Y��QSE<��;Y�}j�">A�u���P�6�6?N�@�Z�T��rY���R��/i��zعܓθ�A>�Ӑ츰�`� +3l��@�X���ãm����a�A:p`?-����w�ҳ�fO�i��o���zq�]�@��ϓ�A�!Ae.�~:��ա�Y�iY��:̦�T�j�X�����֢�M���iT +Z�è�Z����R.I�( I� ���5�D�C�=g=fR�jtKl�=Ȁ�t�`[z���ApsZy�a��U��njCNwg�zz/��K�x�`�۱�Ӑ�R1�+�+�4�{�fRO�j���6'�'��]5-��u�{�-E�+�{���e$,�����AvG&p�^����=t[�-�͐���߉3��bW���y�.��������9���� +endstream +endobj +4572 0 obj +<< +/Type /Page +/Contents 4573 0 R +/Resources 4571 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4528 0 R +/Annots [ 4564 0 R 4565 0 R 4566 0 R 4567 0 R 4568 0 R 4569 0 R 4570 0 R ] +>> +endobj +4564 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 653.023 297.675 679.563] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4565 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 470.441 171.594 477.925] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4566 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 422.62 171.594 430.104] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4567 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 410.665 209.303 418.149] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4568 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 410.665 296.791 418.149] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4569 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 398.71 209.303 406.194] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4570 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 398.71 296.791 406.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4574 0 obj +<< +/D [4572 0 R /XYZ 69.866 801.979 null] +>> +endobj +334 0 obj +<< +/D [4572 0 R /XYZ 70.866 771.024 null] +>> +endobj +338 0 obj +<< +/D [4572 0 R /XYZ 70.866 638.779 null] +>> +endobj +4559 0 obj +<< +/D [4572 0 R /XYZ 70.866 592.221 null] +>> +endobj +342 0 obj +<< +/D [4572 0 R /XYZ 70.866 565.026 null] +>> +endobj +4576 0 obj +<< +/D [4572 0 R /XYZ 70.866 277.096 null] +>> +endobj +4571 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4590 0 obj +<< +/Length 1430 +/Filter /FlateDecode +>> +stream +x��YKs�8��+|4U������l�*���,�$E9�oa��M&���B�c��`��=��ح����W�۟$XV#,|}����� +4��d��)Pi)Q$I0]w!���M����m�^��d<�J�ߊ�&K�:��"7��?��_#�8 -��HS̳����&��H���Y�C�3x^��j�lGD�y4��]��#��5�6�7e^m��Ż��Qg:��O�F�;�L~m�2YXG�:)������������!�j�GJ3�-�ǘ���̸��*�]�c�dG3���"���b����"�YK��U���U�A5� ����1�aR&�<��Ft�L�Y�U��-����PeE�U�^{_t�2�d^�,^,�k��������;t�y��K���5a�D�bڬ��H4d��;)ܑ�Hh��L�@o�'\D��U'(n�g�vUW��+�;t������y4�f���be1 ���ۉ� D� (���(��q�4c�[�v!-x� �80F�܂-�ͣ��4H}��@m=�q%��٤y�g�Uю�ao�&���%'31��6�I,��e�[���(q���-Y/��a5�^gqY�A�� +��8��3/E�h�wu�eG�2�w�b��䈲�i�<n�*�ۮ��^���1��|mp�Ѱ#y�����۬z��������,���Տs�`����"�D� �?�xL��㣤�H�uҗ�lx�����(���v5�~vm&�ן�����G[��)�������Z "�P>gޒ4m 7URڧ�ج��,�0�%]8�u�!)+gP�؛OLٌ�NI��IV���cvR��7��̪�J�oz��N�aR)EVk�ҏ�9���>�U��g���$w �j�JG��W�i���3���m'Y*rY���0.�,�v3$��F�֍ �9Q-m�>� ,E� �cu�9"a{DD*MH4Q0N�j"�z�V� �����U X!\�)�<:u�8�Cu��F"�$P���Ӭ�7�����"=���`Ő���SH�9v��N�IW(���Ѓ��pl�J?ǺJ�#��ϱ��U�/���Zn�����ۃ�n�m�>/��u�.�p��&x�+X�S�"��������s���m����l�~?Ϻ�Q�lc�i�J�˨t���8�OHS4����I* T�RO�{�Ox�<�"-���z�����~b��K̞7�eұ/��[��<A�C�d�e��p���>��y�� �y������Q���m�{'h;�?k;�xIۖ����9�ړ��1ƞk�>���C�xa��8�RǬ�3.��ãxs�P�������FD ���=��.�w.[����=��s={ԧލ��S�P��匟;�c$�J�m� �aDR�����k��� +��뛻�wM���� +endstream +endobj +4589 0 obj +<< +/Type /Page +/Contents 4590 0 R +/Resources 4588 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4528 0 R +/Annots [ 4577 0 R 4578 0 R 4579 0 R 4580 0 R 4581 0 R ] +>> +endobj +4577 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 515.606 171.594 523.09] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4578 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 503.651 209.303 511.135] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4579 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 503.651 296.791 511.135] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4580 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 491.696 209.303 499.18] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4581 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 491.696 296.791 499.833] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4591 0 obj +<< +/D [4589 0 R /XYZ 69.866 801.979 null] +>> +endobj +4562 0 obj +<< +/D [4589 0 R /XYZ 70.866 637.386 null] +>> +endobj +346 0 obj +<< +/D [4589 0 R /XYZ 70.866 610.191 null] +>> +endobj +4592 0 obj +<< +/D [4589 0 R /XYZ 70.866 370.082 null] +>> +endobj +4563 0 obj +<< +/D [4589 0 R /XYZ 70.866 82.821 null] +>> +endobj +4588 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4615 0 obj +<< +/Length 1957 +/Filter /FlateDecode +>> +stream +x��ZKo�8��W �ߢ����C����j+�z���&�~�"e�A˶�E���293��̓C]��~&�c1�ޣ������&W��� +�d�݃�c�����"I���w?%�ٜ�j���u��xF��G�g�&Z?y��̀�U�O��Ì�i����~$<�b���f��������#;�J!E��H'�_����n<�X������!�|N�&��In��!��lN0��G���2N�(|���?� ����Q�c��ao�R�A��j9�K-c?�<�B��s_xsBP ���]e� +K� � L!*|�S�K�;l��1F�8ObVI��7��ۏ�S�<Nj2�-;�;�8C����0�l�_ߟ~u.Ǝo�Xk����l�����c��eb?F�Z�cهV��W�ط�)�;$�!�_k9{n��#��w�ӌ����U��<J�5�_��4*7����Z�}v<?@����-�o��d�S_0o{����Q��t�R!&�(�14h�.�L���"�! ����z[��Z>��|�KWyf�?Ϩ�V�w��m>�gW����քo�S�<��W�S��@�[v���El�O�6��כ\'����[���Ma��� �GVD�}�W�/��N�2+�F[m��<y�f����� +C���j�I`�)���O9�ښ���ֶP� �̉B���U�6�|��>��I&J�W�S�N�4L���!K�V)�V����h�q���iѲޕY��ȡ��pP}��ۊ�9XxC +������*����� ��$��Y}��+ +B���U)�{@ �s��Ҵ������ls��K�uf�I��[�w�C��yU�?Z3�GnL� P��a��0��#�хPئa�����:�a#U:�R�f�H�N��t&q�X>`��6.�^�x�Y�[ڣW�2��Z�ɰ܂��]��|�?�Xc��i�и�O�0����Q��WC�(�iI�A�����s�����I��� +�S�&QS���Ax�< +�D��-y��6�N]��ոY�\�-Q�T��y�|���>R�_�ދdX��a�)��� +Q"N`�8�n�6��%{����[���ͥ8������>m����o�6��9A�eG��dX�R��op��pBռ}�o��S��nSq��p$����M��'���~�i�}d�ug[�g���B֝/������O3b*4[�ъJ�_��Pܮ���$��m�&4��~_�5�c����<�{�E/�iu�LB�qu�}dY?��M��l�q�c��8X�ܙ��B�}�D�8,Qmj�� �NOcfy|Uv�7m�� H�Z����|OY��mu�@ M~�6�(�UY}I�o�^��7���7��u�]��V�"��f�nȾ3�Z��n�+�tg�i�ڱ;�{��UI݃��u����D"_�m�`���:B6�Eܽg&�mF������hF�«�95��R��o�@�[nݥ�7�հ̷�5����+��e��]o�B���)^W�+�3��`���K����t���3�����lg*����h�a�����+�t%F�Gn/���1�"��Z�3�G�͜X�߽��G��s�i���1�Tlz �%�d�xvut�_GX��#1Aq��к3��śE�C�H7�i��(b���G���ĝ�z�"A;��@5>m= +>z� oa~�uws\7�Sy7���}�șӀ"�|�� P��+�Ш��2�\d~5���@Z��C7�{pw��K=����C�0vk �@�1��"�)"����#�;/+?���cΑ ���^�Ʉ= +�N�v�̓�o�2�(�oE� �$�دq�T"�#�G ��~�(qD�1���������jjT?퍊�z_�jq�+p��o���7�\ )���~!*]g��>J��ڷᲮ���+�� +endstream +endobj +4614 0 obj +<< +/Type /Page +/Contents 4615 0 R +/Resources 4613 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4528 0 R +/Annots [ 4582 0 R 4583 0 R 4584 0 R 4585 0 R 4586 0 R 4587 0 R 4593 0 R 4594 0 R 4595 0 R 4596 0 R 4597 0 R 4598 0 R 4599 0 R 4600 0 R 4601 0 R 4602 0 R 4603 0 R 4604 0 R 4605 0 R 4606 0 R 4607 0 R 4608 0 R 4609 0 R 4610 0 R 4611 0 R 4612 0 R ] +>> +endobj +4582 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4583 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 679.342 209.303 686.825] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4584 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 679.342 296.791 686.825] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4585 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 667.386 209.303 674.87] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4586 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 667.386 296.791 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4587 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 655.431 171.594 662.915] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4593 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.974 183.291 230.365 193.559] +/A << /S /GoTo /D (damped__newton__raphson_8h_a0cf3dc5e334091bc43820fa1d8e86c14) >> +>> +endobj +4594 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.864 184.102 377.526 193.254] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4595 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [202.807 172.147 236.469 181.299] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4596 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [384.514 172.147 418.175 181.299] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4597 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.325 172.147 487.987 181.299] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4598 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [175.773 160.192 209.434 169.344] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4599 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.99 160.192 276.001 169.648] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4600 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.27 132.676 202.74 143.052] +/A << /S /GoTo /D (damped__newton__raphson_8h_a46f90a02170f4f35f9b3bdbc5c65271a) >> +>> +endobj +4601 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.417 133.595 328.078 142.747] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4602 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [458.425 133.595 492.087 142.747] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4603 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 121.64 128.438 130.792] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4604 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [245.756 121.64 279.417 130.792] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4605 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [311.973 121.64 345.983 131.097] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4606 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.379 94.125 161.727 104.5] +/A << /S /GoTo /D (damped__newton__raphson_8h_acd5be84f1d01dfb379d85cc8aef8b65e) >> +>> +endobj +4607 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [245.95 95.044 279.611 104.196] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4608 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [406.917 95.044 440.578 104.196] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4609 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [472.936 95.044 506.597 104.196] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4610 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.117 83.088 237.778 92.24] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4611 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [270.334 83.088 304.345 92.545] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4612 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.914 83.088 367.575 92.24] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4616 0 obj +<< +/D [4614 0 R /XYZ 69.866 801.979 null] +>> +endobj +350 0 obj +<< +/D [4614 0 R /XYZ 70.866 771.024 null] +>> +endobj +4617 0 obj +<< +/D [4614 0 R /XYZ 70.866 533.817 null] +>> +endobj +4063 0 obj +<< +/D [4614 0 R /XYZ 70.866 353.42 null] +>> +endobj +354 0 obj +<< +/D [4614 0 R /XYZ 70.866 337.619 null] +>> +endobj +4618 0 obj +<< +/D [4614 0 R /XYZ 70.866 219.351 null] +>> +endobj +4613 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4631 0 obj +<< +/Length 1662 +/Filter /FlateDecode +>> +stream +x�՚[s�6���)x�g֊$$!���6�fgv�[?5��;t�x�d�~����(���!c��\��t$|����X�l�������o��ͭ�X�B��bc9I!,ǥHk���L��� �l&���m��9u��c�*"?ν<Hb�t��b�cB�%��^QJ$)�V���[k�wo��+��e��b�F���=������`�pW4���O���� �x���=�p�]��U�jon�ۈ[s� �Y��G�}P�l���\{Ѯ���(��̓��⫷{�@����$/�4ȟ#T�,P�kO�$�k~�=�B?�~&�g��/3ʧ�D4#xZ�y0/�zZǫË�8b_]/eU?VZoY�G��(�w F�����z���|RD�SE�댲i�?C- �y��"@`N$W{��nW~}�(�jg߭��'��\P�%+�# �in�����%�7hS̟��Gk���1ms`צҚ3�0��Q��m�i댈�A rr�h*�ѭ�XƾJ��a�V0|���!F�&�� ��zX4��Z�-�X +�9�nq�)���a͖��N���2��m�����\7$н��6�����ݤNꋿʓ����ؖ9f#l���W����z�q���h��h�I���`�2�Z= +�e�EkϜ&���3��]v�乙���e�/�"�|h�Y�|�/I��i����ў�0�j�0� �0�l~h�I�e��Ȭ�rLu�7j�m�t6K�[��}+{D2X1��m}�3�0�-a�6&�X�!?����^��i�jֹ�5�w��j�o&�o�<��h�QT+Z#HC%��@��������z��|��g�Ij�]����%X�f��?=*����R�r)�����:i啍^ � X�9������9�ڮT��W�~I����7}��!�=��t����]m�q�ԋ�\��i���TS�[�Xu�Y�*����jgnQ���0�a�T +e9ު���(!I]�����TQ�@�����NXi����a�#F�@�m�0A�-��lIR�9�~�&���(���t5�8�#��6�� +�1]�vPp��Q���Ш����������؆�4��4�p6̦���^Ҳ\M�O�K����. ANl�O6JCF"�=� C������3� 3i�i���|��C�0̴5��ua \���x#�q��0|W���@T�3_ 3iƩit���!i�m3IG���Uoo��8�U�xS��$(��A5J���H��<9<\vj�".A�> �@�F��6�]�>M�ij�V����W�|J�x����t��H�\<�X���q`���f$���=c�h�O�h}�TPG= s�ґ�i)����cԞ=�{�N�5|��Gڅ$h�<y�QT���C!� P�����y��l�ImZmK�Wc}0�z�����, EkyuY�v��]J@��#I��Ic� cט�D�9g=f�Z������{�)�g�-=uF��Ap}Z��â1#یF39eܟ����.y�%�c���q��+Ы^�ԯ{�f�Lo��5�O�O�;,3��P�����zQ��}�^�n�9���3���5��L��^����=t+��3�9�O$����:�?�v�/���j����U�˧~||����� +endstream +endobj +4630 0 obj +<< +/Type /Page +/Contents 4631 0 R +/Resources 4629 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4528 0 R +/Annots [ 4622 0 R 4623 0 R 4624 0 R 4625 0 R 4626 0 R 4627 0 R 4628 0 R ] +>> +endobj +4622 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 653.023 297.675 679.563] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4623 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 470.441 171.594 477.925] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4624 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 422.62 171.594 430.104] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4625 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 410.665 209.303 418.149] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4626 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 410.665 296.791 418.149] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4627 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 398.71 209.303 406.194] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4628 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 398.71 296.791 406.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4632 0 obj +<< +/D [4630 0 R /XYZ 69.866 801.979 null] +>> +endobj +358 0 obj +<< +/D [4630 0 R /XYZ 70.866 771.024 null] +>> +endobj +362 0 obj +<< +/D [4630 0 R /XYZ 70.866 638.779 null] +>> +endobj +4619 0 obj +<< +/D [4630 0 R /XYZ 70.866 592.221 null] +>> +endobj +366 0 obj +<< +/D [4630 0 R /XYZ 70.866 565.026 null] +>> +endobj +4633 0 obj +<< +/D [4630 0 R /XYZ 70.866 277.096 null] +>> +endobj +4629 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4647 0 obj +<< +/Length 1435 +/Filter /FlateDecode +>> +stream +x��YKs�8��Wp�UcEo���l�*��٬oI�Elb�e 8���mY��-�1�^���@����VK����$���`�����ttu�T�Q$%�O��HK��"I��"� F|<�J��8{N�<���|V�ϫ���� +\�����&Oc�äL�y$5<�j�0��9�0��U�5Ҕ�lt����� 0b�~o%���gp����:�^��\�k�x\�I%�o�I�)�jk�.��5�:�S�@��h���_�ɯMZ&�rZ'��9��"��r��&{��Ȩ &�q�4�@ߒ{�i�����NsQF��x�W�E���P����&gncP�!Ȥq�i̚U� #:\&���*J�av��?�D��"ɺ�g��7:|�x2��r/�_g��������;t�y��K���5a�D�b��s�D$�孫��c'�;R M���|�AD)�:A�pY�e۬�;vm3�;t�����}�h�fbm1 ���+T�"��)�8B0���\�^6�DZ0�FA$0q`� -�[�GC-i�� ����z& �J��I�Z�j�&�5LCm�&���%'31�� +�4�r�:̭)�#J\+xq)���u�!̢F��,.�;��R��'�s�HM������S�"�NZ�<��e�!� ���C^w�,�������y����a�� �[�l��3ho����X� >���eq]��~���.?<!%�n�����c�%ED�����Ơ�����G�=oj���+w�v���Ӿ�����hW�{J�]�\\/ Li�ʼKҴ��TIi�U�Y;��0��K�pb�4����AEco>1�f� `��,���:ɪ��}c�nBj��&���*���ޠ�3e�VJ�lm]�Q@<�M�UZ�mqs�{�Lr7p��n�H��u�%��3����$]*r]���0.�,�N3$��F�э �9>�Q-�>� ,E���cu�9"agDD*MH4C��S�������J0A`�P��������̣SG�s=Tg�m$H%z:;ê��V�Dz3!��!���SH�9v��,2�ȓ�P���0���pl�J?ǺJ�#��ϱ��u�/��~-7IU��������ζt��A���[a8na<q�,�)ne->��a*���*m�#-#<��ϳ��AT:ۘ}����2*]�a�D#�����"D`�y�JUz��S�>��1��H��i���A��r4s�������Y�L����-�c�� �!N��2�^��|�?@^�tB2Osw�B?u;*?���~�m9�gm�/i�e{�d��v��z����O6@�04^D��1�<p���6+����p+�laG�����4���si�Q�.m���C��փ�ƧOg�����wb{t�,�9v9��������/+�|�ݜ ĵ��o�q��� ��p�� +endstream +endobj +4646 0 obj +<< +/Type /Page +/Contents 4647 0 R +/Resources 4645 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4650 0 R +/Annots [ 4634 0 R 4635 0 R 4636 0 R 4637 0 R 4638 0 R ] +>> +endobj +4634 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 515.606 171.594 523.09] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4635 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 503.651 209.303 511.135] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4636 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 503.651 296.791 511.135] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4637 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 491.696 209.303 499.18] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4638 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 491.696 296.791 499.833] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4648 0 obj +<< +/D [4646 0 R /XYZ 69.866 801.979 null] +>> +endobj +4620 0 obj +<< +/D [4646 0 R /XYZ 70.866 637.386 null] +>> +endobj +370 0 obj +<< +/D [4646 0 R /XYZ 70.866 610.191 null] +>> +endobj +4649 0 obj +<< +/D [4646 0 R /XYZ 70.866 370.082 null] +>> +endobj +4621 0 obj +<< +/D [4646 0 R /XYZ 70.866 82.821 null] +>> +endobj +4645 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4663 0 obj +<< +/Length 1744 +/Filter /FlateDecode +>> +stream +x��YMo�6��Wۋ �~����,��b���b˶ +[�Jr6�_ߡDʒE�P�`Ȗ�����rx�p��x�b�����/��7��� +�d����1RRz~@�$���{r5z~���Ÿ�~���d���W�O�d���2*�,�M��Zb�4�J!E�7Y ��7���<@���j��`Hpߗ�_�?O�R���#�(b�1���9��p/�(|{�Çhon��|��h4�AJ��5K������� R9��/�1!(��I�R�eM�S� +�zn��a�ش��y�i�8���ύ��N!y�'e��,��w�8C���-�������g�`L�.�����V�V{�P@,��́ s�Ķ� �1�}���Y���Ĩ�����j��9�8h��VT���2I��g�t%���?�ﭢ2O��8w�1��<?@����;�d/It��)��wW���7Q�=t���BL��\��A+tAg��Q�n�G�ZoJO˅�2��,�Q���:�bX���p�����5Q<�Qf���>Z/ +�?Z�uW"�I�X�*��qSĆ�Xd���^��z�&S�l�A����ؓ�O�G"������ٗ��t�R}��6s[��m�j셦D�����W�������9��P��kn��m��3-�"�<c���:#)��Կ��y��� �D��O��j��u.����C�� )���ۈ�a�G����dXt�weVA$"�Pbe8�~����:O`H�88��9"���J�~p��!�!JI"�LVO; +B��^J)�s@ �sX��U����.��j��%���V�f�b�]6�Y��VUk}t,f +_81}y�x�*�]Q+�+��GBa�+��� +��ҩ�i�_ar:��\��\�Q�|E/�|HY�[ړW�2�JZ�amAR��vLY��?AX��e�bl�'J���= +��ܭ��E +:Ӓ�������s�я���I���)���-�6���Ax�< +�D��<^E�Y���h�ѸU��٢^�C=�WϷ��<�#��u� +è;L��P/W�q�z/�t��M��굇�#ҽl(n鶇�n���'&}ڮ�wo�t{��}�Q�9��0�� +)&�����&�����m�ڽ�֭�6�N��H�� +���V�\�K�֧��9�����+ $�Ru�c��f�H'L��SA����[QY?u������o�e٩�iS� ��BU�A�m�F��7�>���y�N��Uu�\�f�l �c�ei�eY��8ͳ"u\C�^w:o�Bz_/�I�h�u�CS�i�,���Q�N/چ�'xjkU�7��dq#�ꆁ@� :�Ve$��A ��an�IQ�/QPzѤf�^��;�G PW�$R�@�s����&+MԸ"5�����?v-;qnG:�$�d���i�������:�|��4 +2Z����j��f�9pƁ�8a�JwcYU%�P�����v��. +�A ���6%�na��}"�����(;UBGE[�]4ǻ������Jf�n�����~Zӽ�+<�C�ޚw���,|7���f��/�V)��7%Xh1@�%�VmpkRS|l�D�/tH5�ƺj��V��H��%�^�q����,Lvqt- {/�vr�ДL����i�1���}���2��8*'�`�;1�6��}ҵZ����Z�g��3�u���~�{w{�.�%�NF�����Ii��}����)� �����OwM�NS�e +endstream +endobj +4662 0 obj +<< +/Type /Page +/Contents 4663 0 R +/Resources 4661 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4650 0 R +/Annots [ 4639 0 R 4640 0 R 4641 0 R 4642 0 R 4643 0 R 4644 0 R 4651 0 R 4652 0 R 4653 0 R 4654 0 R 4655 0 R 4656 0 R 4657 0 R 4658 0 R 4659 0 R 4660 0 R ] +>> +endobj +4639 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4640 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 679.342 209.303 686.825] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4641 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 679.342 296.791 686.825] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4642 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 667.386 209.303 674.87] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4643 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 667.386 296.791 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4644 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 655.431 171.594 662.915] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4651 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 124.393 128.787 133.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4652 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 124.393 184.109 134.056] +/A << /S /GoTo /D (dist__based__fi_8c_a67e1cf0904bc0be1258e5fb4cb292a9a) >> +>> +endobj +4653 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [187.595 124.393 221.605 133.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4654 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.499 124.393 290.51 133.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4655 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.853 124.393 374.864 133.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4656 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.242 95.961 175.048 105.624] +/A << /S /GoTo /D (dist__based__fi_8c_a2a1d8806de5f7f5131be1fbd706c17fa) >> +>> +endobj +4657 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.329 95.961 314.34 105.418] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4658 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [455.248 95.961 489.259 105.418] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4659 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 84.006 128.787 93.463] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4660 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.616 84.006 198.626 93.463] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4664 0 obj +<< +/D [4662 0 R /XYZ 69.866 801.979 null] +>> +endobj +374 0 obj +<< +/D [4662 0 R /XYZ 70.866 771.024 null] +>> +endobj +4665 0 obj +<< +/D [4662 0 R /XYZ 70.866 533.817 null] +>> +endobj +4064 0 obj +<< +/D [4662 0 R /XYZ 70.866 330.05 null] +>> +endobj +378 0 obj +<< +/D [4662 0 R /XYZ 70.866 313.006 null] +>> +endobj +4666 0 obj +<< +/D [4662 0 R /XYZ 70.866 166.387 null] +>> +endobj +4661 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4680 0 obj +<< +/Length 1339 +/Filter /FlateDecode +>> +stream +x��YMo�H��W�K�NA�mw�I�i5��i="v;A1���̯�j��� ckV{� 꽪z]�]���}�豘����1�\�p�|xG�5����d��G�|�%؝Θ��U\��CT�U������M�Q��N���8*W�RM�矐��ZeK����|���C������Z&��=A+��'D0|��z3A�cB۠�'u���� ��Ť���%�8ת�����V�2�_�8K5��4�BЌS������Yn�[o�e�Q�[���)�̪X�g�lm�����(URL���**�;3W���-x��.|2T~�2�l�'�Ӳ`�~0�!z3�c"\c���9_�CZ��"��5��gT�}�l\�EV��s� �����-N�x��=�|�x�Z�5��s棙��\�����i��:[n���>W-C|$�u��vYo(x�_�K��3��ā$��rk�5�!�^ǂy��Tj� �B��A��6NK?, F�܇�:x�Z�/�\��6�`��#�?ڕrw;9�9�6Z�IT��wو{�%�A;�om&�~�^6��l*챨�X�U���Љ��/vx݄�#���V�^���=�B`�34c +�y�Z�B���,���j5T¢�+YU��©�m͝?���d�B�6QY����&��l7e�R�P��z��7ՠYJJ(��3��/��Fy��R�SJ�����^š=r��U�u5�W]؆nk.�J9��l�� �ߘ�Ze���3��a�m���n��DB��Bz�P +}ZX�Yu��'=$|�e�ǒh�pX`mn�Z핰[3�^��`���]�H�}z��βa�q,������|(W��ٯ�&h��A��]羾�8>��k�)�r�f�v7�*��-�,_�)�����<ٕ���;��e� +S@t�E� ���G�� ���5�a!���b~���aw�m?h�5Eh�d/�����4x� �A.��]!lP���#�*�� �5���ٗ�p�^�(��g��^��̸�0��35w� �9 +��{�o�<�l[�8�~�5Q�'�n�^�5)Tǔc'�c�3G�tU�����������[�dy�O]I� )Δ��6�����0 ��i4ޟ��Ҟ)!N�N�vs�_�z���q������5d��0e�y;<RF�Sm�0���[�� �u�PC�!���}8�n��0{)�Ğ�[_���Q�5�b��v�9�F�x)?2�@���`�Ճ�;����uv��_>���Q�^.��Q�a��e�ߌr4�2��,��xp��J=�:���<̤���$\(�VV�*U��q�Z\g����G�D�2� B��� +endstream +endobj +4679 0 obj +<< +/Type /Page +/Contents 4680 0 R +/Resources 4678 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4650 0 R +/Annots [ 4669 0 R 4670 0 R 4671 0 R 4672 0 R 4673 0 R 4674 0 R 4675 0 R 4676 0 R 4677 0 R ] +>> +endobj +4669 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 677.951 297.675 704.491] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4670 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 507.324 171.594 515.462] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4671 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 495.369 171.594 503.507] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4672 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 483.414 171.594 491.551] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4673 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 471.459 171.594 479.596] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4674 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 162.34 110.119 170.478] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4675 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 150.385 171.594 158.523] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4676 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 138.43 171.594 146.567] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4677 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 126.475 171.594 134.612] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4681 0 obj +<< +/D [4679 0 R /XYZ 69.866 801.979 null] +>> +endobj +382 0 obj +<< +/D [4679 0 R /XYZ 70.866 771.024 null] +>> +endobj +386 0 obj +<< +/D [4679 0 R /XYZ 70.866 663.707 null] +>> +endobj +4668 0 obj +<< +/D [4679 0 R /XYZ 70.866 617.149 null] +>> +endobj +390 0 obj +<< +/D [4679 0 R /XYZ 70.866 589.954 null] +>> +endobj +4682 0 obj +<< +/D [4679 0 R /XYZ 70.866 410.02 null] +>> +endobj +4667 0 obj +<< +/D [4679 0 R /XYZ 70.866 244.792 null] +>> +endobj +394 0 obj +<< +/D [4679 0 R /XYZ 70.866 217.776 null] +>> +endobj +4678 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4700 0 obj +<< +/Length 1370 +/Filter /FlateDecode +>> +stream +x��XMs�6��W`ҋ4!� ���v{ƹ��N�=Z�,�钔��wA�$Y��<������۷K~��|��1���>|�� +�8����)�})� +�M��v(��~r�8��{�O/������l��q�Q���ϓ�? +; ��E��>��l=��'h��F`1�ѿ��5�����{���QyI0�Y�ς��,)�=����a�u���ì�̙���9�{<�D����w�A1�)`B�>����P�(C"P���4!�9f)�c�-"����`�B�z(QX�� ��Dq~;S_�{�������Z �~�L��#�g�W%egI�Σ8�uV>H�/-���CE�q2|�fzD�w���������C��39x� �A�aO�Y�������:h�ӷ��4�yX��X�����T�3KƬ��=,<�]� v��eò�� +n� +����X����,< ���u��'���Ͻ:�<�T�ɓ�v��]vPX!�g1�xGN��)/�x��M7������1�O8���i��.�+����y���kNY���s�EU���:�H=�t�B���f*/��)1�T#s�j����C����<Ƴ��� �V�}�m�0�E�m�>eo�0bd����;�A���Χד����vxv�vG +W�1�2P(H!x�\��� &�� �������J]a��0͠C+�>o ��ijm^\�]��P��d���5Bd�Y��Y5��d�E���%�g� �5c 7�`2}���H�D�Nz���˹���,��a��yǘhՎ��������ݎ��M�>R���|���9��$�>���k��3����F��}v���;�*�kh�C���Dd��0��(�� ApU�'T����'�G�q��v�ƒ�e��0����)^���4j�1;'6���mv�il�x�ޓ#��������v����`�0�A>��2�,Ł�� ���"�z���sɺh|+m ]��M۶.��@|X<,ܘo���Q\�<��`m_�l�F��IOO�"�C{��5�_`�d�)�f��l�%8t���W�Zb�� ����r�{B�ח��/�a�����?���F�/6���Ԃ纥+�L�>�/U̦�����72�PX���*�M�q3FՑ���� �ňYю[�U<s��_ [ɲ<����X ���a�bW��ݲ�rslmt��S�-l^�x����~l{c����!��1� ���)5��Ћ:tAˤ��l��f���L}����f��2� � �/\����� �߽z���K2��ώ����Ã�(���Uc��J�:�^��ft����>���0�ͳ +endstream +endobj +4699 0 obj +<< +/Type /Page +/Contents 4700 0 R +/Resources 4698 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4650 0 R +/Annots [ 4683 0 R 4684 0 R 4685 0 R 4686 0 R 4687 0 R 4688 0 R 4689 0 R 4690 0 R 4691 0 R 4692 0 R 4693 0 R 4694 0 R 4695 0 R 4696 0 R 4697 0 R ] +>> +endobj +4683 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 444.526 128.787 453.982] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4684 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 444.526 184.109 454.189] +/A << /S /GoTo /D (dist__based__fi_8h_a67e1cf0904bc0be1258e5fb4cb292a9a) >> +>> +endobj +4685 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [187.595 444.526 221.605 453.982] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4686 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.499 444.526 290.51 453.982] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4687 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.853 444.526 374.864 453.982] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4688 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.242 418.194 175.048 427.857] +/A << /S /GoTo /D (dist__based__fi_8h_a2a1d8806de5f7f5131be1fbd706c17fa) >> +>> +endobj +4689 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.329 418.194 314.34 427.65] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4690 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [455.248 418.194 489.259 427.65] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4691 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 406.238 128.787 415.695] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4692 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.616 406.238 198.626 415.695] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4693 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 293.82 297.675 320.36] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4694 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 151.584 171.594 159.721] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4695 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 139.629 171.594 147.766] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4696 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 127.674 171.594 135.811] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4697 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 115.719 171.594 123.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4701 0 obj +<< +/D [4699 0 R /XYZ 69.866 801.979 null] +>> +endobj +4702 0 obj +<< +/D [4699 0 R /XYZ 70.866 771.024 null] +>> +endobj +4065 0 obj +<< +/D [4699 0 R /XYZ 70.866 595.948 null] +>> +endobj +398 0 obj +<< +/D [4699 0 R /XYZ 70.866 580.271 null] +>> +endobj +4703 0 obj +<< +/D [4699 0 R /XYZ 70.866 478.636 null] +>> +endobj +402 0 obj +<< +/D [4699 0 R /XYZ 70.866 377.945 null] +>> +endobj +406 0 obj +<< +/D [4699 0 R /XYZ 70.866 280.311 null] +>> +endobj +4704 0 obj +<< +/D [4699 0 R /XYZ 70.866 247.213 null] +>> +endobj +410 0 obj +<< +/D [4699 0 R /XYZ 70.866 220.754 null] +>> +endobj +4698 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4717 0 obj +<< +/Length 1480 +/Filter /FlateDecode +>> +stream +xڽ�Mo�H���h���q��i���l"尚�������ʆ,��d�VCc��`>�9D8vSU��tU�p�|�J�m6�����������9��<)���XF����Q$��\[�6�ș/����(��� ��?�*y���ʟn�}X~z7s��0 ������?-�g,g����9�r]�Rn���'l��{#���b���!�|�[��:��꣺��b��$��z6_��A�<L��YYe�!�gp툐 ��#�� ����<����9"���rI��a*Ւ�Qj9�!��X�(n� �b��R�w��=,�N�p�$Q�g~�py=�p�xll~-�!�i�����(�M6�5�i�!�9�a_ey�GI�͉�Q;\N%�lL�mZ� 2��I64q�#.�B��g�ƹ4Wwz$�?��|A\a?U����c��N�K�p��a�T��dl�$�:��<̮�ੴ�tj*�dC���n��� �$s{�9Υ̺�� ��o��~4�h�����oy����h�&���q���A� Ľ�S��"�#��`p�K3�u�k�mN��.s82#���� �i���jyox�-^� +Oan� ͜��ǯ���+��z��q>��5�n@7.t��4MҬl�n�į��� ^W)0ˣ���%�"5���sj#&>��6�k[�bj�x��_�oӸX�Vyy��:����,.�cM9�M�5Zk A,��pi�䡾?z����H�b�G/A���6��.��~���_�_yJ}�t�7,0���g�[m�����!�� �qGܙ��P%�Ꞅ�DQ�c|>�ʐ��j�ҭު���;�0&�4U����M�~�в��B6�l�y�����2w�� y��on=Z��f�Rkj���~�Y�'z=��?�sT��6^�e5��ܳ��A�IM5i��c1��`��ʏ��xu:Z� +NgG�E����%�`��ՙ�=�Ã�X-wQv�cԕ6��b�.3c����At£��n^��Jn��9�FY��9�*B�y�n! �Y��@k��%�ł���Y�U2"�����*=b-~� .�18͆fС�\��Z��ap�K3�u��D��q1�9��0�à_F4R8xm��ob&�fCS(\��c�TX�q/P(��� ǹ4SXw +u�G���8�f�Ɜ�ެ�Si�0!0�F�p_18&B�J=�i�l#N�^c(E�A��"�y���]����/��$tDe LQ��WZT�RZI�$�tnS�ry�[�|�A��)��0����Ƿܷ��������$��{����R���v#�$���轚�6�ձi�OO��2�٢�ū��ZGIHm�`���J��j��u l��v�(�������s�Q�TV�� +��Zh��B�+�c��U���c�v�W��)���πw�իsP�����%=��0�S>�s�%Q����V!h��y���pX� +endstream +endobj +4716 0 obj +<< +/Type /Page +/Contents 4717 0 R +/Resources 4715 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4650 0 R +/Annots [ 4706 0 R 4707 0 R 4708 0 R 4709 0 R ] +>> +endobj +4706 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 514.194 110.119 522.331] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4707 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 502.239 171.594 510.376] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4708 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 490.284 171.594 498.421] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4709 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 478.328 171.594 486.466] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4718 0 obj +<< +/D [4716 0 R /XYZ 69.866 801.979 null] +>> +endobj +4719 0 obj +<< +/D [4716 0 R /XYZ 70.866 771.024 null] +>> +endobj +4705 0 obj +<< +/D [4716 0 R /XYZ 70.866 600.109 null] +>> +endobj +414 0 obj +<< +/D [4716 0 R /XYZ 70.866 572.913 null] +>> +endobj +4720 0 obj +<< +/D [4716 0 R /XYZ 70.866 418.674 null] +>> +endobj +4066 0 obj +<< +/D [4716 0 R /XYZ 70.866 217.71 null] +>> +endobj +418 0 obj +<< +/D [4716 0 R /XYZ 70.866 201.53 null] +>> +endobj +4715 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4745 0 obj +<< +/Length 1595 +/Filter /FlateDecode +>> +stream +x��YK��6��W�(�Tߤn}��g:��>uwǣ��[N%9Mr�o/(Q^�,���d�D ��@���}C�c>!��j��l��kdp�G����V͖�֓̿�M�W\(�W>�Iֱ0m����n�ET$��.��<��9��� ��h6L��fr{O��MH ��\�ABr,��k���מ��`-C�4SQLj;ov���6ԛ_ܰ�q>��6L�5վ;�dk� �T�G�Io�,�;{����m�Jio����!�����h�}H�t���l���wG$�%ia�_>��������ԧ��m�;�P �m�"�*���P��8o,��빿��uL +(šT��F�Z���dVˎ�)=Z:?^�}D��Yl�a�0�@[o��x2��P�x�j�8��������%�`���%�zb�u�L݊Ij]B�q�86$���� +��R�@b�d�b5 _C@�1^-�Z���)k�᧵�y�U�j�+��(]�A����z���ɗ*��'�缈7x,�M1��Y��g,8�]ӞP�:��O�.i���%�J�%�_�uT>D���g�:�a +r�" +k�� +���:��X� +e�i�7H9 5Q�����q��)�S�κ�T���s��I9�5ǔ���Cwr\��ܭ�G9D?��X� +�K9��A�*�X��4�^T�La���~U<7�P�%Y��v�aW@��w�ߛ��x����uՃ��1�«�����2ߔ�[��p��w�N��&z<�V������0�V˯�2�|(i��1���C(�[�-u�Q���B+/(K +}y�ɂPaA��&�9ľ��@��^D05:�/�|�%ꡱD�N˃;u9g妽� '�m�!�I���K�1 ��b��τ�+�m�`i�KX�@j����@�ʬ�Q�I��jz~����5� ���V��]���{�O�^킇8[')^�J�&r��@���M�ǽ9�su@� ��)i�A���<˹�U��+ +s�&��'��%�@�Xv)�k+�L E�вMi5���`$zR� _�~m��ab�X8���D݂c��~�+�Z�����Og�/�Ơ�0�a��S����#�5�/�����N`�io,�DY���8�)�ڝ��u���!�\�q l������2��##�}��� e)��W"�۾��I +S�h*�h�D���T��Pʱ�o)�7F�`����.����2�i�o#p�Z�����Yxt��8�Q�Z6N�"�Īb/�.��E2*�QM�8t� ;R��<�3U®���@;Fz��w��Aĵ��8� ��P�+P-��l��ў7{H��s� �P~L��� <�=�Y�B�L���ױW�֘���<�� l*�I(����gӮ��y>M�~�>�@��&/��* �"<rI��?�PŰ�������s�M���x� �plڐ���n��N�,���v�a"�'�ːv����jQԂ@�n���9*\뜤�s�ַ�n�����;]���f��~����� ������lm/Ԫ;!�0i��]Ϋ8�3�)74<X�|�nk��nLN�&� �#�� +endstream +endobj +4744 0 obj +<< +/Type /Page +/Contents 4745 0 R +/Resources 4743 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4650 0 R +/Annots [ 4710 0 R 4711 0 R 4712 0 R 4713 0 R 4714 0 R 4721 0 R 4722 0 R 4723 0 R 4724 0 R 4725 0 R 4726 0 R 4727 0 R 4728 0 R 4729 0 R 4730 0 R 4731 0 R 4732 0 R 4733 0 R 4734 0 R 4735 0 R 4736 0 R 4737 0 R 4738 0 R ] +>> +endobj +4710 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.088 733.249 234.704 743.832] +/A << /S /GoTo /D (dist__based__jacobian_8c_a769d35615d26a67b97bfd40b5d26a95c) >> +>> +endobj +4711 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.737 734.168 376.748 743.625] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4712 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 722.213 128.787 731.67] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4713 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 722.213 197.692 731.67] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4714 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.532 722.213 336.193 731.365] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4721 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.709 693.399 236.316 703.775] +/A << /S /GoTo /D (dist__based__jacobian_8c_a59b1a3323c2896ff28f71135af0204a2) >> +>> +endobj +4722 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.116 694.318 377.127 703.775] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4723 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 682.363 128.787 691.82] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4724 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 682.363 197.692 691.82] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4725 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.532 682.363 336.542 691.82] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4726 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.152 653.548 224.798 663.924] +/A << /S /GoTo /D (dist__based__jacobian_8c_a8f900ff7d66d260d3b2e3e0ef2757ccc) >> +>> +endobj +4727 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [326.539 654.467 360.55 663.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4728 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [396.937 654.467 430.947 663.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4729 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.481 642.512 192.492 651.969] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4730 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.568 613.698 256.022 624.074] +/A << /S /GoTo /D (dist__based__jacobian_8c_a04231d3d216ce6814eb3e183f7a2e408) >> +>> +endobj +4731 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.614 614.617 399.625 624.074] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4732 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.574 602.662 163.585 612.118] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4733 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [198.479 602.662 232.49 612.118] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4734 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [252.428 602.662 286.439 612.118] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4735 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 464.627 297.675 491.167] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4736 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 294 171.594 302.137] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4737 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 282.045 171.594 290.182] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4738 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 270.089 171.594 278.227] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4746 0 obj +<< +/D [4744 0 R /XYZ 69.866 801.979 null] +>> +endobj +4747 0 obj +<< +/D [4744 0 R /XYZ 70.866 775.009 null] +>> +endobj +422 0 obj +<< +/D [4744 0 R /XYZ 70.866 571.531 null] +>> +endobj +426 0 obj +<< +/D [4744 0 R /XYZ 70.866 450.383 null] +>> +endobj +4748 0 obj +<< +/D [4744 0 R /XYZ 70.866 403.825 null] +>> +endobj +430 0 obj +<< +/D [4744 0 R /XYZ 70.866 376.629 null] +>> +endobj +4749 0 obj +<< +/D [4744 0 R /XYZ 70.866 233.471 null] +>> +endobj +4750 0 obj +<< +/D [4744 0 R /XYZ 70.866 82.821 null] +>> +endobj +4743 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F68 4470 0 R /F69 4469 0 R /F13 3832 0 R /F10 3833 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4759 0 obj +<< +/Length 1766 +/Filter /FlateDecode +>> +stream +x��M��H����w����n6���Z��d�ϰ�ax�q�߾���`c�i�"��n�������G�<d3�<8��0�m9{��)G#OJ�,7��HK�(�"I��ڹu Fj��J��(��� ��?�*�����G�mX��S���i��-�+� +6�[���Xξ�Hc���F�rg����ag �n�����ś;��g�������ܗ���":_�q�$��� s����)v�[?���?�8����B��Ĩ`g�҂��I��/�K�K��d��1l�:�$W�Y�<!K[�(ε�����2��P�]����)��3?����[.k�`��Ӈى�k�T��]��ѷR�'ڜ!̼��_��m:sw��.u���P���٫+����Zw�� $9���^m�,(ƈ�����V�=�=��0+�x0�J� ���};t�6oH�5u� ��|�a��Y�cتŃM�}Yl\z���9���:|WH�����16q��+�m�U��~y����{��;T:&���(���q��; +1 +ҙ�$��ˈ{�1��%��KQV:�?��yc⏍�� �'�F��|�8w��հ�>^gW� ��S��8v� +���9.,Nq +G���.�1�����i1��R�0L�9q�43#Q�6���[��A�a��2�i].��9�n��0_ ))8쑮,"�B�ՙ,�|O�Y��6L��P�8k����5Q$1؈G�4pI������v�$ظ덕���@dX,���PcR:|��8��X'��bpB�V��@[g�@#x9g���1/�| ��Ϝa$�o�FL(��a7Ɇ�Nh��U���H�%؍��Ʈ.�<^��wW-ܻ�z��q~u�X�+L�p��va�]���m�$�:������$t�\�t� J':Ɇ%�:��k$. +��$� �����~��w�X�M��U�� �� ���i�rj��d�BH=d��T`�D�A�8g���솰.�]��8�n��ګ$M����<A��$�|����9����~�&ٰ,A-��Ꙋ ���%xs��3��L�4�a���ʲ�q��8�գx�ݯ�Z)Ԯ�1�W���#�OQԟtP�y9��W��-�+�F��hEk�K�����.��1��cTlṍb�s���d�RWw�,�q�M�~��ZU��7Gu� �{Sl��Bc�GOA��ۇ�OLf��qb���|�c�C�ͫ��;�ؚ|J�b ��)7tq�k�@%R��%�*�U�lY��Z����Jqq�r�9צ�ڔ��6e�����Gya;{�E�Ժ\n`��2t�n%a�h�7� 8��J�\럗-4�c�@\���h�����HR��. u�^��)8������v�k�|p���$ +NƐ���e�V��s�4屖H�`�P� w<�L�DAJұ��S-d9�!zI�G�>4϶�����g�/M/�6�p��Ā �&R7Ɇ����^�:a��ЍS솮�9�{Ya8Ϋnk^�fﲢs�T�d� (է�9Ɇ��ID�9�/.�s�`7�Gɞ�e��8�n��Դ��<�69L��h"}�lX�`-�� +���Q��%�q�b7~5Ͳ)&��s��'�cߠ:.^#� ����b"s�lX�0LE���=$<���H���ּ��oV�����.l��^�Ɖwל��ڛ�^s,X[��V��7<��0x=�(� !մ�0�Ƌ O{���I��v���(S���d�#I �����@��̇0S��}�w� �߾ۆc|��@��� +endstream +endobj +4758 0 obj +<< +/Type /Page +/Contents 4759 0 R +/Resources 4757 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4763 0 R +/Annots [ 4739 0 R 4740 0 R 4741 0 R 4742 0 R 4753 0 R 4754 0 R 4755 0 R 4756 0 R ] +>> +endobj +4739 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4740 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4741 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4742 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4753 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 295.554 171.594 303.691] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4754 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 283.598 171.594 291.736] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4755 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 271.643 171.594 279.781] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4756 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 259.688 171.594 267.172] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4760 0 obj +<< +/D [4758 0 R /XYZ 69.866 801.979 null] +>> +endobj +434 0 obj +<< +/D [4758 0 R /XYZ 70.866 771.024 null] +>> +endobj +4761 0 obj +<< +/D [4758 0 R /XYZ 70.866 604.984 null] +>> +endobj +4751 0 obj +<< +/D [4758 0 R /XYZ 70.866 405.379 null] +>> +endobj +438 0 obj +<< +/D [4758 0 R /XYZ 70.866 378.183 null] +>> +endobj +4762 0 obj +<< +/D [4758 0 R /XYZ 70.866 197.286 null] +>> +endobj +4757 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4789 0 obj +<< +/Length 1696 +/Filter /FlateDecode +>> +stream +x��YKo�F��W��;��i���z� ��(��D:$�$=��w�A�/I�d +$�M�~���73��w�ϟ��XM���a���������ER2o��F����(�ě-�[_�����c��q ����:�T���b�ݤy��Y�롓�f�/#�Gv�a�Bʽ�fr{������1 +��f���!��������eI��� ����.��i����YU�I�.�;�������&��i@��}�k�,����)~:��2��Ӥl�"����zFL��S����Д`�����^������)����y��&�\˸N��GsG驨2��x��M��qxg�!��Q�*�jÕ`�E�1n{�d^<dI?�w~Z�7����))L0#(�?�0-��A�a��^@����l�����h� �`�.�Wq�ݼ5³�+��>��8�Z�I�@K�AX��ls�0��c;��K���ݿ����|B���j6�9����cY��`��oD�\� u�:�$��1�;!�>� #�Db&�E0�J�C +��̻ؓ`��z�D<d��V53r0�3�xDBԼX��C|0B�a ȦP$:P�D�$l *��̘@� +L��g�b��]Z�O��U�nl��N���K�� �,���訋4a���������^�\���y�e�AZGӀq��Vʹ�6���<M\~M`�~m�ܹ*up�$�wlih��j�뜬�zڣXm7]���6)�˴,��e5%�GV������4��VN Q�"�qʧ)�~R&�����U'z��1�����3���]9~e]��q��:z,��p��0���4$�ȥ�l� B�B�u�I��Bਂe�h;���!>c���D'8(�wI8�Z�m���X�+N���Vi�!g�0����J ��RvWa8��)�*�Sq��]fr\vm��È�|��3�}��/�5��6�zU�i���nP����ۼ(�E�'u�A_S�g�e�.��&ƫ0�B�|�Ĩ���e&��6jO���x��q%��_�� +�k�"բ|�@�'Dx�2���ptm�� +É�EH qr)��!�q�^fr\�m���bo�gd���k�O'�w*�c�k$��)�B\���0��(A|y|)p���)����pwk)��^fs\�m����r�]�b\wmY>_oi�5�� 0���y����������b�C����16C���o�õ/��]7q��u��t"d����b7l���� ��k�];��~��ӟ�����+�("zL��8��]�5<�uE+kk�W#� +0���r�I��P��mv\��ٗ�^R���Ul{����՛f������g�cwc�1���1#(���]܂�^s��"�������3ǻ ���ɯ����J=J�#����T����4�̓a_��a�����L�_��v�5��e�{���@8�fv�N�t�b#�O͌����ɦݻ{��)�XF�F�x���������)�p���^u��H)[?!cS��!�z�Q- �RvJZ_�ʡ������&�J�k���۫���:�w{W�3&���z���Z���]0���� uv���u���g�0iJ��v����*�Q�%;n���Aׇ�X�^��Xg|;o��KD�]�nK�;#{�|L�L걣��B���}w��>���X +endstream +endobj +4788 0 obj +<< +/Type /Page +/Contents 4789 0 R +/Resources 4787 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4763 0 R +/Annots [ 4764 0 R 4765 0 R 4766 0 R 4767 0 R 4768 0 R 4769 0 R 4770 0 R 4771 0 R 4772 0 R 4773 0 R 4774 0 R 4775 0 R 4776 0 R 4777 0 R ] +>> +endobj +4764 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 613.55 171.594 621.688] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4765 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 601.595 171.594 609.732] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4766 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 589.64 171.594 597.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4767 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 577.685 171.594 585.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4768 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.088 137.23 234.704 147.812] +/A << /S /GoTo /D (dist__based__jacobian_8h_a769d35615d26a67b97bfd40b5d26a95c) >> +>> +endobj +4769 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.737 138.149 376.748 147.606] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4770 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 126.194 128.787 135.651] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4771 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 126.194 197.692 135.651] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4772 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.532 126.194 336.193 135.346] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4773 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.709 97.655 236.316 108.031] +/A << /S /GoTo /D (dist__based__jacobian_8h_a59b1a3323c2896ff28f71135af0204a2) >> +>> +endobj +4774 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.116 98.574 377.127 108.031] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4775 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 86.619 128.787 96.076] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4776 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 86.619 197.692 96.076] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4777 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.532 86.619 336.542 96.076] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4790 0 obj +<< +/D [4788 0 R /XYZ 69.866 801.979 null] +>> +endobj +4752 0 obj +<< +/D [4788 0 R /XYZ 70.866 723.375 null] +>> +endobj +442 0 obj +<< +/D [4788 0 R /XYZ 70.866 696.18 null] +>> +endobj +4791 0 obj +<< +/D [4788 0 R /XYZ 70.866 515.283 null] +>> +endobj +4067 0 obj +<< +/D [4788 0 R /XYZ 70.866 330.453 null] +>> +endobj +446 0 obj +<< +/D [4788 0 R /XYZ 70.866 314.17 null] +>> +endobj +4792 0 obj +<< +/D [4788 0 R /XYZ 70.866 177.802 null] +>> +endobj +4787 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F11 3889 0 R /F10 3833 0 R /F51 3827 0 R /F61 3918 0 R /F68 4470 0 R /F69 4469 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4805 0 obj +<< +/Length 1462 +/Filter /FlateDecode +>> +stream +x��Y[o�F~���G��d.̅�^Ҭ�U�m�&"6Nh����C{���p�cc���d4��;�����EO���'DЇɏ��� WH�@J�fK��R"0,)�-НC������"ɋ�1��E�G4_?&Q���W7�*��n�K�o�ln��*G�a6��<��9� � ��5��G�tr�@��M�<�诒2E��X��W�ɯ;�[f��a�VX +�����v�3ViQ��<!���e�Y'�Ψ�y�:ޖT��!�ç��aj�ݮ¼��|vO�&Y�� �l�e�y 'y�������rҨظN�x��q�w 9棫ʑā����g +k��M��KET�j�"h����L!�RQZ�����T�fJ.�'���i�������-������~�2��>����|�~婟���m�g��<�r`Be�������(i(��3�!�AE43Dȃ�>���\�����������v}%�Z���k�C�z�V +"Hp�L��l��G��[T$�:�_�"Nq�?]��*���0�;7U�`�Tu����.WC��QspR�rE��p<�\������9�;Yp���.�{�+%϶EM]F[�ݮv��h���Z�A����dm�� t�]G��B�븈�yZ��q>�$�K��P`grV�e�k�r����cD��K0�����Qɘf��.�m���Y�ưoBQ��M�G/� ET��1���r�f�T?}4��GV�[ +��俽�o�O�%^n��x�J2��;��0�G8���i9�z=ߦqVDo1kMT� �Ce��.��c�y�je*S���PiKh +�_LU��>�e�+_�e����W���u,��!����*�_����8v4�,��D�x��Б�sLxP�~��v�گ+�r��v�m�W��xP��n�h0����5��%����[��0��g���R�����)5�&J�"�:�|h��~p��� ]��<�>"'0��<H�����E��*����g*��N���E��r�)���0����J��Vc�h�J��R�J� +�F�����[��]U� ���� �dL���J��`w� +v,���/;H�:v#E®%�jPv�p�#n��Aĵ�ϛ8� ��P�*P����"ɢ]��!1��Yߕ�(����$��t3z�2,?��� T�P^��1M�9ǀp��a6��c�G�s�^��l�5�������,�e�<��a��;�p��x�Ra&��� :N�0D�R�'�q��pl�d��vq�$��[���z�a,|���<���y� +�����%o#rT��9ɬ�`�o���d�V���C�Z`��;��f��n��o�RbFtk�eGm�aj�nn���m���;z� �����ឰk�_u�2�� ��������r�W��,�@���ܣ �k}b�����:�j���aI +endstream +endobj +4804 0 obj +<< +/Type /Page +/Contents 4805 0 R +/Resources 4803 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4763 0 R +/Annots [ 4778 0 R 4779 0 R 4780 0 R 4781 0 R 4782 0 R 4783 0 R 4784 0 R 4785 0 R 4786 0 R 4795 0 R 4796 0 R 4797 0 R 4798 0 R 4799 0 R ] +>> +endobj +4778 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.568 758.07 256.022 768.446] +/A << /S /GoTo /D (dist__based__jacobian_8h_a04231d3d216ce6814eb3e183f7a2e408) >> +>> +endobj +4779 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.614 758.989 399.625 768.446] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4780 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.574 747.034 163.585 756.491] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4781 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [198.479 747.034 232.49 756.491] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4782 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [252.428 747.034 286.439 756.491] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4783 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.152 718.219 224.798 728.595] +/A << /S /GoTo /D (dist__based__jacobian_8h_a8f900ff7d66d260d3b2e3e0ef2757ccc) >> +>> +endobj +4784 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [326.539 719.138 360.55 728.595] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4785 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [396.937 719.138 430.947 728.595] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4786 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.481 707.183 192.492 716.64] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4795 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 569.148 297.675 595.688] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4796 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 398.521 171.594 406.659] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4797 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 386.566 171.594 394.704] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4798 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 374.611 171.594 382.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4799 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 68.822 171.594 76.959] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4806 0 obj +<< +/D [4804 0 R /XYZ 69.866 801.979 null] +>> +endobj +450 0 obj +<< +/D [4804 0 R /XYZ 70.866 677.372 null] +>> +endobj +454 0 obj +<< +/D [4804 0 R /XYZ 70.866 554.904 null] +>> +endobj +4807 0 obj +<< +/D [4804 0 R /XYZ 70.866 508.346 null] +>> +endobj +458 0 obj +<< +/D [4804 0 R /XYZ 70.866 481.151 null] +>> +endobj +4808 0 obj +<< +/D [4804 0 R /XYZ 70.866 337.992 null] +>> +endobj +4809 0 obj +<< +/D [4804 0 R /XYZ 70.866 180.03 null] +>> +endobj +462 0 obj +<< +/D [4804 0 R /XYZ 70.866 152.55 null] +>> +endobj +4803 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F61 3918 0 R /F68 4470 0 R /F69 4469 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4820 0 obj +<< +/Length 1784 +/Filter /FlateDecode +>> +stream +x��Ms�F�����h��/�6Mf|JS���x,a�� '顟���"��B���� �>/�o��[oW�>�>�a���އ�/����Ly)����FZJO�$�V�z.��fu�1xĸ�y����6\,���w�z��<ȣ$�Cg��f_fFb�,j�4��z7�����]y`�h�k1r�q���������~�����;��\�Bx +����0 +с7I�"�y}��"�������&r�03UV�I���捛r������^�<�5{u�W~v��w~�o���ݍ�|��$9��|Ƃ������#��vK�k�{��aVN �30�J ���= ~��#$�z��UA�C��[�c`�xp�a_���X�Yp��YG� + v�/�+y�DY��pydᦼ�M��6��D���}��p���$CT1���?�4숎�6��Od/����q#Y�.��j���,p��jA�<X'�Q�b��,�Ḍoh�d��Wմ�}�~ή������q<���V*t�T�aq�kX�8�Q���00< +1���/� u�4Md�f��d�����Rl R�S�ʐѺ\����A��b%���G� +�a�s' +�>�>�۰Lx�c$�I0���#�DU�a��%Kq�V$�(�+Ā��.e�-E˦�z�Y<����@Z� ��9(� $o�<�Zh��h�(w!�~�c�U�,��3g+��Ȁ n�4�&�p�Q��v�Fuv�\vcWwz�ίU�k�j1���'HW7����4��NM�lK��I�n�8ȫ +zIB�Ҧ� +d�DB'�p���G\�0��Y�q��nB�N��f?���w�X�?��+�`Z(�"@���i�lj��d��Po���&�B'y%�!�ºӬ������^'i��� r�'�B�S, ��Ł5AN��ei� ǒ�H Փ�XtKB��q��>?�8��05��β�q�;qjx���v� k�P���ɾ���������������zml�������X�b�H�X�w�g�i=W��5��(v��h��d�>H���E����`�.[uܔ)>�TY�K��欎IN ����wg�h4�y��~��O��~��~���C�w��1����[m��5v&��X?y�m]��3P�TC��P%��]��Q� !�q������<����]e�CÌ ]iNOIqʗl����h��� �DS���H��Ցb� p��[���\��٘��5�h!���W�����x�O��8�QQ8e�(x����d�(c@�S+ S�<T�Ю�t�� +��?�k�a���V�ሪ`�(�Լ�j�9���)8���/`�<�-`R�,�O~��BZ�����l��Z +[�}�>�UĜh��@Tұ.��Z��q(7 ����8Z���y����1����6���Ā e&R7Ɇ��ؚx�`ut�<vCW�9R��0U7���^S����J�,�M���l8:�i��N�:�y즳�G��(罛�W�-+�gцLHc�8�F �N���`� 10��8�c'�u�e7Rj&������ �g�:1^�� ��ŋ5A�4��p�IHE��� ���S�M��l�tK�x��v�Wwl;�^��9�������y�Y[-�ֲ�k��v��m���j�vn�E���dM��'գ%O��˒gm�5z�H6�c��� ��m� m��[�����.Z(����b�[J �R�B� ��d���8L�|ґ��Įͷ�N���C�դ� +endstream +endobj +4819 0 obj +<< +/Type /Page +/Contents 4820 0 R +/Resources 4818 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4763 0 R +/Annots [ 4800 0 R 4801 0 R 4802 0 R 4810 0 R 4811 0 R 4812 0 R 4813 0 R ] +>> +endobj +4800 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 767.154] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4801 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4802 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 743.244] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4810 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 363.274 171.594 371.411] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4811 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 351.318 171.594 359.456] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4812 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 339.363 171.594 347.501] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4813 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 327.408 171.594 334.892] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4821 0 obj +<< +/D [4819 0 R /XYZ 69.866 801.979 null] +>> +endobj +4822 0 obj +<< +/D [4819 0 R /XYZ 70.866 672.704 null] +>> +endobj +4793 0 obj +<< +/D [4819 0 R /XYZ 70.866 473.099 null] +>> +endobj +466 0 obj +<< +/D [4819 0 R /XYZ 70.866 445.903 null] +>> +endobj +4823 0 obj +<< +/D [4819 0 R /XYZ 70.866 265.006 null] +>> +endobj +4794 0 obj +<< +/D [4819 0 R /XYZ 70.866 82.821 null] +>> +endobj +4818 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4835 0 obj +<< +/Length 1841 +/Filter /FlateDecode +>> +stream +x��YY��6~�����:�������tk�@7Ak�k5�������;)[}oH �D�|~3���ܾ#�c9�Σ��7��&���,pB�>s&s'�(�}'�(�3�9w.�({4�YZV�CR�Y���i����O��R�_�r>&ؕ�̦�U�s�`|?��1}P��Q�(�ܙ�Fw�ؙ��#�Χz���!��^:��<�On�E|��q{�&��!M��Q}se�Ln�c��?Q�__�( +0Qұ�1�B����<��=�L-NPB�@��@8!(���N�*�+�0�-������� +9���2�֫W�E�)�Gc��7�f������J�"��Un�����,��ܻ.��;v, #�B@��﮵��g9�/����Z��ៅ�<�ojnyL���xDP�w<�a��+�c��R� ĉ`�k"R��F����P���� jVOj�{<D�x���0��8tƦB q��xGTgq�AakP>�F�b�W;�~�̧�2���P�ߔ_�J��/Th�������,+�04�k!_h�b?��i JK �Z��{3��5QF�Q�&��3{�sw�h����t���m�O ̃�\�?7��F�� +�S?e$7Z�,]�_�0P� ��UWb�q��,�|Lܢ�"�zQ���Q; i��S��B��8X�ݘr7)����+!n��[�a��՞<��'7y�e��$P��^0�#F�"�4N�%[�� ����0���F��ۻ@�`�w����J���C��sAt��b���.��A�� 嘵N$��U��"/b�#��WCʀ� .��E2� �q�"��"�ڝ��N����a�D�;x�½o�{�x.;۸�E!�7KW2+�]�R�m���,͒���/�Г�2d���B�^$�09��F"qT`<O���m��tz����3���l&��X�Tr3�H��%���e "�K��E2 i��8�L�������y*�$l+��J}t��σc�d�:���/O�<��Pe�E��H���V�+Q�6<D?� 7EK�����,�v����*�x֝�N�6�4�.�3٪�����E�����o���j�!�A���e�q���.Y<���N�"�ֹ��h�ifB��O��$�a�Mu�C݉�"�����l%������t)���=�fÁUWyhQnf=�f�#�.��U��T�8Y>�q�"�,�rU w+�E�j����O�*��ܙ�43���#B�i�B�.�hw���c��C���+� �M[�w�9�dz�*���3��&��N���,~h�����L����m��'��|��n,��֗�7�a?[�x`9aݖcoI��_�}쳜Vya�j`����ì�I��fgc��H����Tt�8w��[fT���m�Q4�m��&|�P��u%c�x*�bi 6�y�Ȯcڦ�.�r-�(�T�jFqXh��T���?��F~c�*��E�B�ᶋ̱5)�m�ٳ���0E�w�PoBw!�O6� �ee�X-�����A���QP3*�@1��)Ф����Ӻ���i��m'��4J�1��qo���K��~�RD#��h��۬b�6�`�&]��A���U�sas��2' �=�=w6f�AY��c ���a�4�0�UV��$��U��QzI49PӀ�� ��Y�챨n�38X7��Jƈ�t|%���W���S-ښu!��~���ݵ}��@ �ܹ��������վ��?�$�.c�I�J�4}b��4����+_��y�~PsI�9���Y�y�?�f���/�N��nn�U\UG��yX �7�72�ERَ�W:�|1�Y���?�=�� +endstream +endobj +4834 0 obj +<< +/Type /Page +/Contents 4835 0 R +/Resources 4833 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4763 0 R +/Annots [ 4814 0 R 4815 0 R 4816 0 R 4817 0 R 4824 0 R 4825 0 R 4826 0 R 4827 0 R 4828 0 R 4829 0 R 4830 0 R 4831 0 R 4832 0 R ] +>> +endobj +4814 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4815 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4816 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4817 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4824 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.46 229.55 239.052 239.926] +/A << /S /GoTo /D (dist__based__position_8c_a308f40001270af6663e2b1f9aff47cc3) >> +>> +endobj +4825 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [242.508 230.469 276.519 239.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4826 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.744 230.469 359.755 239.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4827 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [441.106 230.469 475.117 239.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4828 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 191.604 128.787 201.061] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4829 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 190.685 275.322 201.061] +/A << /S /GoTo /D (dist__based__position_8c_a756c1407a4ba61d312a676ffd824517d) >> +>> +endobj +4830 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [278.808 191.604 312.818 201.061] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4831 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.161 191.604 397.172 201.061] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4832 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4836 0 obj +<< +/D [4834 0 R /XYZ 69.866 801.979 null] +>> +endobj +470 0 obj +<< +/D [4834 0 R /XYZ 70.866 771.024 null] +>> +endobj +4837 0 obj +<< +/D [4834 0 R /XYZ 70.866 604.984 null] +>> +endobj +4068 0 obj +<< +/D [4834 0 R /XYZ 70.866 430.74 null] +>> +endobj +474 0 obj +<< +/D [4834 0 R /XYZ 70.866 414.791 null] +>> +endobj +4838 0 obj +<< +/D [4834 0 R /XYZ 70.866 267.067 null] +>> +endobj +478 0 obj +<< +/D [4834 0 R /XYZ 70.866 162.75 null] +>> +endobj +4833 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4849 0 obj +<< +/Length 1361 +/Filter /FlateDecode +>> +stream +x�řKs�8���:BU��-qݝM��4;�[&�¶�PeCpf��~6�mH�R���n��~����7���Aψ���o������@)�OHl�B:`XQ�ؠO�q�q����W��L�K���l��y��������3 ++ ���`�Z�f�m෯$�,WK���-�k�g�JJ���j��(&���s��?���n�K{�M<�5AsMq@eS�N�&���*��f�\\�l�WY���vi��g�K�D���x)�Ɓ&ԉ��Ŀ%�Ɵ��'B��ZR�-�Zy3}vn�~?C�{�%�S����4����=�o�ְGpLxP��[���e���9��Ǜ���j��LT���ɯ��mE��;.Q����T:OTq��Ե��������q�zّ%4P�SXƈBs& ���'�W�>�p�_\hֻ��9���'���xM��-'?�����KP�k�dn���M�{���<�-�^|�F۱��{�y�τ����6�)��֡�� yBu �p��P�I>WD�s$�<��ʀ�B:e���Lc��!�yX3]�#�I��I��R5�O! @����g�k���c�F �7c�hq��_PӶ#<�����%���!F��e��@@M�i�xDHuf+�5�3@��Sm.�j��~��Jˤ�s�Ab���q&���oR��%�C��%�C�����o������W�`r"��d8$�b���.C��8ذ�F�&��X�SۏeSq�?�8c��l{a��o.�ْw��]X@��{p�dT��@bг�C$?!X���P�����c���H��`5�>L)a���^�1]oM�B��$�F��z��%a��S)���� �ōl��5Q삍�:P�qH��Q�Ж�q�,� �Mk*=̥}�d�`/�d ��ٽ����cP=b��=� �'�_�<�ؙ+�O�K���<��Z{��r�9;� ��dn��j�V�V6�Y��qk�jvYޘ��x�ZN+�ڦ� ��~���S��M��ߘ�X����B|�'�ɨ� �9c��p3���bC@�dcU�� ��ǖ�C,��R*��>�k�V�����7���n+��I�n�8<DD������@��t�V�����4'�p +�%d��ǩ쇰�������T;��ƻ���w��DH=���e�9���+�h�}�Z��X���6ߧq;�K�IO +�0�H�r��O�b�{2����,R"T�� ���7�B�i�F��D�~kX�8,���9WѴ�T�ʧ$v��TZ4eq��Vz;V��7'�oܐ�W�*|��.�+���o_fZ��E���i +(������6�Ps֭�w"��˗�˻�w�S��12� +endstream +endobj +4848 0 obj +<< +/Type /Page +/Contents 4849 0 R +/Resources 4847 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4763 0 R +/Annots [ 4841 0 R 4842 0 R 4843 0 R 4844 0 R 4845 0 R 4846 0 R ] +>> +endobj +4841 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 643.292 171.594 651.429] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4842 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 631.337 171.594 639.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4843 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 627.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4844 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 353.859 110.119 361.997] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4845 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 341.904 171.594 350.041] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4846 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 329.949 171.594 338.086] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4850 0 obj +<< +/D [4848 0 R /XYZ 69.866 801.979 null] +>> +endobj +482 0 obj +<< +/D [4848 0 R /XYZ 70.866 771.024 null] +>> +endobj +4839 0 obj +<< +/D [4848 0 R /XYZ 70.866 741.162 null] +>> +endobj +486 0 obj +<< +/D [4848 0 R /XYZ 70.866 713.966 null] +>> +endobj +4851 0 obj +<< +/D [4848 0 R /XYZ 70.866 570.808 null] +>> +endobj +4840 0 obj +<< +/D [4848 0 R /XYZ 70.866 439.774 null] +>> +endobj +490 0 obj +<< +/D [4848 0 R /XYZ 70.866 412.578 null] +>> +endobj +4852 0 obj +<< +/D [4848 0 R /XYZ 70.866 293.33 null] +>> +endobj +4069 0 obj +<< +/D [4848 0 R /XYZ 70.866 68.871 null] +>> +endobj +4847 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4867 0 obj +<< +/Length 1464 +/Filter /FlateDecode +>> +stream +x��YKo�H��W����N���jٌ4s���Ida���ؐ�I��o5tۀ1N�愍�z~U_5>���J��b��;{�F�_��.��BIɼ���0 +��TD�$��ܻ� F��B��dz>ẙ�L���?]$K]�ԋ1���u:3�"L#_D�۫ϣ?�F������ +CR��V��[����F, +�o����!�|^z����P"�H�p'�1>&p��F�,a/`I,k��tf���b������2����{l��;�KQ�U1&�G�)!�LQiMQ��-�����zn}"�!)R�2\�ܣJ!�#'���{|Wfh�~��D +q¼� �ޞ%iY�<��;!���#� F�{��^ �<yF�jB)���0��5v�� �H�BekeawC�h=�]BH�iL��%s��i�����e%Eo�N��xZd�u�':ϳ���*��`���4�Ρ��<Oʾ�+���ZO�<��P���|��Ə�y6f���?�]V,T�'Q�XhJ©B!���sl�pCJ"�ee��^8���6��"���y � �պ�uzW�CYH��-�`>�0�"U!�#�j9�8�����!:;W�{;�\������7�z�Nc�wB@)��q����2���_�=�pLnn��3)� \���$<�IB?�� (�5�nxX���Z�lr| .���.�Ut��V�t�x �EJ��[���� �o�!�G��Y��A�B�!,x���D~��ܷ��u1˓�Jw?_:E���۲!*�Gs1����b��1����btOwAṩ;@�����!�����j���}�2�p���2����I�@�u0��2IQ�� �:������Q[ �e[�l�^����U�� ����M��lhn�JS�g��n�NU� +�<&MX�O��]`�g+���{&W���v������6��a��y��Ĩ�~b�DX5'��h(�{�J���1���o�b!��r�jj�����ow��6���̭uu?S�F�Gm־�q��J�:�WݾC�"Ç6{�N���u���l� ?�����#ck�PK +��d��;��V �Jz�E�L?�I��-�������0�qntxV�P�ݰK�Z�Q�v=ap�Fx�'�@� *< K���P����p�1�P��^��,�C�i�Щk�UGyԏ�~��=4�6�����6?%�~n��~0�5�]$���ih<I���9vy��Brp�1\�-?f�r��Ǚ�e�p?���q��㱝��m�k�Z�A����]�� +L�i�;I�,R +��zvpD"�W��L���it����q����4�6G�،����hDo�f��BHy�ޮc7+��{}�rr�o0�ic��� Y��^�Q��K��_�:�� +e^���_�o�y�'y#`2���S���%|j�/�[1܋=��]���, +endstream +endobj +4866 0 obj +<< +/Type /Page +/Contents 4867 0 R +/Resources 4865 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4872 0 R +/Annots [ 4853 0 R 4854 0 R 4855 0 R 4856 0 R 4857 0 R 4858 0 R 4859 0 R 4860 0 R 4861 0 R 4862 0 R 4863 0 R 4864 0 R ] +>> +endobj +4853 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.46 594.904 239.052 605.28] +/A << /S /GoTo /D (dist__based__position_8h_a308f40001270af6663e2b1f9aff47cc3) >> +>> +endobj +4854 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [242.508 595.823 276.519 605.28] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4855 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.744 595.823 359.755 605.28] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4856 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [441.106 595.823 475.117 605.28] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4857 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 555.973 128.787 565.429] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4858 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 555.053 275.322 565.429] +/A << /S /GoTo /D (dist__based__position_8h_a756c1407a4ba61d312a676ffd824517d) >> +>> +endobj +4859 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [278.808 555.973 312.818 565.429] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4860 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.161 555.973 397.172 565.429] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4861 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 417.938 297.675 444.478] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4862 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 259.266 171.594 267.403] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4863 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 247.311 171.594 255.448] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4864 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 235.356 171.594 243.493] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4868 0 obj +<< +/D [4866 0 R /XYZ 69.866 801.979 null] +>> +endobj +494 0 obj +<< +/D [4866 0 R /XYZ 70.866 771.024 null] +>> +endobj +4869 0 obj +<< +/D [4866 0 R /XYZ 70.866 636.663 null] +>> +endobj +498 0 obj +<< +/D [4866 0 R /XYZ 70.866 526.162 null] +>> +endobj +502 0 obj +<< +/D [4866 0 R /XYZ 70.866 403.694 null] +>> +endobj +4870 0 obj +<< +/D [4866 0 R /XYZ 70.866 357.136 null] +>> +endobj +506 0 obj +<< +/D [4866 0 R /XYZ 70.866 329.94 null] +>> +endobj +4871 0 obj +<< +/D [4866 0 R /XYZ 70.866 186.782 null] +>> +endobj +4865 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4883 0 obj +<< +/Length 1375 +/Filter /FlateDecode +>> +stream +x��Xmo�6��_At_l�bH��$`�-M���̟��l1��d��6��;��,�r�8$�M�w��=����E�rB�t9�}>9�p=��@J��G�/%��%E�]O%���?"~r��}��E����<z����ʪ���L�N>�'�N(HD[���}��*�\��oh|���L.܅� �{��^2�"%�f3�B�Q\V�eX�h��KSU-�Z��Ԣ����&/n� �Ok�����z~u v�@<B�]��b_pc6 �"����f�-�v���}�`yV�i�l#I1�r(��q���E�:^r7hU���Cgյ{���c:V��,O��X�;jA�lpv��N��=,C�#�G�>l+U�U�&���RU_u����Bhi�la[Z��߳�'A����P�Ξ|~�o�;u��Z���$���T>�ՌNU�M1:��Q��v�Hc#f��e��4,�TU��Q:-{i+8I@��������uPL�@"�X�g�9�p~���w�K��`RG�w1c�)�̷p�GZ %���jRv@ `��3��҈m�c����� +�=�o��J9Q��D����*ϋ(�¶"d��q�匊)�?��C����H�p��@�:�>�������fr�]�?�ivG�5{2��M7R��1 ��{�)�q����{���'�ۻ���0��0o�֕��E����Q�Kc��C}L8o2t�0���8<���I�ie�q���vh��BXw�Vv6ƙU�E5zG�9��PyY��+cN�G�&��[�;�C�W����&-o��㌉�ZUyQ��L�0XIYC����Pn��6d()e� a'6���ww��v�hM��a�T*�2v4Z����gC�{)<��÷0}H�E�O:�d��8T�t >�[�P��zG[T���8H�/q�J��=��$��{AK�~��a������8ǛEzD}O��~Qqwq�`����y�:�@�*�7o`=��p��dk�e����F�2�=4��ͷѾ�f+3������%l��i�aL�-BH�<��I�{��>��3�,H��s���z��ukc��mK"{p%���{T� 0�ᡯ��S����sU�P�V��*WE���w���7.��B���M�'�6a�N��:�ŶemC܍-�������u����'�A���&��?��PZo�w8�3V�:m�>0�Gn]�q�^ߺ�����p"[� �C_��Oa��V������i�8����a~��{�����:KU�őz���<�R�7���H%i������M�Աn��jO�/ęU�n���D�P*x���A�� +O_�_�f�y#$1����G0V!8<����/U��{S/�#ӧ�U �'�v(ަ����� +endstream +endobj +4882 0 obj +<< +/Type /Page +/Contents 4883 0 R +/Resources 4881 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4872 0 R +/Annots [ 4874 0 R 4875 0 R 4876 0 R 4877 0 R 4878 0 R 4879 0 R 4880 0 R ] +>> +endobj +4874 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 687.101 110.119 695.239] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4875 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 675.146 171.594 683.284] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4876 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 663.191 171.594 671.328] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4877 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 246.145 197.72 255.602] +/A << /S /GoTo /D (distance__based__test_8c_a3a6d73a022976728a5a298ba62d8e115) >> +>> +endobj +4878 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.162 142.83 457.803 151.52] +/A << /S /GoTo /D (dist__based__position_8h) >> +>> +endobj +4879 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 85.318 297.675 111.858] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4880 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 68.336 346.876 78.251] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +4884 0 obj +<< +/D [4882 0 R /XYZ 69.866 801.979 null] +>> +endobj +4873 0 obj +<< +/D [4882 0 R /XYZ 70.866 773.016 null] +>> +endobj +510 0 obj +<< +/D [4882 0 R /XYZ 70.866 745.821 null] +>> +endobj +4885 0 obj +<< +/D [4882 0 R /XYZ 70.866 626.572 null] +>> +endobj +4070 0 obj +<< +/D [4882 0 R /XYZ 70.866 465.326 null] +>> +endobj +514 0 obj +<< +/D [4882 0 R /XYZ 70.866 449.232 null] +>> +endobj +4886 0 obj +<< +/D [4882 0 R /XYZ 70.866 284.076 null] +>> +endobj +518 0 obj +<< +/D [4882 0 R /XYZ 70.866 216.99 null] +>> +endobj +4881 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4894 0 obj +<< +/Length 1005 +/Filter /FlateDecode +>> +stream +x��VM��8��+|)8��6ܲ��DJ�(����D-��h���t&�_�elh�{���j��������כ����G����}㽾�$Jp*D�6;$ N�@2eXP�)ЭO �,�L���}��j{�iUl{�{|�S�e��Ӎ����S CI"�/h�u��{����(�M��J���w�����#��4AOCd�baG�\�?�/g���䩘' (&�(�(!Ŀ>6y_��e{���Z5}6�UA +��)�(L��N�G-,��P�8�҂}k�"�e;a��|b�Q�Od�z�l�ې�3�ḌIL��.{�=���jw�?[�p8�cU�gU�#;M?�^�x F���C��0�������Vf@ڀr�i��{�s}k�������_VY�:#���?P1�Y�o]D�_� g���w0�?���� u-k�*��c��~��C������Ja��DL��s�Ϋg�j��c����IuY/��J��T\�ϖ�lPĖgeVT���/����h�K�(fcy�o�Wv�B��e���Ʃ�[�������+���}t ��xj.�pJ)w ��wY����:럼�\����L���r��{)�U���T6�y���}mS@,�;#-I&9��**�L�R=w���tr.�w�s�m���ݛ!�v������81G��bN|�p��T��a�F�),��ֳ�i��$������J�H�a_)�w����ϔ3���O9�6���3J���QB��m�Q{�ǓO�P�S.��Vʾg{QBvmh���ғ��Β��Å� +�P��>N�Ì�G�g�����8�����G�ٽ��Ź�jc#Z�q����2W_'���K�fo3h|�� �� K�qwb�~<��o�f�w��^u`�P?k��!����H]V������],�Om���(�0��W��f߶�J��*8o��U�A����M�� ��ՐK�����x!�I��@O'�w�Q���J�=����yo������L�4 +endstream +endobj +4893 0 obj +<< +/Type /Page +/Contents 4894 0 R +/Resources 4892 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4872 0 R +/Annots [ 4888 0 R 4889 0 R 4890 0 R 4891 0 R ] +>> +endobj +4888 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 352.849 197.72 362.306] +/A << /S /GoTo /D (distance__based__test_8h_a3a6d73a022976728a5a298ba62d8e115) >> +>> +endobj +4889 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.162 231.308 457.803 239.999] +/A << /S /GoTo /D (dist__based__position_8h) >> +>> +endobj +4890 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 166.131 297.675 192.671] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4891 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 148.283 346.876 158.198] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +4895 0 obj +<< +/D [4893 0 R /XYZ 69.866 801.979 null] +>> +endobj +522 0 obj +<< +/D [4893 0 R /XYZ 70.866 771.024 null] +>> +endobj +4887 0 obj +<< +/D [4893 0 R /XYZ 70.866 738.639 null] +>> +endobj +526 0 obj +<< +/D [4893 0 R /XYZ 70.866 710.2 null] +>> +endobj +4071 0 obj +<< +/D [4893 0 R /XYZ 70.866 514.555 null] +>> +endobj +530 0 obj +<< +/D [4893 0 R /XYZ 70.866 496.899 null] +>> +endobj +4896 0 obj +<< +/D [4893 0 R /XYZ 70.866 395.963 null] +>> +endobj +534 0 obj +<< +/D [4893 0 R /XYZ 70.866 321.267 null] +>> +endobj +538 0 obj +<< +/D [4893 0 R /XYZ 70.866 132.796 null] +>> +endobj +4897 0 obj +<< +/D [4893 0 R /XYZ 70.866 82.821 null] +>> +endobj +4892 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4908 0 obj +<< +/Length 1182 +/Filter /FlateDecode +>> +stream +xڽW�n�8}�W�DI��,{I�Ew���6 E�m!���%�~�EҖ\e�E�<���̙�33���꒢u3#h����6�����8"D���B �0,(�/ѵ'�;��B8 +#����|�����;���Pe��yUj�ه��I��^c�E(+f-��#�I�{�E<�< +��}��� +��b�`R�)�S?��o�7mZfjq�6j�hU��N�C5��sΑĉ$Tk$(`1��eU��1��he}`�D$9 +(� ݧ��Y�,��k�b!����)-v.��ʬ�Y��b��U�n�&��N�ܴ��=0b����7y�a(=��s��F��|ʽ��\x��9k+�v�n7�K .r/ߦ��}J�����C���v]Y�vS��&g��F���g�{�R�� q�P�4ۻ��۽*�ͺ��� �>2��>��cF��*T�t�Ҭm����:S7��2?�3a�K�(d�\��#���llɦ�J�tF 2 �X���Ӣ=1{l���J��eǃϸ�����+4Y_쬒r_��* +(��ۂ�B,�<TWh+���K�����9��u�L���G�*��*v]k��Su�s����w�|�~�X_�*˛����� <$`� W����l�--JJ�І$�%��~��%��'����̈́���]ʊ�<�'H$�h8��Y�fށKx�n��G�EU�j�Se]5�6�[V��|Pu�^�8�?YYC�%O\�8��ګ�]��4}�w��(�T`�q�o�;fL�k;/�.f�:�\�K��W4 ֪]�9{�/�c͑�/l%C[2b/�{���j�� t]�^��?��w�Ū�n��w���L�7���h6E���mjlL� L0�a�1�ɠu���jS��E��&��{9|�.��,�Cp1���^t�9=�$�EK�_}y]��A7���?��H�2�2�;�O-���6En��7�=r�>͎��shU_���_�r�W]p�jTش�� V ��DF�i�iT�E��l���t[�t��0��f�u�^�G�:��a2��Sg�WOW����q�����4�o�Ow��5��W�k%�' �0�rnB��e`���Lb=2������z���ѱu������oM����a̝�Koc +ю�d�Jz�����c�����,�,�>H�2�`�B�Z�P���kVcr�bS*�k��r�<��/I{� +endstream +endobj +4907 0 obj +<< +/Type /Page +/Contents 4908 0 R +/Resources 4906 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4872 0 R +/Annots [ 4898 0 R 4899 0 R 4900 0 R 4901 0 R 4902 0 R 4903 0 R 4904 0 R 4905 0 R ] +>> +endobj +4898 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 413.791 128.787 423.248] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4899 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 412.872 174.138 423.455] +/A << /S /GoTo /D (DOP_8c_a8b878ff6d73e8da6fbc3ae40f01b1ce4) >> +>> +endobj +4900 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [219.487 413.791 253.498 423.248] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4901 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.396 413.791 355.407 423.248] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4902 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 287.744 297.675 314.283] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4903 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 138.738 110.119 146.875] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4904 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 114.828 171.594 122.965] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4905 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 102.872 171.594 111.01] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4909 0 obj +<< +/D [4907 0 R /XYZ 69.866 801.979 null] +>> +endobj +542 0 obj +<< +/D [4907 0 R /XYZ 70.866 771.024 null] +>> +endobj +4072 0 obj +<< +/D [4907 0 R /XYZ 70.866 619.873 null] +>> +endobj +546 0 obj +<< +/D [4907 0 R /XYZ 70.866 603.805 null] +>> +endobj +4910 0 obj +<< +/D [4907 0 R /XYZ 70.866 451.482 null] +>> +endobj +550 0 obj +<< +/D [4907 0 R /XYZ 70.866 384.691 null] +>> +endobj +554 0 obj +<< +/D [4907 0 R /XYZ 70.866 258.24 null] +>> +endobj +4911 0 obj +<< +/D [4907 0 R /XYZ 70.866 218.01 null] +>> +endobj +558 0 obj +<< +/D [4907 0 R /XYZ 70.866 191.159 null] +>> +endobj +4906 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F29 2678 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4922 0 obj +<< +/Length 1352 +/Filter /FlateDecode +>> +stream +xڽX�n�F}�W����p/��7�U]=�6ZZK�E��ű���%�IQV$~(Q�gfvΜ���jJ�U6�����������G&�|!�3�w$FJG� �̖���`D��K�_�9���h]��nt��J�O�T�=��}r<�!.�)Q3wG��F����i�)���E4�������`�|�|-WF���3`���_M�Qn��� ���pAʳ�L'�i�\�B�Y�Y 9�!�gp}�CF��h<��a��A. �W0`5C�Q w|8*̑(�($�$d�<�0�� �1NO5)�Y X"N���h�&��O,�lr)I�6c��"�����M�k��4N�Ƭ�qy+˃<L�lB���̔@>a'���Yz�0��°,�y��y�H�`e�@��,s�m�9��mH^�� +�Nr`�pm�u���#g@�`Sqj�$�2��\gߟ�dž��!@��t�°<$���P$^Yv�����fbۨ�`��I� +O�?LĎ�S�%wM�_j�ɧy��G��K �0�E��1�,PU�t^�qw����Q�`�q�B��u��)Oa�r�&���M�=iǵ��B�؆v�o0�qh�����u���nj͎:��@�`�[T60�c藤���B�!�VO�Q�O77�c����+�{������� �eͻ$�b�q +��+���pa�|�wt=p�"ݙ]/�r8�|=6�d������|͗a��s(�|�s�x�9�/�(J���үr�&��p�ppӃ�Zz���`���{,PF'�A�%�c��^O'���E��pSlմ��zf�m�ab+������C/6��zIHk%H�����?`I$=�^�y��38�,I)�? `������P�>�=�\'�ΰ1|F�w�TA,ܯ#�|�I��"^T}�]�}�H*١� ��'F�ҕը�ˑs�r.��qx�Ɏ�`Mɝ���I^��V ��v���.��I�:��f��v�"@��Qϲ�b�K���7��'��!�#.��X�Z=�ۚF��j�P�V0.t�H����`S��&u������q�#�[���<3�4���O�X2�c��, +-Zշ�����'8R[ �����9���}���4;Ti�>�\���g�SI�G��B��u� �m#�M7��U�f&Y0iU{�9]��R��;+s���[�ѯ��$�%&m*ټUB�[}FW�@���L�P��]�����ħ-{L}d���2��ҵ�:F}홃�y̚VQ��!=�[�(gZ��F��>�]�%b��k��YI̋)����7���]ൢǼ��� �]����=��-�K��1����k�/��q���y�� +endstream +endobj +4921 0 obj +<< +/Type /Page +/Contents 4922 0 R +/Resources 4920 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4872 0 R +/Annots [ 4912 0 R 4913 0 R 4914 0 R 4915 0 R 4916 0 R 4917 0 R 4918 0 R 4919 0 R ] +>> +endobj +4912 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 404.753 128.787 414.21] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4913 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 403.834 174.138 414.417] +/A << /S /GoTo /D (DOP_8h_a8b878ff6d73e8da6fbc3ae40f01b1ce4) >> +>> +endobj +4914 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [219.487 404.753 253.498 414.21] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4915 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.396 404.753 355.407 414.21] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4916 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 282.287 297.675 308.827] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4917 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 137.36 110.119 145.497] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4918 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 113.449 171.594 121.587] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4919 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 101.494 171.594 109.632] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4923 0 obj +<< +/D [4921 0 R /XYZ 69.866 801.979 null] +>> +endobj +4924 0 obj +<< +/D [4921 0 R /XYZ 70.866 771.024 null] +>> +endobj +4073 0 obj +<< +/D [4921 0 R /XYZ 70.866 581.907 null] +>> +endobj +562 0 obj +<< +/D [4921 0 R /XYZ 70.866 565.941 null] +>> +endobj +4925 0 obj +<< +/D [4921 0 R /XYZ 70.866 441.504 null] +>> +endobj +566 0 obj +<< +/D [4921 0 R /XYZ 70.866 375.865 null] +>> +endobj +570 0 obj +<< +/D [4921 0 R /XYZ 70.866 252.995 null] +>> +endobj +4926 0 obj +<< +/D [4921 0 R /XYZ 70.866 214.647 null] +>> +endobj +574 0 obj +<< +/D [4921 0 R /XYZ 70.866 187.899 null] +>> +endobj +4920 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4945 0 obj +<< +/Length 1449 +/Filter /FlateDecode +>> +stream +xڵXKs�F��WP���f��p˦o�e;^��uQXId��d{����,�l�9�P�t���_?����x�b��������ǃ��,� +�d�x�))� �Ho<��|ɇ���G�K���&K=�@�'�d�jS�e�{t��x�c@�$��Z�RHQ�M���5����C��W'S��g��}��F����8̂�`�)�@_)��<Nu��!!~Q!kT�"��{2"�bP#|ea)��cD��=:�4C�H����B �6$�!JAC���Hғ� b�kRnf��� ���=6!D2<�M��aS�H�m� �W� ��g6����6׳!þε��[E��bH���13%QH���� K�Ufًt8�Q�8�]a��HQ��e��c�6!�ї��lC�=�; +@?�6��\��4�&X���eͩI����ĥ.^���ue�C������E: tmy�^��"�)���x��~&nu\��6+���8��Dl�?��iv��Sm9y��#p��nlTX�^D���x�b!%Gī_�r���6�\;9��63" +�E�!勓��ݐ +?^�#퍜����B'���$�~UI�e}]&��c��Z+�^��/�DaMj�pĕh<��B�!�c?��j�.�a��G~�>Q��˭Xl +(ݑ�ʹ�]�C�h�áh��� +���6bރة��b?��q����"���,�l��Md2�?��IQ��D� ���h��ifZ�+`��L(�6〓K���q�-@@0���Ȗw6!6����:Dփ�R�b�eQ��|M�9���KAlILf,Ob�����I�Ϣ����t�U~I�d��1��қ;=)�-�4I�RE�Yˍ��ig�Xu��Fߗ��<�]�y��i���i�+Z��@�Ml�f����L������Y�@m�~�T�d����_%�TQ�پ��]���q.k��)侮O-%5p#�g�R�y��Bs��ֳ�~��$��l~��6�Vz�<��)�_;K����� �����������~�s�ސc'L�`�ieyd��QQFk�ҿP?b�բY2���Y@�F5+�{����z���P��mfPy�^Ef[F��72�o#��G{��"w�I��O���"��h�O`͈�KBs��T�n m*������(�Z�ʵ�LvL�j3�2*���ر���c7M�5��l㛭�ݹF�!R�#E6&"n&��2���݉.&yr�|��A ��3�;�Nj״R���IE�ªH��-�ՔpI�;�������e=B�n�\Y��pk����9�8��c�;�kU.@�q����u�j|��"M��z���5�>u_��@ +6iW��~���%f�f�э�!�h�;��CC��U���& ��a3Sw}N���NH��|Tl>y�A yըGBp��{��(��9�0�,�'��=~�-z;�:�`�&� +endstream +endobj +4944 0 obj +<< +/Type /Page +/Contents 4945 0 R +/Resources 4943 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4872 0 R +/Annots [ 4927 0 R 4928 0 R 4929 0 R 4930 0 R 4931 0 R 4932 0 R 4933 0 R 4934 0 R 4935 0 R ] +>> +endobj +4927 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.696 329.146 150.884 337.837] +/A << /S /GoTo /D (fsolve_8c_a690a05654627b94634ffed0893946ba7) >> +>> +endobj +4928 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.243 328.174 335.905 337.326] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4929 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [403.181 328.174 502.323 337.837] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206) >> +>> +endobj +4930 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 316.218 128.438 325.37] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4931 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [273.441 316.218 307.102 325.37] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4932 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.212 316.218 373.873 325.37] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4933 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 316.218 525.406 325.37] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4934 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.832 304.263 160.843 313.72] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4935 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 142.915 297.675 169.455] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4946 0 obj +<< +/D [4944 0 R /XYZ 69.866 801.979 null] +>> +endobj +4947 0 obj +<< +/D [4944 0 R /XYZ 70.866 771.024 null] +>> +endobj +4074 0 obj +<< +/D [4944 0 R /XYZ 70.866 560.785 null] +>> +endobj +578 0 obj +<< +/D [4944 0 R /XYZ 70.866 544.409 null] +>> +endobj +4948 0 obj +<< +/D [4944 0 R /XYZ 70.866 368.678 null] +>> +endobj +582 0 obj +<< +/D [4944 0 R /XYZ 70.866 274.528 null] +>> +endobj +586 0 obj +<< +/D [4944 0 R /XYZ 70.866 128.707 null] +>> +endobj +4949 0 obj +<< +/D [4944 0 R /XYZ 70.866 82.821 null] +>> +endobj +4943 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4953 0 obj +<< +/Length 835 +/Filter /FlateDecode +>> +stream +x��VMs�0��+t���H��8��&m�u[�7'�[���rA�ǿ� + ���LO=0H���ݷ����om;��-"��{����� �q����Q�E�S�X��O �,�T��NU����+�t^VҎ�rP��V6+\/.Q�Ę�1��83�އ��ˣ�H=��(A��[^��%"8���5k�0�KX�~x�_����#L��B\$W������1��,%Ԁ�������"�Aȏ���@����$e(�g�����h�t`f�W���ݛ GB�j�����ٳ��[G���{��[�Ҫ�֎�?1�&q62[���NS�z2*��Đl�3~�e����,��i���|�u�i����|�$Ù�SE�U/�a���<�N�����Uέ*�Ci��>ҏb����!�f���=�0:`MR;���O��O��p69H��Cw�1��?��:oT�We�w�$y�N��f�d�.t[�O�\��~�Ĉ +L(���X���h&b��y:�*E٨��1ϰ 1Н@���?� �]��iYwv�6�_��P�2�U��`>x���ɕf�L�C�K�thᾭg������i�:ٚީC����V����ZZ�^A��mg�Z�?� ��Ȯ�#1��qЗ�z����ЬFކ<a���+�/��N�NQ���F��%B����˵#�}"�I�ӝV�U�y��u��f��ֻ���c]��fh~}���|����E��Liy����N�$�0\С��� �*]Il�ٰ�� ��U��D�������O]�z8����+� �s��(��蹐0̹�ƫB����w�Uñ~ؚ��XO=� �P� +endstream +endobj +4952 0 obj +<< +/Type /Page +/Contents 4953 0 R +/Resources 4951 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4955 0 R +/Annots [ 4936 0 R 4937 0 R 4938 0 R 4939 0 R 4940 0 R 4941 0 R 4942 0 R ] +>> +endobj +4936 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4937 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.255 679.342 238.543 687.128] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206) >> +>> +endobj +4938 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 674.87] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4939 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 655.431 209.303 662.915] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4940 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 655.431 296.791 662.915] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4941 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 643.476 209.303 650.96] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4942 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 643.476 296.791 651.613] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4954 0 obj +<< +/D [4952 0 R /XYZ 69.866 801.979 null] +>> +endobj +590 0 obj +<< +/D [4952 0 R /XYZ 70.866 771.024 null] +>> +endobj +4951 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4971 0 obj +<< +/Length 1715 +/Filter /FlateDecode +>> +stream +x��Z]��6}���Ϭ} !ޚ�f�$m�n��͎�xe/�6���v��{�����>a�8����~�~1��H�u6������ɏ�ɋ�;B0g�r|���P$�3�q�\!����G��^q�"�S���{�,��a%�:y5�|��R!J�$���fru��x���@:ߋ���q���;���%F���b9s��Y$=K��zn����tJ���J�N�`����!�y��d��a����À�x#��%� �%Th�H�(u|�!���HԱ6�rDkR�W�0�<4��w*^緻�)O�H�4���$@��ik��h�2���jV�i����m������?���j��c�]�K��A|W-���C+�$�8�i>��(�F��Q��V3����6�r��j�{Ŗ�!h��n~�Ď%��@�,OR�IVa#;�*I$��g�[du���0M��3"�{�#�q��V'0^OG3����IFP"���ὁ9�ȃ +j��nAՍ�w�d��F��Q��M��W76f����^M)v��I��Rq��fP��4]N�巛��|G*���j��0��$\�� +�8�/7!9�y�#ϒm�#�qf;%�0��|�pXɡSm�&�K ~�g��V�b�ێ��+ Wv��N°b1�9�����l��n�Ս�U�f_\�F��@V��g�����`)ǬU���xqŋ�1+�_��f�-��l�(���������R����mM+l���,W�l +�O�G3�U@?8M�'aX�r�|J�C�\ ~Hbg�[�5�ϩ���e�% +�I�pk3��m����To��;�m����lw��֟��8�dI�xƗ�*ߦq�8�������H�{���C��9/*���O�"�߷�/�)�93n{�sʣq��bh���'4R�Fyh��Tkrk����>"�/���2�T�Ke�GLո���pafP�z�h��ٓA3���\�B�]d���uP��a��Fyl�|�C ��*C lp��䕆f n�'"`_`� �v&,�m���D5Rr0� a�.�����T���}���hV� �V�J8��3%eW �)1��/��+�7����.�k"�/����;��w����U�>��5]�}{Y�*�����7�/~�aJ��7�~i��q ������j���l�"`�v��@�}ho<Y�IÎN�,*�Xj��Ne����ʘ��<���.�Eu8�L��B"��|�rx����~�wl 7����'��xV �(@���gT�jF�֡��4,r�j]� +ד*��<�_� +.&((�ze�y������1�̫It���!B `;5Ncه����3��w��ur5���(�Ц��A!TS�;���o�+f̃� sc��R�l�Jn�1E�W]U[��R&�:�R��@��ge�i##C�q�H؈ؔ}��R�� �U�L���Gˎ 3+N�73t����>��cR��'� �,��������Z��]d�*l=w�j���^�m��- Y_۽�[�����.�6�E3��W�����x +U�,��_��?D� +��3(����F�raK�R"h7�U��!�:l�\��|*�D����z�gzp�H������;SN1U|�I��Uܗ��>�}KSj��Y����CeN���B�/ +X_xE2���\�V�U���%9Ot����˧�����1ہ +endstream +endobj +4970 0 obj +<< +/Type /Page +/Contents 4971 0 R +/Resources 4969 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4955 0 R +/Annots [ 4956 0 R 4957 0 R 4958 0 R 4959 0 R 4960 0 R 4961 0 R 4962 0 R 4963 0 R 4964 0 R 4965 0 R 4966 0 R 4967 0 R 4968 0 R ] +>> +endobj +4956 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.604 424.923 218.745 434.586] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206) >> +>> +endobj +4957 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [224.733 424.112 297.81 434.38] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117) >> +>> +endobj +4958 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.802 424.112 412.748 434.38] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783) >> +>> +endobj +4959 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.696 361.245 150.884 369.935] +/A << /S /GoTo /D (fsolve_8h_a690a05654627b94634ffed0893946ba7) >> +>> +endobj +4960 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.243 360.272 335.905 369.424] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4961 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [403.181 360.272 502.323 369.935] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206) >> +>> +endobj +4962 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 348.317 128.438 357.469] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4963 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [273.441 348.317 307.102 357.469] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4964 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.212 348.317 373.873 357.469] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4965 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 348.317 525.406 357.469] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4966 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.832 336.361 160.843 345.818] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4967 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 210.472 297.675 237.011] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +4968 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [93.78 96.295 177.068 104.082] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206) >> +>> +endobj +4972 0 obj +<< +/D [4970 0 R /XYZ 69.866 801.979 null] +>> +endobj +4973 0 obj +<< +/D [4970 0 R /XYZ 70.866 771.024 null] +>> +endobj +4075 0 obj +<< +/D [4970 0 R /XYZ 70.866 542.258 null] +>> +endobj +594 0 obj +<< +/D [4970 0 R /XYZ 70.866 526.689 null] +>> +endobj +4974 0 obj +<< +/D [4970 0 R /XYZ 70.866 458.05 null] +>> +endobj +4975 0 obj +<< +/D [4970 0 R /XYZ 70.866 393.399 null] +>> +endobj +598 0 obj +<< +/D [4970 0 R /XYZ 70.866 308.29 null] +>> +endobj +602 0 obj +<< +/D [4970 0 R /XYZ 70.866 197.071 null] +>> +endobj +4950 0 obj +<< +/D [4970 0 R /XYZ 70.866 165.94 null] +>> +endobj +606 0 obj +<< +/D [4970 0 R /XYZ 70.866 139.588 null] +>> +endobj +4969 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +4988 0 obj +<< +/Length 1773 +/Filter /FlateDecode +>> +stream +x��ZKs�8��Wp�U�Fz��ne���lf6�[&�rl9fˆ�L������>�!��룻�����;q^�v^���>�x���s�Gb��HE� �x�<�#"�#*}w�D�7 ��E���M���ك^ vu�Ù>���<ĥ�2 !������׀�E�R��#�2g�<>ag���<�;��'�������1���#�ͩ9X�8i�H�3k��p(��Z��4�3� +�V�@���/K�.�� ,�#=��t<�枅ȼ@U���H`ϑ^��p����iN���$ +�"���"JPL��Q�'���#c�t����r���y\"!d�A�@O����zdʐq�9�� +I�@)���{=]����P_@�2�M]��^$�'+�@�n���%f9�� �Ħ�k�ciP�$͏� �����1Z�G����Y�R��!8-3f�r��J��1��f��n��7�p��~� Y��4�T`mm�(`�"���˫�O�1��|=�"%1��=�Μ��7A���X���s���LrgD@* �Ve���-<���ˢ +-&+��˫EF��X����ȃ�&������S���MϠ$��ʢ�#�'�TE�4���R�O�V�5A:ܬ���<f�v?���~����o_��ݥ� +)�/�2��n(�������^�x��yA�O7��<O�P�B�b^&C�n�'V�k�-�.o�?<]8� �-p�/]=b>�~�4�E���d�I�:�� +�?�ﭧi������+�ω�*y������9��-� + +�QV�����'�UAi�- ?ʌ�ed�P��I��M��Y��({tjk�4���kꇹn�տ6YBO�"��Ul��2�K��I�n�3���6�y~�5��ʷ`��dJ'��4ʏ uT��*b�!��4��w�7(��]Yd� ƛ�)w�?ﻳe%�0���g����)�V�ti�:��'Q�s��~e��=[����)~��m��T��ɯ�`Q�����"^�eĢV���/:?�������Z���)�znU�Rud�z�D���߇�զk�p�&�ST�^�v�L��|�uF�rSȀD���#�ھ��` �uQ��($p��a�Zk���HQ��^�A � -���hJ`��U_�u����뢭�Z**_�ū�}���tf���c���W +hFz(�d�IuCf�Y�q��9��`�dȃ&�0���lg\UhY;(�Ov;媲;)����0즧�du�$���,K4�W�"� ?D4݈/� Z?��D� +�np|�>u����l�*ПP'k�$@�n�Ä:��;y&�F(Ƒ��B��N��PӯuШ��vU�^����ɚ7���ٚ��a�F�9�M!П�0�^��*ڤ��'��rU���ā4�O�v���������g'�jcZ�l+zbn;Y�&Q����v�%l�w�}�� ~Dn�'��hU��Ia�(R�hNbjx��7*f{(�Ϛv�V���+�r�1j�c�'#�&���'k�d1���,���D �� �b�||Ğ���v�V�^������=Mi�nՔV��>�ʆw����ޞ�n�sBJuo{`����p�8��ӃN7q���Ő ��({Ajg`۔fs����ּr�E%��?��UG��mg�1\ںzů(��`rn���&dMb�]��~�����j��ܹ� _3wt�9���y6(��ORhCjX��B`�OO�UH�hN�`B�N\� ݭ�n;���ב1����|�tu���-�� +endstream +endobj +4987 0 obj +<< +/Type /Page +/Contents 4988 0 R +/Resources 4986 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4955 0 R +/Annots [ 4979 0 R 4980 0 R 4981 0 R 4982 0 R 4983 0 R 4984 0 R 4985 0 R ] +>> +endobj +4979 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 497.778 171.594 505.262] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4980 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.255 485.823 238.543 493.61] +/A << /S /GoTo /D (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206) >> +>> +endobj +4981 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 473.868 171.594 481.352] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4982 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 461.912 209.303 469.396] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4983 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 461.912 296.791 469.396] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4984 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 449.957 209.303 457.441] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4985 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 449.957 296.791 458.095] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4989 0 obj +<< +/D [4987 0 R /XYZ 69.866 801.979 null] +>> +endobj +4990 0 obj +<< +/D [4987 0 R /XYZ 70.866 771.024 null] +>> +endobj +4976 0 obj +<< +/D [4987 0 R /XYZ 116.111 755.899 null] +>> +endobj +4977 0 obj +<< +/D [4987 0 R /XYZ 77.242 741.447 null] +>> +endobj +610 0 obj +<< +/D [4987 0 R /XYZ 70.866 666.087 null] +>> +endobj +4978 0 obj +<< +/D [4987 0 R /XYZ 70.866 619.558 null] +>> +endobj +614 0 obj +<< +/D [4987 0 R /XYZ 70.866 592.363 null] +>> +endobj +4991 0 obj +<< +/D [4987 0 R /XYZ 70.866 316.281 null] +>> +endobj +4076 0 obj +<< +/D [4987 0 R /XYZ 70.866 68.979 null] +>> +endobj +4986 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5017 0 obj +<< +/Length 1392 +/Filter /FlateDecode +>> +stream +x��YKo�F��W,��T�}?��"q���::� ZZ�D$2�(�ί�쒔I���Dj��H��3�����lx�'E�U��"�M�a��kd�U���i��RH[�E� ����^ ��P�.�{��]���^e��¥y�'Y�E{����= +�эFc�a���M���֠/Ar���X +�s����Jʰ�T�a*�I��Lu@ !�t��o�(w����/ݴOI�.;��ٚ1��%���]��4w�bq6-��@�Ίi��I��e��}^�(D�W�[��TF�0'%�`���U����I:��'%.Jk�� �*�s�*@-l%��'I�o: �M�s���Cx�Cl�J������u76 iB��f1W�' n�7�иI���XP~,d��'�]'���n�Q ,��n:��� �ֆ6PP�/n�8ϖ��E�#�Sb�L�ڲ�Sv��&��}ɳt��?ݬ�t?3߲���R��5����Y��|��=���V|آ+ mt�D�3&K��@J�����dR>�����<}�<_�\>F��i4�M騭�K�'�<����6ʻVߍ��� +ۨ�Ï�1�֥#�X�T +mH>�:���a�wc�Y_�f +� o\7�T^�O)���F1Ä�#����4��Qr��Zi�b� �E��(g�I\v��f�Οd(Ah%!l��&��R+E4��j]��lm�(������TB{ڝ-����"�.#ȗP�������~u�~�Wό>;@����+��`'OlC�0�?!�����>!��N��l����y*��A��ɢ��?y���c�8`��K��=�%�aB�È�+8>O*e��#L_�G������6H´%�ry��ݤv��x�|�F]�#�đ��fE�x��$j`��Z9�oԻJ{Z�U}��I�D�o��]ҦϨ�ʖ>���D��o��#�p8d�� 9$���;��%/�6^-�R[1��������$BIl�_?���%�O׃k��k�[+����ud+3�:�?2>mMd�?Rbm��j��3�j�]�}D�����e���[_�a61�VS<�E��i��J�]-��ܲ +���6ãMc��x�1��cP��N�~tP� �� �eYI?��Ų�����9c��Ȍ��'��,4嚛��g�XX�8��z6�[T��"�m���+�m��@;�5�|X������Jw)�i�XC#ۆ��0x?���~Mړ�4�w�+y&�&��D�;�'^�cU}�+�f�˕ህNd^v��w|?��w��2Uz����a�+n���<�[=�8ΚKp~�W���ɼ��al����� +���X�I�־��[���(��%�����Nj͠�K)���*�qo\�q^m5��f��j�eߗl��!�MT�� +endstream +endobj +5016 0 obj +<< +/Type /Page +/Contents 5017 0 R +/Resources 5015 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4955 0 R +/Annots [ 4992 0 R 4993 0 R 4994 0 R 4995 0 R 4996 0 R 4997 0 R 4998 0 R 4999 0 R 5000 0 R 5001 0 R 5002 0 R 5003 0 R 5004 0 R 5005 0 R 5006 0 R 5007 0 R 5008 0 R 5009 0 R 5010 0 R 5011 0 R 5012 0 R 5013 0 R 5014 0 R ] +>> +endobj +4992 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 543.643 197.72 554.225] +/A << /S /GoTo /D (fsolve__test_8c_aefd0d3fa000963221de289a3933b7c9b) >> +>> +endobj +4993 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [201.205 544.562 234.866 553.714] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4994 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [267.422 544.562 301.083 553.714] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4995 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 517.58 199.71 527.956] +/A << /S /GoTo /D (fsolve__test_8c_a3344cde9f5060d7ab962fbaaf1cdd88f) >> +>> +endobj +4996 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.196 518.499 236.857 527.651] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +4997 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [269.413 518.499 303.423 527.956] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +4998 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 491.518 197.72 502.1] +/A << /S /GoTo /D (fsolve__test_8c_ae36fe8e55d180d348ef331efbbc5b908) >> +>> +endobj +4999 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [201.205 492.437 234.866 501.589] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5000 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [267.422 492.437 301.083 501.589] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5001 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 465.456 199.71 475.832] +/A << /S /GoTo /D (fsolve__test_8c_ab95955c80b1896b9e75a04faa4ce742e) >> +>> +endobj +5002 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.196 466.375 236.857 475.527] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5003 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [269.413 466.375 303.423 475.832] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5004 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 439.393 197.72 449.976] +/A << /S /GoTo /D (fsolve__test_8c_a8f8a1fe785d5304202601b95e1e6871a) >> +>> +endobj +5005 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [201.205 440.312 234.866 449.464] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5006 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [267.422 440.312 301.083 449.464] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5007 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 413.331 199.71 423.707] +/A << /S /GoTo /D (fsolve__test_8c_a6686e4624961ca943bebb616e763a100) >> +>> +endobj +5008 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.196 414.25 236.857 423.402] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5009 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [269.413 414.25 303.423 423.707] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5010 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 388.188 160.608 397.851] +/A << /S /GoTo /D (fsolve__test_8c_a53bbdeb6ad57eeb4b512c4620b64cc37) >> +>> +endobj +5011 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [276.9 300.939 302.088 309.63] +/A << /S /GoTo /D (fsolve_8h) >> +>> +endobj +5012 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 263.149 297.675 289.689] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5013 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 137.765 171.594 145.249] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5014 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 125.81 171.594 133.294] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5018 0 obj +<< +/D [5016 0 R /XYZ 69.866 801.979 null] +>> +endobj +618 0 obj +<< +/D [5016 0 R /XYZ 70.866 771.024 null] +>> +endobj +5019 0 obj +<< +/D [5016 0 R /XYZ 70.866 577.512 null] +>> +endobj +5021 0 obj +<< +/D [5016 0 R /XYZ 95.773 402.215 null] +>> +endobj +622 0 obj +<< +/D [5016 0 R /XYZ 70.866 360.06 null] +>> +endobj +626 0 obj +<< +/D [5016 0 R /XYZ 70.866 249.768 null] +>> +endobj +5022 0 obj +<< +/D [5016 0 R /XYZ 70.866 218.991 null] +>> +endobj +630 0 obj +<< +/D [5016 0 R /XYZ 70.866 192.658 null] +>> +endobj +5015 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F68 4470 0 R /F67 5020 0 R /F51 3827 0 R /F92 4494 0 R /F7 5023 0 R /F8 5024 0 R /F1 4058 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5036 0 obj +<< +/Length 1807 +/Filter /FlateDecode +>> +stream +x��ZKo7��W�(���-z)R-P M}KA�W��[J%�u�}�K���j��s�����;3����O������v��a��藛�յ0�R�� 7b�Z�8�@n���10 +f2�Ǝ���s6�e������Y���-&���&[�e�ۛ߉��*#PU.H;�t�����CF`��Zj�$wO������g�F����|�� +�I/��5�s�F���w� �# �ʸ��.����)�e� �x�[V�LZ��^;,��6jo�e�eZ#��d�jA�TQDp�"]µw�(��W����`@��CU�r����*}��7���)X5�M�#C����~ũ[��e�\y���ݭ��sޫk��˔D|��/a�!�:#l��j'���Kț��b��Ii�|u���Jy�6�G�����k���Ӧ˹�0�!.o�E0�Y��Z!;�,1a��_�ފDtM�֘�2Lc:_J:0����șa6�s�d���Y4A��@���L\�����-��?�O�H�(�9w�O�ьL��-Pxp���c|�<�f����*�h%�u�W�FѾ�ޞ�+��ܗhĔ�@%�Nj��߇��p6���)�@C\+� +�(ؖ��)Gh3���:�v��z5�̶߶��"�D�R�x������8y^/�B�e5ń����}�61Vލ�������n���v�i�����`�p��]�8cƷoZt��1�"�T��|���N�KJ*U���� +Ҧ �?2� ��s zu��5���˞��!R��W::Z�]��ф. ��@G*�jO(@Q�-I��+ן45���~-�Z�*R��~��i��3�R��JM�4�����s�_e@Y���9(Y�?S"R�c{<�T�X�d�H��@7p�`RV�Rs��0d�Y�����J���i��������8��25-����$mid��.�v��PwR����Q�1z%��;vA�4�;��U�0��iY�^���0ݞKS���b�,_G�%p��A>���8�Q�F��n )�$ۅ�0�9'5����?6�aR�=�����U6o�2�:���:�E���U�78@�Wz�9�*�&����B����1x�!N��˗F��0���)V�Ǡ��'��O�v�bewe%��+�������乱N ��Y�X����E"�F�+�;�E�j<�["��3]�P��tUB�燔X�8�6��:<Ka�)8˞�7u�h���JM]�I���ը�)�y_�X9�j��{��e����e�w���U�Ϫ��dx���8Y1Pe���(�I� ԟ$**��?��(SoZ&Nu6�Wo@o�?�&�,�R�d�̀7�ˋLu&�?��ב�r�,\�L�Q=���*� ZQ����t�@#�YZ1�u�D� +|b�=�$����@}��V:Q�i��G:p��'*���6�����o�_�}D(V�G��>����G�G� ť��= +^�|T� �A|!��y�)��Gy)�Q�!�)T��C>�(���G<l���c7ш�C��ٞ������]>�g����ǵ��Z��]����"+G�!�m�a�1Ě�\�7+D�BhU�=���+�˥��ڗ���E���'@t��\�ƐAV�bT[u�7))NG^`8�1��Ju���; ��-���˞�]pl��T���ɓ��&��jCʠ9.� �3�)�u +�RL_߯Rډ����_ Ez\5{��9'�@ۡ�Y�'�`� +�'��O늟j� N_��Dg#ͻl�m���v����oq�^�-�g%7 +endstream +endobj +5035 0 obj +<< +/Type /Page +/Contents 5036 0 R +/Resources 5034 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4955 0 R +/Annots [ 5030 0 R 5031 0 R 5032 0 R 5033 0 R ] +>> +endobj +5030 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 545.591 171.594 553.075] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5031 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 533.636 171.594 541.119] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5032 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 180.595 171.594 188.078] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5033 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 168.639 171.594 176.123] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5037 0 obj +<< +/D [5035 0 R /XYZ 69.866 801.979 null] +>> +endobj +5038 0 obj +<< +/D [5035 0 R /XYZ 70.866 771.024 null] +>> +endobj +5026 0 obj +<< +/D [5035 0 R /XYZ 70.866 643.461 null] +>> +endobj +634 0 obj +<< +/D [5035 0 R /XYZ 70.866 616.265 null] +>> +endobj +5039 0 obj +<< +/D [5035 0 R /XYZ 70.866 429.307 null] +>> +endobj +5028 0 obj +<< +/D [5035 0 R /XYZ 70.866 277.97 null] +>> +endobj +638 0 obj +<< +/D [5035 0 R /XYZ 70.866 250.8 null] +>> +endobj +5034 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F7 5023 0 R /F92 4494 0 R /F8 5024 0 R /F1 4058 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5044 0 obj +<< +/Length 1044 +/Filter /FlateDecode +>> +stream +xڭWMo�8��W�(5��7Q���&�Omַ�0TGN�Ү��οߡD9��:��C@#�7�y���g ϻ#τ���_��͝0�R�� �1�Z��q�j �'�6�ϦD�#!5�W��._g� 76�-�/����*/o:�{6�oh����K�܌�<�)ADg���rC�TI����ї���r��#�� �jep���$ݦ��ʶc�dW{�BF=Dz�� 9��:x��1�2���r�0�ZP� DE��k+��D�<��(~-��f����>�~�n��� X��#�Rc��Z~d��+N �>��e^x�B��p~ϼ+7w���)��������!�:#lm@��dT�QAc�sCR��}�pIꬺ��ǩL���^Z<E(9�R��8E�S{�.�1WI�~�vcP �X0N�\��aq!CY�*.T1q�@#(�����"��-P�ޘ3��:�x}v8WbQ�/[�Q����юW��j�a|nl�au�����X�ë�>[�d�F�`����/�&&`i��D�6��/�ȤUs��"�~0��Q��ӿ�.�]�n䵨�]E�u,ы ��lX��X�$�f�2{j^�6�,y��|e���&����5۰��,Ql{(m�X���$�EY,� +���n1�E� b�������*��G����c a�,l>G�琬����D����ٲ*�������9���кۑjL2����{LD�z�V�| �Z�G>��{�և�|�iOj����QAH��{���>]���4�����*��}�U�;����d�f��6���^p^�d�����"���U�il����Z��v�4�M�U�����Z�Ɏ�����#f@��/3e]D>t�X���֧��͓���o�L�֞�!��o��`�߃�!�So�d<ra����H�GQ��uˡs���q|�q�]Ȉ~��N$�]uT��)j� �����[㈕�O\[�wm>L`�����P�>���2~,\���~�jʍ�51�JI<��Av��6�b����g�fCq�����kB +endstream +endobj +5043 0 obj +<< +/Type /Page +/Contents 5044 0 R +/Resources 5042 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 4955 0 R +/Annots [ 5040 0 R 5041 0 R ] +>> +endobj +5040 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 545.591 171.594 553.075] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5041 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 533.636 171.594 541.773] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5045 0 obj +<< +/D [5043 0 R /XYZ 69.866 801.979 null] +>> +endobj +5046 0 obj +<< +/D [5043 0 R /XYZ 70.866 771.024 null] +>> +endobj +5025 0 obj +<< +/D [5043 0 R /XYZ 70.866 643.461 null] +>> +endobj +642 0 obj +<< +/D [5043 0 R /XYZ 70.866 616.265 null] +>> +endobj +5042 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F7 5023 0 R /F92 4494 0 R /F8 5024 0 R /F1 4058 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5053 0 obj +<< +/Length 1839 +/Filter /FlateDecode +>> +stream +x��ZKo�F��W�B����>Q�R��S����bӮ�[r%%u�}g��IqIQ��Hz����.��K�� ��{7�}:��D��� ��3+�3�Y�H6�c\���K�7��/�l�n��6u�xL�O���I�N����fzŔB�-�����v��t��H�K��N�s܁b�O�����oWLp����|bJ� +`��џ�;:|��FZFnd$w����1�d��?��t=�2�d���Q I<ҳCC�-Wv�Cra4��9�� �Ƚ�Dn�<�L0�C�`V�S�[d�l�F +�Q�P���),���B_f���z<�N'7�Jpk�P�$�"_�5��?���Y�nW���,x/.���L+�OWF�K~�2���x�&�+z�y���a ��/�"�$�:N���e:�?~N7c��49P�k��f���0� tTw$�IE�J�WQ���P��� 3Ld<a�B�d�-=�f��*њ5ه�1�d~����/���yy�]���8���X�k��Y�������*��B�h�4Ò ��ph���O�eŝ���ߦ���"3y��6>.����ȟ����G�Ƴ�D��3[�5����l�w���\�5��QhA�$ϝW9�����|E.�H�3I���j9�+�6_7�+���9"�����@D2�.��jA��Մ���� �h�P8�û��A���r���/��v��mkc�ť���i�]/{���͛Y{���h�=ͷ���1����{�7sQ�5f�m^mZ��T�j�a����g}P���d�R��]� GLBHRB٦O�*�[�R��f� ��;�_���T�=a�7�Ш���>��.�U��PYڞT��!�E �q�_����C�QK��FDl���[��� +��9Hjǀ�YV�N�X�4�K��y�"�ɣ$<�,k�G=��t�n�(y�iCCf����XcHŚ��٪ء�7:�kY���qG� +���T[��xvc�0�Q4I�`�U�K�`PP�إ$��U�/!��ծ?HS�F �ԞFU�< E�J�&Dz��VbzPc l�s��Ȇ���s�m����>/U��s�24�ۢ���Mh��+��j�{ թա+��&��@*���4�������:hi��bq$}yn�bUC�mCG�|�f����Ӯ�Aͫ�~�����r��1�lV��*�k� �� ���Xn�*�h7�L�o�6��u>ר�=^p�.�� +��2�0���4+:�KĀ��O�ȉ���mfPI�Ї�(2JtԄ�dʏr5�ߞldǛ�!A�LFD�<A��� +�QB�L\��J��fz�n��ftz +D������'��L"��(2��5�9�Џ��D4KkJ��L$f"��>�.��f⃑=����D�Q�?)��T��"�<T$�T$�xT$����UzWy��&��1���H�gk���ǰ5G!���Q��C/�P���q�w�(ʒ��h��bmuz�봚:-jzw��R0�>ER��*�v���(K���u��%qӃ��I]��.�����(�^M��$�K��v[�V[uA�v��/�ؠ�&D#�rP{�̨��Ee �xRI�a!5G��]$��*"m�HZHݩ�4�S1�~�&��Ћ̅�W� ε�M) +�*�c�`-tU�a�4"pIw�a��ӾV�|�T1J���/,�إ�5Q�l��`IswR,�b�p���2)�øJO�E�2�'�/L����������nV�-��N,���hT �9����Vf#��:�6|o��������`i�~�b�z�rߥ�t=��˷��w�|-��徆����� +endstream +endobj +5052 0 obj +<< +/Type /Page +/Contents 5053 0 R +/Resources 5051 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5057 0 R +/Annots [ 5047 0 R 5048 0 R 5049 0 R 5050 0 R ] +>> +endobj +5047 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 545.751 171.594 553.235] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5048 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 533.796 171.594 541.933] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5049 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 214.089 171.594 221.573] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5050 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 202.134 171.594 210.271] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5054 0 obj +<< +/D [5052 0 R /XYZ 69.866 801.979 null] +>> +endobj +5055 0 obj +<< +/D [5052 0 R /XYZ 70.866 771.024 null] +>> +endobj +5027 0 obj +<< +/D [5052 0 R /XYZ 70.866 643.621 null] +>> +endobj +646 0 obj +<< +/D [5052 0 R /XYZ 70.866 616.426 null] +>> +endobj +5056 0 obj +<< +/D [5052 0 R /XYZ 70.866 439.362 null] +>> +endobj +5029 0 obj +<< +/D [5052 0 R /XYZ 70.866 311.959 null] +>> +endobj +650 0 obj +<< +/D [5052 0 R /XYZ 70.866 284.764 null] +>> +endobj +5051 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F7 5023 0 R /F92 4494 0 R /F8 5024 0 R /F1 4058 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5067 0 obj +<< +/Length 1141 +/Filter /FlateDecode +>> +stream +x��X]O�F}ϯXݾ$R����TUm���r��S!�l�Eb���B}g��$NL ѥ}@k����3����.�R4+{�A�?F��3���V)�FS� 6J!mV�&誯��ft�8��B�w�_�ҹ�6��|�\��J�4ϼi���ԣ`I]!� h��]�4�w�Aז$$�Rpx��o�?WQ̤�K�YҎ��FĠ���'E�p�+���:��3Bp�a�!#8��0�DI��Ō�}`ͱ��(��%LyJ���⁑�#7��"ٱ.�f(�X2�v�|���`H���t�k����6����m��y�y�B���;����I�4�����F���� �� )��F4��X(�6�~��%�5� W�}���%٤�'cXpq�S��Ty�M��L���ҕ*�x7��*,�1��-/� �}��$�"�K��Ҿ��@�U��bj�;J�8��%���7���:=.��:���:�.���q~�&Y��t����fK�>]�S]B�p��B��}]]�h���eW����C�-��1v����X+�~� aYZSzL�y��$1J�C> �����e>����\Y�qM&Do1�*��t�'}W�l�&��;���N�k" �P�se�z*�6�Z�%q���@߄�����i��@�:d��`fbȟ����z_k��A���/Y� =MI��{Z&k"˗�r�u���r�VERfc��E�Ǚ�SX���2��] �}��$��j*fQV��U��@L��F�ҲYZ7$���g�JJ����ѡ?�L��Z�F���*AD��r\���v���%��Ftp��p���WV+8��ҹ�&~7��6\���}kb��I,XL��~X_V�y�hZ�׃hd$"�_Ƀ��8K���/I�H#Z��y��}+��]�~�<�oK�)�.�w�����m\���v�az��96Jj�~wY�߇���iy���e� ���HNu��%���V�)����sH�P3+�~���SC�Ơ�&i=�c�w5������]��Ja^�[� ��驸 ���OM����|�TE�m;����c���v�J���h����4�i�!��� +3 s� �ɤ�b�bJ�]护�N�ǽ�|�A��!��_� +endstream +endobj +5066 0 obj +<< +/Type /Page +/Contents 5067 0 R +/Resources 5065 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5057 0 R +/Annots [ 5058 0 R 5059 0 R 5060 0 R 5061 0 R ] +>> +endobj +5058 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 486.199 160.608 495.862] +/A << /S /GoTo /D (fsolve__test_8h_a53bbdeb6ad57eeb4b512c4620b64cc37) >> +>> +endobj +5059 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [276.9 364.105 302.088 372.795] +/A << /S /GoTo /D (fsolve_8h) >> +>> +endobj +5060 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 310.584 297.675 337.123] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5061 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 83.38 163.101 93.756] +/A << /S /GoTo /D (givens__test_8c_a7b8199da35e2aec77e76bbb9c52a28ae) >> +>> +endobj +5068 0 obj +<< +/D [5066 0 R /XYZ 69.866 801.979 null] +>> +endobj +5069 0 obj +<< +/D [5066 0 R /XYZ 70.866 771.024 null] +>> +endobj +4077 0 obj +<< +/D [5066 0 R /XYZ 70.866 648.644 null] +>> +endobj +654 0 obj +<< +/D [5066 0 R /XYZ 70.866 630.911 null] +>> +endobj +5070 0 obj +<< +/D [5066 0 R /XYZ 70.866 529.455 null] +>> +endobj +5071 0 obj +<< +/D [5066 0 R /XYZ 95.773 500.226 null] +>> +endobj +658 0 obj +<< +/D [5066 0 R /XYZ 70.866 454.409 null] +>> +endobj +4138 0 obj +<< +/D [5066 0 R /XYZ 70.866 300.775 null] +>> +endobj +662 0 obj +<< +/D [5066 0 R /XYZ 70.866 293.846 null] +>> +endobj +5072 0 obj +<< +/D [5066 0 R /XYZ 70.866 127.556 null] +>> +endobj +5073 0 obj +<< +/D [5066 0 R /XYZ 95.773 98.327 null] +>> +endobj +5065 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F7 5023 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5082 0 obj +<< +/Length 770 +/Filter /FlateDecode +>> +stream +x��V]o�0}�WX�<p�o�4M��&S��uyZ[U485�H����`�@ƢUj��>�8���������楃�a4v>N��S(�PJ�&3�0R"R�Mbt�{>U�;O�uV^W�� �S�t���\�<�]]�l����✁P̄j��g�Ӊs�3���(Gӥsq�Ql�;CX���%��l��9_���T"��$$�ɂ�@<�`��]E�xl���rZ��*ͳ���I0�I�:}����.��|f�UҪ0N�=*\#��-�ya� +7��%4�D*�eo�s�c��E����ڱZ�V��.�Ew��|�nͱ� V�vٖ�ю�QKf�*�h��pz{�-D=�?cs��ƁQ���rw]%&�B���R0���0oE��F�$���9*�i�f�t�6��5�B�HCH��R�ß����i6��ڿ��"� �=j�RBBD���2 �� ���h���1�0L��r���08A� 0Zg����^�=RD� +Tߩ���}��� �<��q��F�!#֦���6�#k�a��14�-#��R*�,�RҎ^��kYy�1T��K��X��L_��|��;p-z"��M�M븥BHg�i�j'��,���e����Z� Ի(�����@(��K�An�@��an���MKM�Q�9��eT�$G��=��]k�c�(힁 �9)�_{@�Ц���� ��ݷ�ޭB�g�S^��ת�$�<V��)[+�u�������b���)yS��u�0�t��/�D�� +endstream +endobj +5081 0 obj +<< +/Type /Page +/Contents 5082 0 R +/Resources 5080 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5057 0 R +/Annots [ 5062 0 R 5063 0 R 5064 0 R 5074 0 R 5075 0 R 5076 0 R ] +>> +endobj +5062 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [200.059 698.028 248.039 708.404] +/A << /S /GoTo /D (qr__givens_8h) >> +>> +endobj +5063 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 647.504 297.675 674.043] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5064 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 487.667 163.101 498.043] +/A << /S /GoTo /D (givens__test_8h_a7b8199da35e2aec77e76bbb9c52a28ae) >> +>> +endobj +5074 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [200.059 367.788 248.039 378.164] +/A << /S /GoTo /D (qr__givens_8h) >> +>> +endobj +5075 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 317.264 297.675 343.803] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5076 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 84.109 186.754 93.566] +/A << /S /GoTo /D (householder__test_8c_aacc09bb5d8990f8f6f3bc872b9a8d9a0) >> +>> +endobj +5083 0 obj +<< +/D [5081 0 R /XYZ 69.866 801.979 null] +>> +endobj +666 0 obj +<< +/D [5081 0 R /XYZ 70.866 771.024 null] +>> +endobj +4139 0 obj +<< +/D [5081 0 R /XYZ 70.866 637.981 null] +>> +endobj +670 0 obj +<< +/D [5081 0 R /XYZ 70.866 631.214 null] +>> +endobj +5084 0 obj +<< +/D [5081 0 R /XYZ 70.866 531.023 null] +>> +endobj +5085 0 obj +<< +/D [5081 0 R /XYZ 95.773 502.613 null] +>> +endobj +674 0 obj +<< +/D [5081 0 R /XYZ 70.866 457.435 null] +>> +endobj +4140 0 obj +<< +/D [5081 0 R /XYZ 70.866 307.741 null] +>> +endobj +678 0 obj +<< +/D [5081 0 R /XYZ 70.866 300.974 null] +>> +endobj +5086 0 obj +<< +/D [5081 0 R /XYZ 70.866 126.545 null] +>> +endobj +5087 0 obj +<< +/D [5081 0 R /XYZ 95.773 98.136 null] +>> +endobj +5080 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5120 0 obj +<< +/Length 846 +/Filter /FlateDecode +>> +stream +x��VMo�8��W�E>xBR")�Ŷh��~�mj�д(T���Ȓ+�i�_ߡ(ձ�d���[O$������,�_1��JV�����"89�I@K�Œ( +��Di��EN.B�>,��E��u��Ӳ2�9WI��ɶkS�ԖM�B����s�0��1I �1����Jr��� �Nȗ>rMb��#�W�M��KFA -oҔ��sl6g�����)R�����r32<9��ơ)�G�����t��L�6K?�b8�Ͷ3ES���j�������z��+�\xȿY㿙YDý��SA;cv��^�v5�{~��[�|��o��n6m�f�2�@ᄛ���l"��H��$�f<��h��lj��^�%@�A�w�e:�<�{�v�r@�$�칣#�FD���g~�tk�(�%,��O���r�G�{��fL8�9:1� ��E;���:�NǏ�t +�sg�s��1��ԙ��P�8����� b �v8�֙�v79�)&A%j���s.�^I�8��q6e~�������:d<��Й��H�:*��õs��)�?�kJ������#���D�u�Z �+S#���>��1���s�+-�Kv���[/z�I�o��D�/���)^�}�g����'�č�:���@����������R�b=t6/����bI��q��B�#�#pd��<6�uj���0�]r3� f����-�&�G�����������_8��\��Rn.1�TƧV�V��P<��=�F�����^��6�4V������֖U7��(0��f��k�'M��,K�JƽD�n�ҁ���M���Y�����������U1�S���? +endstream +endobj +5119 0 obj +<< +/Type /Page +/Contents 5120 0 R +/Resources 5118 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5057 0 R +/Annots [ 5077 0 R 5078 0 R 5079 0 R 5088 0 R 5089 0 R ] +>> +endobj +5077 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.165 696.738 290.987 705.222] +/A << /S /GoTo /D (qr__householder_8h) >> +>> +endobj +5078 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 642.288 297.675 668.828] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5079 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 475.522 186.754 484.979] +/A << /S /GoTo /D (householder__test_8h_aacc09bb5d8990f8f6f3bc872b9a8d9a0) >> +>> +endobj +5088 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.165 350.75 290.987 359.234] +/A << /S /GoTo /D (qr__householder_8h) >> +>> +endobj +5089 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 296.3 297.675 322.84] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5121 0 obj +<< +/D [5119 0 R /XYZ 69.866 801.979 null] +>> +endobj +682 0 obj +<< +/D [5119 0 R /XYZ 70.866 771.024 null] +>> +endobj +4141 0 obj +<< +/D [5119 0 R /XYZ 70.866 632.239 null] +>> +endobj +686 0 obj +<< +/D [5119 0 R /XYZ 70.866 625.174 null] +>> +endobj +5122 0 obj +<< +/D [5119 0 R /XYZ 70.866 519.467 null] +>> +endobj +5123 0 obj +<< +/D [5119 0 R /XYZ 95.773 489.55 null] +>> +endobj +690 0 obj +<< +/D [5119 0 R /XYZ 70.866 443.196 null] +>> +endobj +4142 0 obj +<< +/D [5119 0 R /XYZ 70.866 286.252 null] +>> +endobj +694 0 obj +<< +/D [5119 0 R /XYZ 70.866 279.186 null] +>> +endobj +5118 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5139 0 obj +<< +/Length 1590 +/Filter /FlateDecode +>> +stream +x��YK��F��Wp����ny8���N%�*���T��$b d�u~}z�A�@�G\��j���1�_w�����Y��Y:ع�0\���(�Kɜ���0RR:�O�$�d�� F��\��:1|��0տ��M��(~ɋ��� +�q����p1"x�a<ӗ�����������ˀ�-�!{�J!E�3�n�3�{7F�W��Fr�p���~�����&{U�$A��h�dz,J❱�|�jL�J$�D���b�A�y����Lax��|�8��r� �t�B���i��#d�l�)Č��È�� �r:"����γ�,I�И^������yg +4������ ��S������Xm�����m|�\�y���0G"�cJ�RX�d}̱��)�����[�N��T" +GI�(�֗A�tB�'x��<�D�(;N��X�Ds}��o���5�M�N<�����y��Ct�a6]L�4MR�%%p��6gY��[zH�pH��]��}x: .���.�.�M|�7M�D[�!���M���+�%�Q?/�ڼK���;Mܔ@�p�<� ���7����$�2��)�����vn�8���V����.,�7�EC�}���l凒� +��|0���z��CZO��uQ�K)�>�)�y��-��ly:ʒ���=a���4����T��{],��;��=��X�J��V�����u��LI�����驢�N��M4L�υ���w��>b@4�h������qea:�M���(�:�]6=�� P���f�#��7�%0�U��$���6�$PJ*?�?$���`&��o�?\�1"BՋjC�>B<vf?yr�x��Rc�i��2��Q�"S� �t��_�(p!~�Qv3�y�0i��9���~%~L6�<��Q�����)����c�٨�B�#`���� �J��W��Y'�;��b���b! qJ��a-���#@!��[h7�t�з�n�F�rWl�94ح�������S�ч/H�(�$��K��'r����)�����Ud��>t�W�a�_``�u���*C�/0ٵ��E՞��#ʇy�� <��?�ρ `P�.�m"�V�-�씿�i�D��H�������g��wQ�@�܅3\G1���h����4�D��1�\�a:[�5Uː%*��:����d���T������]�נ�Yo�ﵔ�Ғ�L�<�}L��`kzϤr��p4כ�eCv�>�z��Wc�V�1���$���e�}��&p����I���3��~���D��Tk���-�s�N�� 娡uꇕ�U�њ_Ga�*�z*IkA��[������YONR�����j���y @��5L4Y�zzׇ���9[�@��E�pоX������v�'f�9^X��v`����Zk�)1*sy#rDq$x�&�⤄n,���m/�����W��Lw� +y9Z�.���n��k;5o�Č�܊m`�0-�Kf�l��c�q�'�2Z�!Լݺx X=} �/?�}�R��/v�:�a���,HJ˴�ڪ +W�{د�Ԩ����R��zinX�/+, +endstream +endobj +5138 0 obj +<< +/Type /Page +/Contents 5139 0 R +/Resources 5137 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5057 0 R +/Annots [ 5090 0 R 5091 0 R 5092 0 R 5093 0 R 5094 0 R 5095 0 R 5096 0 R 5097 0 R 5098 0 R 5099 0 R 5100 0 R 5101 0 R 5102 0 R 5103 0 R 5104 0 R 5105 0 R 5106 0 R 5107 0 R 5108 0 R 5109 0 R 5110 0 R 5111 0 R 5112 0 R 5113 0 R 5114 0 R 5115 0 R 5116 0 R 5117 0 R 5124 0 R 5125 0 R 5126 0 R 5127 0 R 5128 0 R 5129 0 R 5130 0 R 5131 0 R 5132 0 R 5133 0 R 5134 0 R 5135 0 R 5136 0 R ] +>> +endobj +5090 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 738.946 128.787 748.402] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5091 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.583 738.026 278.093 748.402] +/A << /S /GoTo /D (levenberg__marquardt_8c_a741182c4bc201af44ac010bc4474b826) >> +>> +endobj +5092 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [388.882 738.946 422.893 748.402] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5093 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [462.21 738.946 496.221 748.402] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5094 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [156.047 726.99 190.057 736.447] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5095 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [209.141 726.99 243.152 736.447] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5096 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.336 726.99 371.997 736.142] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5097 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [408.558 726.99 442.219 736.142] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5098 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 726.99 525.406 736.142] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5099 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [211.595 715.035 245.256 724.187] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5100 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.582 715.035 314.593 724.492] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5101 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.055 687.331 228.218 697.706] +/A << /S /GoTo /D (levenberg__marquardt_8c_a2a72b2b6be15a9998b61a9c0097e3d5f) >> +>> +endobj +5102 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [336.779 688.25 370.44 697.402] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5103 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [413.842 688.25 447.503 697.402] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5104 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 676.294 128.787 685.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5105 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [152.473 676.294 186.484 685.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5106 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [208.314 676.294 242.324 685.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5107 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.124 676.294 308.135 685.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5108 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [434.922 676.294 468.583 685.446] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5109 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [168.789 664.339 202.45 673.491] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5110 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.112 664.339 281.773 673.491] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5111 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.415 664.339 369.076 673.491] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5112 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 664.339 525.406 673.491] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5113 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.588 652.384 168.599 661.841] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5114 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 625.598 128.787 635.055] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5115 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 624.679 273.233 635.055] +/A << /S /GoTo /D (levenberg__marquardt_8c_a46fb5a9d6d185ff7f98c9cf34b56e34f) >> +>> +endobj +5116 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.098 625.598 350.108 635.055] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5117 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.057 625.598 402.067 635.055] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5124 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 455.791 297.675 482.331] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5125 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 277.976 171.594 285.46] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5126 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 266.021 171.594 273.505] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5127 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 254.066 171.594 262.203] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5128 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 242.111 171.594 250.248] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5129 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 230.156 171.594 238.293] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5130 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 218.201 171.594 226.338] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5131 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 194.29 171.594 201.774] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5132 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 182.335 209.303 189.819] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5133 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 182.335 301.573 189.819] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5134 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.159 182.335 403.408 189.819] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5135 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 170.38 209.303 177.864] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5136 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 170.38 301.573 178.517] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5140 0 obj +<< +/D [5138 0 R /XYZ 69.866 801.979 null] +>> +endobj +5141 0 obj +<< +/D [5138 0 R /XYZ 70.866 775.009 null] +>> +endobj +698 0 obj +<< +/D [5138 0 R /XYZ 70.866 596.768 null] +>> +endobj +702 0 obj +<< +/D [5138 0 R /XYZ 70.866 426.654 null] +>> +endobj +5142 0 obj +<< +/D [5138 0 R /XYZ 70.866 389.68 null] +>> +endobj +706 0 obj +<< +/D [5138 0 R /XYZ 70.866 363.007 null] +>> +endobj +5137 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R /F61 3918 0 R /F68 4470 0 R /F67 5020 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5157 0 obj +<< +/Length 1986 +/Filter /FlateDecode +>> +stream +x�՚�o�8���W�H����]]�{�ۋ���MH�)�.�^����ILp!@��=�R3��c{��~���l��l�|��ey��#s�R2g�q\�<)קHg�v�f��?,o�b\�s�ݏ�.�/���>���>J����D5��uy���@K쐣E�C��js���5�������S��;\0$8��;篛?�^bD���.�gA,>K�<���cN�,��}TDٜ�Y^zV��z��2B����+� K�B�^� h͡7|m�����%T�.���q9C.o�#�elv��XIi�!0zX6E7�.J�œEڃnp�Xipڐ�\$���.M7յx��FY�f���!Y)r��ϗ9�hU������̣�09��6-`��6�O�$�8�ܼp�G�K?o����If������E�q<+��5��6`���ȚdC�E0�0#�Ca�#�-X�x��5N��)��=�w�����qN�y3���`��@`y�&���d��J�R v �0FZ�B5R��)���r�F�a��܍�@ ���2!�s�^����@���z#�yOғ�bzO��854�缃�Q�Vx��ju�ÏD��!Yw�3ԓ���:-s�dB�#���&���(�%䌓��c���q����1U�1�J��3����̙b�%i��m(�[^'�5Ɇ& +I�io(h�$�3 ���q�v�L�Ǩq[�t�l����h�\GP�SMa�`�Y���7?lP*ӎ��r��HPX��4'��BmI�w 9xsA�>R�Π��$���#h���I%����M��ğF�$�@ +c)��&$���h'��܇�A\DY��L��q��<��A�wU��Ǣ�Syh[�Ҏ=F����}�~���:=#�<��HJ�"�NT'���lh�pŤ?��C"Q�����Pt�8N���E�:��燝�3?��"ZW\�c��g��;��5� C�����q�T���d�BN�1���� �G�c���HI+q Q5��&���=�*�c��1��4�qhC�6ۨ6Ay|_��&�##�2ۈ�9���^#����B�Ýl��L1�e� ��#��k���D^��8I;���5a�;\��q���:.;�f(ݴ�ΩJ)K�;�������ܟv�<���wʂD|=�F�!K�/����XP�8�2`��,�~��z��ο�-�YhC�#�^�>D�M�ӓ�~��=���f��_��*�jGM@n����!��ZU��9�(�#/��(��U����&)A�^E��p[���y }�h�/c��*܅j�dž�Ѱ�ݫz,ɏf�"�v�.3�G��fF=�9L��3�׳�$��,,ۂ��ua� �v��>R�g�����,���c��jɩB����z$xJy����Qvf�Ȳ~r7)�Lg)tdz +���-T�I��ٞ���u끢 ��s�̣Z#���NN�I�����&QR��.(_��Ҟ�7��j��i��x��q�a�!�����#!�:�쨈�l���̌����dGE��QW+|z�SKo��k��O����j1��\z���f��)�X/���<������lW��P6�>)��`k�*��?���D��x~�?ByW�l���MGN�]�1M��=gr�!��Z*6�֒�KU�ӍІ�Vo(A��Ɵ��?�\����K̿�4>e�������I;[l�� �-K�JM/]�U�3�ugo��n�e�8��MmL;�2r��ԓ��^��}��ǖ�9����е<��6��7:�@�� +�VjXb���K�Ҷ33X���-���.R�w�g��i�^ԕ�[����=��K�柎~>�r:�1�m���>d3���!����9K˭.^�f���+���ۮ�N_�m�,%�Y=��F +�r���i�,#�Oq�tE��6Jte���%��0Z�ޯ`��:x�W��7�QW�rB ���p���Rn�N�̤�CZ&R?�*MB�]���- +endstream +endobj +5156 0 obj +<< +/Type /Page +/Contents 5157 0 R +/Resources 5155 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5057 0 R +/Annots [ 5145 0 R 5146 0 R 5147 0 R 5148 0 R 5149 0 R 5150 0 R 5151 0 R 5152 0 R 5153 0 R 5154 0 R ] +>> +endobj +5145 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 306.034 110.119 314.171] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5146 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 270.168 171.594 278.305] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5147 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 258.213 171.594 266.35] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5148 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 246.258 171.594 254.395] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5149 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 234.303 171.594 242.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5150 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 222.347 209.303 229.831] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5151 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 222.347 296.791 229.831] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5152 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.377 222.347 398.626 229.831] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5153 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 210.392 209.303 217.876] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5154 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 210.392 296.791 218.53] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5158 0 obj +<< +/D [5156 0 R /XYZ 69.866 801.979 null] +>> +endobj +5159 0 obj +<< +/D [5156 0 R /XYZ 70.866 771.024 null] +>> +endobj +5143 0 obj +<< +/D [5156 0 R /XYZ 70.866 391.948 null] +>> +endobj +710 0 obj +<< +/D [5156 0 R /XYZ 70.866 364.753 null] +>> +endobj +5155 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F7 5023 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5165 0 obj +<< +/Length 1936 +/Filter /FlateDecode +>> +stream +x��Zߏ�F~��#Hao���M/�)��+���|`8*c_�I������`㍍m� ����~���pw�����&��z��0�e1��g��ȗ�y���0�RzʧHo����#�fs��4 +gDL���K��w��>HgO���u�V�����w��fF�4L�xe>���S�fϋ��o��� �X�GN�Z#M���O������<�����s˽�C�3xyL~?�"�y��ı:I��vy�g�O�4؇�Y���J����kK� 0�o����S��u��� ߺ(R"<RB�I�f�ROq�!��.n� � +1����] v�:�f��6{u@k���C�!� +�VH%j�8'k�)^�W��0M��x�9ƫl�ć��o3*��*����f���0x�-�B���f�(�qԄy�QA,�|�[2n�� D7�*��$;d �s��Y_j� �� +��!�Q���2�پ�4]ԂK؏nn �t�� +�}i7�i6'ZL�[�6,7ݪ1�T|�>��.�95�G�)��$�-8�1�`�ɩ��nNUA�A\O��a�iuFOB���A�B������� +����[,X����Br� 5�I���4�� + vR����cd� .��Q�z�!&ۉC`w��T2���'���/��¨)Ƭ�ice��5.�b�X9ʇe�T�}���Q�JO�Y+�A�YY=\!màݼ�@��4 Wg6^�o�j�@J�C�6�I�|X&q��* + T�]Ln�� +}�fR�؊��G���YC0+lj�8ؐ�ff��2��K�B�a+q����dE,�I���l� +�Hn.��������� ������`�X.���r�<�$����ysT���>��� +Q�aG4%?��D��=���檖8��b�V��7�Yl�����?ʇ-X��nq!��t����.�*�-��`��삸�b�-�]�ե�W샙���u�����69.�7���|Vh��Մ�0;�q}([�^���7 �R;OI�j.�;Qg�1��"��Z$Z��9�@AB�+���}����,ѥ@G�؆)X}Dd�(��ʰ�K�>���ɻ��缁�甃���ۘ'��;h���J�e�^/�d��[S|�X���J�UqQ��8F��fH���sjq��>+�'>���Cm�n�ͩ$l��4ɇmIT|�|M���5��azasn�L�~��њ"/˷4YWمm�e��"�Ͳ����2�-[�0��Ek?���$]�AQT#��s�/;˭����#.!mi�H�V+?nj����:�?�ٴZ]{Osy +����l�x��Dž'���:/����p~w��J �T��<~w]�s�X"[�p��_�e��Z@�`�����F����)~.�Q��qqV�b3/Ōp��i˯��혅G�Ψ[U(D��!����q�eTպKs���-v����W1j��?^��J姒V�� +���Oy +�ʍ��Ֆ�u_���4.�z�.JP{�@Z"[� ym�����ڛ����tZ��Ak.�j�y�5������=�qN�(��~��zC��3Q��������h�)3��op��PᭃhH��C�m:�����B䰷�E�w��i����$:�m�������F�wT ��캪����W �Zj&�n��79.L���q(EJdK���a�:��,�णN�DR^Q(�݅R�����V����\�J�-�A&sޟN���Z�'Z��I ��i���j�K+}W��_8�����0H7�����3S�iyI�aQ�E�Ř�E�=@���K&?U�{��upA�W/�}���I-%g�|�k,}�=Se�X�,�S�*5������j�\� �R�\�b�x����[Z{f��-�ǿ_��F +ǿ�V�L.�d�<��ad���'&����C|��� +endstream +endobj +5164 0 obj +<< +/Type /Page +/Contents 5165 0 R +/Resources 5163 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5169 0 R +/Annots [ 5160 0 R 5161 0 R 5162 0 R ] +>> +endobj +5160 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 372.167 110.119 380.305] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5161 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 348.257 171.594 356.394] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5162 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 336.302 171.594 344.439] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5166 0 obj +<< +/D [5164 0 R /XYZ 69.866 801.979 null] +>> +endobj +5167 0 obj +<< +/D [5164 0 R /XYZ 70.866 771.024 null] +>> +endobj +5144 0 obj +<< +/D [5164 0 R /XYZ 70.866 458.082 null] +>> +endobj +714 0 obj +<< +/D [5164 0 R /XYZ 70.866 430.887 null] +>> +endobj +5168 0 obj +<< +/D [5164 0 R /XYZ 70.866 272.573 null] +>> +endobj +4143 0 obj +<< +/D [5164 0 R /XYZ 70.866 68.871 null] +>> +endobj +5163 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F14 3888 0 R /F10 3833 0 R /F92 4494 0 R /F7 5023 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5202 0 obj +<< +/Length 1503 +/Filter /FlateDecode +>> +stream +x��X[��F~��@�����g����t�n.jS��Dkc���f���g`�����F�1�s���x1~�+����^ ~^\1�iHɼ��Si)=P$�7�y7��Ï�k��#�%�W�W�pD��_��b%y��ibD?��$�Gv�Z#M�7]n>boϮ=@����\{\0$8�����+ E!�n�$;; F�Gc�mD�wQre�j1Y�ِb�sQ��r�����}4�GY�L#s�W4��{ ����~YoV�9x�v��0o�!��ݐ +�Կ�@�|fF�� +����-���F�Z�/�8_�Q�]/��TZ�D" +�.�'�U1�vR�7*p� ԷX +)8�8��M��t`H�]п��J�. +�QӼ��p<[�yߣ峒J�W�.��ife��c�D��9$�,,���ݶ�#L+n�6�U�}�xǻ !���'�}d��-,�ߗBT2?��U;ʆa6�-\� �ÆܟB�ȗ��߽��Y�O��Z��&����Ċ�${��I�Y��;4g�qP�mFׄ�"���� �6[��=vB�O��a�X��(q/�>BJQ5»����~�Q6IL�)�'��t�6�ܷ��N��q��lv�Z��Q,\v��u�=�M��"�'�I�eif����<F����y +.���#�$�$`��C�߁jR�iN��T������ 8������iz��c<<b#"t�y���^��k����ܾ(C��ЮUR�#�L�``]��n���k#J \�G:Dw�B�8n=� CS8�Mdb��.+��{����䱑�/��aܦ�9T�yO�����ȣ�$��pU�)� +;I]������F�R�@�h�h���^eTU�6��I@�^M(�?ټ�uF��)�T�H����\D��� ̯3;�G�io��1�2�t�u��}�������4�h$�=ݻ4��P�q�g嫘[ʌ���s;Z�ػ�(1��[W��sA4���UΔ�:�!�~�/� Zo�g�)�+�^��ulѪ]��^ZC�H�G��?�w���9�#��*N�,�-�H�n��.LͺT��2\ŝT�'*���D���W�����-XK�V��c����6<�RW�J)�}L:raWH���`�/�v���ɕ�-C6aJ}��c��\|����e#+�h����(��#Z�8C���3M��m���G����s֑s�W��%�aa�� +{:s�B�o�.BOsF�6u$D�� �߹��[O�v=ۧ�Y���$���C� +��"����jS�����&e�Mm(�J��P ��K��C��8��� H������6`�Y3_��Q��9���a�����H��=����T�SvL�#�`|��~z�Zk^�S��)(���f�˴X٩y���(Ϭ�&��eμ�ef�&�<��f�p�j�巭�b��j ���/������;>�FU{�9��I�WƬ0w;ͭ�� A�f4Ks����k"4 +endstream +endobj +5201 0 obj +<< +/Type /Page +/Contents 5202 0 R +/Resources 5200 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5169 0 R +/Annots [ 5170 0 R 5171 0 R 5172 0 R 5173 0 R 5174 0 R 5175 0 R 5176 0 R 5177 0 R 5178 0 R 5179 0 R 5180 0 R 5181 0 R 5182 0 R 5183 0 R 5184 0 R 5185 0 R 5186 0 R 5187 0 R 5188 0 R 5189 0 R 5190 0 R 5191 0 R 5192 0 R 5193 0 R 5194 0 R 5195 0 R 5196 0 R 5197 0 R 5198 0 R 5199 0 R ] +>> +endobj +5170 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.055 630.058 228.218 640.434] +/A << /S /GoTo /D (levenberg__marquardt_8h_a2a72b2b6be15a9998b61a9c0097e3d5f) >> +>> +endobj +5171 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [336.779 630.977 370.44 640.129] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5172 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [413.842 630.977 447.503 640.129] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5173 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 619.022 128.787 628.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5174 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [152.473 619.022 186.484 628.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5175 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [208.314 619.022 242.324 628.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5176 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.124 619.022 308.135 628.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5177 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [434.922 619.022 468.583 628.174] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5178 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [168.789 607.067 202.45 616.219] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5179 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.112 607.067 281.773 616.219] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5180 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.415 607.067 369.076 616.219] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5181 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 607.067 525.406 616.219] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5182 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.588 595.112 168.599 604.569] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5183 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 569.204 128.787 578.661] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5184 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 568.285 273.233 578.661] +/A << /S /GoTo /D (levenberg__marquardt_8h_a46fb5a9d6d185ff7f98c9cf34b56e34f) >> +>> +endobj +5185 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.098 569.204 350.108 578.661] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5186 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.057 569.204 402.067 578.661] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5187 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 421.94 297.675 448.48] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5188 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 260.501 171.594 267.985] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5189 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 248.546 171.594 256.029] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5190 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 236.59 171.594 244.728] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5191 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 224.635 171.594 232.773] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5192 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 212.68 171.594 220.817] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5193 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 200.725 171.594 208.862] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5194 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 176.815 171.594 184.298] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5195 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 164.859 209.303 172.343] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5196 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 164.859 301.573 172.343] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5197 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.159 164.859 403.408 172.343] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5198 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 152.904 209.303 160.388] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5199 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 152.904 301.573 161.042] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5203 0 obj +<< +/D [5201 0 R /XYZ 69.866 801.979 null] +>> +endobj +718 0 obj +<< +/D [5201 0 R /XYZ 70.866 771.024 null] +>> +endobj +5204 0 obj +<< +/D [5201 0 R /XYZ 70.866 663.263 null] +>> +endobj +722 0 obj +<< +/D [5201 0 R /XYZ 70.866 541.225 null] +>> +endobj +726 0 obj +<< +/D [5201 0 R /XYZ 70.866 393.655 null] +>> +endobj +5205 0 obj +<< +/D [5201 0 R /XYZ 70.866 364.236 null] +>> +endobj +730 0 obj +<< +/D [5201 0 R /XYZ 70.866 337.976 null] +>> +endobj +5200 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F14 3888 0 R /F61 3918 0 R /F68 4470 0 R /F67 5020 0 R /F51 3827 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5212 0 obj +<< +/Length 2249 +/Filter /FlateDecode +>> +stream +xڽ�Ko�8���:���ͷ���l7L�=�\��Pl%�Ҳܛ�_?E�r(���ؓ�n��H~U�*:����$��������������B��,X?!FJ� �(�$X���劆j�O�D,~$�cR�OϛC\,)^|?��D/f��W��%OK�I�d[���-�h��������� [p@κ�B��`{��{����6��E*�o5�p�H������ +�Q?����N���ޟK�q�RO�,��e�H�������BF�2:[xea)�����9�FdE�%AKB�^��A� +�jEҬ�7���h�J��!�{X6�>m�I�\�xT+X��OU F;�U�$ �PmW��O�Y�Xz������m�4ώ�?�T,�m �-�� g�"���۴���[D?q�dX�6����-��MR���Q�u`6I��2Gc'd����E9��ƶ�� l�E�,�,8f0xd�TRD�����lMS��U��7v�+����iF�ys����h��@��n�P͒a����T�]*��Q�PMT��U���x8V��cui�H���҂A���9a/P�dX���ޙD��'�$���i�F/N ��뱃�IJ��4�������@��i z�Oٮ������$�y��,��g�D0�}�D)��3M�Wi�:Й��g�gv\���q����E����X2�ր�4��62�����%Ò�$�7�7& XL��5M��,W�cRƸ��iz�l�z�1�l�����C�`"X���~��Ԣg�pGO� ����<gɰBmI������O��g�ѩ$NS�G�Q�K�%�t��8z6mz@&�<gɰR�KI�К�T�k���O����m�2)6�ΔN��Y��Ӛ��xo2��j�O��e����&������_͇x���gD���C���Ҧ����X8K�% +WL��B`�{H$�K�̦䧲��i:�,�Z�c�yQvN��O��d��W�X���J���!�|AƖ��mm�T�3��%� '"���W~"�Q�?�MT�%��To�9� ;{7�Ju���1ffLC�1��Mվ����ى3�2ۘ�k�fe#˼�b���F�@�"���C�'��FHF��*����NS��UzMX�o��4�zh�6?��T�i�շ��@� Dc{��uq;��6s �G��d��S� Y�����"k^$�ϋ��q)>d���E����Qם�G\���Ga�~O�=���o��2`�fvc g�$N�R_��* s��;��_���J�5z1h�HQRϼ*>�e�q��<rI�Ļݦ�7�4~�|�h"����6�9�7�m��u�灤1��}gV,;�Ť�1�?u�i�b��9���0P�=��ޏ�Q E�1+O���` C�v�"a��&.��T�d9��m�l�H��c�:䘩b�M-���y�O��%���B��e���I#��H�`9^��~<B�;�N^�8Ћqq�k�P6A�pn�y�1���mrZ9��څ��<K�2����*����B{�cj������w�7^v"������d$L��M�Do���N�o}6�z���� ���p�l#�/�� [L�4��u�Y�Q3�[ɳA?���T�P9�Q)��tSF���u��=� f�3~e_k(�N�Bg��VWƧ� +�F����v}�˸0\<�ef9z�w����qZ���.�[~x=��E����%T^�O� ����e|��S�n�I�T�!��4�� ���xO��Zc�^c���������л�Ǽy +�k=>mFu�X����Z�o�;;�ިv�`�i�[>��Tx���p9dIb�Y�)`�IA@����Q"�8d��ҏU��U�jt���#v�A&�lfZi֊�L��z~�G����지"�%�0��'ÔAd�Wtd��)�����v�A�t�NU�,����� �>�����:�� +�z����m�?�6${|�Hm��D�wd���wH���Fl��w��<��?��sǯ}��Pc�yQJ�!)��2K��ůp}N$��Xg����+�N��y�-��6a���U�qy._���kd���yP�a���v���L�4�~�\�6�����.}M�4+�1ٵbN���df��`:(�!1X����k�FD2�]������("������bLR��I(h�;)ڨw'���{��Egv(B]ό�ӓ�Oh$�!$���~!�\�K�%����(�=��?m)�]Z�^U�u +endstream +endobj +5211 0 obj +<< +/Type /Page +/Contents 5212 0 R +/Resources 5210 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5169 0 R +/Annots [ 5207 0 R 5208 0 R 5209 0 R ] +>> +endobj +5207 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 306.034 110.119 314.171] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5208 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 282.123 171.594 290.261] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5209 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 270.168 171.594 278.305] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5213 0 obj +<< +/D [5211 0 R /XYZ 69.866 801.979 null] +>> +endobj +5214 0 obj +<< +/D [5211 0 R /XYZ 70.866 771.024 null] +>> +endobj +5206 0 obj +<< +/D [5211 0 R /XYZ 70.866 391.948 null] +>> +endobj +734 0 obj +<< +/D [5211 0 R /XYZ 70.866 364.753 null] +>> +endobj +5215 0 obj +<< +/D [5211 0 R /XYZ 70.866 206.439 null] +>> +endobj +5210 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F7 5023 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5257 0 obj +<< +/Length 1267 +/Filter /FlateDecode +>> +stream +xڭXmo�6��_At_d�bI�/0퐵X +[�OKA�hG�%�zI���%*�d�V�6(H���=G��nq�E�rF��i��b���)=�X!E�/%RÒ�E����o�ȃG�0���1��˔�\��:�YUI���o���K��3��c�q�Lg���b�o�e����\o�_�?�,Y0�RRL:����% ��XT��&�,U�T{����L���G��9���t�Ө�ZGE\�%nb@��Q��uy�Wf�.t��e��FU1w�p�����b#��v�ݜ�嶭�#\n� � v�=�p@�0�WBAl��%� `Cq6�2\GuY� ����3�l]�i�ю\�yp�=�m�O�mr�N��-�'��1�E��W6%�un�Sݧv B��0i��$[n��R���,A- +�c�����AY�I��G�8�~#��� ��R���@�5WBx��U�)���.�GL�F��i��zY��D�</t��Y��0����0�uQj�� +�`%�.ܒc)���:[�*�:� +p�*��U� ٢7]�BH�N��+�����nW����4;���@:F�pN���+�*��p&���ۗ�q��^�z��{�ׇ�n����� +6��1H�M���3N� +��DZ��/D��TGe]�8��* +-��u��HoK���Cg�&��yc�ɦ]G�ڲ��ā���l,�� ��pb�Ȟ���g��;��A�$f�_XI��)z���b#N���nB��F͖0��k(쯁�eo�5��nY�01o��<���ϩ�������顒�.��K9,��}ԭ��i�/�S8҉����|� ( �@�H3h�T�� X�)i���?�2�K�,\�*�\\��Pz�~�2!0����lxB�E���GO�Ӿ&d~�;� ���t��)��SJ�{�?C�C!P����y\��%�5m��QJNМ97N����{�Ld�ܛ�bw���Ň�%P�v��� ��|p�.��4�Ӳtm�������u0�_`��v�/`j;�]E�X_�\ɶk����A���]�L��f0�tАP̅u�aθSW��6�k�07��tp[�G�%��>Ge�X���}@���٠S�b�wMɿf��$[�U�B�(n���(��� +aO��b�Is�f����E��v"-ӿP������_��R���<0(��8��c�aV3]�ҧ�{���\�k>t�/��M�f��a���n.�t���k�/r�f?}_��i)�8(e� +endstream +endobj +5256 0 obj +<< +/Type /Page +/Contents 5257 0 R +/Resources 5255 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5169 0 R +/Annots [ 5216 0 R 5217 0 R 5218 0 R 5219 0 R 5220 0 R 5221 0 R 5222 0 R 5223 0 R 5224 0 R 5225 0 R 5226 0 R 5227 0 R 5228 0 R 5229 0 R 5230 0 R 5231 0 R 5232 0 R 5233 0 R 5234 0 R 5235 0 R 5236 0 R ] +>> +endobj +5216 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.239 417.617 201.311 427.993] +/A << /S /GoTo /D (loc__gauss__newton_8c_aaba1f25cf23d5529e4fc3bca22f8784e) >> +>> +endobj +5217 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [304.321 418.536 338.331 427.993] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5218 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 418.536 525.406 427.688] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5219 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.569 406.581 183.579 416.038] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5220 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [341.445 406.581 375.456 416.038] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5221 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [399.94 406.581 433.951 416.038] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5222 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.147 394.626 169.808 403.778] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5223 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.653 394.626 387.664 404.083] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5224 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 382.671 128.787 392.128] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5225 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [171.092 382.671 205.103 392.128] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5226 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.342 382.671 282.353 392.128] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5227 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 370.716 128.787 380.173] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5228 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [276.945 370.716 310.956 380.173] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5229 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.449 370.716 381.46 380.173] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5230 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 370.716 525.406 380.173] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5231 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.299 358.76 376.31 368.217] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5232 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 346.805 128.787 356.262] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5233 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 346.805 197.692 356.262] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5234 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [306.028 346.805 340.039 356.262] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5235 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 179.467 297.675 206.007] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5236 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 160.546 346.876 170.461] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +5258 0 obj +<< +/D [5256 0 R /XYZ 69.866 801.979 null] +>> +endobj +4144 0 obj +<< +/D [5256 0 R /XYZ 70.866 695.643 null] +>> +endobj +738 0 obj +<< +/D [5256 0 R /XYZ 70.866 675.463 null] +>> +endobj +5259 0 obj +<< +/D [5256 0 R /XYZ 70.866 466.268 null] +>> +endobj +742 0 obj +<< +/D [5256 0 R /XYZ 70.866 311.529 null] +>> +endobj +746 0 obj +<< +/D [5256 0 R /XYZ 70.866 142.535 null] +>> +endobj +5260 0 obj +<< +/D [5256 0 R /XYZ 70.866 82.821 null] +>> +endobj +5255 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5263 0 obj +<< +/Length 2116 +/Filter /FlateDecode +>> +stream +x��_o�6���)�(+.�Kz=��h��^���t�\I�f�p���eS6#Y��EQ`v,rf8� 5C��×_��R�a�����=�}��B/B���{�x!F��^S$����}�������W˗�P��L-������g�ҭj�}Q���*T��?�%~DO�w?>��vG@9��QY��ro��{|����{�8�~�[�<.�������_1�I��QD�;���k+?~�Qb�Eb/`E�7�iVE�j�3QZL��y`��b!��kE1���A_ݮP��>�� ���P���[�b���ݙ����h��]R�[���3ݜ!�b���cך�G�t�EFrǢojU����*)*����y�/v*)�Z/�I�,��s_���}9I���p�K���p��Z�w��2�T1�� ����U��� 鏟"i��Ť�c��e��F-�����s��X�uN�yv��F�l�� ���]��b� +l���P�9�9r6��� +�!�R�Bx��D/S��X�e�䗷��qkvw��� +����\N�y�p6��w8`�FD!k���d�?�I�|Q��:��� +�T����B��!��H��"6����qg�F4��ЀS�C)��r�l����o�N���<�z5 �._�@ +U����:��J��Y-(���R?H�/yK����u��&�}h�JU4�����5��E�3�o��4�}��֤��4U��dFƽ6�8��es�VU�g���:��So�Uԯtb�Ig�a7���W����B�xVs�W�a.�a�eז���|_���m_��͂a����6�#9����Y߈c�4"6��/���Hv +� �/;�t�DA������\K�����8���^К#NhD�L.��� 8a���4�����`���Qړ@�\���:��DW��ݥ T���6t�6�c�Q��f�9�60RCy��u�V�YduL�RB�>�m��`�A�dn���9�-�c�D�37Q��9[�Y�,&o:W����~���D���vU��R�:�wQ l%��U��4K*Uޜ��C�`K��$���<��0�ϛ� �DxŚ8Q��OK��SY�ME<��4;�<:�h���p�ש +���B�:�2 K�j��`m�%(��ϙ�͒a`�P�B��?V�M���� +ڦ�t�f+=�H[P��VWP7�7u�=&�}'�m�m��&�7��KZ@��1L�,�8!�[�6�� +⦩tg+U����iZ�\�Z���P�T/Y}o�y�ٺ�Ѧ\N=� Pi��g�����pp(��!|X����i*���J��w?�Ժ���6k��w:;֣U�U U�����Q��epu�pI��ES7K��j]���7>�u0��]��MS��Vz:�S'��&��ȺLY�V�����l��\�}���vI� d�sD.�E|�Z�`�#�r�!?T=lNS�f�V�� 'm�,p�yfA]�O�Bgoo\�0��KH@���8�#��B]K� 0�Z����4�N�::O�*�[�QG��T�#�f���ڽy7����3���b�z��li x�28K��3��$b���h��0F��X��s�J7���[z~�8@��q��ӏk�0�zM��*ٮ��N�����X>!�������Dq�"�B�s�1��=ǩϴ�bX�x�L��q��cTZ����Vʽ������oB$E�Y�� ۾�=-��"X���,&F%Zl49|(FE�$�b�}�Jw��J�O1���i�qǨ=��s�FЏAra��6� ba�I��8��ƙ� +^��6���ˈ��Ǽ� 2ܧ�M���[�$ar̴|Qա�ʉ����;�k�����n�56����U�,�N� ��43�2ܭu���p�r�)��t�����u��P���rW��m���+���Q�eU���</�r��"/U�{X���o�α�ҭ>�{;����r�/���~��Va��Y1�9:�[&;#SD����PA$����a�M� +��uZVz;ɲOO��}Yn���Y���Cyxn[ ϙ���=��[�-MUW��E����=!BԿ�y~���F.a�� +0.���m�U��S�i�CsR��E_0�Uvn���u�� +endstream +endobj +5262 0 obj +<< +/Type /Page +/Contents 5263 0 R +/Resources 5261 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5169 0 R +/Annots [ 5237 0 R 5238 0 R 5239 0 R 5240 0 R 5241 0 R 5242 0 R 5243 0 R 5244 0 R 5245 0 R 5246 0 R 5247 0 R 5248 0 R 5249 0 R 5250 0 R 5251 0 R 5252 0 R 5253 0 R 5254 0 R ] +>> +endobj +5237 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5238 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5239 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5240 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5241 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 655.431 171.594 663.569] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5242 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 631.521 171.594 639.005] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5243 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.041 619.566 319.29 627.703] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5244 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [484.67 619.566 524.919 627.703] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5245 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.691 607.611 157.94 615.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5246 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.179 607.611 245.428 615.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5247 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 595.655 324.072 603.793] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5248 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 583.7 110.119 591.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5249 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 583.7 200.978 591.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5250 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 583.7 368.351 591.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5251 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 571.745 324.072 579.882] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5252 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 559.79 110.119 567.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5253 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 559.79 200.978 567.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5254 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 559.79 368.351 567.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5264 0 obj +<< +/D [5262 0 R /XYZ 69.866 801.979 null] +>> +endobj +750 0 obj +<< +/D [5262 0 R /XYZ 70.866 771.024 null] +>> +endobj +5265 0 obj +<< +/D [5262 0 R /XYZ 70.866 438.176 null] +>> +endobj +4145 0 obj +<< +/D [5262 0 R /XYZ 70.866 68.979 null] +>> +endobj +5261 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R /F11 3889 0 R /F10 3833 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5307 0 obj +<< +/Length 1607 +/Filter /FlateDecode +>> +stream +x��Ym��F��_��/X +{�� UUR��"Ei�O��,ά}46��/�����b�؎�T�*�bfg��yvw���G�E>�������ϓ��5S��)�3�; +#_JGI�L"�����nr�0�Ÿ�q���x��U��*�mV:)�"Nc:�e2�kD�;d����O�3[�n���<��\9\0$8��K���o{( E!� S�k�#*����t6]��<�&zL���H�P��!��c�]��d� �k4����^�u�^j3�jt�`ݼ6�>P*��1�e��F�\� n\<��k�1î�j~��<.�V�J�E����yD!���Pi��(�+8?��l��,pB��H�����ǗB��A����!C=��Զ�?���%�Q_ +�V�'� �Va��O��YI&<h��gE�Y۪�)�Y� _Zn��IX^2��L��D"�+����1έ'�t7� Z�[����R�}i���W]�3H��8��,�ez>]�p�mV��T�&u����QD�c��v?��-�;�q����������E�8v��������+�LG�(,©��7�K�un��������������iS�#|�ڥ���|CCN$�����9�V�a%�ܴ��z�%��DT�k:;�O���%6���z��qd�l���'��w��f=�9 +vӚOcpF��Q&΄ޖ�ĩV�S�p�=L��9�(<�a +�������2� S��H7�.0�{�C��84e�2���� +�9�̤��3���q�L���Ln�jn ��zT��8�L�6 �~{dJ�uB�O�s�x��셲�\�W3�cL�1�_@��>�:�`40��N�Q�=����fM�����;�cv��<8�?�����,v�����@U�="�4{.�Nk�wz�U�N�����Q_���>|0$Y��GĶ��tBwoc���,�,�i�9��Rs�K3��|5&قtPbD�]�o�B�Qkr�"nJU�v��!�řۖ��U_ �p]ԩkM��pi��ͽl�Θ�g�Q�����1��x��_7�?��V ߄�*��*1�ѩ��u4li�N1}�hƾ��9�o�{�-�EzHbx� @XX���>��Uj�q��m�eQ��Sa�����:x�H��f骃��ndZ(r�]9�-N�I��S`%�n��.�>�mv�z�)'���5�V��L踪֞�Z�K��D�@k���61���d67��GM�g}�5 {�k'6�Ș=����m4CR���B����"2Z�,�6��9���Sq>���7`%"��E��S�mh% /���Dj��'��j5}ٰ� -�~��� {kȒng�[�r��4�����ɣ��k����UtB�xkT.%ؑA \�g�����[�p 78���=�=� �_��oY����v��� +�[�����-�ط �|���^RЀ�o�'���F�fTz�S;� ����#����D�n_����N7��)H7K�z����}�#=�=�Y )�@�YV�0�>n(���d�Z}/ۄ���~�f�+K^.!��>���Tz���[�xo`~��Q�O�F�:�B�"�L +endstream +endobj +5306 0 obj +<< +/Type /Page +/Contents 5307 0 R +/Resources 5305 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5169 0 R +/Annots [ 5266 0 R 5267 0 R 5268 0 R 5269 0 R 5270 0 R 5271 0 R 5272 0 R 5273 0 R 5274 0 R 5275 0 R 5276 0 R 5277 0 R 5278 0 R 5279 0 R 5280 0 R 5281 0 R 5282 0 R 5283 0 R 5284 0 R 5285 0 R 5286 0 R 5287 0 R 5288 0 R 5289 0 R 5290 0 R 5291 0 R 5292 0 R 5293 0 R 5294 0 R 5295 0 R 5296 0 R 5297 0 R 5298 0 R 5299 0 R 5300 0 R 5301 0 R 5302 0 R 5303 0 R 5304 0 R ] +>> +endobj +5266 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.239 626.103 201.311 636.479] +/A << /S /GoTo /D (loc__gauss__newton_8h_aaba1f25cf23d5529e4fc3bca22f8784e) >> +>> +endobj +5267 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [304.321 627.022 338.331 636.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5268 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 627.022 525.406 636.174] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5269 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.569 615.067 183.579 624.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5270 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [341.445 615.067 375.456 624.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5271 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [399.94 615.067 433.951 624.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5272 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.147 603.112 169.808 612.264] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5273 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.653 603.112 387.664 612.569] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5274 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 591.157 128.787 600.614] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5275 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [171.092 591.157 205.103 600.614] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5276 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.342 591.157 282.353 600.614] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5277 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 579.202 128.787 588.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5278 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [276.945 579.202 310.956 588.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5279 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.449 579.202 381.46 588.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5280 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 579.202 525.406 588.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5281 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.299 567.246 376.31 576.703] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5282 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 555.291 128.787 564.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5283 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 555.291 197.692 564.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5284 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [306.028 555.291 340.039 564.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5285 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 402.284 297.675 428.824] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5286 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 385.846 346.876 395.761] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +5287 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 248.628 171.594 256.765] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5288 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 236.672 171.594 244.156] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5289 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 224.717 171.594 232.855] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5290 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 212.762 171.594 220.9] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5291 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 200.807 171.594 208.944] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5292 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 176.897 171.594 184.38] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +5293 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.041 164.941 319.29 173.079] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5294 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [484.67 164.941 524.919 173.079] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5295 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.691 152.986 157.94 161.124] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5296 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.179 152.986 245.428 161.124] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5297 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 141.031 324.072 149.168] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5298 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 129.076 110.119 137.213] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5299 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 129.076 200.978 137.213] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5300 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 129.076 368.351 137.213] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5301 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 117.121 324.072 125.258] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5302 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 105.166 110.119 113.303] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5303 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 105.166 200.978 113.303] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5304 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 105.166 368.351 113.303] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5308 0 obj +<< +/D [5306 0 R /XYZ 69.866 801.979 null] +>> +endobj +754 0 obj +<< +/D [5306 0 R /XYZ 70.866 771.024 null] +>> +endobj +5309 0 obj +<< +/D [5306 0 R /XYZ 70.866 660.27 null] +>> +endobj +758 0 obj +<< +/D [5306 0 R /XYZ 70.866 527.096 null] +>> +endobj +762 0 obj +<< +/D [5306 0 R /XYZ 70.866 372.432 null] +>> +endobj +5310 0 obj +<< +/D [5306 0 R /XYZ 70.866 342.438 null] +>> +endobj +766 0 obj +<< +/D [5306 0 R /XYZ 70.866 316.073 null] +>> +endobj +5305 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5361 0 obj +<< +/Length 1902 +/Filter /FlateDecode +>> +stream +x�՚͓�6���+��b��Z} 3�:�f��d���K�� {�������п�O l�����6H�C��������Gb�� ����N~]Lnn�c���Y���`� +a9E�X���<%Qg6��;��`���G���\�Z/?�Q<����a����m��_��jF�T�2 �-�=g��������ۄ�=�";���\j[A2��[!<��0b�k}�Z&���6�߱��䏝O�+�\�T�)'O���#jW?d��l:vsK�V_Jh�a��]QQ��ڦAei����m�(�~���n8cx�廡��臿���k�:D�CR���6��ف[smc{ڭ�3jO��Od��L���� �a�7������]�%<��'ۈ���i��A��!JA�Q�@G�1w�rD�Q�g�0����\���,J�b��H�&�6Pe(fCPe��vmЊU��H��k����TH�neEd���ɶ�'�-J'��%B�D�5�s�&��� �f��:[�%~����g��|����@8�.3�m�ʇ\�y%2-�,?�9�,��/eq}8/u�,�� G��p +�^�W���s���g['Li�i �g�8�3�f;j��`���&�iO��[�~�F +�>�.���`��yp�͚�����UBN�� �\�؆�4��V�H���2\�~�/g�`�� ��L]۞*-7/�2;�s���?erp�xL���G�(�8F�G�5�cͺ���a*�ĵ��M���0�f��Z� ��j���5=��6 ��ؔ�N�v�Q24>�C�']��8�U��9�SiƧ�t��������O[m���4Q�]Zf���ڭ�v���%�c�귏��8&D0썣n�M���O��)�NQ�=$�s*�a*�Ե�&��2�(P��`&��Xt� *5w{OV�o�mQ�?H���4���y�c�T���82Gɨ��P3|�j��*/ M��l[�L�@�F:;�eqf�0�#��TA��:�zU +�[yD�A�8���ФAe���bd;�t��LY[��T����-�`�� +��`V��ȳ� iڬ�Q��˔��Liۃ�����F"��t8N���;�9��� �0st�J3�m�ׂ�o?��#?]�e��[ܝ v�;fb����=M)|�U�q������C=&�5&D0���w�����3����d�Ys�<x���qc�� �o�a�]J^V�Bq3�=�#�36P�q�j5jm������r_l��7���1 +�,a��Q�`�NĨ |��0P�9F�J��]���a�c����9F]�� _��;�ךS$���҅���mz밄W(�}'���q@1��W ���s�QGnz��I��<-����6��{����N�mHp\3�FB`�4j��k�(��2�- U��[���ZՑ�tWG��և�9�����֙@+�v�^&��q�笒� +�׳���N˲��M�,��r#�<+d��_`�c��7ݖQ������]ٌL7���):hX+�l�~�~��������.:��ۜ �80�����qJ�jaT�j_�e�����LoLуv~u(��M��1Ü���j�����Rw�K�aeGl���|NW���D��G3c|��f�Gtڐp<���=��2�iy���I�p=DJ���⽟+�a����_��5�a���U{?EioCS��9�.��l�� ���EFz0� r�O~�v���3Hp�7qm� d��1^��>�<لu#�z����/�2hW7 ���FF븇���w5}i��B�ʥ�N~xՄ|O��*Q���Gy�T�V�<�uF��A� �Pԝ{?̂�K/�.���O@Bv���!]iW��T����v>|S�?�U6�rhῑ+3] +endstream +endobj +5360 0 obj +<< +/Type /Page +/Contents 5361 0 R +/Resources 5359 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5364 0 R +>> +endobj +5362 0 obj +<< +/D [5360 0 R /XYZ 69.866 801.979 null] +>> +endobj +5363 0 obj +<< +/D [5360 0 R /XYZ 70.866 722.718 null] +>> +endobj +4146 0 obj +<< +/D [5360 0 R /XYZ 70.866 320.744 null] +>> +endobj +770 0 obj +<< +/D [5360 0 R /XYZ 70.866 298.868 null] +>> +endobj +5359 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F55 3831 0 R /F61 3918 0 R /F14 3888 0 R /F11 3889 0 R /F10 3833 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5406 0 obj +<< +/Length 1982 +/Filter /FlateDecode +>> +stream +x��ZKs�6��W�HMKo��>R{�$�6��Pǣ�%�f��#Qi�_� R$E�%g�K���ow^L��F���{���F?MF�Ly�R2o��FZJO�I�M�ލ���vr�1xĸ�qٯ��2Ti��f�_��4J��ڈ�~��>�Hb���F�ro���boϮ=�j�Lr�q����/�?F�YI0R"�U3%A���r��v� ���KV�G$RZy�b��@���� �����y7��_E�v�'_��{�d�_nfS����1~������U������t:�l��t]�/��X�}�N5L���Ƌ��~�M�c����{;�e~EY�����Ɗ��و_\�I*���8UHc]����JኔDB�B&�ja8��BA��`}]�7�kmĵ6*s�7c⟮jG��6�O�QM�X�n��q�D��N-�K�N��Sw��Y�M27��A�^1�ٞb!�!���č����4U��Q&�Q= �4�vI]!����*f�9���)zΑP���y ��ߩ?t�BpzC� � 0v���U��q)�w4��%�zz�����q���A��k���W)������T�# ę� �g}��@C��N�l����q.�1�����2���6���Ϝ�ax�Zw;�s�4����\��zp��4�bw� mq��ᢱP!BِLU��i�b��]K����w�0��"�Eݣg��)�;�kz������:�=ݵ��F�4 +�~��^C��,����i����z���M�����v&��:X�� �Y4$�6+t� 仢H�eP���.�4�!Z�o� �Ӈ��<J ��i�D�a���O�[(ggq�W5� �� �K`��74��n ;��g�im�F ����D� +�� +�Q�N�ŏ�1<>��4�?_E����4��;͔N7�%�̃U�e���横�+췖�����^/��#TcDB>�Vi�x̂m#���p\W�xF���/٫4�R���yzV�yd�����T2�e�ܞ��(i�2 �%C�E].%Y�[�� +�v��=E?8�����N�I�B��S�*�i�lcU�xa���e����z��kq항��.,� ���^uw���8�.=�ǭ�6z�-L���G5O�8�,?`X"��9��pW&`�A���,㞢_����l9wC�ͳ��s�,�,1���4���ޗt���mmj��Z�pw��5t�F���}B^:��7��}7❬�4���?����>ΉA�<pܨ�Ś8��VHy��8F `;��e��u4A�|:_����r +ޫs.x���C���ht��(ׅ"o��eF��Q��#����z=ףQ�gj8�Y:�1���ʭ����W[G��SS�;aW�XvW~��"*�SY��v� +��:��~� �F +�����9OXO���tJ=Ҟ�*�d$E�R%N,��/����Q�u�B��T�v[��$�E�E?��!�Ȫ�)�2хձ�*YS��QU +}זa%�W�����jfAVS�OZQd6[9Y���1��>iQƀAX�*ڲ<�� 5m�[j[S���� ��F�����1d)����Q����]�x7�&���0 ��`A��F]�� ,�W�av� GF�Ђ��1��>}�e�۫�"����]�Sn���cd �r��D�Ub��oU}�oo�9�B�R �h����C�^��>�_,�5�ǝ��� -���6{c�1�jog�2i �]�Q����e�"��ݱ��h�\��$�������W��H�oY7��7�6������] +v&-�:�kUj�|t��=,��' ����J�}q��|L�ʜZe���`����8�RG�ߘ�3���²qGӝ)�Y�'Zdnp\�7/3s��l�ߎ��i�|�9���ۮ���}� k�K�|�K��:���UQS�L&8�a���*^��(-�Νa��!�����aHM�.��5 +endstream +endobj +5405 0 obj +<< +/Type /Page +/Contents 5406 0 R +/Resources 5404 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5364 0 R +/Annots [ 5311 0 R 5312 0 R 5313 0 R 5314 0 R 5315 0 R 5316 0 R 5317 0 R 5318 0 R 5319 0 R 5320 0 R 5321 0 R 5322 0 R 5323 0 R 5324 0 R 5325 0 R 5326 0 R 5327 0 R 5328 0 R 5329 0 R 5330 0 R 5331 0 R 5332 0 R 5333 0 R 5334 0 R 5335 0 R 5336 0 R 5337 0 R 5338 0 R 5339 0 R 5340 0 R 5341 0 R 5342 0 R 5343 0 R 5344 0 R 5345 0 R 5346 0 R 5347 0 R 5348 0 R 5349 0 R 5350 0 R 5351 0 R 5352 0 R 5353 0 R 5354 0 R 5355 0 R 5356 0 R 5357 0 R 5358 0 R 5365 0 R 5366 0 R 5367 0 R 5368 0 R 5369 0 R 5370 0 R 5371 0 R 5372 0 R 5373 0 R 5374 0 R 5375 0 R 5376 0 R 5377 0 R 5378 0 R 5379 0 R 5380 0 R 5381 0 R 5382 0 R 5383 0 R 5384 0 R 5385 0 R ] +>> +endobj +5311 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 734.785 128.787 744.242] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5312 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [132.476 733.866 279.981 744.242] +/A << /S /GoTo /D (loc__levenberg__marquardt_8c_a9b2c27f650c9db97f2923b645a8ca5f6) >> +>> +endobj +5313 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [389.929 734.785 423.939 744.242] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5314 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [162.38 722.829 196.391 732.286] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5315 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.303 722.829 272.313 732.286] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5316 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [432.517 722.829 466.528 732.286] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5317 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 722.829 525.406 732.286] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5318 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.108 710.874 282.118 720.331] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5319 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [420.787 710.874 454.798 720.331] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5320 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 710.874 525.406 720.331] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5321 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.146 698.919 165.157 708.376] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5322 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [401.753 698.919 435.763 708.376] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5323 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.295 686.964 198.306 696.421] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5324 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [234.691 686.964 268.702 696.421] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5325 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [378.53 686.964 412.54 696.421] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5326 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [235.13 675.009 269.141 684.466] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5327 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [419.095 675.009 453.106 684.466] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5328 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 675.009 525.406 684.466] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5329 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.461 663.054 238.472 672.511] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5330 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 663.054 525.406 672.511] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5331 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [240.835 651.098 274.846 660.555] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5332 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [309.74 651.098 343.751 660.555] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5333 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.689 651.098 397.7 660.555] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5334 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.838 622.427 229.996 632.803] +/A << /S /GoTo /D (loc__levenberg__marquardt_8c_a09fdd720ff5c5658e160657153ee615f) >> +>> +endobj +5335 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.201 623.346 372.211 632.803] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5336 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 611.391 128.787 620.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5337 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [185.716 611.391 219.726 620.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5338 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [377.148 611.391 411.159 620.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5339 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [435.2 611.391 469.21 620.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5340 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 611.391 525.406 620.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5341 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [122.152 599.436 156.163 608.893] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5342 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.995 599.436 309.006 608.893] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5343 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 599.436 525.406 608.893] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5344 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [231.128 587.481 265.139 596.938] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5345 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [299.778 587.481 333.789 596.938] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5346 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.363 587.481 403.373 596.938] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5347 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [215.215 575.526 249.226 584.982] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5348 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.678 575.526 368.689 584.982] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5349 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [402.521 575.526 436.531 584.982] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5350 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.328 563.57 160.339 573.027] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5351 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [403.99 563.57 438.001 573.027] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5352 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 551.615 128.787 561.072] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5353 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [165.778 551.615 199.788 561.072] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5354 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.221 551.615 344.232 561.072] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5355 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [161.183 539.66 195.194 549.117] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5356 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [281.068 539.66 315.079 549.117] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5357 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.334 539.66 383.345 549.117] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5358 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [402.644 539.66 436.655 549.117] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5365 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 511.908 128.787 521.365] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5366 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 510.989 272.229 521.365] +/A << /S /GoTo /D (loc__levenberg__marquardt_8c_a34f52d51278453ca0fc0818a1f73a357) >> +>> +endobj +5367 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [275.714 511.908 309.725 521.365] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5368 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.673 511.908 361.684 521.365] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5369 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.431 483.237 285.28 493.612] +/A << /S /GoTo /D (loc__levenberg__marquardt_8c_a4bad4d347859b95ac176779b34f26f8e) >> +>> +endobj +5370 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [391.175 484.156 425.186 493.612] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5371 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.378 472.2 192.388 481.657] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5372 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [227.049 472.2 261.06 481.657] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5373 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [414.012 472.2 448.023 481.657] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5374 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [465.639 472.2 499.65 481.657] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5375 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.532 460.245 379.543 469.702] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5376 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 448.29 128.787 457.747] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5377 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 448.29 197.692 457.747] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5378 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [306.028 448.29 340.039 457.747] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5379 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 312.494 297.675 339.033] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5380 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 128.598 171.594 136.735] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5381 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 116.643 171.594 124.78] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5382 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 104.687 171.594 112.825] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5383 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 92.732 171.594 100.87] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5384 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 80.777 171.594 88.914] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5385 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 68.822 171.594 76.959] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5407 0 obj +<< +/D [5405 0 R /XYZ 69.866 801.979 null] +>> +endobj +5408 0 obj +<< +/D [5405 0 R /XYZ 70.866 775.009 null] +>> +endobj +774 0 obj +<< +/D [5405 0 R /XYZ 70.866 417.298 null] +>> +endobj +778 0 obj +<< +/D [5405 0 R /XYZ 70.866 282.419 null] +>> +endobj +5410 0 obj +<< +/D [5405 0 R /XYZ 70.866 237.123 null] +>> +endobj +782 0 obj +<< +/D [5405 0 R /XYZ 70.866 209.995 null] +>> +endobj +5404 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R /F61 3918 0 R /F68 4470 0 R /F67 5020 0 R /F69 4469 0 R /F66 5409 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5438 0 obj +<< +/Length 2392 +/Filter /FlateDecode +>> +stream +x���o۶���W��j�ߤ^���a낽$���r��J%�k���}�eS#ْ� `�&��;�9$�����$x*np�������nc*�(��w�@a��TH�$��*�����/�ҳM��6ɜ�ٗd�����S���9ų���uU�e��] +��w����Y�'���H�Pʹ�������������k�4��r{s� +��6���:��j� �`Hp�7��7�|���OV�G��B���xIE��6In���e�~��ʨF��w!u:r�0ᛪ�cR��i"a�-A!|S�ާ�R��O�2��P��m�5J�$�v��k̩K��������I�2zɊ{�i�)Yw����,p�^K�=e($����G&G��cA��f��Y���&�����j�u�~w���m���/��!��=�ر��Vїdy?_�fS�]9fx=�QJ�������R��FY����C�fP����T�������9;�s���w�`!��6��f�/��4�EOIA_/$N���O�a�C�HJ� + k���"!�W<�wI(��s�����tz���MTx&�`�8��խh褖�%�,�rH��?n_6�6��D�|���d���˜�Y�j>=P*?Ĺ�2We��p������x��0�b���[d���j}6˻k��_�w�s�߬��/yV����6��,��3�<Ϭ�xgeܚ,؎\��z�[�i�+�lԚ"H��yk^���8C�C��EX��SV&�·��5��D�&$5�\4n�Eۖ�����L��ƾĺ�6�8��I���=�c�z�����������9�8��IiJ +2+ZN���N{��!���P\Y�)D��@��ʀ��ZDS��0$T�!�Q�#!�l��neD��,�R��@�NX���+�)��ۮ��H���F�P*PHu������l}p`���PI��-��j���c���!9���4;x��U�S��s��ҏ�����<���zkb�ڃ�8��(����y�,V)<� +�+�Դ-�,_���L��#z�/]�"�DD'ɰ� +��uVF�<�Y+�8�~D]�0{�%dzz{d�q����rL�����o_S����������� ��"��%q����b��= ��CAC���Q�g�U�M�b�'������wyrc���Zc��W�����?cpkZإ�i�M�`)��SC�{� �WJ���8�~�\��K���8�~�\��r��M�/���<f�ݪ��M�N<UH5 �I2,>��JN]�D�����3N�Wi�{�����>��̸go��E����+^�P� +ܛn]le� +���Bt���,��=�$tpa�`M8�H�~���P �N�H�~���X�T �&�MK(��A:\�����8��&�ro:�����&��9R���L�5R���8�^[J������2��;��H/��R/v�����$B�E�t��pB��s �����x`h7n� �d��(*��GZ��R�=��ݺ��}xug�/�����dz��dX�@B�+l�0 ��F�/{`������2X��4��bۀj{cu��hY\��q��]>@��$�2��]�1.��g�w�4�st� w��(Բ{`�+�&�����D�9�G�q���9(lN�����.]^�ļp�K�9�#CEV]� J��y�q*���J����%�`ǹ��u����Aq��M�e�Y�7���v�������s�GWnm�$�q��dssW��/0 +�i����jrۮU]�H7��>�����V��ͥ"@�Ө/T/��n��J�m"L�aC�+C�@�e�@�b�����>N�?P]�S��u�7�8u��r��CS�Ô��a��TC?ƅM���{�9E��}������ҙ��H�ӎ&��#�B5Fh��٘�@HR�W����F���dK���Ѷ�A7V2s8U!�\Es�YhڴYxt/B�P�/�EE�J0r�KAk�UK����yb�9�� +oܛtx8�/�N�R�`ܧ%�#d�/��L��С�#��}L�}�+F� ̓���p�ۿ���$/�AF%��}�@��]�\��nҝ%�P��+2]�� ���/~��շ>��x�ST�i�w����\�!I�2���,�`~3_«�s2��k�v����G��N��Ĺ��#���Zx�"�N~�sbom+v,�J��|m��f)� +X/���а��٦v1z��E�mVI��p��(^�N�:_.�3d�N��[�v�[W̏�{����-m��by4�u�Q��2}�����YF�u��wG �*-�<���tLm]�n��"�EU�R�����~����O"�$wV +.��v�~HvI~�Fs}���D�� &�hwj�_�� +endstream +endobj +5437 0 obj +<< +/Type /Page +/Contents 5438 0 R +/Resources 5436 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5364 0 R +/Annots [ 5386 0 R 5387 0 R 5388 0 R 5389 0 R 5390 0 R 5391 0 R 5392 0 R 5393 0 R 5394 0 R 5395 0 R 5396 0 R 5397 0 R 5398 0 R 5399 0 R 5400 0 R 5401 0 R 5402 0 R 5403 0 R ] +>> +endobj +5386 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 767.154] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5387 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 743.244] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5388 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 723.151 324.072 731.289] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5389 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [489.452 723.151 529.701 731.289] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5390 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.691 711.196 157.94 719.333] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5391 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.179 711.196 245.428 719.333] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5392 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 699.241 324.072 707.378] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5393 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.261 699.241 478.51 707.378] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5394 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 687.286 110.119 695.423] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5395 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [237.242 687.286 277.491 695.423] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5396 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 675.331 324.072 683.468] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5397 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.261 675.331 478.51 683.468] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5398 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 663.375 110.119 671.513] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5399 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [237.242 663.375 277.491 671.513] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5400 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 651.42 324.072 659.558] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5401 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.261 651.42 478.51 659.558] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5402 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 639.465 110.119 647.602] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5403 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [141.601 639.465 181.85 647.602] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5439 0 obj +<< +/D [5437 0 R /XYZ 69.866 801.979 null] +>> +endobj +5440 0 obj +<< +/D [5437 0 R /XYZ 70.866 517.851 null] +>> +endobj +5411 0 obj +<< +/D [5437 0 R /XYZ 70.866 82.821 null] +>> +endobj +5436 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F7 5023 0 R /F14 3888 0 R /F10 3833 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5452 0 obj +<< +/Length 2088 +/Filter /FlateDecode +>> +stream +x��Zߏ�6~߿B�6P1�M���K�E{�F_6A��]����\ڇ��J�M�\ɖ��= ��25�����7�?���S���w�Xܽy�T�Q$%�@a��TD�$�b<̴�?.�?1.���l��C���m��o�]�TY�3C�������H��D���<Xn�q�������?��m�C�3�� ~���(%A��I0� +QD�!��6�2�D�>��Oia�=�ۤ�S<�e�|��x�E�4�?b��?�mh�O֊���B���`�A�҂7�IUd_�ʾ� By����!���z�P���J!!(�Q��v�n�yQ ӈ +�NL�����n���2cB+��(zL:���,��n^~�y|`��"��'"�uu��4)�E��WI�ğ���2��(}r���u�%�|γUK�7�t�S�"� +��1���2q#����JU��Ń�Ծ(>ʁQW�Wt�#$i�#C����&dB�fS�]9mn<�{J)R������;����5��-g�����>]� �������{��^���[+�N���2��%��)�bx�K + +u�)����X�0�EHP� +#�~F(����O_��������ר�%L�+�!��7q�8(��̝�f��n � �+ ���c4c�ݾlRӖ�M�R=�v�Xt����V��|}2�t����YS��T~�V��ä�~��FV?H6Oy��e����<��l��h�KhK�o�s�߬��/E^w-������!� ̴(r+&�Y����>n����F6�L&4N�|5uIH�6���E ��U�}�Pv�jn�zf.Z�������}��T�6���K�k3�q�E%����f�e}��b4����9峤H�ie:E2+;F�ZN1D�5�L��顡���������^0�#NhD��4�Y.�ҸD3Di����v�3O'O�� +.�Q��@��Xvt��dN�l�=�@I���ᄣETw0Xş��<K +�Ґ2-���>*����\PP9�m�|��XN��$ �XD�$���$b|�s#5z9��<ٱh����h1{l?_��H\^����"M�U+X �J6���l�Tiys~^o���N�I��&��S)D0*GX����kW�^��S�'�����8N������-B���EH��y_V}���9!@Vb�&ɰ��`#� �THB1<L�q*��r��lP�%������'��ǖ��T�-��/��qWc<g�P�Nc�$�q\#>��M_5@8�@���8�~��:�uY�C�Qz��r���~��e�m^�!@��S��-\�O*=�'���М�Q�Z���贺o��G�QC���`di��������t�)�j-/Hw�t�i��v�m�����IW#:���RM��$�L��Dޢ��z}Av���%W�qo�p̙��{�y����p��g�8��t-�_��-�v憐�W�<'�d"I'ɰ$�� Xy�9�Q������觨��V==���(k�tu��kw�zN�f�2�,�84�����{j�]��Bo�`X�#e�T\��A�l��E��b�(�g�l�{��|�w�}*�!4���xK �u��鵓sb�윑ia:IF�TK�*,H���8�XF��t�Fo��:��0]���Hk�q�Zs�0u�$�9:J�`�jx�A����7/��8E�F}q�:��'�,��6�4mn��`�ƪ��@�P�Jew�&�H���t��9Q7]��JfSU�$WG�{�,4mDŽ�aEV$�'�q9��9џ\'����l��d�>��cCh_���O�!�N�D+9��K�Q�{�!��Ůyd|���e +q�Qoe:��ze_'Ԣ��f.�F�nQ�M!����o)��v&��S�F{M��G��(8^F��]�fs���9�XIj+s�^�dF�oۻ���È)��m�P\B�%Eg����2�4���|_���f�:�Y+:�w�'����si�eLh��/E��/�������KV�'s�|ߑ�{�/��`r����DTI^/�#!8|")m��Owi9��mn`���\k����; +endstream +endobj +5451 0 obj +<< +/Type /Page +/Contents 5452 0 R +/Resources 5450 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5364 0 R +/Annots [ 5414 0 R 5415 0 R 5416 0 R 5417 0 R 5418 0 R 5419 0 R 5420 0 R 5421 0 R 5422 0 R 5423 0 R 5424 0 R 5425 0 R 5426 0 R 5427 0 R 5428 0 R 5429 0 R 5430 0 R 5431 0 R 5432 0 R 5433 0 R 5434 0 R 5435 0 R ] +>> +endobj +5414 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 735.3] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5415 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5416 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5417 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5418 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5419 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 655.431 171.594 663.569] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5420 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.041 643.476 319.29 651.613] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5421 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [484.67 643.476 524.919 651.613] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5422 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.691 631.521 157.94 639.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5423 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.179 631.521 245.428 639.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5424 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 619.566 324.072 627.703] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5425 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 607.611 110.119 615.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5426 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 607.611 200.978 615.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5427 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 607.611 368.351 615.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5428 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 595.655 324.072 603.793] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5429 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 583.7 110.119 591.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5430 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 583.7 200.978 591.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5431 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 583.7 368.351 591.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5432 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 571.745 324.072 579.882] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5433 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 559.79 110.119 567.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5434 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 559.79 200.978 567.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5435 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [232.46 559.79 272.709 567.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5453 0 obj +<< +/D [5451 0 R /XYZ 69.866 801.979 null] +>> +endobj +786 0 obj +<< +/D [5451 0 R /XYZ 70.866 771.024 null] +>> +endobj +5454 0 obj +<< +/D [5451 0 R /XYZ 70.866 438.176 null] +>> +endobj +5413 0 obj +<< +/D [5451 0 R /XYZ 70.866 82.821 null] +>> +endobj +5450 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F14 3888 0 R /F10 3833 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5460 0 obj +<< +/Length 2025 +/Filter /FlateDecode +>> +stream +x��Z[o�6~��У���^�.E�v�2c/I`������Ԗ���~�"%S�"�R�!�b��;$�s������=x�{7�}1��d��P %���������$�k�fJ0��lN}5�$��&�1��>G{���܆��ӯ�y]�he�_ư8���gO�}�[鷤���gw��ɟ��� }�GJ|����[m'7w�[�gWF,P��ʭ�C�3x�x�L��'I�l +Q�fs�1�^?�����j��oft��D���R�G����ޜ�7�ߒx=��Ѡ�HE#µ`�T�ע=���7'B�Y�K�25�u��BT��A�n�/�X|X����͙���_���h?�2�0��a������O�9C� ���7Um�n�]_����د����C����u���o���^Y�l��W��8�>;�FS��ť��z�P@ +����Q&�kѲ +�� ��mx7���}��JA��ܛ��I��N-V�{�{. {��;6�{�U�n[����/�*�����5\�"�ҽ?�����D$�r�f���)KmJ������ߍ B��Q��A�8:M���}��+$�y⣽�E���Mys��O��}�|:�{t��C$ �����"JU$1?�5�5��Odz�Ҭ�+��q�s4��R�Qq]쉨�5�*k`x��Ei�pW%ڰ5��"�}/4)J��*��@�G��{<��p����#f�J�L��R +� +a^p�1>��g�U';�_�n�����N;��]8cx����+��?��7��Cby�>n��v����1p�o>�(���p�:�!�Ce�M�� ��������)����й��ƈ�V��#�`D��!���[X��w�̔`08�)�[ rW,�����r��+A�`#���T+ADU ��3`���� Zj^��<�uHsZ:���9FB�:�)"(Ǻ1"���^�t<�H���H� +�Ifn�� �*1�+^�'�@��XQ,}�G�|o���n�VI�_ǻ0�/N���Rc�!�(��a +��Ɏ�@�ѩ����0�ztd3A]P��v�p~3]��P�)9��؛&6��d���Rg�U��`�"�95J�%���T�H%��!���A6��=��g��U� ӧ�d�>9ɋ�[��X�Xm�Z�6Ɲ�c�-2�`\�'�2��a��U�g�����ƆA63���yU��W +��Z.�-f����Q̭0���I�8u���S�כ����D<{Gu��qD%���ڶ˦�@�"� �k�'�di�a63�E5�kb�g$z��i�}�>�n���E:׳K�R2��4��o��(�Y�\���\��uti��. �٥=�4�+w~��٩��ºC�z�52���a� +�JB�έP��� +!��D�a��>�u��݀�%����<k�s���wϸ�a�ivI�v�ӱj/}S[���U�9V�=]��WM�W�8��T��@���};u3�,g�(S=_F�%V�df���MwNUXa���S&�] +��b&nG�OMr2F��p���i\�� [|�c�����7V�ݺ�ז�d��r���Ge��JP�е���3v3_��t�{Vy2po�U����ߛ�a�y��1lf�;�-gtM�R_s�c�F�-3I۴-�Rt�rr��,j�=̂>Y��r��d>�r՚�N�~K��X��U�?��1?�����ι����*F�(`�CE�I�����Or#��vY�cj��G����NF�Ex=�ṱ��L�P�9xrEE��1Β<S��0�����t�i0�=�#�� +췥pt�����{ �� +(8�T(����Ze7x%IT�Bq��++��p��� +ܔ�Pp�"����D���6ѹ^@[��q2,��Lk|a�� ��5��Y.��T�-��iô���d���Ǭ 9����堗_��ݗ�r�Y"p��n{9_F��<�9���/M%��ЎuHJ��E�hEaC��6�������Nc������ +endstream +endobj +5459 0 obj +<< +/Type /Page +/Contents 5460 0 R +/Resources 5458 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5364 0 R +/Annots [ 5441 0 R 5442 0 R 5443 0 R 5444 0 R 5445 0 R 5446 0 R 5447 0 R 5448 0 R 5449 0 R 5455 0 R 5456 0 R 5457 0 R ] +>> +endobj +5441 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5442 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5443 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5444 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5445 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 655.431 171.594 663.569] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5446 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 643.476 324.072 651.613] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5447 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 631.521 110.119 639.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5448 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 631.521 200.978 639.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5449 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 631.521 368.351 639.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5455 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 237.434 110.119 245.571] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5456 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 225.478 171.594 233.616] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5457 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 213.523 171.594 221.661] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5461 0 obj +<< +/D [5459 0 R /XYZ 69.866 801.979 null] +>> +endobj +790 0 obj +<< +/D [5459 0 R /XYZ 70.866 771.024 null] +>> +endobj +5462 0 obj +<< +/D [5459 0 R /XYZ 70.866 532.437 null] +>> +endobj +5412 0 obj +<< +/D [5459 0 R /XYZ 70.866 323.348 null] +>> +endobj +794 0 obj +<< +/D [5459 0 R /XYZ 70.866 296.153 null] +>> +endobj +5463 0 obj +<< +/D [5459 0 R /XYZ 70.866 149.794 null] +>> +endobj +5458 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F8 5024 0 R /F7 5023 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5529 0 obj +<< +/Length 2153 +/Filter /FlateDecode +>> +stream +x��Z[�۸~�_!l_dt��N +Xmw� ���ч�Ŗg��mmy7�_�C��% mJcg� �������\$����' �78xp����ӛW�� +4��d�t(�����)�$��P����.`���O_��lQ�������EZ䛵z���/7F�4�Z#My0[��?�`�����r�*��!��/����Ѳ�"*̭�X�q�.9�JVj�ˊ�n�/���zMH�t*�tJ��F��j�{̨� +#q Q��6#""7㨬�Ѹ������5.ڦ� �a�ʊlW�5b��R��Z�f�1�뼴hi䴨��|m�N)�n6��j��>Ynf �3�:�"����c�Jw��ݼ@3T +ǰ +�4���fJ��ֳl_!��b7���OIѝ���լ��σty���U6��A��-�E����װ�ٯ%��+a�hm��ԧJ�#_������5�I5@�R���v�~W��'�}I�)�?ԫ�]"�����,Ϻq����,�Vճ�z��c�ٷ����*���Y�>B�(��ğ��ly��Eu� [K�����Ɓ���q= _��m��9�b�T����%�V�b!z�E���aV� =}ut<FJ��ʸD�٩��1Bw#�G$RZu) N�9�}$��B��'�v�6`��)�c�3\�K����]�H�x�Oֆv��ק�J���%���{�\��={8)L#0Q�=gs��}�*�8,@��8( +ü��,�v�<��E�T6��rV�ʶ{.շH/����6�Ȋ�A���� +QEK���ܰ���J?%9����@��� �X��+�������e�|nXoogT��y) A1G��(֤�Hr-;��,h�6���;dp%��o$�]5v7�L)<��4,}8ҏ3o6�"�X�EP�� ��0��d&�]�'���6�t�<f�Ed�� +�8���;j0������!1���:9���=��/�3)a�ʑRM�����/b������p#���oD{^ƶsa��|F���f��Ą�҃ 1u�h�xF+��(Z Z\'Lu8%�s*"L �Ĉ��� �q�}8$� �����E��0��0ARЗ���.Y��/�}��U[�%����1���eM�e�"��(3D��t�K�.�X�m�4o ��U��9�~���^���~���u,���2��'Zw�)Ι��]0oK��6�]6k���/Y���c㛢������n\��B���L>U�)�[�v'��2�k�N��8gQ萶�� +��7@�H�c��u`�U� �(�ܓj:�/���=2ؐ����8GB�z�1��}�P��8��q0�}5�]u̮�3���7*��I�鮹L��<"Q �T^7"�w#y�<�4�T�@}PD�R��*�A�c�g��&���9��b��~N�P�k#��\�\���8� �%��qzI�^��9g�^B�#Y��t��{�R�����_~a�5�_/�óF�_$�'���/�Pt?q���������wy���E͇���lj/�F�v�a�C�����t��S���A��\��G~|�YmE�syn������@��`��I]9���|6�hS{�*��T�� �Fql]k#WG9 H<h ����P�������tu >����5��z�D���gI ���y6*{RM��_��_)���v���1�K������7� ���T~����E��s�5�/*F֪T6�?wTxkUؤ�h)�D��/��Y�\B�щ��ŝ�Z�IQ�TCKw�Q�h� z�ՠi��#- �$�mr|�dLc�9X���XJv�45P͠?�2,�DJ���YG-��j�}�����FX帞��v*��]i�� ���VԱ<p� ���ڀ#��"�!��(��ы#�[G����n�"͗����l?��������G����sW'� � ����M�ى=�Y�����)��C�M����t[�V��J�ti5w-�<3bI�����^K��6�<<O����S�1�*���ߥ�UnѪ������2)�>�e������|�@�C�X�k4��֜4������tc ��9d�����:�*� �c��GnM��Qp%�� �&[g��p�����h�l������# +endstream +endobj +5528 0 obj +<< +/Type /Page +/Contents 5529 0 R +/Resources 5527 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5364 0 R +/Annots [ 5464 0 R 5465 0 R 5466 0 R 5467 0 R 5468 0 R 5469 0 R 5470 0 R 5471 0 R 5472 0 R 5473 0 R 5474 0 R 5475 0 R 5476 0 R 5477 0 R 5478 0 R 5479 0 R 5480 0 R 5481 0 R 5482 0 R 5483 0 R 5484 0 R 5485 0 R 5486 0 R 5487 0 R 5488 0 R 5489 0 R 5490 0 R 5491 0 R 5492 0 R 5493 0 R 5494 0 R 5495 0 R 5496 0 R 5497 0 R 5498 0 R 5499 0 R 5500 0 R 5501 0 R 5502 0 R 5503 0 R 5504 0 R 5505 0 R 5506 0 R 5507 0 R 5508 0 R 5509 0 R 5510 0 R 5511 0 R 5512 0 R 5513 0 R 5514 0 R 5515 0 R 5516 0 R 5517 0 R 5518 0 R 5519 0 R 5520 0 R 5521 0 R 5522 0 R 5523 0 R 5524 0 R 5525 0 R 5526 0 R ] +>> +endobj +5464 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.838 522.459 229.996 532.834] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h_a09fdd720ff5c5658e160657153ee615f) >> +>> +endobj +5465 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.201 523.378 372.211 532.834] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5466 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 511.422 128.787 520.879] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5467 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [185.716 511.422 219.726 520.879] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5468 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [377.148 511.422 411.159 520.879] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5469 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [435.2 511.422 469.21 520.879] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5470 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 511.422 525.406 520.879] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5471 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [122.152 499.467 156.163 508.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5472 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.995 499.467 309.006 508.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5473 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 499.467 525.406 508.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5474 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [231.128 487.512 265.139 496.969] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5475 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [299.778 487.512 333.789 496.969] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5476 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.363 487.512 403.373 496.969] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5477 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [215.215 475.557 249.226 485.014] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5478 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.678 475.557 368.689 485.014] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5479 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [402.521 475.557 436.531 485.014] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5480 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.328 463.602 160.339 473.059] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5481 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [403.99 463.602 438.001 473.059] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5482 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 451.647 128.787 461.103] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5483 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [165.778 451.647 199.788 461.103] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5484 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.221 451.647 344.232 461.103] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5485 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [161.183 439.691 195.194 449.148] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5486 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [281.068 439.691 315.079 449.148] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5487 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.334 439.691 383.345 449.148] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5488 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [402.644 439.691 436.655 449.148] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5489 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 413.424 128.787 422.881] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5490 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [132.476 412.505 279.981 422.881] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h_a9b2c27f650c9db97f2923b645a8ca5f6) >> +>> +endobj +5491 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [389.929 413.424 423.939 422.881] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5492 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [162.38 401.469 196.391 410.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5493 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.303 401.469 272.313 410.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5494 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [432.517 401.469 466.528 410.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5495 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 401.469 525.406 410.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5496 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.108 389.514 282.118 398.971] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5497 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [420.787 389.514 454.798 398.971] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5498 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 389.514 525.406 398.971] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5499 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.146 377.559 165.157 387.015] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5500 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [401.753 377.559 435.763 387.015] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5501 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.295 365.603 198.306 375.06] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5502 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [234.691 365.603 268.702 375.06] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5503 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [378.53 365.603 412.54 375.06] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5504 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [235.13 353.648 269.141 363.105] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5505 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [419.095 353.648 453.106 363.105] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5506 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 353.648 525.406 363.105] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5507 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.461 341.693 238.472 351.15] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5508 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 341.693 525.406 351.15] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5509 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [240.835 329.738 274.846 339.195] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5510 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [309.74 329.738 343.751 339.195] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5511 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.689 329.738 397.7 339.195] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5512 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 303.47 128.787 312.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5513 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 302.551 272.229 312.927] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h_a34f52d51278453ca0fc0818a1f73a357) >> +>> +endobj +5514 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [275.714 303.47 309.725 312.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5515 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.673 303.47 361.684 312.927] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5516 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.431 276.284 285.28 286.66] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h_a4bad4d347859b95ac176779b34f26f8e) >> +>> +endobj +5517 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [391.175 277.203 425.186 286.66] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5518 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.378 265.248 192.388 274.705] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5519 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [227.049 265.248 261.06 274.705] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5520 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [414.012 265.248 448.023 274.705] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5521 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [465.639 265.248 499.65 274.705] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5522 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.532 253.293 379.543 262.75] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5523 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 241.338 128.787 250.794] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5524 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.681 241.338 197.692 250.794] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5525 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [306.028 241.338 340.039 250.794] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5526 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 84.842 297.675 111.381] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5530 0 obj +<< +/D [5528 0 R /XYZ 69.866 801.979 null] +>> +endobj +4147 0 obj +<< +/D [5528 0 R /XYZ 70.866 685.305 null] +>> +endobj +798 0 obj +<< +/D [5528 0 R /XYZ 70.866 669.658 null] +>> +endobj +5531 0 obj +<< +/D [5528 0 R /XYZ 70.866 557.21 null] +>> +endobj +802 0 obj +<< +/D [5528 0 R /XYZ 70.866 211.787 null] +>> +endobj +5527 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F11 3889 0 R /F10 3833 0 R /F29 2678 0 R /F55 3831 0 R /F14 3888 0 R /F13 3832 0 R /F61 3918 0 R /F68 4470 0 R /F67 5020 0 R /F69 4469 0 R /F66 5409 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5562 0 obj +<< +/Length 2223 +/Filter /FlateDecode +>> +stream +x��[��6���W��j�wR��6��E7k�e&04�<��/SI�&}�o�DٔEK��@�@;�\����o�%�sv�������1�{�@�PJ�ׁ�HK��"I��*x����Ψғ�~���S"&���S��wϋm�N)��~(_W9z)��M`p��c��<��x�4I��D��O���_�w����_k�)�ۻ�O8X����X���#� ���&��ݿ>��J��uJ�k^!:�����a�̓�������wyT|6�Mf�����(D�������I�@�@�Pab0��� +�.|:�G��B����42���\�J3v��)�����|�@m1.��=�����b���I��2}|wwf��ʨi�Fy�|)U�L7g�У���CݚO�S_���ey��`A��5o�(;��j���h�9^��� s�Ps������G���)�#��U��<[�W~��F_I���w8$Y-V�8�y���}��[-���.[�~ĘydrD�8��Ȫ������u���(��MWlL��g:D�֧�;T`��U�a����d���+�t\���"G�]��"�.>�C�Q�C��9�줌[�Υ��Ѻ�W=l��߃��ߥ��քW���h�J���9��]/$~���o�A�M0�[H�I�/���oZ!�[���B6Ξ�Ev��%�(�Ӌ�b{�,2ςA�8��h�^P �K!K���r�?���ؔkYY��/��|O�|�R1)��GJ�S�d�.�����W|m��),��$�����l�8�2(�w����Y��_�}Q�%+;���8��۟���ފ�vVƽ)�̕��m��٨�DP~ +�ּy�ת�",�������cVW�i8ѹ I�0��IV���W���5O��ƾغ�6P9�k�I��N߬ϵ�Y�G3k�C'�{�S�'Qm����d�՜�������1L�-��0�P-��V0�#�P�(:=!L -�!J��Iv�� +� +�p�J�! ,�J���{ۦ��H���F�Q*PHu��������,��J��e���8�l悂�!�@ƈ�lv�dX��U�`�$��v�T��s��5���8����ؾ��8�0?��a�KdzU�SxE����~���]�����ڗ&^ Bj6�Q2,�����(���a*���JMq:�xR�G��f�I�!�(z59��%���O�����x���&+ ������ay���;\��2�B��� S���Uz�;.r�e����ε���R����_��6⮶�I�P�"��%�G�\3o@d�L�� S�'�U�f-\ �����-���$|��kI����[��s�)ͥ��q���a�j�2�� +&�(�4��0�~|\�yth�g�V�|N��q�>b�=}ӗ8���L,Z�P� +ܚz]me� +��Et�5J�% +[�U�.h�Ƅ�� k�J?Y���V���az�l�z1�l�@PL��If��mF�=�J#:p���jw�����8G�(!�\1�o�! ���_��@�^kJ�{���녰�����Vŕ^�N #����p�!�RTv�BE��H�p�J?����c]�&x�s�ƴ}��h�R��pg���o.6�/�x�/M��UP5�Q2,�B"�� :"D�U�bQ�����a:�4�Z�GE:�ҁ�a<��hx�N���%�U���l""�H5�Q2,f� Io������@�~�\��Kd����Z6/�k�8�!�C-ե�J�y�����u��V�rm�^md0���p�)�J +wU[(�]�25��0�~H]�����ɛb���'�u�����q��N�2�,�ӥȩ;x�ӱ�䦽&��������tW"�Y����؞��3�B8�g�NOUnS�*�%�HSzY�8��2�'��tԐ{��W�N3�(X��u�ɰ���+]� �v;B��f�Gc}�J��J�Q��;Bu�;�Puݹq�ڋS!�#�����;#U��ֻ?�o��9��/l����k�˫��S��Ը�q2ʸT)ґP�2��f���ڢr�BoP�*�ML.�E-������ +���$�c/�B�j�̣{B���Ӝ��}'6�ލ���j�e�tb�9�M2o�c�{D�����I�4e\�|�����(�P�C"�?��~V'U�;���Ii�}���TP?���V��+0��l~$7�w������� +endstream +endobj +5561 0 obj +<< +/Type /Page +/Contents 5562 0 R +/Resources 5560 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5565 0 R +/Annots [ 5536 0 R 5537 0 R 5538 0 R 5539 0 R 5540 0 R 5541 0 R 5542 0 R 5543 0 R 5544 0 R 5545 0 R 5546 0 R 5547 0 R 5548 0 R 5549 0 R 5550 0 R 5551 0 R 5552 0 R 5553 0 R 5554 0 R 5555 0 R 5556 0 R 5557 0 R 5558 0 R 5559 0 R ] +>> +endobj +5536 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 631.337 171.594 639.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5537 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 627.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5538 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 607.426 171.594 615.564] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5539 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 595.471 171.594 603.608] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5540 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 583.516 171.594 591.653] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5541 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 571.561 171.594 579.698] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5542 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 559.606 171.594 567.743] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5543 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 535.695 171.594 543.833] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5544 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 523.74 324.072 531.877] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5545 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [489.452 523.74 529.701 531.877] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5546 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.691 511.785 157.94 519.922] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5547 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.179 511.785 245.428 519.922] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5548 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 499.83 324.072 507.967] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5549 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.261 499.83 478.51 507.967] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5550 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 487.875 110.119 496.012] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5551 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [237.242 487.875 277.491 496.012] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5552 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 475.919 324.072 484.057] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5553 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.261 475.919 478.51 484.057] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5554 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 463.964 110.119 472.102] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5555 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [237.242 463.964 277.491 472.102] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5556 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 452.009 324.072 460.146] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5557 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.261 452.009 478.51 460.146] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5558 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 440.054 110.119 448.191] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5559 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [141.601 440.054 181.85 448.191] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5563 0 obj +<< +/D [5561 0 R /XYZ 69.866 801.979 null] +>> +endobj +806 0 obj +<< +/D [5561 0 R /XYZ 70.866 771.024 null] +>> +endobj +5532 0 obj +<< +/D [5561 0 R /XYZ 70.866 741.162 null] +>> +endobj +810 0 obj +<< +/D [5561 0 R /XYZ 70.866 713.966 null] +>> +endobj +5564 0 obj +<< +/D [5561 0 R /XYZ 70.866 318.44 null] +>> +endobj +5560 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F7 5023 0 R /F14 3888 0 R /F10 3833 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5590 0 obj +<< +/Length 2172 +/Filter /FlateDecode +>> +stream +x��[ݏ�F���G[�{�����7QF�)�g����6�!��,�Ir��SM7v�{��ٽ;)Ү`qw}����fo�&�Sy�������mys{��@�HJ,7A���2#�$ ���a����>`����O�m:_�P�>��.�WI��{����˛/7V�)*���jw����5�v��H��+w ��~���G)�WD���+� �%G2�F̏iu(�e-V������"`� +a.��"�rȊtmͪ��<3�֏��߇�g�A�� ���G�b�Ї��t��v&��n���#����s�[#o�U��^�T��=�|�wI��� +�o�9ؙ4�o���H����/��(ū�(ҕ�����Ax�qNf}{��*�_�ǻ�,4��C�l�����@�(dJ��s�D$�}��U�Y%�P�Y�0Z]pA Cp*A��N��kdŎ�����Cf�|A�,��.���*�&������>+�Q1~�e��o�i{��6XUy'�u����*�&���=ٯ���9�z�d�';�lF����9�����^��9N�Oy��A�_�'�:+�"�ҲrD����$_8��]��:�Z;��c+)���JYY d��(�`t�q�*��F���Q��מ�W/�mZ�i�x���N`�p��e�R�����ӭ�<,�Q�מ������$A<m�}��ۻ�:�0P[� �t�䰸����w�)��4G٣R�7g����l~hK���/��Rn��z�j�ߜ�.M��!�uR%�k�����s��������ͳu��;%�������=f�Q�Ѵ�X���h��x����':�� +`��^�Iڎ�!�^ �d�0�M��q�4���{ +�M���&μ�'��e�-�����2[��b�}���2�\@J8� ����� +Y�_�U�9K�M����B�����D� ����!tZ���B�WBD9m�}\v| +X�[�H�N7Q�A!�8e�� ��ۛ�Ŭ�a��M���4=F�l{�Sѽ���S��4�Ǖ?v{�O�ʟ�������?Ւ��� ��U�;oW�l@X����m� u���Ӧ=�E�H�3-���tT����66O]KM�'� Jg|�� +�����ȫt��d���mY���>�͟���5��Q��dk�C��]��4:Nb���l?�)�%E�K�i��gC���������������;� KP����4`5G�`H��"0 ��$�!�@!�Rn���3�#8�.�R�^ �!�e���K��\J" +2V�J��j�L��y�p�"6~͜Ӂ`Kf.(�c�s�� ]FO��$v^���+$�K`7��v.����N�tۣ�챹�@q�`~(��U�E�.���J�W�m^ay���I���ѫu9��É�D�@���T4� +�o�~���#&�0DG��B����z�H�ߋ���=�m�"���CY���z����I�~���FÂ*�*��Ra^��q,��r�vƔ������2W[�Q�6Қi��w���hz�I��D�"N-�3�n�'��?��q,��s���h�c쇖˸H��ľ���%1����7ljı\�a~�@��t����c�ڇʫ�;G��LLC�$�\�a�P|)2�A�خ=?T=���J�iyA���K��{��x:�=~9����@�S2 H�hX ��BHޡ� L�0�$��c�G���4�$�\�����E��✡��x������`g���p�0z�����G��D�N�aA +��|(q+@�)ň�K��q,� u��H�<�����:��m�����U�]AAp�OU�i��H�� �W����#�X��$���|��Q$�`?3+��� ��*(R���B Ay� �7�ˍ�(�h������93�gh�I4L�F��z3FHD|(R��Ñ:��?P]�_)P7��:N��ڼs�:��?L��j0L�ca����av�BrZO;z"��cOP^퉳x +TL�M"a"R�L4P��h�U�"�� +�q���:��|E���5�����][��X��|�Z�g�q&�fׄ��I@�H�L�O�̹d����W[�,%��'E��$�c�3R"���W|�����h(y�#!8\���ߧ���w{�8���s��~�_���}���O�i�� +endstream +endobj +5589 0 obj +<< +/Type /Page +/Contents 5590 0 R +/Resources 5588 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5565 0 R +/Annots [ 5566 0 R 5567 0 R 5568 0 R 5569 0 R 5570 0 R 5571 0 R 5572 0 R 5573 0 R 5574 0 R 5575 0 R 5576 0 R 5577 0 R 5578 0 R 5579 0 R 5580 0 R 5581 0 R 5582 0 R 5583 0 R 5584 0 R 5585 0 R 5586 0 R 5587 0 R ] +>> +endobj +5566 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 539.516 110.119 547.654] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5567 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 515.606 171.594 523.744] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5568 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 503.651 171.594 511.788] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5569 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 491.696 171.594 499.833] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5570 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 479.741 171.594 487.878] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5571 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 467.785 171.594 475.923] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5572 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.041 455.83 319.29 463.968] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5573 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [484.67 455.83 524.919 463.968] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5574 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.691 443.875 157.94 452.013] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5575 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.179 443.875 245.428 452.013] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5576 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 431.92 324.072 440.057] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5577 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 419.965 110.119 428.102] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5578 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 419.965 200.978 428.102] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5579 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 419.965 368.351 428.102] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5580 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 408.01 324.072 416.147] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5581 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 396.054 110.119 404.192] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5582 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 396.054 200.978 404.192] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5583 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 396.054 368.351 404.192] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5584 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 384.099 324.072 392.237] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5585 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 372.144 110.119 380.281] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5586 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 372.144 200.978 380.281] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5587 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [232.46 372.144 272.709 380.281] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5591 0 obj +<< +/D [5589 0 R /XYZ 69.866 801.979 null] +>> +endobj +5533 0 obj +<< +/D [5589 0 R /XYZ 70.866 625.431 null] +>> +endobj +814 0 obj +<< +/D [5589 0 R /XYZ 70.866 598.236 null] +>> +endobj +5592 0 obj +<< +/D [5589 0 R /XYZ 70.866 250.53 null] +>> +endobj +5588 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F61 3918 0 R /F11 3889 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5604 0 obj +<< +/Length 1053 +/Filter /FlateDecode +>> +stream +xڽWM��6��W�+��o�5�xk}H%�<Scc��/���������Cj=sn����-=�?):\fA�f��g�%��ƱR��("X+���aE�z�6%��y�"��mr��T/Y���fuH���3|i�s��5_�`ܭ���� ��rk^))X���z5�}=�2�At��k&ж�m���+D0�5���,��K�a}B��r��I�4����*�U�l�Y������b���v�0��Tc"���]�g(d�Y5g�%�(��L��RcF#��m{$�9#��#�;#L!ސb�ސ)k�Ej�#(L�9�����V�M^�6��q������iv�9�9 ^�L�ӆe`x�M$�B�0E����K�ej"�)9dM�Z����Ӏ%��$��ạ�H�zB��_��)�l�SZ{��3lܻKu��ɱj/ٱ:���>��8����|�Tu��v#�����.FV&Or��]�m�M~�&��=���vW�=�7�@�κG�&3̡&��{�79�`�^�#R,.+�^%��r����Uy����I7���q�UKA�Gҧ���F'�����C�r��:�'� +�/I�� ���>�����}�|x���Lyg� ����x�n���<m�ӽ9�6"�ވ:�����E�^�:�%��I��l{[��N�s�����M?��V#{�qL���>f\^m$5������@��x2o�����}�U�����G-|G�om�;\ǖ��y�J�Mt�{:�I��s����7A����j���M/8����oUqnwodtN( ��zj�&��Bs�A:����� ���ݹ���A7 +ĮA�&���)�Ҟ'�hd��\����I����8��yAqL��]��@N4~��8d��Ǣ�]���Dj.C����0]1ؗ�����!@���� +��} +x}�/���m��j��mun�"�ntG�|:-TՃ�IO��t�ZO���qs,.f����׃���z÷C��0�����G)�矲2��fJ�}�L_�9�T�F���bE +endstream +endobj +5603 0 obj +<< +/Type /Page +/Contents 5604 0 R +/Resources 5602 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5565 0 R +/Annots [ 5593 0 R 5594 0 R 5595 0 R 5596 0 R 5597 0 R 5598 0 R 5599 0 R 5600 0 R 5601 0 R ] +>> +endobj +5593 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 527.561 171.594 535.699] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5594 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 515.606 171.594 523.744] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5595 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 503.651 171.594 511.788] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5596 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 491.696 171.594 499.833] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5597 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 479.741 171.594 487.878] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5598 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.823 467.785 324.072 475.923] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5599 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 455.83 110.119 463.968] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5600 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.729 455.83 200.978 463.968] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5601 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.102 455.83 368.351 463.968] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5605 0 obj +<< +/D [5603 0 R /XYZ 69.866 801.979 null] +>> +endobj +5535 0 obj +<< +/D [5603 0 R /XYZ 70.866 637.386 null] +>> +endobj +818 0 obj +<< +/D [5603 0 R /XYZ 70.866 610.191 null] +>> +endobj +5602 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F8 5024 0 R /F7 5023 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5611 0 obj +<< +/Length 1492 +/Filter /FlateDecode +>> +stream +xڭ�]��8���+|�h��ط��V�R���t1 �� +0%�m�}��N�0$��F"�8���y�C^�>�hw��C������~���Q��� +�J��0�(Zm��ܰ���q��߫�}�Œz�&۔I�ag�:�{5�6�0� z��5�L�M2��#h�� �h4��� !9����=�w��Q%�Lڗ��4KڣYQ���i��<��$*�|A��P)�!{Bz��\��9*|�%Q� &Tŀ�S� u���Hd��0eo��1�X���=kCI�93cS��*P +�GT;i=���8-�tAɼL�"���X �$�Y�%�e�*`���Z<:�A傓y�G�ƽu�q>,���f!�R���E�CaЉ�M��c�"�1����q)��k&m`��,;�b���Z���u��q��Ql ++�(Znc����k�6Y�o�4,���#z�\�xA6�'�p�R�)�6<����� k!.@t\�~D�I+</ q\�~������W�v�[V_����PAu��.��iPM�QC���A�_*7�<R#�#uJ�D�̣�z�����y�9�H5����Tx� �cut3���� +`�z�Nl�I�M��X�m�z�6��X���62e/m��Iu��k\bJs�`�!��H`,A +8�ر����s�T=�E��6��Ƹ�S��ɸf�y��Q"�&r8%��:%���h�?���ط\YY`8.e?���7��uM"[����7RN��5���f_n�)��w�C�#�Iy�����M� +��CK��A��%_l�FK���:}�1�1h���)�ܠ�n���[�8qc�=��+�gs���5BZ��B$��1��w����9���+�&[h��P�@6%���ٓ�i{�k0TQ�jhc�®@j&ʤ�Q�=��� +c����}��6.e��4�6Xͽ�N�^�i�0��_�Mv��zk�)��3�4n:��Ԝ��I�L7���cX��4�o���!��ʨ�O%;�e�9/S/�e���:e*�f6T�W�N�� ���;#bt)q��1X�z�o"����N�s��S������ ��x�m��y�x��Q�['a���m�7սQK�#��s�����^�֩��WNq���k�M��Q���k:Z�A���a�.����'��$P߫�U��귉�����9@b�(�O�F۵�wn�?��-1�� u"8�Z�j/��.Z����R}��֚OR�E5�[[Of��� �B!%|�ְ�F�1��M��W��m�81!�-���z [)D`Y�Z��V����#�-�_Y�T�o�� +���*��}�� 4�KAM�"=�� �t�Σ�����1���kU��}��A]-�]�|�xL��\��P�*ҕOS�&rx�ʽ+��<�� a��J����&�a݂`�&rс�]t �Û�@�A���L�������t +���Y���mI�+�v�wQ�a�����3��w���'X/ +endstream +endobj +5610 0 obj +<< +/Type /Page +/Contents 5611 0 R +/Resources 5609 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5565 0 R +/Annots [ 5606 0 R 5607 0 R 5608 0 R ] +>> +endobj +5606 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 476.02 110.119 484.157] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5607 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 464.065 171.594 472.202] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5608 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 452.109 171.594 460.247] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5612 0 obj +<< +/D [5610 0 R /XYZ 69.866 801.979 null] +>> +endobj +5613 0 obj +<< +/D [5610 0 R /XYZ 70.866 771.024 null] +>> +endobj +5534 0 obj +<< +/D [5610 0 R /XYZ 70.866 561.935 null] +>> +endobj +822 0 obj +<< +/D [5610 0 R /XYZ 70.866 534.739 null] +>> +endobj +5609 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F8 5024 0 R /F7 5023 0 R /F14 3888 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5624 0 obj +<< +/Length 1372 +/Filter /FlateDecode +>> +stream +xڵXKs�6��W`�9"x�총�u���ʗ�"Q'�Pd���wA�2)ъ�� r��b�.�f|qN�|3"h�:�1�9��8Q���i�c��NV���*��$����e};M'�j�'��q�L��"���i��4��"!8����&�����x�iD�"At�-�q���FW7M��)"�'1�k$WHH�l����=�&��.�<��GQ����f�ViRl�Z�AA=����TIk���cPL�DZL�0@�cB��p.�(�0e]s� q�!�G�|?6�P�%{�JՍ%K���V��*(�gj��sP*4$q��zM��j��=�<���m��BN3��2�$��V2H'��gX��>A������,G:\� C����,c���z�����*=�^��epӮ2�yV��g�i]+�E�[�i�*���|�2ܢ2Ⱦ�t�nt�h���^� i�c+���9�V:�qC��Y&(�ۭ�|���벇U��/�)�=���%�B�C��d_��:@p �流�c<��(XE�ۋ��˼�d�u'.�A���1&Bn � ߍ�5aj0<;r�ڔ�S���$ gpX���@U��QzM˳*+r����S@��$f��M1s�}������@��C&�4����ە)?զ�Vx�$ +x!b +�)Zg5����^��V�~j��2|}�-�D�Q��C�#Ԗ�̪ D3�C��yh'.��5������RW큷,qv�V���t�Ѻ|�Q�9z�㱟�|�����9����<��2���ɶ[.S�����C�v��m��C���[�G����Y�"�E +��ʺ��x����ϩ(���1��eE �a>��|b#��ݦ��~T���g�U$� +jhE�m�oY*,�/��t�`��[�����>ث�!ķM{V�M� ��^��-�c�ăX�,K �w3��h��,��-1����<�$����҆�穣�2�L���ͤ�֍�ab�0�����Up��cv�nf'�,�֕q����\8w˦�,ZS�F���]��KB;՞D���S�}�>�|#p�V�l�� +<d;�]����mw�n{���ĸeY�p�;�W�A�#L>���|�?&��ͥ]�=�wh�^���cЕ�Sٞ���F\��/��j�LWi^�f͉�7���Dy��VYn�3��ɻ�ښ�wY�p�u������F��«�+�/�ސ�3���ؗ�[�)��E�@}�"70��k>��9ΰ�f��<��;?�v�~��ɾ�����>�g�����(0ia�;&��,;X��W�M|����ƴ��Ç����3�'%�o�Dg$+���I�����&���Ni_�έ�0��Z�?v�k9 +endstream +endobj +5623 0 obj +<< +/Type /Page +/Contents 5624 0 R +/Resources 5622 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5565 0 R +/Annots [ 5614 0 R 5615 0 R 5616 0 R 5617 0 R 5618 0 R ] +>> +endobj +5614 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 329.045 170.032 339.313] +/A << /S /GoTo /D (lu__decomp_8c_a8649e9f4b85f17bf35a22b18e7f239d7) >> +>> +endobj +5615 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [212.897 329.856 246.908 339.313] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5616 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.989 329.856 309 339.313] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5617 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [336.086 329.856 370.096 339.313] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5618 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 147.431 297.675 173.971] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5625 0 obj +<< +/D [5623 0 R /XYZ 69.866 801.979 null] +>> +endobj +5626 0 obj +<< +/D [5623 0 R /XYZ 70.866 771.024 null] +>> +endobj +4148 0 obj +<< +/D [5623 0 R /XYZ 70.866 561.158 null] +>> +endobj +826 0 obj +<< +/D [5623 0 R /XYZ 70.866 543.961 null] +>> +endobj +5627 0 obj +<< +/D [5623 0 R /XYZ 70.866 372.13 null] +>> +endobj +830 0 obj +<< +/D [5623 0 R /XYZ 70.866 298.929 null] +>> +endobj +834 0 obj +<< +/D [5623 0 R /XYZ 70.866 132.403 null] +>> +endobj +5628 0 obj +<< +/D [5623 0 R /XYZ 70.866 82.821 null] +>> +endobj +5622 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F11 3889 0 R /F29 2678 0 R /F10 3833 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5635 0 obj +<< +/Length 1506 +/Filter /FlateDecode +>> +stream +x��XMo�6��WۋD�)�!�n�.���fOI`hm�-��\Kj���C��%YQb{=r$����q�3�w�&�[�#�-<�~�]^3�HKɼ����(��S�"I���w�k>~���1�ĸ�y���d��B�}6+�qZDE��f��������#;�0D!��l=����}��Q��S5r�q���~���G���$�4 FT#��8 cUN��,[o���G��k!<�����`/`��[�2I�pZ�ٜo�5(��&W�AZ���ʂ� ,DT��i�E����y��ͨ�+pӬa'��b�<[+;�t�q�0ӵ��{��R��}��V��L˷���I�rώ3��p'�,�n�+ L#�S'��@ e�V��҉���}Z�dyR��U��3�,� ?yF���3ѵ����̏M����c��ҝ��KϾ��G^Ζ5HT�<8��ʾ�ō|�Lٕ�iX9�f������Y�8�@���3�- ��y̱a�=-�[��}$�'�}��1,������Z�sD�.�U�}�?Q:�?>����:���l�3� +��j<�r�������_��f����MT�y9�|X%�$���yJ����I���gE�.�h�Ȝ�b�F�sP���Q/�p� u��R٥��q{��p�v�RčB����M�N�$n�y�m�{��|�+��!�c�����dL�m�u\������� �!$�P +"��B�v)�;c�t%<A$��� Q�HQe@P����Q +l0"�:$�ɽ� +D%=բln�s��M�}&���N5���]��Y�*�NUi�_��#n�*�a�O�z(��x�vC!�sF�u����ᯮD�Y~EYXVA�I�"+�y�d�_]M���%���s@n'Q�W[��&��]��"{Q_��fp��t:��#d�!�K�P7���y�;�*��p�"�Cz��,���݉6{�ײz�v�ȡWy-�ʻ=&���@!Bu����p2SP#*�=d�����-2;�f�̚V'G��4�2kr���(���P"���!^����7h�r�w�D#�.ҟ�ܦ��w靣_��̖PlԹ�˘b���PU���`� EuQc��Q��}�Mek䪗U�:HFڜ̌����0�پ� ��v��13�Z��4)xSQ�E\L�/�t=Oc���&y����L|�_Ӎ�� �S{��:O�͓h�EkXK� ��Xy2Ee�q�,���L,�J�s$t���؍Q�}Q�u� ��NWg���l�d�>r-~/��]8����c~(�ݞN�8/^��g��8���6dW��PH<D�TP�jN$�ꐫ{��EÕ�\{������a]�N����$��J�i�$|g�Uh�n�����T�a��z]�3�#�4�:1)�-�����>B6��=�6�>��T���5A��t1���!b��Ҷ�.�m�,��7i�ս��(^er,�rQ�j�\f���p'C�������.�Q�UP�\��)�&N�mT�ń�Y��-̑��K�? ��� +endstream +endobj +5634 0 obj +<< +/Type /Page +/Contents 5635 0 R +/Resources 5633 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5565 0 R +/Annots [ 5619 0 R 5620 0 R 5621 0 R 5629 0 R 5630 0 R 5631 0 R 5632 0 R ] +>> +endobj +5619 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5620 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5621 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5629 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 83.695 170.032 93.963] +/A << /S /GoTo /D (lu__decomp_8h_a8649e9f4b85f17bf35a22b18e7f239d7) >> +>> +endobj +5630 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [212.897 84.507 246.908 93.963] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5631 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.989 84.507 309 93.963] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5632 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [336.086 84.507 370.096 93.963] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5636 0 obj +<< +/D [5634 0 R /XYZ 69.866 801.979 null] +>> +endobj +838 0 obj +<< +/D [5634 0 R /XYZ 70.866 771.024 null] +>> +endobj +5637 0 obj +<< +/D [5634 0 R /XYZ 70.866 547.476 null] +>> +endobj +4149 0 obj +<< +/D [5634 0 R /XYZ 70.866 291.68 null] +>> +endobj +842 0 obj +<< +/D [5634 0 R /XYZ 70.866 273.459 null] +>> +endobj +5638 0 obj +<< +/D [5634 0 R /XYZ 70.866 128.655 null] +>> +endobj +5633 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5646 0 obj +<< +/Length 1498 +/Filter /FlateDecode +>> +stream +x��Y[o�6~��УDI�" �li��ِe���@Pl�jI�.K�_�C��%[Qk��^����?�sz{sM�E9�����������/���B����#1 +�pdH� ��ܹs F>�zT�j��k�4�J���8%�U��fjz��a�G\� �� ������=!0���(�̙���{����[������L��i�����=@I�C�5A�{6 2���=WU�ύ�窜ɺJ�LkxzAÎC�����_���R�YZ-��W���x'/���w�qU�"�M�Q�(A8���0���Z�*��T���b#A����k�(�ٲ������ȏv��Kc5aNV�Ƈ�PD8o�����o +�ι�����s�OvO�nOK �y�2���$6�U>������q��Wq��ln^����Z��k�l�5��;!(�4Z�I��V�g���2_�t�R�ʪ]�\�uY&�%ʛU�&Y�e�����K�理��n��3*�U�-�H�Z�V|�L^m�F��W�������a��4��M)v-�a�;{G)b�7�����cܺǨ�..�Ģ����i��iux�1������ÿ�ڟ��=�ރ*VI�檧���� ��4p<F�~��S{�/�l�u�y>��������! �ODjL61QoW�Y X%Q(1"u�UA����Fi��I�'^���Ҏ?�ݕ�߲�"��ba����dG/�.3B����ɳ���rO�v쇭��;�����]v���-Bϼ�%_�o��;�v܇��m�ki�;>�C�l���_��o�_�E>�=�ԑ�䷮[�N�$�̲ʋ��K���8�6���Y- V����k��"NU{F�[��*gi(��X9K���ܔ�_CW�ܡ����À�� ������c���$�eh<�d��<�QA�)��@��mO�L. ��ce��G|�/s����+k�b���/��}]i��#t�g@�����OG��*�.����5%���vI��$-�N�a�qb���1��n�#�;N�a�uuX�P���)6k�3��y"!����`���<_E��@X�qy� ��j#��Ʃw��a�u�^@��t�^W�q�]��q�!�6,^DzWaX�1h,�4c�����q2�i֕z}�͎�a�f]�iv}��q�"���+s��Å�aٿ�%�SbSč��"+���7�~���-��h��Ôb����t���`�3Emsc�i�����M�Y��m�J2链NzE{ͼ�-�f�W@m=�8�ۛhm g]FEUE�C��s��q�t�$n�ds�>�[��m��*2U`{�s���=�y/���M���Xj)O������B�M��g���a;wf ķ��7t��8��~k��-����\O���o*��ª�d`?����liT��zIN���UE{n�����/��V�Ja۳�L{Qv�2U�ՐM�yäO}I�lW����#�� +endstream +endobj +5645 0 obj +<< +/Type /Page +/Contents 5646 0 R +/Resources 5644 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5649 0 R +/Annots [ 5640 0 R 5641 0 R 5642 0 R 5643 0 R ] +>> +endobj +5640 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 641.068 297.675 667.608] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5641 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 470.441 171.594 478.579] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5642 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 458.486 171.594 466.623] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5643 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 446.531 171.594 454.668] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5647 0 obj +<< +/D [5645 0 R /XYZ 69.866 801.979 null] +>> +endobj +846 0 obj +<< +/D [5645 0 R /XYZ 70.866 771.024 null] +>> +endobj +850 0 obj +<< +/D [5645 0 R /XYZ 70.866 626.824 null] +>> +endobj +5639 0 obj +<< +/D [5645 0 R /XYZ 70.866 580.266 null] +>> +endobj +854 0 obj +<< +/D [5645 0 R /XYZ 70.866 553.071 null] +>> +endobj +5648 0 obj +<< +/D [5645 0 R /XYZ 70.866 314.665 null] +>> +endobj +4150 0 obj +<< +/D [5645 0 R /XYZ 70.866 68.979 null] +>> +endobj +5644 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5663 0 obj +<< +/Length 751 +/Filter /FlateDecode +>> +stream +x��VMO�0��WX�%9�؎�8RU�,������PH����&�����,�J�d�?��y3����E��!h�:v>͝�Y"�#)4_��`%% +#�%E�����.�'(���K8�L�=���=,�M��&nLY�P�h��t(DD�q����%A)� @��m#s�E�`��o��G,)��b����<)�Qϧ�7�\�:)��U��'�-�3��(qu��D[�3��@�(�롏��|��;\.��Y�h��wc�-� +�4��[��i7[�_n٘b��;�@��d'1���)�l����6t +A�>�&�B�h��Ԕx5�)V��m�� �3�$�Hq;cj����qS�;�z���<���>�K,�����5�m�ĺ�nm5�a/WTB|8�11:��}p�ˀI�=��j�������u�GA�}(tA�`NG1[��N�BK�1̢�X���Ʋ�A��B>P�b�^�P1����<Ҿ�u�Tf=T�Dup,D����_χ�V�w��f��zK�I3Ǜ�6qхe&7E�Ꞻz�0�z]�q��f�c��Wک�g�[`>��G�qwӬ@�iÍ2���o`A���o�^��#~�Ѻ�}��٩��$8h�{~�سL�������8�{�:��>� fGj�y����G������:��k]|�-���u�p�Ʃ-<S{�svx�J�B��痰V�0b �-�c]�*n7_{����C��������ň*P���B +endstream +endobj +5662 0 obj +<< +/Type /Page +/Contents 5663 0 R +/Resources 5661 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5649 0 R +/Annots [ 5650 0 R 5651 0 R 5652 0 R 5653 0 R 5654 0 R 5655 0 R ] +>> +endobj +5650 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 583.66 181.267 593.929] +/A << /S /GoTo /D (lu__decomp__test_8c_a5798fee8a59a44f3a6a712ffd700dfd1) >> +>> +endobj +5651 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [250.395 460.401 388.199 470.983] +/A << /S /GoTo /D (lu__decomp_8h) >> +>> +endobj +5652 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 408.742 297.675 435.282] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5653 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 244.634 181.267 254.902] +/A << /S /GoTo /D (lu__decomp__test_8h_a5798fee8a59a44f3a6a712ffd700dfd1) >> +>> +endobj +5654 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [250.395 121.374 388.199 131.957] +/A << /S /GoTo /D (lu__decomp_8h) >> +>> +endobj +5655 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5664 0 obj +<< +/D [5662 0 R /XYZ 69.866 801.979 null] +>> +endobj +858 0 obj +<< +/D [5662 0 R /XYZ 70.866 771.024 null] +>> +endobj +5665 0 obj +<< +/D [5662 0 R /XYZ 70.866 627.75 null] +>> +endobj +5666 0 obj +<< +/D [5662 0 R /XYZ 95.773 598.499 null] +>> +endobj +862 0 obj +<< +/D [5662 0 R /XYZ 70.866 552.665 null] +>> +endobj +4151 0 obj +<< +/D [5662 0 R /XYZ 70.866 398.926 null] +>> +endobj +866 0 obj +<< +/D [5662 0 R /XYZ 70.866 391.992 null] +>> +endobj +5667 0 obj +<< +/D [5662 0 R /XYZ 70.866 288.724 null] +>> +endobj +5668 0 obj +<< +/D [5662 0 R /XYZ 95.773 259.473 null] +>> +endobj +870 0 obj +<< +/D [5662 0 R /XYZ 70.866 213.638 null] +>> +endobj +4152 0 obj +<< +/D [5662 0 R /XYZ 70.866 59.9 null] +>> +endobj +5661 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5676 0 obj +<< +/Length 1477 +/Filter /FlateDecode +>> +stream +xڽY]o�6}����X~S�a��h�����4����r&�Y�_�KQ�%Y�c��e�:����C^����'�=d#�=x�{?z;��f����y���0 +����Ho2�n|�c〪�_Ec��������>�����M����Ҹ��fnG��$S{K+�}�Ʒ��w��?#��#[�0D!��t5����~������+��gp�����7B�&D�'! Y���i@�o���e{Hb�8ޥ�:uO�7�4�����ϫ߃���^W�tA�o��4Z�ߣ�s�s��r�Bx��,�)��9��d���� � ��)�"v�RHq] XE�-:p`�6��_:p�'�AZ�KG'y��h���FJ�GG(A�V��'����u�:vFK�F��FKA�:T� $���*����+`��FJ�J �#�C��u�ǬX���iəH�,g��r�|�T4��n!��4��_dz�7��ӇrQ.F1��2���Xv�,������Fj�A���%vnV�{x�����G���bm� |�ҿ�a�������dX�m�m|W��L_��L�'�ڀ�����g&���-"ʮ �4���X�LL�+_��i�yaԴ��Pȋ��)�i*8EX���#R����#����d�4~,�����J����l#*���9�ED*�oc��M����֘ ���zA y9����Q)���lU-K�-������1I�v����}��8���&�7�2N�s�C!%D�"r0D�MT���Ƥ�d�����kM�Z_7�t��nV&ɣ]��H���Fdj+��s8�u�j��QH+L��)��d����,�[,���Q�+�\��%<��xXZQU�ny�)[�%Fc�v;J�5Zܜ!�t�{�z�R��ڎ�Dl���H�l�,��h�?�{^��$������msQ������í�u��,��c5 5�(�8�u�_�y�X��A�cVkK,�3�l�X��;��Z�듵�(�V&7��y��ju�9夯�a���ܶ:ư]��Q`�}���a��h��AfI��"�N��=�QI2�z� �+�78�O��1P�Q���Z�*�\a3��v��Jخ�)�1!�|@���R����0J�a����=��Dq��W���&�8]}��pP\�*���/Rc�YG��-�Ц�u:�0����<u&��r���������S3$^b��;�Y�l4��%8��K�u�� +\��oݠ��1>� �~�<�=���8�ςp�S#cG�A�>"=e�ÎKoa�����*�oX]��G�ӓ��MZ��]�=՚��90��|�#��C��͐�wɣ2;��Lh$Bv��1,*��^o��RF�)�:���JA���-I_�ѷ��.)�U~��qR=�}s|X�'�hOM����y:D��C)����O���DTI^�ˇ�v˗�Mb�]]�����{![�o��E�o�v��=Aj� +endstream +endobj +5675 0 obj +<< +/Type /Page +/Contents 5676 0 R +/Resources 5674 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5649 0 R +/Annots [ 5656 0 R 5657 0 R 5658 0 R 5659 0 R 5660 0 R 5669 0 R 5670 0 R 5671 0 R 5672 0 R 5673 0 R ] +>> +endobj +5656 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.118 582.949 196.349 593.531] +/A << /S /GoTo /D (magnetic__based__fi_8c_a897f5c675ad714feb9f2ae7571de620a) >> +>> +endobj +5657 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.978 583.868 331.988 593.325] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5658 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [424.4 583.868 458.411 593.325] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5659 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 583.868 525.406 593.325] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5660 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [133.091 571.913 167.101 581.37] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5669 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 433.77 297.675 460.31] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5670 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 247.203 171.594 255.341] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5671 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 235.248 171.594 243.385] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5672 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 223.293 171.594 231.43] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5673 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 211.338 171.594 219.475] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5677 0 obj +<< +/D [5675 0 R /XYZ 69.866 801.979 null] +>> +endobj +874 0 obj +<< +/D [5675 0 R /XYZ 70.866 771.024 null] +>> +endobj +5678 0 obj +<< +/D [5675 0 R /XYZ 70.866 624.708 null] +>> +endobj +878 0 obj +<< +/D [5675 0 R /XYZ 70.866 542.005 null] +>> +endobj +882 0 obj +<< +/D [5675 0 R /XYZ 70.866 403.557 null] +>> +endobj +5679 0 obj +<< +/D [5675 0 R /XYZ 70.866 357.028 null] +>> +endobj +886 0 obj +<< +/D [5675 0 R /XYZ 70.866 329.833 null] +>> +endobj +5680 0 obj +<< +/D [5675 0 R /XYZ 70.866 149.899 null] +>> +endobj +5674 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5693 0 obj +<< +/Length 1088 +/Filter /FlateDecode +>> +stream +xڽW�n�6}�W���$ŋE��&@m�:��ȴ�ƖR]��~}�e[���b�<4$�C�������W��Մ�5"�j�a>y(�H���WHJ�Tİ�h�D/ +���k���KXg�^f[=�� +�Y�6;��I���:�8��5�0� �GC2���dqO��]#@�B����C\X���o����*Y4�RRL:�3}G�3�� +K�v�f��ʢv,V�hVt��%�\�Y?$�^��N��:A>�G��V���t��TW��x>��x�:_v�u9����4��a +P/���L��!K�x���z��#���ZlL�pD�0�T\��f��� �!����t˛��^��v�Z�^,�#�)�r|,ˢlW��<=D�;����S�����\��4�f��úꥪ��mO3���8,�ey�m�N#�G3!�$�K��G�V<�&@�6p�8�Q�wn�#8~�0��)�����Uu���Qm\A}ѳ�(�p �W����I��o��`%���A���y�pe��+�A~P�U����cL�֠�/��>M���l���(��Gn����T�*ΆXf�)�&��00J��� +xRŹ��fwq�G�~�Q!�]�J�~�+��x�;&ρ��2t��؞�N���džRm��)�&�,;㎔���2�qDD��;s�7���%�{�o3䫜���~a��)�at䞘:���:�t�3]�e��݀#I�`�����ic���f0g.� ɝg�4e�k� �Xo7�an�!�nG$��K����ue�v���w3�[=���G���,_�U�?��oܚ�k�|�� + ����KR4�;�F���m4�nG��f.ؗ�0�4<� +NWQ��A�3g�����o+)BG��1Hk�#Fh�,�j@ĕ�~牖��OB��.�v��U���wôW��6�<�$�F����T�:�C%���ذ�-����Nߞ{uL=��`�R�+�������2d�~�ͽ}�'�7Y��nB��Iݑԅ`��m�=u-ry��;���)xbߘ�>�����ͧQ��&����Op,�"�J�J�<l���bV��/kcJ�·�jⓧ +endstream +endobj +5692 0 obj +<< +/Type /Page +/Contents 5693 0 R +/Resources 5691 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5649 0 R +/Annots [ 5681 0 R 5682 0 R 5683 0 R 5684 0 R 5685 0 R 5686 0 R 5687 0 R 5688 0 R 5689 0 R 5690 0 R ] +>> +endobj +5681 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.118 500.427 196.349 511.009] +/A << /S /GoTo /D (magnetic__based__fi_8h_a897f5c675ad714feb9f2ae7571de620a) >> +>> +endobj +5682 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.978 501.346 331.988 510.803] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5683 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [424.4 501.346 458.411 510.803] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5684 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 501.346 525.406 510.803] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5685 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [133.091 489.391 167.101 498.848] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5686 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 352.501 297.675 379.041] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5687 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 167.36 171.594 175.497] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5688 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 155.405 171.594 163.542] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5689 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 143.45 171.594 151.587] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5690 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 131.494 171.594 139.632] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5694 0 obj +<< +/D [5692 0 R /XYZ 69.866 801.979 null] +>> +endobj +4153 0 obj +<< +/D [5692 0 R /XYZ 70.866 710.083 null] +>> +endobj +890 0 obj +<< +/D [5692 0 R /XYZ 70.866 693.706 null] +>> +endobj +5695 0 obj +<< +/D [5692 0 R /XYZ 70.866 541.858 null] +>> +endobj +894 0 obj +<< +/D [5692 0 R /XYZ 70.866 459.558 null] +>> +endobj +898 0 obj +<< +/D [5692 0 R /XYZ 70.866 322.362 null] +>> +endobj +5696 0 obj +<< +/D [5692 0 R /XYZ 70.866 276.491 null] +>> +endobj +902 0 obj +<< +/D [5692 0 R /XYZ 70.866 249.331 null] +>> +endobj +5691 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5722 0 obj +<< +/Length 1807 +/Filter /FlateDecode +>> +stream +x��Z[��F~�WX�Ha2��TUm�M��T�[���B^0��-6i�������`c���M3�2���9����=��I{s{o{�F��o��42R2o4�FZJO�$�FS�O0bb0�J�W����< +�p2~�`:�۟���I.�&\���`f��uM�G��7fp?���6���#���֦�HS�MV��{�M�kl���I�<.�����g�mQa��� QI�4wa�P����*H����~�yV�l��3xm�i���[/�� ,���A��6 ��M�U�["<[B������)�@�#aT?B���kR�O�0�83U��`6~��(MƑ��fUw��4f�:AM� +�|�g�p�!7����A����$��0��}Tw��$?g��a��#�:�p��qy�Q��>u�lF]�h u+?�c�S?�«�����9ֈIJ_�b�i� +���/s�M�x= #? ��#��P���+/v���i�(?� %�>��lFh�h��#�x��F �͟ ����4���"`��(���+KvґcP���C��� ��#0x��f��� +�T��a ��D#�>���fL��h~���Ø�i�{@��tт�ӝ�aŪ��u�u���1RX_����n/�M���6B�lwv��s� pe��:^'EQ]�9X���J���Gӂ��4����qZ�6X�RR�B���<]G}k]#�i��W�M�(��Wi���}��QS-,vEQO��w��� +M��G��"U4w7�Cr��n<��/���t�Um�A�[�0�U��*Z��<H�ף��H�;� �r]����+�6�w�3C���;�g�.���}�,W0�D�����z��Y��M���'�2����%��4X�H+$�wB?��d��:W )IB���k8��A�=���[�E�&2:����B�0oH2�ͅ=�JF�F߸B��V��F�����4��}�Sv�7|�\����2|x�}JȬ�2v��E��lK�G.8|r�9 ��Sd�*��K��Lj/��D +�JZ�AI���n�B�~VV�p꾳l��;ڿɤ� �D���.�Զ�FE�����ƺ��h�hD�|�,������[v��)��b��l^�K�WK�Ҥ��_[*�s�.JX��3T|eI����:^=n�]���\���sUf/�z���|�-����;�Ppq��րh�T�(�l�+���$����HLƎ��j +w#�H]Q�+�e�;̱��%)����̰�x9�Jw�^�A������A�KL�F��]ؘ5D����MNv��m�k��������*�� �=���yγ�� a����I� �����7��(�C�\��t�8k�/�4�l��l3���r��*�&PivB��%���<��p;�!C]�ku�T+�a��e��R&�� �?p��Q����Ѭc�|���Og5��B�Q�(�k�� *�5.�]�%���B���@�y�"N���x���'�c溚˔�r� H�p:Sq�fi���߸����lN.��z�4Q�YI��.���~n��Y��o�2p��IC�J�霰����H�1�U R�Uij���]�.�WA2Y����ƱОR⛍��xhc� �Fŏ���g56�"^?������B�0wq���L}7 ��U����^�����\ +�w�/��_�h�f��C�^���Oҫ����;�����=r�v�'ص��;9�!��!K9��x�^� �`�v���W�~~�<���Ѿ��s��B +endstream +endobj +5721 0 obj +<< +/Type /Page +/Contents 5722 0 R +/Resources 5720 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5649 0 R +/Annots [ 5697 0 R 5698 0 R 5699 0 R 5700 0 R 5701 0 R 5702 0 R 5703 0 R 5704 0 R 5705 0 R 5706 0 R 5707 0 R 5708 0 R 5709 0 R 5710 0 R 5711 0 R 5712 0 R 5713 0 R 5714 0 R 5715 0 R 5716 0 R ] +>> +endobj +5697 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.043 344.781 248.113 355.157] +/A << /S /GoTo /D (magnetic__based__jacobian_8c_ac3aca0a9af6ad84f6c010a215239f224) >> +>> +endobj +5698 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.265 345.7 382.276 355.157] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5699 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 333.745 128.787 343.202] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5700 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.356 333.745 194.367 343.202] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5701 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.887 305.414 258.918 315.79] +/A << /S /GoTo /D (magnetic__based__jacobian_8c_aa66e6f52fd806c36f4b735b7c4c3307e) >> +>> +endobj +5702 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.296 306.333 400.306 315.79] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5703 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.574 294.378 163.585 303.835] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5704 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [198.479 294.378 232.49 303.835] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5705 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [272.276 294.378 306.286 303.835] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5706 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.412 266.046 256.452 276.628] +/A << /S /GoTo /D (magnetic__based__jacobian_8c_a87f1c7a7d6b151883c2308de275269b8) >> +>> +endobj +5707 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [362.287 266.965 396.298 276.422] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5708 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.574 255.01 163.585 264.467] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5709 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [198.479 255.01 232.49 264.467] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5710 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [331.349 255.01 365.359 264.467] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5711 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.224 226.679 275.102 237.055] +/A << /S /GoTo /D (magnetic__based__jacobian_8c_ae1e7849d86970a33ef5b784705ebc2fc) >> +>> +endobj +5712 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [373.944 227.598 407.955 237.055] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5713 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.559 215.643 168.57 225.1] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5714 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.464 215.643 237.475 225.1] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5715 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [257.413 215.643 291.424 225.1] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5716 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 85.414 297.675 111.954] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5723 0 obj +<< +/D [5721 0 R /XYZ 69.866 801.979 null] +>> +endobj +5724 0 obj +<< +/D [5721 0 R /XYZ 70.866 771.024 null] +>> +endobj +4154 0 obj +<< +/D [5721 0 R /XYZ 70.866 593.124 null] +>> +endobj +906 0 obj +<< +/D [5721 0 R /XYZ 70.866 576.939 null] +>> +endobj +5725 0 obj +<< +/D [5721 0 R /XYZ 70.866 384.462 null] +>> +endobj +910 0 obj +<< +/D [5721 0 R /XYZ 70.866 184.981 null] +>> +endobj +5720 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R /F68 4470 0 R /F69 4469 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5736 0 obj +<< +/Length 1561 +/Filter /FlateDecode +>> +stream +x��Z]o�H}����2�o�u��H^���Zڇ4B�� +)�lڇ����f�p�}���33g��{���O�u_ΰuoa�z��b���y��)��X[F���P$��XY76�ع]�-�1.����U���z��!_n�8��*�35t��b�eF`$�����O��Lg7��Z�ws����Z\0$8��7�_�?2 F�dW�$�EL 긠�W�lY2kܛ7�\����",����,��ex��*�'Z�wI���j�W��3~H�/����D�3�|���d帲F~U6Cl�0Y� �%��E�&Y�UC�%�^�]E�sf��]�K���z�>]��D��G�FU�<7��ڣ�a��wozZno���z4�D=5� ���oL=��`�@ �I��h�q�K1F�s)������y����q}����ܡ���j�(���N������1�[�y�ɗ�&�����kY�)jf&Q�W�����}����Ҹ����-�)p� +��C��y�=��P1FXN�b�h{B4D�`�X Z�-�!J-�q��"�!d +�Gұ�����H;.T�m�5P"-�gUJAB��%h�;�A�;ςF�A`-�l��M�.�-J��G�w��a��M7 C�7�1��W�L7��l�.i���G�a_ط���F'�lĮ�ꡈcw�@zP���M�e��$�v���={.CsAT �F�Iڠ8@�2QF1r�A�Q� �%�%��8��l�.�h#�p����*V�|J��G<x�4���i���x�C��<��T�!�?�A����|[�nÑ�Fvy�'�đ +�N��|�ٮNH"�x���v�́K�IN�1\�KP��^��g�i��d�Q���$�k�h��7�#�J �����t'��Խu��.��N�g�A�V}4�~�Nm�׃Қ�t�n�!��vu22�����~W՟V�����v�/��T���¼�?U���,�G�ʱ���s��k}�>�^�OH�!LН=[h!X��8�0$�nآ6��a�>O��t�[�e )H�Z�s�dvi���������(���c�0��5�<��C�?0}�Ug�Eޛ�v �3(9���qn/��ֽve�4j>#x�c��_"�X�=9T���|���\�&Y�&�T:�I,���!�_�Q�����!v^t�����S�������v�݄Dd�M? �I) ����" ���xY3�ҘO�H���H�g�cF����=�k &�ғ �� ���%,���ˍb4;��9��3N�ك]U?��s�T��bp�M�S �5)�[��T��Xs�ٚ]��z<���첿m���Y�R�I������%bX^��C��T �q��4;�KZw�8j����˼(�N����*/�:�lEC��#�$��J>d��zQP\S���^���V�(N������<f�Q�F#��� Zx�<�Δ��LrV�y���]��[���b��mi5l�{�;p�ߴ�u#��V+[��������{vgq��y�!W���Wݗ��K��r� +endstream +endobj +5735 0 obj +<< +/Type /Page +/Contents 5736 0 R +/Resources 5734 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5649 0 R +/Annots [ 5717 0 R 5718 0 R 5719 0 R 5730 0 R 5731 0 R 5732 0 R 5733 0 R ] +>> +endobj +5717 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 631.337 171.594 639.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5718 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 627.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5719 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 607.426 171.594 615.564] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5730 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 279.896 171.594 288.033] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5731 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 267.94 171.594 276.078] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5732 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 255.985 171.594 264.123] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5733 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 244.03 171.594 252.167] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5737 0 obj +<< +/D [5735 0 R /XYZ 69.866 801.979 null] +>> +endobj +914 0 obj +<< +/D [5735 0 R /XYZ 70.866 771.024 null] +>> +endobj +5726 0 obj +<< +/D [5735 0 R /XYZ 70.866 741.162 null] +>> +endobj +918 0 obj +<< +/D [5735 0 R /XYZ 70.866 713.966 null] +>> +endobj +5738 0 obj +<< +/D [5735 0 R /XYZ 70.866 570.7 null] +>> +endobj +5729 0 obj +<< +/D [5735 0 R /XYZ 70.866 389.721 null] +>> +endobj +922 0 obj +<< +/D [5735 0 R /XYZ 70.866 362.525 null] +>> +endobj +5739 0 obj +<< +/D [5735 0 R /XYZ 70.866 181.628 null] +>> +endobj +5734 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5750 0 obj +<< +/Length 1438 +/Filter /FlateDecode +>> +stream +x��YMo�8��W�(1�oQע���K7k`i`(��haK�$g����P�ɒe[��b��h���fH���o>Q�PLz@]O��'�>��i*��|���R(V�W�֣s�OY��m�S�=�q�,�Q�F��>�R��&�Ml�n��8]��@j����|6�e>�:��A��Tk��@������|�! 5����"!9�����>��{Q�:��gBX��I�Z��>7I꼦�ؗlm�fH�6:;6A�'S& �f��u���u1�)#ޕ�OW5p��S*��ۢ�����@��՚`�9"�-����xq���ן�$�G-��(�a@�c�k),�S��o��>�k!������[M)�!�WX�$-����!k�r�A�]���z�%�b��W�P�B�'���ɞ�S�a�E2�i��AX��q� {���۶7w���T�rk����~s����)^���>�� ��r��ً�[�?�Fh�JF������JQ��P$�~&w)���X(,4GJ��i^i}J J��ϐ�Շu��qI,��C����� +*-��� +Gc!X�\]�ꜜV9�jX��6ɏ襺ߋ2���4��Iq���թ�c�8��%3Y�E(�`��0J\,]E��P ]E�B�O�����ޥ˗���F��%�q�xe�~�b��3 �>�\f�5I�m���x��b�m#_wQ�>�y����� +[�C92*7�*ChS���2�*�J�դ|��<��%�J�W�R�o�!L-�l�\��[�+c�mU"Ĥ�-��0 �ک!��� iCW���{H�6<��R��*P��ԛi�������!ք�u�������h�)�g1��C��cY�|a���.H|*��[W1�A�Uw�S��8`������)�Gٯ�&��U�[xj����%�s�W�M���<���d��+�X�-�,_%iT��5zv(]u���.^��jBz��(�^|�B�Q�+�IjϡDž8��W�M��B�¡����b�ɧyD�gG���Q�K��EN�<ĒGCa2<�A!0� Gٯ�&���TǶ� B�D��>�g@�Y���C�xH��,��8IJ������غ�N�e�����H�k����y2�%��U�+$:��_�Mbsi=��q��lG���Vq�vս�I��j�57��\u�5�s����r]��Y�K2X�Ϟή��3��.J��16,y�`�� K��ņ��z��-īA���6���-��܃���ՅhSW�p�EJ�-Rq^�tvB�T��"��\-Ryq��?�!�ku����S� }���tB8�/�0����梿q*�����������7@��p#R�F�nDj�0���j~������ԁ��}�/��O� +�@�Ɔ+$V���8�s�R:!ܛ9�n�?dfo���m龇���� +endstream +endobj +5749 0 obj +<< +/Type /Page +/Contents 5750 0 R +/Resources 5748 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5753 0 R +/Annots [ 5740 0 R 5741 0 R 5742 0 R 5743 0 R 5744 0 R 5745 0 R 5746 0 R 5747 0 R ] +>> +endobj +5740 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 613.55 171.594 621.688] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5741 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 601.595 171.594 609.732] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5742 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 589.64 171.594 597.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5743 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 577.685 171.594 585.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5744 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 228.862 171.594 237] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5745 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 216.907 171.594 225.045] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5746 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 204.952 171.594 213.09] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5747 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 192.997 171.594 201.134] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5751 0 obj +<< +/D [5749 0 R /XYZ 69.866 801.979 null] +>> +endobj +5728 0 obj +<< +/D [5749 0 R /XYZ 70.866 723.375 null] +>> +endobj +926 0 obj +<< +/D [5749 0 R /XYZ 70.866 696.18 null] +>> +endobj +5752 0 obj +<< +/D [5749 0 R /XYZ 70.866 515.283 null] +>> +endobj +5727 0 obj +<< +/D [5749 0 R /XYZ 70.866 338.688 null] +>> +endobj +930 0 obj +<< +/D [5749 0 R /XYZ 70.866 311.492 null] +>> +endobj +5748 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F11 3889 0 R /F10 3833 0 R /F51 3827 0 R /F61 3918 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5788 0 obj +<< +/Length 1881 +/Filter /FlateDecode +>> +stream +x��ZKo�F��W�E�;�{k�A� HS�R�h���H�#RI�C~{g�%M����ЃAAܝ����y��|��q��;;�/&���u�R2g2w\�����)�ę̜�!�tt3�t�c\����p���U���߬�(��0����������!�H�����W�����ݥ�r>g+W �����k�gi&FT���a���hI����w#ʇ��[i�2L2� +���z�#,|ba)�i����9"��\D��hp ��%�!J�3�B|3��-�!T *�*e5 +�ę�+]��}Fi2�F7����N��� �� ڭ�`�2������Y���#���:�|�U��91DM�划Ln�-HO���aA'��I@G5"�Н��tU�%�+/��C�/W�TbxS<w��4��qX5+�[�xB�L�[�2����Yyi�<9>�>J[FRߤ�K��'�uc�P|�*���<Me;>�J3l���i��qXU2W�mY�g����� ��Oф�p���^2rJx +����\p>�A����!x��vV�n����;Qw;���ӻ�"�ӈ +h���ݎ(��(�p[d� �p���ۿA��?�B.�k�6>���e�epn/J��ܦ��Θ�!X��~���xӇ|��0�����Z/��8W99�$��z��鿞���"H����Z +��vI�2h��k�)�\x�ک���sj[���/�hn|�N�9�M@�Z����G��,ݒ�m�o"��t<��5"����O�e��HS�'�)����~)����g�&�H��imM�U��ă�mhM����ͬ�6��/�xL�VΜ�vv$Ү�gs��u���)���c�Q�^���żE��(�ɔ�V!��'�5Q�#�H +ש,�4�9ڹMt�h4�1�x� �C�� ��ZQ�� �y�&�e��u��0;�:��Q���V:E>*�6�`����j��tJ��5��Y���4�Σ����$�UVH��0M�弐�r��J ��`sn��Ї)Y\� &A �d1�G�U���Ŝ���@���1�M i(Vب���n?9��,A�Y�q6\��-ï���!I��=i-�mE����X�Q�?%�=�#W�b+x�+ˡ���T���y�D.Y5�ה���%��+\�vWD.H7f�Ś &�h;��m�x�A���Y�F-��j��>�6��\����"t���Rk�\�Uκ����.��5��-�sVȰ��a�c�����D��/�Oۤ��+j@�b[�E��Y���.�Qṃ`�����n6z�lK ��˖��(JB��hT�Ab2�%�UJ(�.RX��s�Z��r�fܒ�ƜJD�:�A������C�W!aP� {<6f-��H+R�y��z� z<v���ahJ2��� +$�����r��u ���3��cҮ�7pH3Ӟ��!(�3s�X )��YM�DRC3k�.�U�=�ƝUQ�ùӞ���>�ʘ� @��C��I��F��-�J��q �d��R**���;���0�_5п�N�'�͟��n6���C-�� ��������Ad�K�|���'���@��!ię�:�)�M2��Y�B���Z-� +��b� ��'�s�2.�I[.����m�,�פ����A�*��ۈ�r��0V"��g���8�q��TP]���S�y�z05[��A����W +͡��³?`h�����7�*����Y�&���; �u놸A������>��E��dZi������z�S +�tI����_�h���m�^�����J���_o����g��k���s{�fȩ �E-J͟�t��D@N�G_���&����gWA����a�o���>s]��aa� ��p� +endstream +endobj +5787 0 obj +<< +/Type /Page +/Contents 5788 0 R +/Resources 5786 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5753 0 R +/Annots [ 5760 0 R 5761 0 R 5762 0 R 5763 0 R 5764 0 R 5765 0 R 5766 0 R 5767 0 R 5768 0 R 5769 0 R 5770 0 R 5771 0 R 5772 0 R 5773 0 R 5774 0 R 5775 0 R 5776 0 R 5777 0 R 5778 0 R 5779 0 R 5780 0 R 5781 0 R 5782 0 R ] +>> +endobj +5760 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.706 685.348 426.313 695.724] +/A << /S /GoTo /D (dist__based__jacobian_8h_a59b1a3323c2896ff28f71135af0204a2) >> +>> +endobj +5761 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [220.5 673.392 318.996 683.975] +/A << /S /GoTo /D (modified__gauss__newton_8c_a7376799043ad2c27fac02371624051bc) >> +>> +endobj +5762 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [354.393 673.392 458.555 683.768] +/A << /S /GoTo /D (levenberg__marquardt_8c_a2a72b2b6be15a9998b61a9c0097e3d5f) >> +>> +endobj +5763 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.043 412.982 248.113 423.358] +/A << /S /GoTo /D (magnetic__based__jacobian_8h_ac3aca0a9af6ad84f6c010a215239f224) >> +>> +endobj +5764 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.265 413.901 382.276 423.358] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5765 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 401.946 128.787 411.403] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5766 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.356 401.946 194.367 411.403] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5767 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.887 373.66 258.918 384.036] +/A << /S /GoTo /D (magnetic__based__jacobian_8h_aa66e6f52fd806c36f4b735b7c4c3307e) >> +>> +endobj +5768 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.296 374.579 400.306 384.036] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5769 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.574 362.624 163.585 372.081] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5770 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [198.479 362.624 232.49 372.081] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5771 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [272.276 362.624 306.286 372.081] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5772 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.412 334.338 256.452 344.92] +/A << /S /GoTo /D (magnetic__based__jacobian_8h_a87f1c7a7d6b151883c2308de275269b8) >> +>> +endobj +5773 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [362.287 335.257 396.298 344.714] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5774 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.574 323.302 163.585 332.759] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5775 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [198.479 323.302 232.49 332.759] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5776 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [331.349 323.302 365.359 332.759] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5777 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.224 295.016 275.102 305.392] +/A << /S /GoTo /D (magnetic__based__jacobian_8h_ae1e7849d86970a33ef5b784705ebc2fc) >> +>> +endobj +5778 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [373.944 295.935 407.955 305.392] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5779 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.559 283.98 168.57 293.437] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5780 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.464 283.98 237.475 293.437] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5781 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [257.413 283.98 291.424 293.437] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5782 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 154.499 297.675 181.039] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5789 0 obj +<< +/D [5787 0 R /XYZ 69.866 801.979 null] +>> +endobj +5790 0 obj +<< +/D [5787 0 R /XYZ 70.866 771.024 null] +>> +endobj +4155 0 obj +<< +/D [5787 0 R /XYZ 70.866 588.569 null] +>> +endobj +934 0 obj +<< +/D [5787 0 R /XYZ 70.866 572.405 null] +>> +endobj +5791 0 obj +<< +/D [5787 0 R /XYZ 70.866 452.466 null] +>> +endobj +938 0 obj +<< +/D [5787 0 R /XYZ 70.866 253.362 null] +>> +endobj +942 0 obj +<< +/D [5787 0 R /XYZ 70.866 124.799 null] +>> +endobj +5792 0 obj +<< +/D [5787 0 R /XYZ 70.866 82.821 null] +>> +endobj +5786 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F13 3832 0 R /F14 3888 0 R /F68 4470 0 R /F69 4469 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5807 0 obj +<< +/Length 1578 +/Filter /FlateDecode +>> +stream +x�͚�o�H���W�R��vY^�z���I���{H#��8�d��k�p{gٵ�`~��=D��e�3�gggFy��yO��b��[�����2ߒ(�Y���c$����"A��ֺ� FL8.������C��f}�v�O����0E�z��x��n��Z�Q�Q_q30Ɯ��r��j�iA� l����HR��$��;lm�oK�i�[�L,�3�=�ﭿD�� ����q_8��Ǝ����~����[�->&J[.#HrO����[���g�*�z�2�LZ��s�%\hK�8-�Ԓ�I2�`'A�Z�G�����C��Y�����ۛw�3�]cBrm( �<��O�z&�1�YЖ���6|��ewC�1vg�SI��[�}������;` 89>�D jغcD�9�zp��f��C�`���-�m���9l��/��lw��ҭ�����M����e��Nj�E%HG����G�q��&�O"�j��;Գ�<L�2�B좱y]�]@|P�sؙ�#��a�� �8�>���=x'Ę�r ���v� +��!J�G^f�#q�Ns�rD�*)�/�@����h�B��I�Z���BUJ���o�`���'f�G��nE]Y!X8�-j��yq&'��LxXn� ��*�A����M�솮.ڼL�QyXr����,�����V��G����(-��p�Y�dY����L���XZpq�$$��<PI�JV�*�!Yq�d'� �Sa��4�N�AL�^?���H1�9"/08:�6?`��L��l��h�]�!I�%�������P�p8M��ú�rxR��B7���7��v@��S*�m��mP��7q��6��u�%%�LY�&��1M�9,M��f�m_����>��M��U��|-vS�w��}�r��WF=ݶ��u�4F:�����k���nPW�c���{��*#��4rpP�����z�u�b8��ŀ�����2�כ�y�j�ٝ��j���uq��?hP=@H��O�'O� +l Ѕl +� �0-�^��(w1�,�|¥en�]�}QeH����'�]t����p�o�<���g�<��#$��D2~O�q��2܋����_mQ<j��y��z<>�;����߆��c�y�.���62�>;�å�?O�vfT�4N�o�"��\,��oX,>���1�s��Y^�gz�=�G�rj��`�ć2�K$�u�ϳ��JUqƯ��P*�d}���(�YS6D����g��EeÇ8��s�0��L�f�0�aHD�*�� ��!�M�즮.:o�3ѭn�n�����X�p� �Y�β�%�7} @I�ê�N���!:l�3Q�Ć�ˎ|Ƈ��G��l��l}�~���#"�N%���Iv3X-.�7M�����&��Vt��qSf��q/J�=jc�&p���(ͲaP����S��P �M'�v�TV��E���wՌ�|n��8���}�C�O:�����k�&X03�����4������/C����Y�Lx���yfo'�}5 �oB����^m�<��0#�wQ�p9wLK�d*�/_� 2=��;hʧx +endstream +endobj +5806 0 obj +<< +/Type /Page +/Contents 5807 0 R +/Resources 5805 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5753 0 R +/Annots [ 5783 0 R 5784 0 R 5785 0 R 5797 0 R 5798 0 R 5799 0 R 5800 0 R ] +>> +endobj +5783 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5784 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5785 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5797 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 351.811 171.594 359.948] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5798 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 339.856 171.594 347.993] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5799 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 327.9 171.594 336.038] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5800 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 315.945 171.594 324.083] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5808 0 obj +<< +/D [5806 0 R /XYZ 69.866 801.979 null] +>> +endobj +946 0 obj +<< +/D [5806 0 R /XYZ 70.866 771.024 null] +>> +endobj +5809 0 obj +<< +/D [5806 0 R /XYZ 70.866 642.615 null] +>> +endobj +5796 0 obj +<< +/D [5806 0 R /XYZ 70.866 461.636 null] +>> +endobj +950 0 obj +<< +/D [5806 0 R /XYZ 70.866 434.44 null] +>> +endobj +5810 0 obj +<< +/D [5806 0 R /XYZ 70.866 253.543 null] +>> +endobj +5795 0 obj +<< +/D [5806 0 R /XYZ 70.866 82.821 null] +>> +endobj +5805 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5826 0 obj +<< +/Length 1910 +/Filter /FlateDecode +>> +stream +x��ZKo�F��W�(�f�$�A��FP���C�)Zf!�I9�C{g��6)R�K5Z����;3���ۙ�z����8�|�������7���w�u<�Kɜ՝�b�I�>E�8��s='�/nVW�g�K�X�~�Œ���m�QRE�&j����ˌ�H�'���<ʝp?�����]9`�����Ƚ�C�3�{��6��G�� �'bQ�K�1����mq�� �h��3��8H�[5f���g,0�#*���p\付(7�Y2�<����4�,���}®6�)���A��Β��m��օv�ӊS�!*\��Yt�~Hap�N�W���}Ͷf�?��Ž46�G�-�"��i�O[{�3����[O��Gss�n�Fd,O�����^����(<^������u�`�1��Þ�L�J�, ���,)�,4�6��1M�\� ��a��Y�<o��ؑ��yj�D�c�0�^�`_bX&8�ǐ�僻��c�@���_z2A̅������k����Ɩ�i�9�,sR�ۥa��hf*����"�#�Mp�=�l����}�E-�R`/��~$�Jr�}q:tIH�ʠ8ׁ��N�� �ؕ�����b�8������C>��� ��!�y��_�S�Ș{\P1��)�� $5^�$��?00: +1?���/� 3�,Kd����H#�H�\]�!Ulr +o^+Zn���� �Q�2�k��v��E�ՙ�y�$b{�\؆:��#\ +�8kFsD`���x���$C��%��ov$n9Y �J:֥����9�2�:L�7���Gfc��%���Z���lrO`� �,JB�O]�� +��2��'|̾5&\ם��I6�p"��$��郺q.�QWuzTv滆�'�7�z��kEb5��>���&�Z7t; �0M�M��%�K"t�R���ND�$�P�x��E�!ыǹlGhթ.C��8�+��GqE���6���c�����U4�&�T��d�`��^N�R��0Ƞt�Œ�\�c��T5%e���� Z�X����Q���vKp�v����4��v��g(R�4��9xmMh� L��s� N�w�,���x8�D�����Cq��ܶ��Xu������U���&��V͖N�&�������Z\��q�a=���"��%���ل2VP�H��m4߫�ťD�5�"~ny�����!�N:j�=�N(w(Ԓ���������[�V@|uփ�c���ua�ɦ�a�ڠ ����v���A�!TSIa1cWcR>L ���@zuN �A������<�'���D����@���1]3���h�M����K5�8�5N��h*F��.p�'���!y/ҫ�SdT�eǯk��Qy����^RG� +��Nwa�&P4�c�^@|`�ݪ���Z W}�SQb�C8*�UV���H��7ТL��0S7͆A�ː� ΅�]�@�8�툫���%T �qQ�������W���p� N�#r:�p@���q��Y��)�j������N-�/��(����8Ɇ�[]��l}����t{�p��v�V��q��ۓ��~U��Sũ�F�����V-�B[��Z���zQ���> ���E�f�����!�Ż����R�E�t1��W;�0�?������5.�ksZ�8�Z'G����j� �N�����M\�˛�68�PGEj����f5�u�3���X�t>��{E���L����~�W�:}c���`BRoZ�O�a� +z +��y"S ���W%a���n���X)�ˡqA�SA}��Ҩ�$EAP�t�v�d���&��>��;I��8)X�Ko�������U*\C`�����"��HW$��GI�A�d��<���+��݈��q���T� +endstream +endobj +5825 0 obj +<< +/Type /Page +/Contents 5826 0 R +/Resources 5824 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5753 0 R +/Annots [ 5801 0 R 5802 0 R 5803 0 R 5804 0 R 5811 0 R 5812 0 R 5813 0 R 5814 0 R 5821 0 R 5822 0 R 5823 0 R ] +>> +endobj +5801 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5802 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5803 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5804 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5811 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 318.564 171.594 326.702] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5812 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 306.609 171.594 314.746] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5813 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 294.654 171.594 302.791] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5814 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 282.699 171.594 290.836] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5821 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.706 134.621 426.313 144.996] +/A << /S /GoTo /D (dist__based__jacobian_8h_a59b1a3323c2896ff28f71135af0204a2) >> +>> +endobj +5822 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [220.5 122.665 318.996 133.248] +/A << /S /GoTo /D (modified__gauss__newton_8c_a7376799043ad2c27fac02371624051bc) >> +>> +endobj +5823 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [354.393 122.665 458.555 133.041] +/A << /S /GoTo /D (levenberg__marquardt_8c_a2a72b2b6be15a9998b61a9c0097e3d5f) >> +>> +endobj +5827 0 obj +<< +/D [5825 0 R /XYZ 69.866 801.979 null] +>> +endobj +954 0 obj +<< +/D [5825 0 R /XYZ 70.866 771.024 null] +>> +endobj +5828 0 obj +<< +/D [5825 0 R /XYZ 70.866 604.984 null] +>> +endobj +5794 0 obj +<< +/D [5825 0 R /XYZ 70.866 428.389 null] +>> +endobj +958 0 obj +<< +/D [5825 0 R /XYZ 70.866 401.194 null] +>> +endobj +5829 0 obj +<< +/D [5825 0 R /XYZ 70.866 220.297 null] +>> +endobj +5824 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F51 3827 0 R /F61 3918 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5871 0 obj +<< +/Length 1589 +/Filter /FlateDecode +>> +stream +x��Yێ�6}�W� �^u�"�m$@Ѧ�T�B�e�VW����l����m��%�:H+KÙ����!���ßęW�����<�|'@��1�f�����!Eqn��xH0b�ȥ~0\�#���\�iM�JN���J��Q�Eޤ��O�LI�R�z%B�21��y7��f�߀��!k�A�ʝd9�ag +��9`<�O����!�<g�߃���a�D<�����Y�*;��t���b��y4�u��������%b�>F�y�Ӟ���y�W�R=��(�+�ͬ>�b�D�P"���qF$l��`�ω{c���|�s���Y�Rd�Q����_��,^��eEg�X)�o��U-�f�B8!إ��K=��k���y����CB�$!�>$k�_{t)�C+��_�E�&��z����8a�K +��{�ˇL>�:�V���1..�]�kD�yKx��1�����0�/�mUOӼ�u��P7��P�1/0�yO�\���q�"�+�}#(h��!�T�=���g����gj�Z�d?ʤ.��dAkײ�5*�m�&F�mQ�.�3�dlw�@UHᴩF�xK�h�qƮ��㈊a�N�7խʹi[)_��JR�#�TE��e$˲(��� ���m����gq��Q\�c ���j���Ϛ>2<��㇇�Pm�1�z���"���v��V�n��%��ld>����n�}>�n��b!��5����P���iu��tL����j���g+d��N�ۤ~�+B�w�>`��"*�՚� �7� +��C�;��.v�;M�:V)��EYu��F��`5��3h:��1;��rէ��9�H+tЃ��п&����+�����h�o`�&�F��&�y��d��l�|�Z��[��̦?8��T^?�����M�mX �ʦ`�_��X�غ��+���j��C��.K��e���-K&;�� +X�~��]�w(� ��Z�%:^��J@��6�3��9�q|4����k�w�96RxK�C"�V�������u����4���@%��X��7����R��kI3)3�b��:� +��s�q�-�5�j��S�[�l�m�O$�\�#F�:������ �u|��]�z�6J�q���I��`f�χ�<7�;<�k��-��m�3�s8hT�_?���m��h�ôv�å���?�)/@p^���g3�~D>�=�vջ�;��{j�}:�!�[�a���:��*���f����o x��vQޜQdC�H�����~�Gd"#�'2�!�u����.&��\�[Vr5-�4W+�ckr�n��ac�qc�bỴ��Nl�'͠9��TD��J���o��^����+���=�{Ϟz{�h:�,D���~ ���u "����+�d�_�*)��.{�c +m�.w�I�B=�*)�t����L�_�(��E�sOՃ��UB!��(�'���פ�}\-S�M_�;����s�� lκ�ܫ�/�|�f+w"�,͑>#�[���x����d*�e�Z���GQ��4��������B$F�Q�b^�L.!�(�mB_��.?��&���O{w�vqߺ�Tz���x+su~n�����!�繂�P�;x�?}��{ +endstream +endobj +5870 0 obj +<< +/Type /Page +/Contents 5871 0 R +/Resources 5869 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5753 0 R +/Annots [ 5830 0 R 5831 0 R 5832 0 R 5833 0 R 5834 0 R 5835 0 R 5836 0 R 5837 0 R 5838 0 R 5839 0 R 5840 0 R 5841 0 R 5842 0 R 5843 0 R 5844 0 R 5845 0 R 5846 0 R 5847 0 R 5848 0 R 5849 0 R 5850 0 R 5851 0 R 5852 0 R 5853 0 R 5854 0 R 5855 0 R 5856 0 R 5857 0 R 5858 0 R 5859 0 R 5860 0 R 5861 0 R 5862 0 R 5863 0 R 5864 0 R 5865 0 R ] +>> +endobj +5830 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.751 464.01 265.767 474.386] +/A << /S /GoTo /D (magnetic__based__position_8c_ad5a7513337486e277ea028480403569d) >> +>> +endobj +5831 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [273.514 464.929 307.525 474.386] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5832 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.392 464.929 400.402 474.386] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5833 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 464.929 525.406 474.386] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5834 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 424.184 128.787 433.64] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5835 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 423.264 306.713 433.64] +/A << /S /GoTo /D (magnetic__based__position_8c_ac852e4c0dcb8e9901aa3fab5efd91599) >> +>> +endobj +5836 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.198 424.184 344.209 433.64] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5837 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [394.552 424.184 428.563 433.64] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5838 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 395.393 128.787 404.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5839 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 394.474 277.304 405.056] +/A << /S /GoTo /D (magnetic__based__position_8c_a361f3f3c4f9516a1aa6107367ebfda8d) >> +>> +endobj +5840 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.789 395.393 314.8 404.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5841 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.143 395.393 399.154 404.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5842 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [461.959 395.393 495.97 404.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5843 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.508 365.683 280.237 376.265] +/A << /S /GoTo /D (magnetic__based__position_8c_aac026f28838a5b30c8f6f189e3ab354c) >> +>> +endobj +5844 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.648 366.602 359.658 376.059] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5845 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [452.024 366.602 486.034 376.059] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5846 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.846 354.647 159.856 364.104] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5847 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.825 354.647 203.835 364.104] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5848 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.759 324.937 242.843 335.313] +/A << /S /GoTo /D (magnetic__based__position_8c_ae584dff239a0111c47b7c5d1e197af59) >> +>> +endobj +5849 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [247.599 325.856 281.61 335.313] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5850 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [407.724 325.856 441.735 335.313] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5851 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 313.901 128.787 323.358] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5852 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [249.068 313.901 283.079 323.358] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5853 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 285.111 128.787 294.567] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5854 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 284.191 222.484 294.567] +/A << /S /GoTo /D (magnetic__based__position_8c_a01bb024303e8eb202a19dbd70b291c06) >> +>> +endobj +5855 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.97 285.111 259.981 294.567] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5856 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [271.267 285.111 305.278 294.567] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5857 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [330.703 285.111 364.714 294.567] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5858 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [112.897 255.401 295.299 265.777] +/A << /S /GoTo /D (magnetic__based__position_8c_af316f67cb87759b57bc815326b8d1cef) >> +>> +endobj +5859 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [381.267 256.32 415.277 265.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5860 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.248 244.365 171.259 253.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5861 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.484 244.365 355.495 253.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5862 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [432.262 244.365 466.273 253.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5863 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 232.41 128.787 241.866] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5864 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 86.103 297.675 112.643] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +5865 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 68.336 346.876 78.251] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +5872 0 obj +<< +/D [5870 0 R /XYZ 69.866 801.979 null] +>> +endobj +4156 0 obj +<< +/D [5870 0 R /XYZ 70.866 759.066 null] +>> +endobj +962 0 obj +<< +/D [5870 0 R /XYZ 70.866 741.6 null] +>> +endobj +5873 0 obj +<< +/D [5870 0 R /XYZ 70.866 507.697 null] +>> +endobj +966 0 obj +<< +/D [5870 0 R /XYZ 70.866 201.001 null] +>> +endobj +5869 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5890 0 obj +<< +/Length 1517 +/Filter /FlateDecode +>> +stream +x�Ś�o�H���W�#����d���z�Z]�^ꇓ��"��E�!8mYX0�!j";�����ggg����)��3������ߗ��W\�������)��G*dاh�A�=J����=�p�n,_�;=_0xo��a��"*�41���\���Q�� z48`����7m��{��}/��#!9�����4���&%X��o��SL��\a6_PB�wuH֥CnO�M�BQR�2��5���x�D�zu�z�ښS�.V�m���^�,�3��" ��JGJ�p��:��@Z��4��~�ж~b8ͪˌ�2�Ul�� ����X%т�@j�}Td�Ua����*d �DŽ���>D��^EY���w�����-������}��X�j/Z���q��!N���<��fR�R;�l�����t���'�X��vA�2F|�`��] ��{�>��/�څZ����Re��w����>�㧥S��]�|VGv�:���EO��y��� +4����|��D��q�W�3�EY�ׅ��zyk�\�DB� ���N�2&u>ya&�H$a:���\�q(�5Q�3�����l�2��� +H�H��I�����~3����d��s&�z�u������-lU��[��H�w�mq�,�`�#]����� �d�B�����La @�BL��StC��,���r��<���ɓӑ���l��Oo�U�F��ⵞ�}^�!0A�D'ٰ� + +��E!��9Pq�*==,��u���n�=�sa{���as�^,I/g;�eL�PM�l���3��d���!�qF(�P% 滑�nƚ�O������N���fh@"��-]�/=]�Lg�� �ob��6�A�mA GC[G��_aI#�G� M�ص�E;��;�҅��5v��>�A��<6�}=�&(Y���Zţ���%}���n�ʋ�D�vl�����$�"�un��Z�sfﭔ����D��?ܠ�t�۠v�S��Ȩנ����w���N��Qu�X������Os>ٴ,2/�w&?j�smE�V�L ����������q�0�yo�C +|>�N�Q��6QoL��5�:�3�둒���%z�\&�rW ��v.%氃�����C�&��`8���ݧ� +|�[���3 ���1��2&d�9��$�CSS �u#�P�(~��$�6E���{�|q���E�f�l��S���!�.��K���&��d����w5g>�cP�+���|GH��j��� �P�p� ���Q�U�o������p@���:���4������/�c�@�B=��HI'O-�g;ܚ�q�N�\��gu'�oo����.`��i��4,_� �/�B�a��3�'��)����q�n����zj ��$�����N;��C6 ��m<�Ą2���L���OL��/߱�r��~,�-�W?�!}UW�����V~�g��ݧ圲z��}5�L�y� ���)�hM�+�R�'�}�4�Չ�~�yk^�?�?/(�4<�<ɩ��Z�� +endstream +endobj +5889 0 obj +<< +/Type /Page +/Contents 5890 0 R +/Resources 5888 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5753 0 R +/Annots [ 5866 0 R 5867 0 R 5868 0 R 5881 0 R 5882 0 R 5883 0 R 5884 0 R ] +>> +endobj +5866 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 643.292 171.594 651.429] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5867 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 631.337 171.594 639.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5868 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 627.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5881 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 342.458 171.594 350.595] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5882 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 330.503 171.594 338.64] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5883 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 318.548 171.594 326.685] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5884 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 294.637 171.594 302.775] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5891 0 obj +<< +/D [5889 0 R /XYZ 69.866 801.979 null] +>> +endobj +970 0 obj +<< +/D [5889 0 R /XYZ 70.866 771.024 null] +>> +endobj +5874 0 obj +<< +/D [5889 0 R /XYZ 70.866 741.162 null] +>> +endobj +974 0 obj +<< +/D [5889 0 R /XYZ 70.866 713.966 null] +>> +endobj +5892 0 obj +<< +/D [5889 0 R /XYZ 70.866 570.7 null] +>> +endobj +5878 0 obj +<< +/D [5889 0 R /XYZ 70.866 440.328 null] +>> +endobj +978 0 obj +<< +/D [5889 0 R /XYZ 70.866 413.132 null] +>> +endobj +5893 0 obj +<< +/D [5889 0 R /XYZ 70.866 257.911 null] +>> +endobj +5875 0 obj +<< +/D [5889 0 R /XYZ 70.866 82.821 null] +>> +endobj +5888 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5904 0 obj +<< +/Length 1240 +/Filter /FlateDecode +>> +stream +x��XMs�8��W舫bEH���lR5�٬o���زC� YP�c��8�&6�T��2�����u����/m� AD�������+�XJ��k���D*fXR4_�����t�T�)%�&�&].�R��y��4��ҙܤ[�����Z�BgK{K�L�35}���5��;��� �E8b!Z�&����g����,w(�����3��G"�b�e���%�t����m��4 �/&_���|ʋ)A��Ze�R(6u.w��D�p��H�q�#:���υ�_v���LV�|08�C9��-�7 �:T�(ű�'_�Ĭ�5���Toz �M3s���%;�=��bl�&�}� Be5�M�oXܪ��� +�Ќ��)g�g�{~1�t�4O5O�v���Q�Vg�FRS?�3�-�����3�E�����u�K�ֳ����6_&����u��4z7�v�����g�������h�cʹK�˔�AR$;m4����](C�@��@NVQ���w�a�U �C,�:��CL!����V�I�nj��3�U�"iv<{(��66�l���C/�k�h�D�ЁA���b�Om�S�c0O�ֳU��Y �J��\�</Vi��{���7�&si'!>΅�a���I����x����Բ�]��HF}�8.d7�A�2q\�n&��fb{���%��(y����8&�P����>�)�|�+z,sP5��¸����i���z5b��6`��B�����t�=�IUDؿhZ���'����-���-ӬvB�c�}��t��^��I<�p�X6L #+a�ܽ�S&�4yQ���!�`�ixu��ʗ�� +;�� W�$P��Ѭa��=�k����Ԫ�[�"T�ⷩ����$�M��H�o�8���9i����4n +��UU]]�B�l̓��.�]?�l�j�C/'v��ӓ���ߜ��p���x��bV���SbxA�^ �Pv$_f(�#���a������c�IQȺ`�2^棦�X��l*L��h,I��M�vPo8�g�8�L�`|�88�c���˸x�����8;�݉��(%4����q!���������&^;��w/��jޜ��`$�u������c�a��pK�w=,�PJ�'��q�#�d�q8Ut����Qy5�~.��2�fN�-�����~��L������|R�L�ՙ.`��p���������>"e����� +endstream +endobj +5903 0 obj +<< +/Type /Page +/Contents 5904 0 R +/Resources 5902 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5908 0 R +/Annots [ 5885 0 R 5886 0 R 5887 0 R 5894 0 R 5895 0 R 5896 0 R 5897 0 R ] +>> +endobj +5885 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 735.3] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5886 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 715.207 171.594 723.344] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5887 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5894 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 395.036 110.119 403.173] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5895 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 383.08 171.594 391.218] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5896 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 371.125 171.594 379.263] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5897 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 359.17 171.594 367.307] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5905 0 obj +<< +/D [5903 0 R /XYZ 69.866 801.979 null] +>> +endobj +982 0 obj +<< +/D [5903 0 R /XYZ 70.866 771.024 null] +>> +endobj +5906 0 obj +<< +/D [5903 0 R /XYZ 70.866 666.526 null] +>> +endobj +5876 0 obj +<< +/D [5903 0 R /XYZ 70.866 480.95 null] +>> +endobj +986 0 obj +<< +/D [5903 0 R /XYZ 70.866 453.755 null] +>> +endobj +5907 0 obj +<< +/D [5903 0 R /XYZ 70.866 322.444 null] +>> +endobj +5877 0 obj +<< +/D [5903 0 R /XYZ 70.866 82.821 null] +>> +endobj +5902 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5911 0 obj +<< +/Length 523 +/Filter /FlateDecode +>> +stream +xڽTKo�@��+�RY�}p�ÖrjSn���YT)����wa;�rHU)�cg��a�Yd�� TC����s,�L�B��=H�� S����uH��6�0{�a�������J~�v�F��0u���,����!�B�&�k��Ci���"� +�L� $�!�0�|����w��N�$��G1��MV�6�.��.�j< +�ɯ�0��P�'�{�ۋ�U,���D��d��3�O۩��(�5��?�k�BG���Vw"9Ą���x�[�r�S���)D���|�z��W�����Fp�� �Ʌ��g�r�� ]�f�L��}��Ym��]7�5ۼW���O ��ǶN2��J~��_K7�ex�ߘJE��gO^F����e�A!�����˗�y:=8�Go�ytݛ��{L���<��}�5������ x���m5<���DZ1�J���"�����f��V�/{e�'Q)���<A�Z;�H�Ǖnu_���F�/��?��}��J�pW0 +endstream +endobj +5910 0 obj +<< +/Type /Page +/Contents 5911 0 R +/Resources 5909 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5908 0 R +/Annots [ 5898 0 R 5899 0 R 5900 0 R 5901 0 R ] +>> +endobj +5898 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5899 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5900 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5901 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5912 0 obj +<< +/D [5910 0 R /XYZ 69.866 801.979 null] +>> +endobj +990 0 obj +<< +/D [5910 0 R /XYZ 70.866 771.024 null] +>> +endobj +5909 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5924 0 obj +<< +/Length 1634 +/Filter /FlateDecode +>> +stream +xڽ�[��8���)xL��� ��m�j+ug��t���͠�2m���16 ��aD.p����������g�l�v�v��ެf��1�x��9�����>E�8��s7'1�XR���pA�|��"Za�6�S�GE�&hmny�yu���U��������c��~�q��j�ό��!Q�C��:���cg�}t@����坱�]�\���ι��uF��/���%�y���y���*T� d���U&;=y���ȓ���� ב#�w3���&̔��SB���!J�C(g$J�kC����c%E}#�3�)�5)q-I��$� �˦d������%��Ws--���j��Gyj��q��2�r�7��6 ���0d�lX�`� +/�;���(���q�ݐ�EaA!REI�a����������yǹ� bݭ�1Sj��b���W�3���4�DIX����z,m���t��lX@!3�����gPXg)/t�d7�u�"̶�0��8n^��1Ny�4���9����hc&$��P�dà(|�I��]6�"&��tő��(�E���n�d7wu�845e�[�,)zйޓֲk�g�Йfâ�AM���b�H^��*�=����ħ!��2��1U�M��\�#�Ho:�:���n����1^5���Vy��xJ���L�~�^o�=u�-�!��\�V�iI����LX��.J�4������)n��圂3Kʡ�3b7�z&�*��Ă�^L0Q�(�T}+<�1�jV���9���v1���� Ͷvfoޛ�%�Q�*�{@�ȴS�~ѹ[�R�����7Z�})���$�v�G��;�zGǠ����y�ͫˆ���M���T��$�X�o��i���� ՚�����׀��4~��ذ�t����U|/�1T���-���ɦqc_���<a}�,K|�~K��.�����̋���ħ����ч�h�F�zp=g�7�j(�*g��4&S�r��D��u(�=E��N\:V��%�D.��}ӡ�\��l�N�����lh^��:��I�3m��7A��0`��$�ȧ��u��Y� �4R���h���4R����ڙ6Ox��ݝ��*����E�6!���I�fÒ����}���azI�$;Ij�~�h�f'E ͋�;W{�^w0A%����6����q�&OV�q�ϒf�>�K']�dP�8�qQe�y��]�\pi�����?'WtD�)���[�W'c����Ϸ�����~�]-��A��ч����I�3���8�����f3#�73O�zʴ` +�ʣd{lo��w9�F�����4�,��R�P3��j�-���}����O�z��ԕU�P>�Y���K� ��������ѓ�;v�k���\�7i%ϕ7���Я��1��m��� �2}�#�����{MZ��Lr@Lw�Vtl%�L6��"O�F9Ӏ7XW{x.6�cO�A�ͤ�$OB�J{��y��E�������j��F��(����Ɛ����jkH��V���ed�/�ʟ�M��to]��:��FUq���w�L]��Z_��J}�p��0T��!���ǖ���H��a�YXt%���v��O��S��� +endstream +endobj +5923 0 obj +<< +/Type /Page +/Contents 5924 0 R +/Resources 5922 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5908 0 R +/Annots [ 5913 0 R 5914 0 R 5915 0 R 5916 0 R 5917 0 R 5918 0 R 5919 0 R 5920 0 R 5921 0 R ] +>> +endobj +5913 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 515.083 110.119 523.22] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5914 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 503.127 171.594 511.265] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5915 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 491.172 171.594 499.31] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5916 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 479.217 171.594 487.354] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5917 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 165.118 171.594 173.255] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5918 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 153.163 171.594 161.3] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5919 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 141.208 171.594 149.345] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5920 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 129.252 171.594 137.39] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5921 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 117.297 171.594 125.435] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5925 0 obj +<< +/D [5923 0 R /XYZ 69.866 801.979 null] +>> +endobj +5926 0 obj +<< +/D [5923 0 R /XYZ 70.866 771.024 null] +>> +endobj +5879 0 obj +<< +/D [5923 0 R /XYZ 70.866 600.997 null] +>> +endobj +994 0 obj +<< +/D [5923 0 R /XYZ 70.866 573.802 null] +>> +endobj +5927 0 obj +<< +/D [5923 0 R /XYZ 70.866 442.491 null] +>> +endobj +5880 0 obj +<< +/D [5923 0 R /XYZ 70.866 261.105 null] +>> +endobj +998 0 obj +<< +/D [5923 0 R /XYZ 70.866 234.627 null] +>> +endobj +5922 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +5965 0 obj +<< +/Length 1615 +/Filter /FlateDecode +>> +stream +x�ݚ[o�6���+���b�wR�0�[� ��e�� HC�G�-y���~��dʱdŲ%#�Ȑ�s���!�7��k�̓v�v.?Lo�3�h�Jɜɽ�0�R:ʥHg2sn���ї���w�Kx���>X�ј*=<��li��K�(����x;d#Rk�)w����vf��$���Z<�t�`Hp�Χ��31�"��_�т4- ��Z}=�|���Ҥ&2L +�J���z�=2%+JO,� ,����R�d�Ӡ�[ �Dž�P�GD3D��8C +�[$hH �QI;j��9 � �ܪN/��x�f�]��j$\��~�n駌#�dU�U|�F��k�`э���ᡉM��[ɚ�dD��̹@��!d����_B;n�dX�rT�'���(܁t���Me3p�J-p�(�.��I���U����n�5��m�E�,��$�G�h�w9X�~,��aY$���V��E�D ��Y즲��m���d�h +�)����@v��ȊuQ�e_L���،Wq�$13{�pgl�Q�&��-��qz�/����x?N{�Xs*]����%�k��m紣�fN��>D�h>M��ԋ�v";��L���,�4��2�@��,�{�;��XrT�^���a����B�i�%t^we�躩m�������9��nV4"Ws�_d�rIް�c'��m�.#�.�'g�dXΤ�=��ڣ5i[�������Vκ�m�l[�g��κY��Y��F��G��p̎6oY�E��"v�T�"ilk���e�!B�V�"m�����9e�B�Iz��В� +Y�/B +!͚�����q;�c��5�LP���+���g,0��BIq�B(r �������E<8@0Ơ+��l��Z�� Kn,�� +E�x��a��'3Y�� �X���ǫl +Ϫq���|o��=�!yLR���U +�������l= QP@�=:��A�B +��e�����$�YnQ`���d� ���2�@�+��NMc��z�i�B�����ec d��1�A���R0� +���Ĉ2�Y�<?��z�U�H���ٲ0~�TT�qnǚ���ٺ��2/�xn{�M�XN�%��\hU�9E���UE����y \�n�'eS��0�����,�p^6�8���N�G���x����' �Ͽ7����1x��*�o�a��!�� 6O�/��F�ۣ��k�X7�Y�=����W'q����a�F ¥R0�]�B�\���*(� �����ۛ��:$��R#N7��g��'�/_��VS�� rZ-��ă}�������N�irz�[c�r��mG�v�������xH���}�Ȼ�:����ge�]ui��`����Ǧ��W�_�׳���Ê���zaOSb�$֖�z�Yֱ�X���^/���[ߵnf����U�T,����@!H��(&6�X>���y����N~�Ng"Xߩ�k���8Z���2s�C/�,I�Dž��a�$��+�����\_�#�=k�D[B ���f��������-������S#�T��&���%(zz��&�_uHD��\p$�+���&����;w�.��AG~4��q��UMX7�15�� +endstream +endobj +5964 0 obj +<< +/Type /Page +/Contents 5965 0 R +/Resources 5963 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5908 0 R +/Annots [ 5928 0 R 5929 0 R 5930 0 R 5931 0 R 5932 0 R 5933 0 R 5934 0 R 5935 0 R 5936 0 R 5937 0 R 5938 0 R 5939 0 R 5940 0 R 5941 0 R 5942 0 R 5943 0 R 5944 0 R 5945 0 R 5946 0 R 5947 0 R 5948 0 R ] +>> +endobj +5928 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 353.448 138.641 362.012] +/A << /S /GoTo /D (magnetic__based__position_8h_a73d113d91ab7ec355ca707cc930eb718) >> +>> +endobj +5929 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 323.867 146.101 332.248] +/A << /S /GoTo /D (magnetic__based__position_8h_af9cccf331f045b89a9f12366df5f7687) >> +>> +endobj +5930 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 293.918 142.622 302.483] +/A << /S /GoTo /D (magnetic__based__position_8h_a30ab9da60435727bc80839d416461b8f) >> +>> +endobj +5931 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 264.337 139.636 272.718] +/A << /S /GoTo /D (magnetic__based__position_8h_a598a3330b3c21701223ee0ca14316eca) >> +>> +endobj +5932 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 234.572 143.617 242.953] +/A << /S /GoTo /D (magnetic__based__position_8h_a6f98ae7b0908254a0dfd1627e652bebe) >> +>> +endobj +5933 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [144.117 234.572 154.583 242.953] +/A << /S /GoTo /D (magnetic__based__position_8h_a598a3330b3c21701223ee0ca14316eca) >> +>> +endobj +5934 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [162.557 234.389 176.008 242.953] +/A << /S /GoTo /D (magnetic__based__position_8h_a30ab9da60435727bc80839d416461b8f) >> +>> +endobj +5935 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [183.982 234.389 197.434 242.953] +/A << /S /GoTo /D (magnetic__based__position_8h_a30ab9da60435727bc80839d416461b8f) >> +>> +endobj +5936 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 204.624 150.091 213.189] +/A << /S /GoTo /D (magnetic__based__position_8h_a0fa11f33bdb89b468b60f19395381cc4) >> +>> +endobj +5937 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [165.543 204.808 176.008 213.189] +/A << /S /GoTo /D (magnetic__based__position_8h_a598a3330b3c21701223ee0ca14316eca) >> +>> +endobj +5938 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 175.043 137.144 183.424] +/A << /S /GoTo /D (magnetic__based__position_8h_a97d832ae23af4f215e801e37e4f94254) >> +>> +endobj +5939 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.644 174.859 158.564 183.424] +/A << /S /GoTo /D (magnetic__based__position_8h_a0fa11f33bdb89b468b60f19395381cc4) >> +>> +endobj +5940 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.538 175.043 183.468 183.424] +/A << /S /GoTo /D (magnetic__based__position_8h_af9cccf331f045b89a9f12366df5f7687) >> +>> +endobj +5941 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [191.442 174.859 200.912 183.424] +/A << /S /GoTo /D (magnetic__based__position_8h_a73d113d91ab7ec355ca707cc930eb718) >> +>> +endobj +5942 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [208.886 175.043 223.333 183.424] +/A << /S /GoTo /D (magnetic__based__position_8h_a6f98ae7b0908254a0dfd1627e652bebe) >> +>> +endobj +5943 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [246.755 175.043 257.221 183.424] +/A << /S /GoTo /D (magnetic__based__position_8h_a598a3330b3c21701223ee0ca14316eca) >> +>> +endobj +5944 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 144.202 173.511 153.865] +/A << /S /GoTo /D (magnetic__based__position_8h_a544d6868e9b6cf4f9b9db9e1ad413691) >> +>> +endobj +5945 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 114.437 147.607 123.894] +/A << /S /GoTo /D (magnetic__based__position_8h_a3ee4ec231172a5fd866f72acead15bc4) >> +>> +endobj +5946 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [148.107 115.513 156.08 123.894] +/A << /S /GoTo /D (magnetic__based__position_8h_a97d832ae23af4f215e801e37e4f94254) >> +>> +endobj +5947 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.054 114.437 208.394 124.101] +/A << /S /GoTo /D (magnetic__based__position_8h_a544d6868e9b6cf4f9b9db9e1ad413691) >> +>> +endobj +5948 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 84.673 207.896 94.336] +/A << /S /GoTo /D (magnetic__based__position_8h_a2ab193fcd7e0bc8f46ce92c3299b99bc) >> +>> +endobj +5966 0 obj +<< +/D [5964 0 R /XYZ 69.866 801.979 null] +>> +endobj +5967 0 obj +<< +/D [5964 0 R /XYZ 70.866 771.024 null] +>> +endobj +4157 0 obj +<< +/D [5964 0 R /XYZ 70.866 588.073 null] +>> +endobj +1002 0 obj +<< +/D [5964 0 R /XYZ 70.866 569.461 null] +>> +endobj +5968 0 obj +<< +/D [5964 0 R /XYZ 70.866 397.419 null] +>> +endobj +5969 0 obj +<< +/D [5964 0 R /XYZ 95.773 366.583 null] +>> +endobj +5970 0 obj +<< +/D [5964 0 R /XYZ 95.773 336.818 null] +>> +endobj +5971 0 obj +<< +/D [5964 0 R /XYZ 95.773 307.053 null] +>> +endobj +5972 0 obj +<< +/D [5964 0 R /XYZ 95.773 277.289 null] +>> +endobj +5973 0 obj +<< +/D [5964 0 R /XYZ 95.773 247.524 null] +>> +endobj +5974 0 obj +<< +/D [5964 0 R /XYZ 95.773 217.759 null] +>> +endobj +5975 0 obj +<< +/D [5964 0 R /XYZ 95.773 187.994 null] +>> +endobj +5976 0 obj +<< +/D [5964 0 R /XYZ 95.773 158.23 null] +>> +endobj +5977 0 obj +<< +/D [5964 0 R /XYZ 95.773 128.465 null] +>> +endobj +5978 0 obj +<< +/D [5964 0 R /XYZ 95.773 98.7 null] +>> +endobj +5963 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6006 0 obj +<< +/Length 1490 +/Filter /FlateDecode +>> +stream +x��Y�s�F~�_�#������4q��d�Ӻ~��a��e���'}��; ����OB����~���rqs�;q��;K;F�nFW�w$ +<�97w����<�(�s�p�.������]Gc��e��<�EE�7Y��I��{-r��b}u�)�8�ӹ�%�O\B������כ��#N`��J�$��|=��bg�>:`<�ΗJr�p����WΟ�?��"��+��v)W�t��-*��W4���xȗ�3����}�T4^q�!<�qL��%�L�%_�E]WR�`�FĖqF�"[m�8��<�۪�K���GՂ�2O�p����z��,Zm�0��)�J�9���Uʏ(�n���٘a�)|�~��D�:BP <�f��V*xm���������ey1# ��$� �sD|�8 +8���g� �+���ހغ���lU�ٝ�?�͇:�*���l��o�����kQ�kԇ� ���a +"�b������(#�j���)>� s�1��je^��D�p!���Q�ܮ�<���I�k�:��FTm�NCdϒ4>�=����4w�y�����KU��T?���u63�����,�0/�]���9TzV��p˼QhI��U�Z�Z����X���"����䫂�u��]�;�0��wc���詈�� ���pU���Z���=e��"p'x���<q��z=\���U�ׇ���a��pq���+� ��)�=WV�^������U�]�_��2ʕ�/��5 +�����N��@JwD��]��OCk�+$����NO�2��]]�A'Xi������7UJߛ!{}9���t};�I�U��GW�9 +|&U`9����b���IyHHbe&Z��N=D�f���>�@���s��k�{��� l*�)���,7�=9���nP�A�G�(�m�m*��1z�"I�����p�N������C��-s�K8�U!�{��D�t�v]���B������+�u 0^�]�`�x���$U��ccq�vڌc�1��}�Ζa��N<1���j���ȠJ�̃�^7}��=w"�Le�kǁ��ykk��� ��J#,Xmt�,c�^�i�1�/�b�'��z!ڌ )x{p�X���|?�lW�����xZ��R����r�"�I��/c��my�]�zP���&$���=��j��)*։Ѧ�������N�ikO H��o�ݷIz�Y���-��Bl4��1���"^���ڞ~��|���^���"�o�Y�\�k�>��F�t�#B>�5@�h0����g�o��F�| . U;Tv�����S+�d��.,����P�1�C��yT[������w%�w���8�@���*�5�8C��:�����|�صV61j�4_�ϟ�E�`}�G�Q���~�o�R��5�g�Zag�>���OM���c��%�'��Kf�G,�+_�� �~�R���k_��@�g"�!N�<*�{���R��jH��=�z�+p +endstream +endobj +6005 0 obj +<< +/Type /Page +/Contents 6006 0 R +/Resources 6004 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5908 0 R +/Annots [ 5949 0 R 5950 0 R 5951 0 R 5952 0 R 5953 0 R 5954 0 R 5955 0 R 5956 0 R 5957 0 R 5958 0 R 5959 0 R 5960 0 R 5961 0 R 5962 0 R 5979 0 R 5980 0 R 5981 0 R 5982 0 R 5983 0 R 5984 0 R 5985 0 R 5986 0 R 5987 0 R 5988 0 R 5989 0 R 5990 0 R 5991 0 R 5992 0 R 5993 0 R 5994 0 R 5995 0 R 5996 0 R 5997 0 R 5998 0 R 5999 0 R 6000 0 R 6001 0 R 6002 0 R 6003 0 R ] +>> +endobj +5949 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.751 733.249 265.767 743.625] +/A << /S /GoTo /D (magnetic__based__position_8h_ad5a7513337486e277ea028480403569d) >> +>> +endobj +5950 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [273.514 734.168 307.525 743.625] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5951 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.392 734.168 400.402 743.625] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5952 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 734.168 525.406 743.625] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5953 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.759 693.399 242.843 703.775] +/A << /S /GoTo /D (magnetic__based__position_8h_ae584dff239a0111c47b7c5d1e197af59) >> +>> +endobj +5954 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [247.599 694.318 281.61 703.775] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5955 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [407.724 694.318 441.735 703.775] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5956 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 682.363 128.787 691.82] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5957 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [249.068 682.363 283.079 691.82] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5958 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 654.467 128.787 663.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5959 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 653.548 222.484 663.924] +/A << /S /GoTo /D (magnetic__based__position_8h_a01bb024303e8eb202a19dbd70b291c06) >> +>> +endobj +5960 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.97 654.467 259.981 663.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5961 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [271.267 654.467 305.278 663.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5962 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [330.703 654.467 364.714 663.924] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5979 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 626.572 128.787 636.029] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5980 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 625.653 306.713 636.029] +/A << /S /GoTo /D (magnetic__based__position_8h_ac852e4c0dcb8e9901aa3fab5efd91599) >> +>> +endobj +5981 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.198 626.572 344.209 636.029] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5982 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [394.552 626.572 428.563 636.029] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5983 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 598.676 128.787 608.133] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5984 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 597.757 277.304 608.34] +/A << /S /GoTo /D (magnetic__based__position_8h_a361f3f3c4f9516a1aa6107367ebfda8d) >> +>> +endobj +5985 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.789 598.676 314.8 608.133] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5986 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.143 598.676 399.154 608.133] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5987 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [461.959 598.676 495.97 608.133] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5988 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.508 569.862 280.237 580.444] +/A << /S /GoTo /D (magnetic__based__position_8h_aac026f28838a5b30c8f6f189e3ab354c) >> +>> +endobj +5989 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.648 570.781 359.658 580.238] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5990 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [452.024 570.781 486.034 580.238] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5991 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.846 558.826 159.856 568.283] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5992 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.825 558.826 203.835 568.283] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5993 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [112.897 530.011 295.299 540.387] +/A << /S /GoTo /D (magnetic__based__position_8h_af316f67cb87759b57bc815326b8d1cef) >> +>> +endobj +5994 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [381.267 530.931 415.277 540.387] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5995 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.248 518.975 171.259 528.432] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5996 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.484 518.975 355.495 528.432] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5997 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [432.262 518.975 466.273 528.432] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5998 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 507.02 128.787 516.477] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +5999 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 368.878 297.675 395.418] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6000 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 351.558 346.876 361.473] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +6001 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 194.266 171.594 202.403] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6002 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 182.311 171.594 190.448] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6003 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 170.355 171.594 178.493] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6007 0 obj +<< +/D [6005 0 R /XYZ 69.866 801.979 null] +>> +endobj +6008 0 obj +<< +/D [6005 0 R /XYZ 70.866 775.009 null] +>> +endobj +1006 0 obj +<< +/D [6005 0 R /XYZ 70.866 477.113 null] +>> +endobj +1010 0 obj +<< +/D [6005 0 R /XYZ 70.866 337.314 null] +>> +endobj +6009 0 obj +<< +/D [6005 0 R /XYZ 70.866 292.136 null] +>> +endobj +1014 0 obj +<< +/D [6005 0 R /XYZ 70.866 264.94 null] +>> +endobj +6004 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6025 0 obj +<< +/Length 1717 +/Filter /FlateDecode +>> +stream +xڽ�[��8���+xL���x��n�V[�;��J�Q�$�j�@z�_��`2fԇQ�`�9�?�[x���D�]>����������JɼՃ�cH��!E�x��w;'�.�V<���`���x�K��7��xPIq�衳?W�gFb��D +(�6�����p����^�<x\0$8���y���L��З��-��hIP��՟�ϣ,:�BeB�yiY-�j!�g��c!#!L��,|aa)<���0���#�Zᅰ$T�% ��|�G�jEb��*��U�l�aq��~[P1��G��������\�Ӱ���i�/�Œ��ѐ��汆u-a!F<,�2�"0��$�&�0Q��O����4� �1~Gn*�5�FOOY�`x�c}-Rn�X��[�������,��Cz�[��o���#q����O$q�C"� ��g��Z�H¢��Uz,zXtRjG��6�����Pk�ei6��� V[��[��AVV�WZ������u� ���"��K�I�,�_6tt�*�t5��U�+/#���TS���y���O�VeK@��l��e8 !�E�e���բ�Q_0�IõG�Y�81����OԾ��Uě�}�����~l�5=K����5i7L @Q�`0� K�OK�Nߚ�b���"J6*���?R��}�6��[ L�����R���B��Z�ɞ��g;��7�f������qP��Ǻheܯ��)6�4��� c�C���u^d%zڻ��$}~��g�\� ���qek�E4��jF����1N���v�D�%�ZIu̯��yv��~�L"DB�z�3ŭS +j��������>*��'|�kQj"%����{U|�GH���Uߟ�3��M[�O�-�t���й1J�FG��K������٧�h��В��u��l��=�r��Sƌ9��c$|��Or����k�ɨ�5�26��5g�<�+ⵣJk�n)=y.��m�+�;K8�{�jW;��zYۋaMks�c�\�S�_�K8���e%����$���$�C�aR�/�7rH�_���J;�M�ր5���-v����}U㖅z#wJv{5D�h��d�ޟ��5IFE}���W��8�sy]���NXS�y.���v�lf��e\��ƛ��B� �"ٚ&ðP8&�"(|8�r�s9��r�Rz��IrSl%ɦ�;��{��x�P�.��f�d�$��D�@Hd>$�\\��J;XM�_{�r�ig����_m�0�gU��3ڐL�4t�˸�Aa��X��;(��k�,����f}��̏@�@}Ug"&�����O���g����ՂP?.�fH�5�ƴf�E��=�1ʹCiuk�+ﺁ�Ws{��-c��˺;P6���Iq�~q��j�6���v���PF:��f�hg&�v����[�s�� �x�l8_��z�Om}��m�h�fX���Nu�4��@�L|��e�4MF�PpE�:�(!�݄�h� b����v4��p���|�.����Mh�O�ɇ��4�x̔Zn�Jr�*��A.Ͷq�D'��L�� +b4�0�.F B4 +Q�$�B1��O��!�R8��>+� �W"��J`C�3��~7썞C���4�Ƌ��rG��u�4�����0��/y3�h�ᳬw�My���ڛ�s���7/���I�4�Pr6����e +endstream +endobj +6024 0 obj +<< +/Type /Page +/Contents 6025 0 R +/Resources 6023 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 5908 0 R +/Annots [ 6016 0 R 6017 0 R 6018 0 R 6019 0 R 6020 0 R 6021 0 R 6022 0 R ] +>> +endobj +6016 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 542.782 171.594 550.919] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6017 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 530.826 171.594 538.964] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6018 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 518.871 171.594 527.009] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6019 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 494.961 171.594 503.098] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6020 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 201.463 110.119 209.6] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6021 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 189.508 171.594 197.645] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6022 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 177.553 171.594 185.69] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6026 0 obj +<< +/D [6024 0 R /XYZ 69.866 801.979 null] +>> +endobj +6027 0 obj +<< +/D [6024 0 R /XYZ 70.866 771.024 null] +>> +endobj +6010 0 obj +<< +/D [6024 0 R /XYZ 70.866 640.651 null] +>> +endobj +1018 0 obj +<< +/D [6024 0 R /XYZ 70.866 613.456 null] +>> +endobj +6028 0 obj +<< +/D [6024 0 R /XYZ 70.866 458.235 null] +>> +endobj +6012 0 obj +<< +/D [6024 0 R /XYZ 70.866 287.378 null] +>> +endobj +1022 0 obj +<< +/D [6024 0 R /XYZ 70.866 260.182 null] +>> +endobj +6029 0 obj +<< +/D [6024 0 R /XYZ 70.866 140.826 null] +>> +endobj +6023 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6040 0 obj +<< +/Length 1097 +/Filter /FlateDecode +>> +stream +x�ŘMo�8���<�@���uۦ@Oݬo�a(6����$���ߡHْ��g��9��ሓ���W��Ո�5"�������kdp�G�����VM��!�s3�0m�,S�s[���cR������:-r��ܥ����ەmK�/�#i4�(�������t�ѭ�1�0���aF��}A ���!!9����3�g��6��3�n�%�'�@xJ`�����֛2�����ޱ�3�1�j0�Ϯ�B�˴�)�z���&z���qY�]"�����H����V�wVp7;o�$��ֆ{>�o��<�ح��9̓I��X���Ѻ�%��]xI��D۵�xX��r<�2J����u�dduQ���E逈2��H�fo :��c;��a�X��iL�V�.B��]�W��{��>/[���ó\N�R"�cMh�)���E�c =LT�H߉F?<Z��<n�9���F�b�%�Gq,��ۻ�u�ÛfPiM����nNs,xey�r��.�?#�ݳ�3c�D;���ޞY��6|?�C��l���� �m�&�~��YסJ��"�� +u�w�$�����6/ǔ�R�u�D��Ifk[�)��5p�D���͡: +��%��mPL�D�p��>dFL!~o�$�<V`VL0��*�+��o?N�P�%�TRu@������#�%#�ـJc��>�x��c8�|��Jk'�4�y,%��EQ��4O���_�i��M�I�/�-B`B�+1��F�P���G#a2>F�K +=��!�j�J�q/�bÞgb8x�ZZ��k +D�!���F�!����0��D�P +,�9���2��`N��2�a���@w��0u]��W{Q�� _�lOަLp~%:��8�OD�J�k�t���F�����DyS�~�_�>��a�6F^���_�����[^�4�G�g�ߩ�ے�� �k��|�T��=tg�6a�{�>s?�!���.r�u��[��+����ӆ<@�aP���~�h��z�v���k�z�v������a�P�%�������S�i�e;�[b��F�ls[��)�8f$���?M���I����� +endstream +endobj +6039 0 obj +<< +/Type /Page +/Contents 6040 0 R +/Resources 6038 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6043 0 R +/Annots [ 6030 0 R 6031 0 R 6032 0 R 6033 0 R 6034 0 R 6035 0 R 6036 0 R 6037 0 R ] +>> +endobj +6030 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 588.247 110.119 596.385] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6031 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 576.292 171.594 584.429] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6032 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 564.337 171.594 572.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6033 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 552.382 171.594 560.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6034 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 205.696 171.594 213.834] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6035 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 193.741 171.594 201.878] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6036 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 181.786 171.594 189.923] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6037 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 169.831 171.594 177.968] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6041 0 obj +<< +/D [6039 0 R /XYZ 69.866 801.979 null] +>> +endobj +6013 0 obj +<< +/D [6039 0 R /XYZ 70.866 674.162 null] +>> +endobj +1026 0 obj +<< +/D [6039 0 R /XYZ 70.866 646.966 null] +>> +endobj +6042 0 obj +<< +/D [6039 0 R /XYZ 70.866 515.655 null] +>> +endobj +6014 0 obj +<< +/D [6039 0 R /XYZ 70.866 315.521 null] +>> +endobj +1030 0 obj +<< +/D [6039 0 R /XYZ 70.866 288.326 null] +>> +endobj +6038 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6055 0 obj +<< +/Length 1636 +/Filter /FlateDecode +>> +stream +x��Z]o�6}��У �,�)=��Z�X�.�À4�u��R&�Y�_�K��EK�l9��C��<��9������'�[{�{7y���~˔�@J�-�z +#_JOI�-V�ݔ>�_|�|Ǹ����o㍞ͩ�7�r��Iq��['�-&M܉=���ȧ�[n'w��[�w<�����[��g�z�}�����楹X҂t���ܲ�4�|e�V:�2�Kfu�N�����Ð)�|E�_8AX +Oq�L�'��&҆��Dx, �fI|�(�H)��rE⎽!T *�XH����,pA�mLJb�!iЀ� �B&3����l{)��ku-�^3�u��Tg:Yڏ�J����)jS��G��#8��`��C��Vd��M����a��!�q��"k��Oi��6*`�a��wp�������8Z�Bl�*3��rc�6�֖i���$*t���x.mqA��u�*�(�(�b04*�!��>+u�@�Av� ZD�Z�F��8�E�c��M��~��4�c�/�F[FBq~���QIQV�N6$EL`��GBvK� ����FBv� ��։.�e-��YR�H�r&�m7!h����u1�t|�I�x�,&}���t^���G>�`;������`L�f>Ϩ���`FɦSYG˰��Vu�:�+Gp�m]G����ǡBz9�| ��1,��c�����|$}[n�Y�$.-[�2QQ]7qb�1 n=0#6GK>D�^Ae��PhY�)��Sv��m�3y`ߩ�U.8r�BB�:�q��a�a�i�k���l��Z>���ڮ����|)@��H u_�%^d������,Q]D6+�1�'�<�\ oN�����[�zb�j0@k�:o:s;�J88ME4 +R���V�� ���P���������n�vE+7�bS}��Ai]��v�c[o�}�rn�k՝�5�ͼ��=o�2���40�y1#S�������ч9h�F?��f�Xo�#z(�*'��u1�J�� W/Q)9T�yO�e�A�B�U+$@��LƐ�r,��w����`�Q�:�5E!�m@��Ha�1�obTBb�@e/Эs�lXH#!���-��i1���SWo*�g<'��7�|_���9�T`B��GŃJ�.�U�o +�K�>]+��%���T���GE�0;U�`�m��ڹ�I{�!U�:�\�*�\�[]�ĭԇ~���%�~Fs�Ogu6�Os�{�3DVm���1-H���9Hy�� +����&����>��3�y�y1#O���#��0��t҄N��m� ;Ã��3�Ψ�v�)�O�Laby���^���i�h�xP�=��j��`J�@#�kk:=�.N +�j���z37��T��fa�۞�'��+-�Ņ�����;v�s��S�w�4��� �o����1ݦ�0O7a�e� �RӟL�wFi�w��5������A�(�wS� z8a]�Tvn��MA�v�z���0�� J�]�W�e�U�� �eu#3<�љ��,R�Q�}��m��r�H��en6/��O�N��tg��[e &���i5��2���O���ǵ>�,�y�p��1��e!��0O.A��#!8\����;�n]��&5�����?9��/(��� +endstream +endobj +6054 0 obj +<< +/Type /Page +/Contents 6055 0 R +/Resources 6053 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6043 0 R +/Annots [ 6044 0 R 6045 0 R 6046 0 R 6047 0 R 6048 0 R 6049 0 R 6050 0 R 6051 0 R 6052 0 R ] +>> +endobj +6044 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 515.083 110.119 523.22] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6045 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 503.127 171.594 511.265] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6046 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 491.172 171.594 499.31] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6047 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 479.217 171.594 487.354] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6048 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 172.145 171.594 180.283] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6049 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 160.19 171.594 168.327] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6050 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 148.235 171.594 156.372] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6051 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 136.28 171.594 144.417] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6052 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 124.325 171.594 132.462] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6056 0 obj +<< +/D [6054 0 R /XYZ 69.866 801.979 null] +>> +endobj +6057 0 obj +<< +/D [6054 0 R /XYZ 70.866 771.024 null] +>> +endobj +6011 0 obj +<< +/D [6054 0 R /XYZ 70.866 600.997 null] +>> +endobj +1034 0 obj +<< +/D [6054 0 R /XYZ 70.866 573.802 null] +>> +endobj +6058 0 obj +<< +/D [6054 0 R /XYZ 70.866 442.491 null] +>> +endobj +6015 0 obj +<< +/D [6054 0 R /XYZ 70.866 266.435 null] +>> +endobj +1038 0 obj +<< +/D [6054 0 R /XYZ 70.866 240.045 null] +>> +endobj +6053 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6067 0 obj +<< +/Length 1509 +/Filter /FlateDecode +>> +stream +x�ՙ]��F���+PzcK�d���J�M"%U�n����b��p�ͯ�v���Ƒ�^�`a8�3�9��W���)f��x�{;��j�� S��)�wu�)�|)=P$�w����#,�T��4\<�d����MX����E�����8��ݥ��-u���>�1SsB���ջ���?3�G�>�)��tv� {kx�γ�}�k�2��`Hp�����χN`D����%A�$ ��Ӈ��0S]�|Aȼ��5&�{� +����F��A��S,�H�C6�5���B�*mD|�(�gH��W����*�t�G���,���hk�UfI٥}���H�D�4h���#�ds|TК��Zn�9P�Zã���dł�9�K�\� ��>*`A�0��Y6n5����o��p��6��0pm��;S�Ұ�Q�A��]���O����ӄ �����,�b��Q<Yt�#0���g�p,�T06�Uc,�$<gq��a�N� +�[���x�e��#���nȎ:geSK��]��w��t+������ugA�Z�f��зC��ܗ>c`B1~�g٨9��Dܧ�)����t��aN�N�&5�Ua�U���DN�1Ld[�a"+�:�f� +(���x��ӥ�`�&����<8�����бIZ���o�{nv�覹�����7rr�T"���(٭�)����Ӽ(���d}}F|ػ�39;ˆ�L*�C�5�'c�T�f76��4�Ü�?rF��l��aκ��Б���cv��>"`F�,�N6�Rc��d�܂�B۴�b�:$���$�\���wW����a�9��=@eEUHA�`cĥ�e{�]��1���P�* �<����#�H�:j!��� >��.��9�O=h��tb >�������[��%����Da[�M6���ܦ{͛P.+an���gG�}Q��qs�W�x;]?��[�j)`������R��kP��ؠ�!n�X��C{ؒp%(rO�R��<��:v����j+�~�Qi���Bz'�qMA@�Y5^�}����5���A38��)W��첨�i����@#)_u��#���w����&^�w�|�WG.�V��]�y����<��i����Qo5`��SDA�m��;�ѥ=|�~��ԣ��.Y��)O��V�#��B�!$�3~��(��*��y S��u^�g��]�����ږ�G��dW�>�М�y��a���/��U�J <��my�K@��Ȁ@Ӊ�mo�0q,&���?v�}?h��rkևC�aw��Sp��'�{���H+�r�=�ށ�� ʻ� `�B�sW�?�n8���"���z:��5w���oR ���l�}g��v���9��h���������r��f����R�b���퉘>V��܄�FW�2g��ƘM�S�,�tOYwB^��P�7/s<2/o������<,)�)��4?(��VI�Z��"UJ�om�E7����=SՅ����\g� +�8 +Y� +endstream +endobj +6066 0 obj +<< +/Type /Page +/Contents 6067 0 R +/Resources 6065 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6043 0 R +/Annots [ 6059 0 R 6060 0 R 6061 0 R 6062 0 R ] +>> +endobj +6059 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 346.37 203.198 356.746] +/A << /S /GoTo /D (magnetic__based__test_8c_a94f4b9ae7750825fc3d332e8f1903f75) >> +>> +endobj +6060 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [455.778 230.78 568.404 241.363] +/A << /S /GoTo /D (magnetic__based__position_8h) >> +>> +endobj +6061 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 169.897 297.675 196.436] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6062 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 152.462 346.876 162.377] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +6068 0 obj +<< +/D [6066 0 R /XYZ 69.866 801.979 null] +>> +endobj +6069 0 obj +<< +/D [6066 0 R /XYZ 70.866 771.024 null] +>> +endobj +4158 0 obj +<< +/D [6066 0 R /XYZ 70.866 596.774 null] +>> +endobj +1042 0 obj +<< +/D [6066 0 R /XYZ 70.866 580.092 null] +>> +endobj +6070 0 obj +<< +/D [6066 0 R /XYZ 70.866 388.622 null] +>> +endobj +6071 0 obj +<< +/D [6066 0 R /XYZ 95.773 361.316 null] +>> +endobj +1046 0 obj +<< +/D [6066 0 R /XYZ 70.866 316.997 null] +>> +endobj +4159 0 obj +<< +/D [6066 0 R /XYZ 70.866 143.324 null] +>> +endobj +1050 0 obj +<< +/D [6066 0 R /XYZ 70.866 136.776 null] +>> +endobj +6065 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6100 0 obj +<< +/Length 1424 +/Filter /FlateDecode +>> +stream +x��Y[o�6~�� ��^DJ��]�k�a��$0�q�����$��;�(�Rd�[�ؓd����9߹P>>?���e9#h��8��|v|�]�a_J��o�K�'%r}�%E���(���O��w$,l�O�D�m�z�I֩ʪ���L��>����Q�$��*={�Aa:��"(��O4��o$S�����=A�~�� +_����i��B�`��2�Tb�s��`+ޮ�dL�����e΄�Ǒ��g)��Pg��>},3U���:(՜ZѢRe5֧%/� �Nx��'�p�.c�������x?<�3~~�>������D�X��Am�ӌ��e�R�� ks���u ~ҹM !։��Q~�ʰ�W��G�&��`!���!����d������6�Oq���^g���sP�S#�.t ���{R6�'�9'�h��v��bU�%!,��$yl'�*SŜ+��0t��^� �=��@���l/� 1;h��J�?�[��~ ���6���h�E0���5�&r���xHQ̄~�MTA�y�Pc�ws�X5@+6�|@`��I�wU���C��A��F[�[�P��Y�������br��;��m����ھVEg8R��m4��<�#����v-�_��L� +��)�� +pf�]��2Q)D�t�L�(�>���F���u H��?i�iP�[�O��L�hZ�Be����z��PӺ�]�Vu��Bkt�Q�}gaRGf7J�$!ۻO>�~B��]��� +U�� M���v�?Lh���Kϐ_�\ya?��!,�Oc��k +�6l����L��D�ES�!�]`<?�G��<O&� UM� �wġ��$yPĥ����d��7]��"[WqR�E�h�%2��� YMB���� o&*(��qnS�k�Dޢ2���}��ݷ���.ҫ���%-���0��J��Z4/ +�����nL�� +J� �Z4���ݷK�,��%��Tac� ��K\�%�-�.��_�8W�{h��r�¦��Z�|��� +�oVTm� W���{��t��R�b�,��:9К]��e����a= �!��o�=�����; B���������u �ę�҇<�{��a�����M����ob�啹3�.�:ؐ����g9h(^5X�d;���$y�W��Q���c ���{|����H�,�TV=�"���N4�Ie���9��w��t�n}���/�C�Y��Xx���'.��$f#�l ����<��jpo��-ӻ�2�y�t�����l�g�<4�d<�.Վw�9� 쨻5�L|���O�-f����o�����e�zŞi���$.�bN%Ծ]ݹ�S��v�� �����?7�?5t|���3���p���4��QJ6������G;ɛ�ӏK���y�o�tw +endstream +endobj +6099 0 obj +<< +/Type /Page +/Contents 6100 0 R +/Resources 6098 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6043 0 R +/Annots [ 6063 0 R 6064 0 R 6072 0 R 6073 0 R 6074 0 R 6075 0 R 6076 0 R 6077 0 R 6078 0 R 6079 0 R 6080 0 R 6081 0 R 6082 0 R 6083 0 R 6084 0 R 6085 0 R 6086 0 R 6087 0 R 6088 0 R 6089 0 R 6090 0 R 6091 0 R ] +>> +endobj +6063 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 734.54 203.198 744.916] +/A << /S /GoTo /D (magnetic__based__test_8h_a94f4b9ae7750825fc3d332e8f1903f75) >> +>> +endobj +6064 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [455.778 625.031 568.404 635.614] +/A << /S /GoTo /D (magnetic__based__position_8h) >> +>> +endobj +6072 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 566.853 297.675 593.393] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6073 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 549.683 346.876 559.598] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +6074 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 274.77 164.437 284.227] +/A << /S /GoTo /D (matrix_8c_a0e06b2cfb86340e88be7b1219bef0ce3) >> +>> +endobj +6075 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [249.165 274.77 283.176 284.227] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6076 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 247.175 156.466 256.631] +/A << /S /GoTo /D (matrix_8c_acfd2bbc4a90915e57a4555694e842312) >> +>> +endobj +6077 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.194 247.175 275.205 256.631] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6078 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.654 247.175 361.665 256.631] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6079 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 218.768 184.288 229.036] +/A << /S /GoTo /D (matrix_8c_ad7c9a682a3cc4ca33c030afa8798241a) >> +>> +endobj +6080 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [269.016 219.579 303.027 229.036] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6081 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.414 219.579 406.425 229.036] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6082 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 191.172 222.664 201.44] +/A << /S /GoTo /D (matrix_8c_a48b36217faeda15438f4e07c54d0ef9e) >> +>> +endobj +6083 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [268.012 191.983 302.023 201.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6084 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 163.577 163.675 173.845] +/A << /S /GoTo /D (matrix_8c_ae8d8daa117e9f96a5e29fe6c76c4998c) >> +>> +endobj +6085 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.403 164.388 282.414 173.845] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6086 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.801 164.388 385.811 173.845] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6087 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.245 135.981 185.224 146.249] +/A << /S /GoTo /D (matrix_8c_a56513a88eff05b0683320c532fadf945) >> +>> +endobj +6088 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.111 136.792 308.121 146.249] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6089 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 124.837 525.406 134.294] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6090 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 84.475 162.581 94.743] +/A << /S /GoTo /D (matrix_8c_a32ab12965ec43c2acf65cf9dd510353a) >> +>> +endobj +6091 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [247.309 85.287 281.319 94.743] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6101 0 obj +<< +/D [6099 0 R /XYZ 69.866 801.979 null] +>> +endobj +6102 0 obj +<< +/D [6099 0 R /XYZ 70.866 775.009 null] +>> +endobj +6103 0 obj +<< +/D [6099 0 R /XYZ 95.773 749.487 null] +>> +endobj +1054 0 obj +<< +/D [6099 0 R /XYZ 70.866 705.843 null] +>> +endobj +4160 0 obj +<< +/D [6099 0 R /XYZ 70.866 541.466 null] +>> +endobj +1058 0 obj +<< +/D [6099 0 R /XYZ 70.866 534.408 null] +>> +endobj +6104 0 obj +<< +/D [6099 0 R /XYZ 70.866 314.32 null] +>> +endobj +6098 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6180 0 obj +<< +/Length 1836 +/Filter /FlateDecode +>> +stream +x��[Ks�8��Wp�U1O�1����9����(l+�{�l2��K�9����K�@��Oݭ���CW��)[)_&���G+��9��̟�4�q���+�Pu�Y�tf`W�Y�k���0"ŷo�y�#�$$^��r�U�LW�]�<tL/O~�O���p)z%�u5װ��n�X"e��*H3=Wy�)w�e��m��=R�O����0<�k�m*��5T�dv�E����ٶ��35lun�=�Z�e:~˩��}:�m5|�|����v-�dΆ�O�F�p���i��>m[�.zj|�!ٶɍb8��n����K��f���~ +�o~o�(I�Ih@]M7���k�m�<>ฯ�Q�nT�3� ��[���G��Q�0 �ni:6A��!\���(��H�Q��^�H�+I����A���q�bZEdG�,�k�N�f��U�e�Ѩ�"��2 5�VK��V��;a%�n�6�J����*��o�YE����' ��džۄ����>.>�wG?9�Ӌ]��ĝ����_�ҚOj�t�S1����8��M���2��"�,O�B� +qT����b�,��,�&)�ɐ��l5�S]�>���^� +(M�t��衭C�Ք�.���0�F�љ~�$xµ�Ƥ�x��|$��!�m�;�fD�V� +!�A-�]2m�DuD�B���z(s�86�N����Q��������q>� +l��pKk����� Y��W8�a�f� +������A��C � x;<#:�3���hm�7a���O���[�Y��O"�Xѻ�⪊2"����2�T[��xT}�T�o��8��v�%Q�q��q��? +cr����#Aޫ � \Ό�E�˅ j�+s�67����U�;��y'��x��;93�;+�;+�;�dmH�5��Ѻ�9��bݘ��9��E���(\�\�Mi!7�-�ĺ����Z�@�wm^��aX��GK��kb�=��M��Bp/���m�P����0K�WM�S~��4ö��hk3�&�K-R֚4��MC�F���X$X�;��l����A�sW����p䩗�O��������y�Қ�3$�*E�e���[ٻL�bjA�m�3�����s&�p����8gw�}yz���[�����]<�M����FW�Ӥ��.��䊃����!��Y|��T�O�xs�?�i�_�:��䈵�`�0ʋ��R�b'���;���І.����Au��P�Ҟ� '���#s�� HN�h� �9WX w�k7:Anb��鎰C�;�Ғ͚t�pNU>4Md��Ϲ��8���l ^�m���ԡv�Ŷ����+�J�'��M>�� +��-c�'��ť�}�<�t�cy��5?=���}CI x����TA�j��W��aū�W}ů�c[�jSE��Oɦ�1?IG>���2��&�O.�J9}h�%ח�gפ��4Q�9H�q��OV%� +�[�`[z-�)�JO���'$�źNu�j��c�4�R�7�r�V$��,%��7�': ~�WK��]e�W +�g,"�u������F�+;���x��מd�Iϒk{�1x�N�ˢH���N[�Q遬�'���N +~�$^,Gl˶^r��1��\;��� ���_L���b븧D��7�*����z3U�EV�F�Sg����b���� ��Ʋ�)V�X�;��!�"��������,oA�~�TdH�H���d�m!dP����[0?M�E���c� �>L9z������Xs���5P�+&:q,�WL��9�|!1I��F+�n��ԟ��[�?�` }[]��?#eX� +endstream +endobj +6179 0 obj +<< +/Type /Page +/Contents 6180 0 R +/Resources 6178 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6043 0 R +/Annots [ 6092 0 R 6093 0 R 6094 0 R 6095 0 R 6096 0 R 6097 0 R 6112 0 R 6113 0 R 6114 0 R 6115 0 R 6116 0 R 6117 0 R 6118 0 R 6119 0 R 6120 0 R 6121 0 R 6122 0 R 6123 0 R 6124 0 R 6125 0 R 6126 0 R 6127 0 R 6128 0 R 6129 0 R 6130 0 R 6131 0 R 6132 0 R 6133 0 R 6134 0 R 6135 0 R 6136 0 R 6137 0 R 6138 0 R 6139 0 R 6140 0 R 6141 0 R 6142 0 R 6143 0 R 6144 0 R 6145 0 R 6146 0 R 6147 0 R 6148 0 R 6149 0 R 6150 0 R 6151 0 R 6152 0 R 6153 0 R 6154 0 R 6155 0 R 6156 0 R 6157 0 R 6158 0 R 6159 0 R 6160 0 R 6161 0 R 6162 0 R 6163 0 R 6164 0 R 6165 0 R 6166 0 R 6167 0 R 6168 0 R 6169 0 R 6170 0 R 6171 0 R 6172 0 R 6173 0 R 6174 0 R ] +>> +endobj +6092 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.226 758.177 183.11 768.446] +/A << /S /GoTo /D (matrix_8c_a72073ccd483f9cc438425d3d8ffd3029) >> +>> +endobj +6093 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [266.63 758.989 300.64 768.446] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6094 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 718.076 181.249 728.551] +/A << /S /GoTo /D (matrix_8c_ad386233d68c73656a03641ddf3ecaaf2) >> +>> +endobj +6095 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [265.977 718.887 299.987 728.344] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6096 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.777 689.93 202.329 700.404] +/A << /S /GoTo /D (matrix_8c_a72297a60e572f85929989e813388a9c5) >> +>> +endobj +6097 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.639 690.741 322.65 700.198] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6112 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 649.721 190.501 660.097] +/A << /S /GoTo /D (matrix_8c_a53879e7c4cfbc96725aef9f8234be7dd) >> +>> +endobj +6113 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [275.229 650.64 309.24 660.097] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6114 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 622.494 159.461 631.951] +/A << /S /GoTo /D (matrix_8c_aed6fab1ffa40243eeb08117215082be3) >> +>> +endobj +6115 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.189 622.494 278.199 631.951] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6116 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.089 622.494 346.1 631.951] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6117 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.99 622.494 414.001 631.951] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6118 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 594.348 159.963 603.804] +/A << /S /GoTo /D (matrix_8c_ac7101bbaa3a2698658276a7e21501093) >> +>> +endobj +6119 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.691 594.348 278.701 603.804] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6120 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.591 594.348 346.602 603.804] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6121 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [380.492 594.348 414.503 603.804] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6122 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 565.282 194.357 575.658] +/A << /S /GoTo /D (matrix_8c_aa8acafd4181978f536976f8151e51516) >> +>> +endobj +6123 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [237.222 566.201 271.233 575.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6124 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [384.95 566.201 418.961 575.658] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6125 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.404 538.055 159.277 547.512] +/A << /S /GoTo /D (matrix_8c_a550aa0d5a3212e35ad0af134895fd20a) >> +>> +endobj +6126 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.182 538.055 355.192 547.512] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6127 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [233.541 526.1 267.552 535.557] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6128 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [407.237 526.1 441.247 535.557] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6129 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.322 485.187 180.988 495.455] +/A << /S /GoTo /D (matrix_8c_a3763252ca00e4c8522ae1bfd5ef40f0a) >> +>> +endobj +6130 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [287.261 485.999 321.272 495.455] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6131 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [122.811 474.043 156.822 483.5] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6132 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.861 450.133 331.871 459.59] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6133 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 421.987 178.075 431.444] +/A << /S /GoTo /D (matrix_8c_ad610bcce232c69ca302550f57b1ad9fb) >> +>> +endobj +6134 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.803 421.987 296.813 431.444] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6135 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.263 421.987 383.274 431.444] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6136 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [412.457 421.987 446.467 431.444] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6137 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 393.841 200.992 403.298] +/A << /S /GoTo /D (matrix_8c_a3cf18a2c5c6ad62a4e0a0c00d27e2887) >> +>> +endobj +6138 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [285.72 393.841 319.731 403.298] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6139 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.397 393.841 385.408 403.298] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6140 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [437.858 393.841 471.869 403.298] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6141 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.115 365.695 229.517 375.151] +/A << /S /GoTo /D (matrix_8c_ac735d13efe5b76ecf60ac13ec79da8e3) >> +>> +endobj +6142 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.526 365.695 346.537 375.151] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6143 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [374.814 365.695 408.825 375.151] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6144 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [439.819 365.695 473.83 375.151] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6145 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 353.739 128.787 363.196] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6146 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.023 324.782 250.217 335.05] +/A << /S /GoTo /D (matrix_8c_a06f75ae4924e3f0dfd0b6a25313dc731) >> +>> +endobj +6147 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [376.649 325.593 410.66 335.05] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6148 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.772 325.593 472.782 335.05] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6149 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 313.638 128.787 323.095] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6150 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [392.018 313.638 426.029 323.095] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6151 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.502 273.537 202.916 282.994] +/A << /S /GoTo /D (matrix_8c_a53b0a1829b2085414fb66a9e9bd6c7b7) >> +>> +endobj +6152 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [287.718 273.537 321.729 282.994] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6153 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [415.717 273.537 449.728 282.994] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6154 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 273.537 525.406 282.994] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6155 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.819 233.435 233.857 242.892] +/A << /S /GoTo /D (matrix_8c_acfd7c6f021f4fbcd393fe849c82f34de) >> +>> +endobj +6156 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.529 233.435 317.539 242.892] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6157 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [411.015 233.435 445.026 242.892] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6158 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.669 221.48 160.68 230.937] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6159 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 193.334 207.609 202.997] +/A << /S /GoTo /D (matrix_8c_a0107887a6c40980fa639750be8262f01) >> +>> +endobj +6160 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [292.337 193.334 326.348 202.791] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6161 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [360.238 193.334 394.248 202.791] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6162 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 164.269 220.261 174.645] +/A << /S /GoTo /D (matrix_8c_a49aa70a7d6ad76388ea08acfe43b7374) >> +>> +endobj +6163 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [304.989 165.188 338.999 174.645] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6164 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.555 165.188 399.566 174.645] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6165 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.205 136.122 222.299 146.498] +/A << /S /GoTo /D (matrix_8c_ae808f007791f060590d39c7668501988) >> +>> +endobj +6166 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.464 137.042 350.475 146.498] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6167 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 137.042 525.406 146.498] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6168 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 96.021 199.333 106.397] +/A << /S /GoTo /D (matrix_8c_a18e47742f1653dcc4491badfe2537a0a) >> +>> +endobj +6169 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [284.061 96.94 318.072 106.397] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6170 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.628 96.94 378.639 106.397] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6171 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.416 68.794 188.187 78.251] +/A << /S /GoTo /D (matrix_8c_a51139e6c87b602e5e0ebfbc406fda35d) >> +>> +endobj +6172 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [272.58 68.794 306.59 78.251] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6173 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.252 68.794 400.263 78.251] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6174 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [426.687 68.794 460.698 78.251] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6181 0 obj +<< +/D [6179 0 R /XYZ 69.866 801.979 null] +>> +endobj +6178 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6252 0 obj +<< +/Length 1591 +/Filter /FlateDecode +>> +stream +x��Yo�8���+�(1CR������@`�f��&� ۴�V�]M��~��d]��q���>��9����x~��b,�6�6^�~��_X��!�q,�ra�y�c�>E1.�ƕI�7��|mXPg1:��(�� u=��zV�x��y�ND��/#-�A�!=y�����s�{m���g�ɖ+�����c���}%f�)��<��b�#dseZ�wE�G����2�c���\H��녮V�U��� ���*����F�l�g�5Ɣ�U��1�a��_ +z~A��r'�"�[ƄP��J�kJ�F�jbێu�u�Pd��� [1�7X�<���b��3���e�7����(ɽ ˂�<1�����и>o�7M�����*��� �1�f�:t>1�(?� �� ߵ<�qF]�a�d�3�[�Z+�-�LT���uu�p���j%��NIC�����2D\a~�<�P��� ��w����Y�`� SaAsp�o85ط@@gy��aLLUg˺!�,�f�%한�F>$�դ�+h�ЦYPJ�W�+�,2��زTWDm��G�����xT�*����T��*L`x����1���{%�>�7��#��99��};`g�l�Z��s���[��0]�,ox����D��T����p����PE�Rk�N3�H��!�ψ�M��R���7��I� +�Ԁʋٮo�*��.��E���8��{���Z�wCN�:��nkY1��$��:ܶ��]�Z���AuFjyY1~�I��/� ����d�}�=�dyf�;�s�́�9[��t3���zg�Yj�.�G���Ɓ赪��`������C2U���zVC�v U��� �mD-_�m=�`d�m��٬�H���h�|���~Hn���P��0x� �峡���Ě��#�8a�>袾�O�����k��w��ucd'��`T�,PO������!��m +Shή�e+�f�Gs�٘*�+�$I�P�0S���V��S!<�?� Z�p��<_�1�f��_e�d�JI$rg���5&�X����d�~{���۰�K�-��"���|=�gQ�,�0U�3�G��"]Ors_�� Kqʓ��������bE����k��*6�����3����n}�X�n�\��[�6�e-�42�J�*P���l��j +.W�sy�8�:�> $���ρ��r�3�A�(���� ^<" y��`�MZ�9ص��?,�Ն���* +��;" +�.�'D�_�R�O�{��ݻ��p^�s�������L���������N�mz(mUX�E���D���F0rm_&A'���gLA�a��F��4c�%��(.�j���,�6�=�s�#Ȣ����-�LFJ�[V�PE/�-!2��y���{��� +f�3]��R-gUr$W�f��*��뒬�fs�aDm�S<��m�Q�V~1��,�[8�s�P p�&@�)����a�#�po�l�����F�덐Ʈe�V���Ϣ�/Q�@�b2�i%h�{E뻂h�������3��k-�mO���z�Lx�%d2��)3�ߗG�7?`����R� +endstream +endobj +6251 0 obj +<< +/Type /Page +/Contents 6252 0 R +/Resources 6250 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6043 0 R +/Annots [ 6175 0 R 6176 0 R 6177 0 R 6202 0 R 6203 0 R 6204 0 R 6205 0 R 6206 0 R 6207 0 R 6208 0 R 6209 0 R 6210 0 R 6211 0 R 6212 0 R 6213 0 R 6214 0 R 6215 0 R 6216 0 R 6217 0 R 6218 0 R 6219 0 R 6220 0 R 6221 0 R 6222 0 R 6223 0 R 6224 0 R 6225 0 R 6226 0 R 6227 0 R 6228 0 R 6229 0 R 6230 0 R 6231 0 R 6232 0 R 6233 0 R 6234 0 R 6235 0 R 6236 0 R 6237 0 R 6238 0 R 6239 0 R 6240 0 R 6241 0 R 6242 0 R 6243 0 R 6244 0 R 6245 0 R 6246 0 R ] +>> +endobj +6175 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.661 745.18 211.238 755.556] +/A << /S /GoTo /D (matrix_8c_a3ae0b9f73f82716f3427a523a3412864) >> +>> +endobj +6176 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.414 746.099 336.425 755.556] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6177 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [462.338 746.099 496.349 755.556] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6202 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.262 705.453 231.631 715.829] +/A << /S /GoTo /D (matrix_8c_ac20399f6a8de13b1f392a1e3f7c0fbf4) >> +>> +endobj +6203 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [364.453 706.372 398.464 715.829] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6204 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [189.881 694.417 223.891 703.874] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6205 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 666.645 128.787 676.102] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6206 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 665.726 265.45 676.102] +/A << /S /GoTo /D (matrix_8c_aef8d1508ad101227ab255a714ab22b94) >> +>> +endobj +6207 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.178 666.645 384.189 676.102] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6208 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 638.873 128.787 648.33] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6209 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 637.954 284.889 648.33] +/A << /S /GoTo /D (matrix_8c_a0a3d3cfa20ad3e75ad783af457343672) >> +>> +endobj +6210 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.617 638.873 403.628 648.33] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6211 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 611.101 128.787 620.558] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6212 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.445 610.182 288.4 620.558] +/A << /S /GoTo /D (matrix_8c_ad2cecc467ac6480ef0f3423f962b39bc) >> +>> +endobj +6213 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [428.841 611.101 462.852 620.558] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6214 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 571.374 128.787 580.831] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6215 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.518 570.455 305.912 580.831] +/A << /S /GoTo /D (matrix_8c_a8d77cfae4f1da83acac929c1ce13d252) >> +>> +endobj +6216 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [435.754 571.374 469.764 580.831] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6217 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 531.647 128.787 541.104] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6218 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [130.988 530.728 353.469 541.104] +/A << /S /GoTo /D (matrix_8c_a5f6a1948ec005cff4985559821c4943f) >> +>> +endobj +6219 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 531.647 525.406 541.104] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6220 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 491.108 189.31 501.376] +/A << /S /GoTo /D (matrix_8c_a875d6c55a16ee9f8bf523b8c1c82bc6f) >> +>> +endobj +6221 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [232.175 491.92 266.185 501.376] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6222 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.798 463.336 211.411 473.604] +/A << /S /GoTo /D (matrix_8c_a3570c016691507c003dd7a54cb37e7e2) >> +>> +endobj +6223 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [258.529 464.148 292.539 473.604] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6224 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 423.501 212.469 433.877] +/A << /S /GoTo /D (matrix_8c_aec03481d950677386122e3c8ba6a5cd0) >> +>> +endobj +6225 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.197 424.42 331.208 433.877] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6226 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 395.729 214.056 406.312] +/A << /S /GoTo /D (matrix_8c_aaf85a32b8562c91d2d1889819580375e) >> +>> +endobj +6227 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [298.784 396.649 332.794 406.105] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6228 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 367.958 221.22 378.333] +/A << /S /GoTo /D (matrix_8c_ab166871472924745f70e2bb6e17498c8) >> +>> +endobj +6229 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.948 368.877 339.958 378.333] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6230 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.533 368.877 402.544 378.333] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6231 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 340.186 219.579 350.562] +/A << /S /GoTo /D (matrix_8c_ae8e87640fa1a2d259ee4dc98c955cb48) >> +>> +endobj +6232 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [304.307 341.105 338.318 350.562] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6233 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.404 341.105 399.415 350.562] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6234 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 312.414 204.955 322.79] +/A << /S /GoTo /D (matrix_8c_abbaf8f39b2b7bb4bd2987f99674c1213) >> +>> +endobj +6235 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [289.683 313.333 323.694 322.79] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6236 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.775 313.333 385.786 322.79] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6237 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 284.642 203.314 295.018] +/A << /S /GoTo /D (matrix_8c_adfd93dda9be9b2e8df5805af7fee7845) >> +>> +endobj +6238 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.042 285.561 322.053 295.018] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6239 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.134 285.561 384.145 295.018] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6240 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 257.789 128.787 267.246] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6241 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 257.789 178.747 267.246] +/A << /S /GoTo /D (matrix_8c_a722a0230185fd66f0cecbeae7d50ce1a) >> +>> +endobj +6242 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [263.475 257.789 297.485 267.246] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6243 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 230.017 164.069 239.474] +/A << /S /GoTo /D (matrix_8c_a90b6eafa665d34d7330581c32564d632) >> +>> +endobj +6244 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.797 230.017 282.808 239.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6245 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [408.027 230.017 442.038 239.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6246 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6253 0 obj +<< +/D [6251 0 R /XYZ 69.866 801.979 null] +>> +endobj +1062 0 obj +<< +/D [6251 0 R /XYZ 70.866 200.326 null] +>> +endobj +6250 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R /F51 3827 0 R /F55 3831 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6275 0 obj +<< +/Length 1436 +/Filter /FlateDecode +>> +stream +xڽ��r�8��<����Q�.{�L&��UO&�t�r��Pv�$��s�%���E�g�����Gҧc鐯O�߉��O����0�}�|�g�P(%�^=�Q ��B�$�O0�d:�*�Q�[�E��~��ˣ��uJ���dO_��y�H��$,NO�|��;!p{��(��[l'�/�[µoF,��Ý[��gp�����ՈBT"��H�p��Ngc����"[�I�]�ȷq�E�S�Y�`o� +��I!����Gˢ��X`�#���B��D�0��u���r:�U���8t!��+��؛��u���iE�� +e�{���L�㤘'���Vz&}Lt3-Qޙg����<o_������ᑦ�#L�sK�o�|?�ޖa�#��^4�`:#J"��a6����n��L���}���O�����GApz�����x?�Ot ku=�n +d��'n�fz����$��8��*��,�]��7Yy��M�5�Q���_����a�H}:S�~��>�v�6��ݔ_8[�D"�Z�I|JWW�(2��f���M�%�� +�7�!YQ +J)�^'�DM�Bps��� p�[�'4�qg��� J!A�<wi�G QR��oƻ�Ya8l l؆ل��3�U�7Q��1��1%l<���`�!C��n�-���L�˰9zZa�y.�M�M~+k�co�RHx���m���M DB��S�tѦ�Q=hs���V5�y����b>[�s��N_5��y7����>��6��68�&&��0��( ��-�kք�tjR �X��,��UMo����j����E�,��68�&% !G�( M�0d�5H�����Yin�v�*��-K��"��V���e���It���cnp�M^@��Kt37\��gF֡�lQ��"�'�=`���f��c��c'�#���-�;�ҡ(1S����b�WC`���� ��_$(iS����<K��uT�z�b��Z�VZ]�&�VAq�+�R)�X��S3�ۖ�k��f�����.�m��� �uI$PHfUX�U�Ⱦ<7Y�hr�D��[�����>K"����\�8d���$ tcp9�(_qf*c� +�D"ah)mYLQ������W$��Lm�E�Z����Y(�/E��u�h{����.C�$$�������@IH���"�#E���}es��V5�34Ĺ�`'�C���'b��k�*d���cf���Rv!�1�{$07K;^U��+�L$-p�E`������&5���S*`��!���OHܒ&E A��e7��44����,X���"��n�v���a4��y��zs�)���ͣ����IHȀ�#p��Ž���ul�ֱ��6U,��c���� �" �v�Iӊ�8�wQfۙޥ����ת�^�qr�N�j +endstream +endobj +6274 0 obj +<< +/Type /Page +/Contents 6275 0 R +/Resources 6273 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6279 0 R +/Annots [ 6247 0 R 6248 0 R 6249 0 R 6271 0 R 6272 0 R ] +>> +endobj +6247 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 627.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6248 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 607.426 171.594 615.564] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6249 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 595.471 171.594 603.608] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6271 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 255.845 171.594 263.983] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6272 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 231.935 171.594 240.072] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6276 0 obj +<< +/D [6274 0 R /XYZ 69.866 801.979 null] +>> +endobj +1066 0 obj +<< +/D [6274 0 R /XYZ 70.866 771.024 null] +>> +endobj +6187 0 obj +<< +/D [6274 0 R /XYZ 70.866 741.162 null] +>> +endobj +1070 0 obj +<< +/D [6274 0 R /XYZ 70.866 713.966 null] +>> +endobj +6277 0 obj +<< +/D [6274 0 R /XYZ 70.866 534.032 null] +>> +endobj +6188 0 obj +<< +/D [6274 0 R /XYZ 70.866 365.67 null] +>> +endobj +1074 0 obj +<< +/D [6274 0 R /XYZ 70.866 338.475 null] +>> +endobj +6278 0 obj +<< +/D [6274 0 R /XYZ 70.866 195.209 null] +>> +endobj +6273 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6286 0 obj +<< +/Length 1436 +/Filter /FlateDecode +>> +stream +x��Ks�8���q�X�7�u7;��ivַL�"�8l�p0���o��c9���˒�[�������_?���/����u��c����9�BZJf��,#%��h�$����&/�w�6�%,~�F�rEeߤ�!����41]�/=�E�&�B�rˏ���@��ފ���C�3�Y�,�n�IuO�� \��+xZ2lY�����qI��Q~Ow�!C��%v�<�֍����e��7>�[��K6W s�4��L���LN�H�:�q�(b��۱�g��p���jS�%!,i��#H�o���4�@eÆ_�b�Ki⎰V� ]<�I�ܼ��i�S� +�^��[O���$�IaqQґm+L~�.�qR�2�L�����a��(F����C�T$EDc�Lz���IX��U��*�Y���%��/�s�+�(0�b_Q�t�\���i��F�t`�fF�Qd�� �����%嶗yq�ْ{��H�C�ӡH��=��;��m��*,!1����a ��L����lPi���,qD /3��=;�2=եl.��v�e�i��S8H@�D�-�dHj����K"췒�dI�}��P:��Na��,U�`|�]4��j^�lTxqrž/����xMsُW�i2��4��x5}�it����kt�]2�&|]�lTt1 +��ũh..��`!uu���|��i>��jzm��=<�����xӢ���.��&-O��6:�.%`B:�@m�l�˕FQe�n���$, +�����g&U��loU3"�ɡ_d�(+%�i͵<�\{�s����_�OC/q�A�ޭ�4�'�sz��i� 27��Is#���&�LU}U��@��DB�TQ�q ��2��n��H(Z�Y��y�w�tkN�Yx;Q ���%�^ݨ��ݺ�K�W�<�v����%s�a%H��&��x7A����L�s�G���_}|��}�Mr����L��x�dNN��Ҹ8��xaG�}A�x��'���`!;s�_�F0o*&k#*hq�ٲ��Ξ��l����.Q�7G�?\^Pۛ����D���E�i�6r4�\N�ٮ!�����>'k�6�~ 6��vO���p p���G�S���ͲQ�;��/!�:p�\C�4���5�&�M��O^��T�4����BC)�h&x�lT�aU�(�%�����Ms�^�i}�_/�j,�Eԏe3�aQ�O����y�F��eLHJ�q7�F���R��#Z#R�>T�}����z,�F�71�^�Z! �g�S�������v�1&��,�&�8�����F|�F|�x}M����E�ˣ��N㵀�Z������ڑ����>S7I <O��Ө��>�[�|��g�vc5�B^U�<���>D^�p)k�AW����?=��d%���t�#!8<��U��Ad^��?�Mj���ck�=,�i���2�� +endstream +endobj +6285 0 obj +<< +/Type /Page +/Contents 6286 0 R +/Resources 6284 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6279 0 R +/Annots [ 6280 0 R 6281 0 R 6282 0 R ] +>> +endobj +6280 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 626.415 171.594 634.553] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6281 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 318.297 171.594 326.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6282 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 306.341 171.594 314.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6287 0 obj +<< +/D [6285 0 R /XYZ 69.866 801.979 null] +>> +endobj +6105 0 obj +<< +/D [6285 0 R /XYZ 70.866 748.196 null] +>> +endobj +1078 0 obj +<< +/D [6285 0 R /XYZ 70.866 721 null] +>> +endobj +6288 0 obj +<< +/D [6285 0 R /XYZ 70.866 591.5 null] +>> +endobj +6109 0 obj +<< +/D [6285 0 R /XYZ 70.866 440.077 null] +>> +endobj +1082 0 obj +<< +/D [6285 0 R /XYZ 70.866 412.881 null] +>> +endobj +6289 0 obj +<< +/D [6285 0 R /XYZ 70.866 269.723 null] +>> +endobj +6184 0 obj +<< +/D [6285 0 R /XYZ 70.866 82.821 null] +>> +endobj +6284 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6295 0 obj +<< +/Length 1505 +/Filter /FlateDecode +>> +stream +x��Mo�8���:���巤k�M�ݬoI`86� +�GV�����H�\Jfd[r�X��wfȇCR�O˻o�{.g�{��w;���}�a��HJ�-w^�Q(�DI�-����`��§A8O�U����v'J_ݩ݂�*T�Q���W���0+Z������������#[a�BʽM:���~��aĢ�{mZ� ��:����}��� � �Q$>��(V3� b��zY�W��"Ϊ,0�5.��P`R�c�g��k�y�]���.Q��Qҿ�zM��W<�O���{h�*m+��-�B*���?����V�)f��LF�lF��vv�oe$�x��q�0�4Oܧ��٣3�|T,eU�y����l{��R��|m9��M�|�����vy�Vۼ���zW��Vv���E���4���|����Oyݺi�%._�����O����&�XP1_'{U����נ�?�5��A�<~�7U�R�Ue�CP3���g��{lw�lS�y����$�z-{f��*̭\nU���4�T��K�6q�K�Ƚ6�8I�wO����w���'��*ʞV�A���=���/�&{k(�I!�.�+�T��C�� ��OB�9���n +0�+������Y���{nC]g�d=���ƙa���낾�u�e�b�| ������|�.�i3���ˎ�k��!�G�%��@�Bye�zQ��A4��!V"�D�N�$��K���$d�R��IirC�o&��4iRڣ@0���c4u�[fc0���jm&g��@��3=-4ѱ���l��ǔH�`�6 �)�3��Iɯ��`b�38g�͙m4�l�M7g�M�3���캘]��1# �a�'q6IÀ�"�`�>J�u4�a�bg�6Τ4ۨ5x����c�9��8o���b��4�`��Aw�����?'A7I�@G����P?����an�E7r���c�If=������ �ۏ1�ko�?��� +lX�4��4�Q��$✍�(�nm���~|�p��s������cbj%>q������ƈ��p:u�6ۋ�ԍ��ζie>��}������È����]��:, +P��I�M�0��1LǏ�!�N<�Q��ulZ/��e��]���w��ǰ��ӎ��4p2B��=+�s[t +�����0��(�n�,�OjW�4�|�e�M�e���6~��ދ˧ë����ڶ����ݪM�����3D饱 +��i�N�0� +��`��TD(l_�r:ΤT�h�|���l�)�m_�&�I�^�1^��PL;���8��V�2Ծ���0�YlUW�F(9L(�CP?�8^<le"Q��s�3��n���WqRZU�][3>���=��C�ʪ#֫p�4������|��}��Mk������j��];^5�����GUV�fre�\L.��WV�g�ﲪ��}��,��*�AE���+���������*����oU��u���_�z|�~>� N=}��,�� +endstream +endobj +6294 0 obj +<< +/Type /Page +/Contents 6295 0 R +/Resources 6293 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6279 0 R +/Annots [ 6283 0 R 6290 0 R 6291 0 R 6292 0 R ] +>> +endobj +6283 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6290 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [278.922 518.981 348.806 529.249] +/A << /S /GoTo /D (matrix_8c_a72073ccd483f9cc438425d3d8ffd3029) >> +>> +endobj +6291 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 179.722 171.594 187.859] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6292 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [278.922 83.609 328.014 93.877] +/A << /S /GoTo /D (matrix_8c_a32ab12965ec43c2acf65cf9dd510353a) >> +>> +endobj +6296 0 obj +<< +/D [6294 0 R /XYZ 69.866 801.979 null] +>> +endobj +1086 0 obj +<< +/D [6294 0 R /XYZ 70.866 771.024 null] +>> +endobj +6297 0 obj +<< +/D [6294 0 R /XYZ 70.866 497.952 null] +>> +endobj +6183 0 obj +<< +/D [6294 0 R /XYZ 70.866 284.783 null] +>> +endobj +1090 0 obj +<< +/D [6294 0 R /XYZ 70.866 258.454 null] +>> +endobj +6293 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6302 0 obj +<< +/Length 1206 +/Filter /FlateDecode +>> +stream +xڭX�r�8��+x$�,;�k*cW����X�ˬ��;����E&%X�C*$��=4����O�l�v6vg����; +R2g���))?�Hg�v�]B�����0xǸ���?ĉ���W��|U�:��*�3�������/�Cv�J!E��Jg�/�Yû �yo�L.��s��3�{'#*̣i:тXDK��T��(w�"Ju���l���V�@Ϡ=��1��;�7� K��#����DvmJ�@J�4)QQ +H�0�MFb��Lt*���>4��N� �TN`pJ��OƜE�ᾷ��<��:]� ���k�Vo�{Ө�W�!�@�b9���Sth �sⴽ����E%�J��^�Qv���Q��5$͎�k��^C�U��iv[w]����!`\宫0:w +��P.N����q���Q��5$�3�J�/}{�w���}7T����V�{F��7..3��B �8�i�]�њN>�q"����� 9B�a���v� I���c�����k�M`��P��R_�u���r��e�g��������9���(��s1����@v���:�ά�4��U*����DJ�YG��+T�>��m����>mB�ʢzh/E�:qڢ�c&��2�M�8�����4��S^���m�8�F)���X��U�HP0���-�S[*t�������?�����1�� ��B��ң���>o���X�a�˪Ǻ����[^��-O������0@��QD٦N�"��T�:&��"y������������;�ܬ[�y m��`ו�i@���ͷU���5'�}����2�� ���� `�y�&/\ƛ�"ٟ]�pe�<?�����\�%T ��[�8A���1n�R7槫�0Z�@��D�!H�l����mdJv���������nŦ�wO�mu���c�I���`i�4��p��r �+E��^���2r�<KuQ��]����!�]*���Õ���ϻ�&�fw���Jd��%��1>)M��&����^�qu�Z:yY\E�f����:W�/q��2yМ!q�e��Y��Bz�Z��-s�|����?�����������%�U���*DI��J�n݆�4Xp�~�i��I��/�*/����r~p,:v(|����]�Dԗ�q��H-�R��t}n�����F5K�ǟ�De���fg +endstream +endobj +6301 0 obj +<< +/Type /Page +/Contents 6302 0 R +/Resources 6300 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6279 0 R +/Annots [ 6298 0 R 6299 0 R ] +>> +endobj +6298 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 467.595 110.119 475.732] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6299 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 431.729 171.594 439.867] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6303 0 obj +<< +/D [6301 0 R /XYZ 69.866 801.979 null] +>> +endobj +6304 0 obj +<< +/D [6301 0 R /XYZ 70.866 771.024 null] +>> +endobj +6260 0 obj +<< +/D [6301 0 R /XYZ 70.866 553.51 null] +>> +endobj +1094 0 obj +<< +/D [6301 0 R /XYZ 70.866 526.314 null] +>> +endobj +6300 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6311 0 obj +<< +/Length 1404 +/Filter /FlateDecode +>> +stream +xڭ��n�8��~ +m��p_����SO�7w`8��`I[�N���$*���B�Ȳ���ŏd����w�^8x p��c���g*��Hɂ�K�0�R�P$I�9�%���՚*����9zG���>:����eE�2<��!\=m��i$���e�?7������iʃC��>���}0bF���q�C�3�| +�^���?FT��� ��H�4�����|�?��0�+B��³ʤ�C�g���m��3)�gZ��ʈ��@D��#��4P�!�^$J�SC�B�OEY�?,����};d�B�pOY�&+��4e�4۟Jd�銈��%�����D��g�?��5t���n�%ӽ�Bd��a�fٰ�Q�0����Q�Ƙ�y)�A�k�%=�yɺA���@;��k�ܔ��Nw�im�q6ˆ�����6������I�I��֦nO-�Oճ�??o��ֽyK�$�0��fa�E�I�M�����&���e�dN�0�7��0A��@�O�M\]�a;��|N��n����.���(�&���D�4�w�γaY�0 y�sTB�L��������&�b#8�wr����l��]D����y6,f�@���̀��G��QO�Yg~�n�j�QrW/�{(�vcV��?2�]QecI��yE�~��c���:���(����L�=��*��?_��!w���(iu�K"/�q��c��l�(z��,��@&�K7�`\�[!�mL��?\a�f�sҼ��-�(E +9������j����4��YԬ"�� +�V�q�4+u��?0�I��}V>OQbEfM���ɑP̮�� +�K�2�K�K��.k�rt:������zw��C����)��.�����~!�(Ҡ�1��R���uf;��.���S�dWƮ��v~��=>�ۡB+��բ�Y��`��5�O�WE�\��$�+�\�W�zti���К#L���G���M��m/�ɗqq�8�Ғ�af>P���O���9��k,E�R&(-�E;Y��0h-�5a� +��a6k�n-�z.�ު�]~�Ie���Z{Y�����ל�!^=-�&L��7�y6�t�����1��5)���f�����tR#@5D��2���yj6�ȉ�D �[^mR�a=jg;hP#`u�Yxͳa��bEo���@�������h҃������ /4?��k�0!`̢k� K�ԈS}�+M�"b\~�n�j�/4-u~θ��9�_���l�o]B��fe�lX�d(fx;&�7KT��k3?I7fuс�%˕������k7x�G�do�� if���mL����k�Y�1�ea�*��b�t|,�ZC%H��R��ـ��S�3�Ӑ�*�k����uJ�������Wj�m���=��p�� +endstream +endobj +6310 0 obj +<< +/Type /Page +/Contents 6311 0 R +/Resources 6309 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6279 0 R +/Annots [ 6305 0 R 6306 0 R ] +>> +endobj +6305 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 409.795 110.119 417.932] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6306 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 373.93 171.594 382.067] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6312 0 obj +<< +/D [6310 0 R /XYZ 69.866 801.979 null] +>> +endobj +6313 0 obj +<< +/D [6310 0 R /XYZ 70.866 771.024 null] +>> +endobj +6257 0 obj +<< +/D [6310 0 R /XYZ 70.866 495.71 null] +>> +endobj +1098 0 obj +<< +/D [6310 0 R /XYZ 70.866 468.514 null] +>> +endobj +6314 0 obj +<< +/D [6310 0 R /XYZ 70.866 327.059 null] +>> +endobj +6259 0 obj +<< +/D [6310 0 R /XYZ 70.866 82.821 null] +>> +endobj +6309 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6321 0 obj +<< +/Length 1505 +/Filter /FlateDecode +>> +stream +x�ŚMo�8���:�@��[�u�M���]�RCp%+��ZYN��#�r$��e� +�15�|8Ù�f���^��xػ_��^�ܱ�S(��y�g/�HI�!E�x�'��'�/7�����b��d/W4P�m�;��I��C��Fb��M*����x�`� ����Pyo�ȃ�C�3����{��7%A��'F� ���`��öȓ�����E�}<F��{��C����m�c��v��tH`���f�]�_��߃Bx +LJ��b)���+���o�a%��}����҉j�af<ފ +�ENIZ(�qs҆7L!*�zkJ��=���ʌ�V�t��q�c��х$g��C�|㡚Ϧz���kN�ʳ�(=]�`[K��ո�A�����a�a��Rފr88���Ї��ǜ>X���A��0@���%�v2�g3H?j��#�]���s���O��r?�8 ?yGza"�F�� +ҘJ�]�������C\������3$���3(��B�!�&��"<�!���F3��B�`�CX +*˥PQ +�"�`�XB%%&���l.>��TK�:HYA����&ۢ�����e����5Ey�|��Tc��m8l_��r��!�H�����vgsLh΄�-cr>g"����0gn�V�Z�U���37Y+g-�g��v%�&{�a���`�30�e�`0D o �#�b���2�#8s����m��<��7��?7o��5����ՠ���.(�r�O#n��]^���2�,9WȠB� 9"��)ځkj�������v�,��l�K�����v9T�J��LԸ�E�F�!�~0������fU?b�$n��B||��@�Tw����oa���&��]�hrH�-���QB�J~��S��k��ⷵ�"Π�S���|�2�jup�I�~T�TiZ�q(�uo��4�Z:ڔ)<�IjD�m��%���6�l�.�K��8��]|�Hŭ���`B]�|��磧�ƻfw�V�Y��,yZ^6n>��i�vT��s���3��1}��?�ogT��&Ô,�IL�6O ��&�綍��rqV�z,Թ�B���ߟsF�/�γ�7 E�v�2���O�$�؍{7�P�gn��� ��jiZ�5$xȱn��t �A���5�*���p5���L�,���0h)�X\�-%�5:�-7I;\MѴ.7M;]M�+6S�pM��K��XΣk� C��������#�r������O1ܹyc��M?e$h���B&�d�@�eÀ���M�#� �@���lhn�vК�ŭ�M�VS}0���S|,�N�� e�=�&2��Y6ep�2�F8��5�E��٩��M�NYC�����j��bnN�ak8��>���~m�]�&X��aڦ��.YmK��Mi>:��@`�e�>�S�����m�D�e�ئ�H7`�QR��s�R@�5 �蔿|���E"H^���#!8<����*�8�6�o�rz�M'$�t�_�s� +endstream +endobj +6320 0 obj +<< +/Type /Page +/Contents 6321 0 R +/Resources 6319 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6279 0 R +/Annots [ 6307 0 R 6308 0 R 6315 0 R 6316 0 R ] +>> +endobj +6307 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 735.3] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6308 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6315 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 284.918 171.594 293.056] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6316 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 261.008 171.594 269.145] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6322 0 obj +<< +/D [6320 0 R /XYZ 69.866 801.979 null] +>> +endobj +1102 0 obj +<< +/D [6320 0 R /XYZ 70.866 771.024 null] +>> +endobj +6323 0 obj +<< +/D [6320 0 R /XYZ 70.866 632.471 null] +>> +endobj +6254 0 obj +<< +/D [6320 0 R /XYZ 70.866 406.699 null] +>> +endobj +1106 0 obj +<< +/D [6320 0 R /XYZ 70.866 379.503 null] +>> +endobj +6324 0 obj +<< +/D [6320 0 R /XYZ 70.866 226.093 null] +>> +endobj +6200 0 obj +<< +/D [6320 0 R /XYZ 70.866 82.821 null] +>> +endobj +6319 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6330 0 obj +<< +/Length 1403 +/Filter /FlateDecode +>> +stream +x�՚�n�8��~ +-m�fx�l;�誓f��j���[��ʥ��s(Q�T1�.�������y_��~!��8��6�������ꚩH##%��~D +#-e�E�Dw��~N0�d��J��q~H^Ѻ��Nv�����X<�������sęFBkp)5�p�����=#�)���Kk�)������6���#ft�R<���`Hp���z�/ ���`�}3V[w;��j��.�� +����?�½�"R�(L�6��� -x)��%��R��J�B����p%�%!�Y�����^契�5#�;*T�w��X���RQSL�Y9 +���ۛY���K��g3S�=ǻ'��ҿ:Ѳx�~�p�>�PK�թO�Ɯ�OKb0�DKʁRO�����8�,�wo�����%���u� cj7��*殧�*� +��Z�.EO�Zd@#e�0Z��eA�<>�{��Â����[��'�I��c�QI���4�.��&���A��K���%�K��@oPY&C���@Ư�$m��C�k)�@ p@�a�x��2c=8R�P���!sȼ��.�=���}���揶�&j�+2��`�h��Kړ�Q�%���җ�CR"�<^#-�x�M����ƫ��vO���t ��E�� ���ix�� �δ�C7g���=��$��������(� ^A�0O�e���ަ��m��54�6�)�itM��tI�(1g��;�����ii��=���� SV7>��|������ځ߸����C������gy��_��68�6; ��4�K�;����U� U��'�v�i�'�_\�㮻$��&o�g��.�D��n,��n{]:�j�U����j����>��M��cU�Uy�z鬫���x�˷�i���l���sn�y��2�%XWާ +���PWiQ"�\�R���jU�?�Uy��1ؠP�ڷA;�n�����k�c���Ja���l)�8�D7f�W�'���[�y!>[.�6�J�J7��c7M����� ��u�)����JXt�&�1����)|�F���Zؽ�Y�P� ���[ԑ���Cô����4</Y\sl��lD�m4@+: �I/&���%�����H�0^uӎ�z�g�����]�cm�R�itM��tQ�8�((U�2ѯ�i&�n<��R�zH��OO�צ$h��y�&ix�B����PB�P}��q�a���>���q�a������h�w�ڍ��`� ��L�j�F�1��Q�d�8�T�i�a���}�F:�j8w'�W��:K�8I�t;�,�bpx[Z�8 l���#4�=�!\#!ŀ�M�dF�������;��<x�,҄r��T?8����֧\ )��ÍM�!�C�~�\K^���������U +endstream +endobj +6329 0 obj +<< +/Type /Page +/Contents 6330 0 R +/Resources 6328 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6334 0 R +/Annots [ 6317 0 R 6318 0 R 6325 0 R 6326 0 R ] +>> +endobj +6317 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6318 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6325 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 341.781 171.594 349.918] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6326 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 317.871 171.594 326.008] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6331 0 obj +<< +/D [6329 0 R /XYZ 69.866 801.979 null] +>> +endobj +1110 0 obj +<< +/D [6329 0 R /XYZ 70.866 771.024 null] +>> +endobj +6332 0 obj +<< +/D [6329 0 R /XYZ 70.866 642.615 null] +>> +endobj +6199 0 obj +<< +/D [6329 0 R /XYZ 70.866 463.561 null] +>> +endobj +1114 0 obj +<< +/D [6329 0 R /XYZ 70.866 436.366 null] +>> +endobj +6333 0 obj +<< +/D [6329 0 R /XYZ 70.866 281.144 null] +>> +endobj +6264 0 obj +<< +/D [6329 0 R /XYZ 70.866 82.821 null] +>> +endobj +6328 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6341 0 obj +<< +/Length 1308 +/Filter /FlateDecode +>> +stream +x��Ms�8���:B�Xѷ�qw�I��f��eR�c�,Uf1df��6�p�l��=�� �o��H�.߬�R��_��_��Z��q���h��4�F)��E�-z�(S���3�p�/���w��d�x�٦L��Xq�V�.�\-�]Px� z�4&�&Y<>��{�(�8<� !9����;����T�c����_RB����<��V��_r�/{�,O�I��V���I�44��8AKN����n���jHԜ��S��! -ђRHe%�8-LXX��5���L�:�ɧ�p���(�)�Ņ����M����7��I��8��v�=B����ӧ��p��9��~4�vIy�Z2x��'�¢V�㘻��`�4.��+��Gz�������^��@lҋb;o5��rHm��0�9s�_}&�u�N�"�}J�}+%}�+H�Ɲj��Gܯ�Q- ��X�`H��I��IVL[��`�ʆ�2�X�I�Ј{:%�2ɦZ��P��,Z�I�'g@������ªoy���p������s��;b١�,;� fB�]4@�K���l��Y/� W�xQ����5Ͳ��i:��4�~����lW&�u�k�8��Yt�Ұt�@c �B���0H?O�D�~������H8��c�&��O[3��� 5^E6 ���uШ$��Y�&h��u����nq)E���6sQQ�i����Z�g�pU��D�CdD��A�����J7���7BX�n����vq��a�ݤze�3��CZ��C��s(��(�D[��sUE���E�/�ۺ�U������r]|P��*�{w���:}��nwI��m�j��J�*����t��(�/uv +�^g�s5'��I_� W�l� 컦E�Y�4O�:�(~�a�E�>j�=\u�JG90S���Ԗ�Cs�'����:�e��9OÞ���p���)�3�R�L�D����%QmӾ�`c�uM�l���%m{^��0ZD5!�. A�%��5K���C`��R�鍥��5Ͳ��i:��4�~����l)j�F��%$���蚥���^�k�J1��tM�짫i�傖��mZ��5c��R�x���H���5K���=�5�b�S`�����_�<��j��")�ٴX�9k�2�Yo9w!|�#����x�n�Usa.o �c�DVL�t��ng��E�n�>� �mOٖ7�5�5�'Ez��Q������β��pm�ghu��e9�<���Y��9Ka��8�C�z�p�J��7�4��E߀o�*?�V9= �? 8B� +endstream +endobj +6340 0 obj +<< +/Type /Page +/Contents 6341 0 R +/Resources 6339 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6334 0 R +/Annots [ 6327 0 R 6335 0 R 6336 0 R ] +>> +endobj +6327 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6335 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 336.953 171.594 345.091] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6336 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 324.998 171.594 333.136] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6342 0 obj +<< +/D [6340 0 R /XYZ 69.866 801.979 null] +>> +endobj +1118 0 obj +<< +/D [6340 0 R /XYZ 70.866 771.024 null] +>> +endobj +6343 0 obj +<< +/D [6340 0 R /XYZ 70.866 656.382 null] +>> +endobj +6266 0 obj +<< +/D [6340 0 R /XYZ 70.866 458.734 null] +>> +endobj +1122 0 obj +<< +/D [6340 0 R /XYZ 70.866 431.538 null] +>> +endobj +6344 0 obj +<< +/D [6340 0 R /XYZ 70.866 288.272 null] +>> +endobj +6265 0 obj +<< +/D [6340 0 R /XYZ 70.866 82.821 null] +>> +endobj +6339 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6351 0 obj +<< +/Length 1332 +/Filter /FlateDecode +>> +stream +x�͙�n�8��~ +.m�fx'��L��]u2�* �Q2,9u�&}�9�D�Y3�@�.�?��H�߹X]���iF�"�j��jvq�528R���=����V���͜,�bɴ�gI���v�٦��uz��d���|�.nW_��Kc@��`ڞ�}^�~�(�%��j� h��nn ��k_�<2蹼3CBr,��[����+�I�0�T.���_#~�_�io� �_���1�+I��H�&}q)%�8҄Z���b#��k��[,U-j��]�!ˡ�Ԅ�hI)��rQ��0q��"V��qdRW�}d�����rXļ�8s�?��\_����W.|W�#9�1�Q%��]���M~�W�G��lk��R +L��x�?�j�-���AK&�[�؟���P�On>���d1 k�$L�'2��I��8R9�����m���/ؽ'T���=��Dky��cʙK�낉y�O���J�O�� +MD/A�;&"+�_'�c�I+a�P��wCq��!�u�J�h0eG�p�D��C�<��%�]�0RR�@�$�)�4�Ě��� ),&�DM��n�<;�r�0�i��#D[�5��6�#�m�!�"> �I1^220V�xX��8��H�0^u��}�Fj��k�w�C����ṶȰ!($?��i1<]����ī�F#� ��}�t����-�K#a�������������mrw���-4������@����bx�T�%�'gR$�)���>÷[�C���8�0uU�=�C8�K��z.����� θ ��\L�ox���U�������S���o���oI��M�GJG���G��a\�Y����v +�}��}>����4�W��CՃߵo,��i ��-��F��(~�Y�� �*�lEø��Qs�Y�;�u뚼����W�g����U?�g^�ؗ%�'KM�:�V5��M4&�UZU����cC}�����Lq�|�ceV}��kѲ=�6�/|�b�]�)����)�>��Sn� ͐_U�V3R���jh�"ٔ<�]�9aĈ����\�ihM����:[�Ay��I��p���U�<�[���k�i3=��I1<]\`m����ƒ�����U���%T���!L[=�n����ɵр�&��5)�Nj�)�f2:�W��r7:R3�W]�l�\�=�q�Q��Ӎ��~n(��_����������zXj�(�{X��PkӭV�S.s���0�鱻���,y��m�ś<v;h�a��A��W8����c�V=���R��u�������fZ�=Bb�T��t���~�ٚ����g�/.�(� +endstream +endobj +6350 0 obj +<< +/Type /Page +/Contents 6351 0 R +/Resources 6349 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6334 0 R +/Annots [ 6337 0 R 6338 0 R 6345 0 R 6346 0 R 6347 0 R ] +>> +endobj +6337 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6338 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6345 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 342.095 171.594 350.232] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6346 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 330.14 171.594 338.277] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6347 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 80.777 110.119 88.914] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6352 0 obj +<< +/D [6350 0 R /XYZ 69.866 801.979 null] +>> +endobj +1126 0 obj +<< +/D [6350 0 R /XYZ 70.866 771.024 null] +>> +endobj +6353 0 obj +<< +/D [6350 0 R /XYZ 70.866 642.615 null] +>> +endobj +6268 0 obj +<< +/D [6350 0 R /XYZ 70.866 463.875 null] +>> +endobj +1130 0 obj +<< +/D [6350 0 R /XYZ 70.866 436.68 null] +>> +endobj +6354 0 obj +<< +/D [6350 0 R /XYZ 70.866 293.413 null] +>> +endobj +6256 0 obj +<< +/D [6350 0 R /XYZ 70.866 156.321 null] +>> +endobj +1134 0 obj +<< +/D [6350 0 R /XYZ 70.866 129.663 null] +>> +endobj +6349 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6361 0 obj +<< +/Length 1311 +/Filter /FlateDecode +>> +stream +x�՚�r�6��z +.���ඓ�3Y��v�F#˴��Ji�v�"��4�t������f}���/<8�[��^��2hIɂ�S�0�R*�H�`�lBB�r��0��q ˏo�c�\Q�Ï��9��b_$��t]��^�� ��=��HS��f��G��S�#��=Ӏ�g������mS�@�HablF�Ė���9� +�+���ۈ6�3��P���CiҺ˟+��w�"�j؊�7��t_�ɛUy7x!��,���M��d��\[��ޒ�,��q��SGز��j}���N4j,��0�u��V��Ȼ��+[�U-�q�?�/է�16�mߜ�l�� �9��}�ϒ�0>�ܾO�VW3/�a��l�a3��)�4�b��a�Z���<���4.�|IH��Z�Rc�(���1E��rê�TH`�zDV!j�#� *�lh���4#ng$q��L�WR6�`��DS�� H������m���h^-Dْ��>�y�wr;���RXO̴��.�a=�Y1*���b��f_�h^~�n���Y^~�n�����ZtM��%R��1L],B�G��q1D�+2�.?I7]M���m��"��mw~n��5�|=AʯA+N~�M6ׅB�j��lN� +3*%��1a|3��jf~�n̚���n$=X�����Pwmg�}MvӅ�B`23N�Q��gI��9B�)�Δ�qqγ�A�� �5Ք"�S`�@�W�߳r�p��GJW~>�_0�YR�Uv`�d��d��9:6������}��d8��8;�/�Q�٢�U#B 1t]b� ��h�1�K�g�6��]�ۙy�%�����p8,v��.�um2\��2#H��b�f%&������g�3�$W¯ +3 +���s��S���Z�<϶l~B͚�^M�z�����/��]S� M��i��&?ޠg����*�����f0�S��y$����3Ϸ4�?�gx?Yg�o��b�]�2�"�=lw!�L�Y�� Qq&"���g�!%�μݜ55�]��3/Y7gM�g�,�k̦��2d�A�愨0� ̯PS?���I�Ak�z�Ǟn��5���ǐ��|q��vy��ˠsBT���X�kdP&�Tc��Rt�Ԭ��p��g�͘��ȝ�yhs�6�o�� �#�6'D��)x��j��lL�Rt���u)�'���B||��@�T�]D���g^�b� �6�ѯ��)�/8��}���a�/�F]�H�q�C8�r��[ +�hS�5_�r@"�$//GBph���.��8��5���8�V�h�x~�V�e���R +endstream +endobj +6360 0 obj +<< +/Type /Page +/Contents 6361 0 R +/Resources 6359 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6334 0 R +/Annots [ 6348 0 R 6355 0 R 6356 0 R ] +>> +endobj +6348 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6355 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 401.285 110.119 409.422] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6356 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 365.42 171.594 373.557] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6362 0 obj +<< +/D [6360 0 R /XYZ 69.866 801.979 null] +>> +endobj +6363 0 obj +<< +/D [6360 0 R /XYZ 70.866 698.38 null] +>> +endobj +6258 0 obj +<< +/D [6360 0 R /XYZ 70.866 487.2 null] +>> +endobj +1138 0 obj +<< +/D [6360 0 R /XYZ 70.866 460.004 null] +>> +endobj +6364 0 obj +<< +/D [6360 0 R /XYZ 70.866 304.783 null] +>> +endobj +6255 0 obj +<< +/D [6360 0 R /XYZ 70.866 82.821 null] +>> +endobj +6359 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6369 0 obj +<< +/Length 1583 +/Filter /FlateDecode +>> +stream +xڽ�M��8��� +Mբ�[�u7�T尕M�r�LQ� +�c&ɿ߶%�`�!S{�2`�o����j��ݧ�$�g8�8x?��n��S�F��,�� +#-e�"�$ ���}H0�d��J����w��ʼ{��'�էd3'8L�$]%�g �A�ؠQ����ُ�Oq@^��F��`u��?�` �>�H?�o.���}�y����%A�1�D���1��Xn˷aR,��Ɓ�b����C�|NV_���GJ�"P(R��8X0�����s�[�ұkL�����f��+,A����i�zY��:zJ*T�C�ky��ŭ����*�[M+�339���ҧ��!Bv�5a��$g��,Y>q_�硺��㲏y��`��n�l�9&�W��o�ʱ�K&b����oZIGJ��8M#g�,(��^pX���¬��\�U�a���٦qװ�z�),5B�0��h�./U����. +ævB>�)�<>$E�� ����%� "���B�DJ�ʍm��GB+H���|�!ƭ�*��h����f��@D j�٥���`�̨��t�O����i��� + �=eɐ�HS6��@�OCQZ�0�÷$oBV<&W0k���W�����m���i6,]�!�� �R +�<�./�v�\�*�w��%�N�+�f��5��K0��Tz\�lX�D��#���KrH�Cr��d;^��3u�p�"|����y�N���SF�Y�ya6ڷKF��6���$�3�Q����a+&}��)<�3?�v�\Ѫ�4y��+?�v�\���'?NɱH�n���hG/JO�æٰ�18���@�|kd~�퐹������O��/W��[�+i�X4�O�qW�� +����<�"LVE��;x=�K��ey�d��H$��l��"����� �4ہtU�C�������t�^t�^��v��"��6���x�!����(b�����+�4u�il�~�ڸIʚ+�|d�R���i*4Zqp���G�W]8��t��8�>����Q��VZ�궍�ݼs�?wَ�t+4��濌�\�J�:m#���$��-V�����QH.n���t*�ׅLY�T�<��T����j#����Tu�Ѳ���~ʓ9���.;���g��Sl�G��|Y�Ru��� ���?���I=�D=d�3��0ci���dE�|��F�)���漎�κ�9��sf8>f�����ш7�D������r��� �7����(�LJ�x��ڈ;>�s�^")����QX-Z^���l���(�$��[a"{j�"�Ю� &��d�d��C�v Ѷ��C���leQ��V�1;�aG��2�`]b&x��~�&ٰ�Iؤ)�j����'َ�+�v��َ��9���A�h�/)�gi�lX�8L��?�Q��&(<���'�N�+j묗-�����j��i��uԫ2��b~ק���w)�y�*���#�DL0)�a:Ɇ�ʫ�[`�RL��O�SW�\�_�O���+Y���&�pv��=�Kf���jw�m�eh�:��eĿ���#U���)R�?�I�5��o�2Կ~ۣy��J�uC$ +endstream +endobj +6368 0 obj +<< +/Type /Page +/Contents 6369 0 R +/Resources 6367 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6334 0 R +/Annots [ 6357 0 R 6358 0 R 6365 0 R 6366 0 R ] +>> +endobj +6357 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6358 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 655.431 171.594 663.569] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6365 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 338.293 171.594 346.431] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6366 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.056 227.43 312 235.914] +/A << /S /GoTo /D (svd_8c_acdccfce5b7732e6334ca5a521c57e63e) >> +>> +endobj +6370 0 obj +<< +/D [6368 0 R /XYZ 69.866 801.979 null] +>> +endobj +1142 0 obj +<< +/D [6368 0 R /XYZ 70.866 771.024 null] +>> +endobj +6371 0 obj +<< +/D [6368 0 R /XYZ 70.866 618.813 null] +>> +endobj +6185 0 obj +<< +/D [6368 0 R /XYZ 70.866 460.074 null] +>> +endobj +1146 0 obj +<< +/D [6368 0 R /XYZ 70.866 432.878 null] +>> +endobj +6372 0 obj +<< +/D [6368 0 R /XYZ 70.866 206.509 null] +>> +endobj +6367 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6379 0 obj +<< +/Length 1168 +/Filter /FlateDecode +>> +stream +x��XKs�8��W舫bEo��v+����l�{ʤ(b�Fx0��ﷅ�6K��m.�h}_��������;E�턠"���������H�H)��O($X+�aE�|�����a� qxDž�����l�Ng,��M����TI�ƚN��O~M(XDw�Zc�Z�������H���2GBr,��5�k����݈���v��K:�X�ʹy�Vui��[�x,�Lg��jL�t���~�唒 1����ɍ��yR���A���`�<8�܁ݤ?a&k��LK*7�3�8e} +;e=��p<�ĕ��}�r�ej���z�2�y���uR�nI֙x�Vq��81��g��ԤE���ź�V?�$� �l� �֭d3�(�Bϳ�xeo �^�SEl�2oq��(�QH���k)첨m,T�s@kB�(���Iq$���T:�U�:T\���V��Հ73o��i���K�n�r��Ɲ��$~�UO�{t�c£��{u��a`)�~��V~�~o?�(���s�_�jO�l��K�}�&�mg��϶nL��ڿ,���I�J�~�63�����)�&�:�:v��%���`� +ǔ���}�D��I�6[��1��D�|5��h(@��.�}2�DI$��*l�ATy�+%� L�hh�$���\D���M �\�s)U�Pb +�����P�s9{���?z�ea%��ddlޫ�Ǵ<2���eM��g8{( ��pX�I#S�F�u���\�ϐ(y��F�u尼��fD^�q˫˹�37����}=T@P���"�.b2^6K���@]�P�#�u尺���)�%��~Q�y>���æ� +�����y��Nv�PRA� /���'��h���S[�*��z�P���PyA+ם/�<��|����uF����Ƃ��5{c"�dJ�w���2ՁݻQ5��}�����e�y���r�`�q�T���H�W��x+ұRpN��f6T� +�u���w��u�:�w����_� �o���v��v��>j�# �o��B]|NO���'�7��$fuDG�7�s�-��w���L��;�c�= �U �$��#TK8 >�d@�����M�v�� �$/ؤۻm� AuT�m���/���Uj��R��J4ᒐ0�*�R�]�Iˤڄ7�ݣ�o~�}�8��� +endstream +endobj +6378 0 obj +<< +/Type /Page +/Contents 6379 0 R +/Resources 6377 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6334 0 R +/Annots [ 6374 0 R 6375 0 R 6376 0 R ] +>> +endobj +6374 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 552.382 171.594 560.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6375 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 159.451 171.594 167.589] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6376 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 147.496 171.594 155.634] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6380 0 obj +<< +/D [6378 0 R /XYZ 69.866 801.979 null] +>> +endobj +6263 0 obj +<< +/D [6378 0 R /XYZ 70.866 674.162 null] +>> +endobj +1150 0 obj +<< +/D [6378 0 R /XYZ 70.866 646.966 null] +>> +endobj +6381 0 obj +<< +/D [6378 0 R /XYZ 70.866 515.655 null] +>> +endobj +6267 0 obj +<< +/D [6378 0 R /XYZ 70.866 281.232 null] +>> +endobj +1154 0 obj +<< +/D [6378 0 R /XYZ 70.866 254.036 null] +>> +endobj +6377 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6387 0 obj +<< +/Length 1311 +/Filter /FlateDecode +>> +stream +x�řMo�H������7p��ىv�ٌo�b쎃ćc�$��~�Mc�!`cK{��ஷ��������q6�;;����O_���(��9�'��ȗ���$q�k��%q2�Q�w�P�w�*?}�bU�=��)��کt����W�3 ���#������eB�)v�A���O��J&����W#�������C�3�����cD��5;A:f# �η)�n���nJ���=�Lvz��=�@"!���� K�x#��fiM�!N�!�҄�g�R�Đ��H��׆`1����U �^`�M:4%G��c5�ۚ&�]���.�ᾕȦ�"� �?gO�U?�#����۾2�!��_�d0X�~�t]e��E%�Jނ.�(;��q��t�E���iv�U�\eq�����bW�`� �*���a�"���\�E<D�8�q��p�E{���=������,JuE����u�om2��71L�U6J�d��FS�P&Cta +R6�Y�?�k�f7^uU�[��������#����ᝥ-L7Eڇ[sñ��J��ϭ�1!�u���W���؞���i�(�gGhG���_��U͐�#��} ���PR� +�6gUm�.��R��*�_v�M�:��Ui�\�U�l`���Y��u�B/��+�/��u5r��Io~��_�+�ec�],�t��ÕZ�]���,W��Ҧ�&�&��^Xd_�\�}�����>X�pO83B���V +��_�R.�59�j��&����!e���<�ON���a �nt'rP�b��#L>�<�ɢ#�G^ �Ǡ5@� ������ֽ�%<٦Q:����T6�H֡��� ��)��V��B��-��&�"�{G&����J��p�FD�-�Ih�p�����i�{X�F�(EЋBVF�s;����HW��\=��$���Ri�R��ִa'�6����u�@�=��5�6�Aon�&�����u6�C�A^�g�#���]@�� +� +D%��<�!�pأuͮ���so�d�� ��7$��!_߲'19l��mT��u�]e����`aqNC¸@أnw�Uc��(�n�꺵�;�p�`�L7�ug��NN��89��Ko4��a +/��aQH��$�~Q(�[Մyk�R_R����-�Wl��y�vN=v���)���c�8W�Z(��X��0.TG��G�,1$G�����e���_��-�a���D�:>��b�ͷj��P\��f?�ca�S �x|����(Q:�㮆�(�]�{��]��Z�ϙٍ�6f'Av��) ר +endstream +endobj +6386 0 obj +<< +/Type /Page +/Contents 6387 0 R +/Resources 6385 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6391 0 R +/Annots [ 6382 0 R 6383 0 R 6384 0 R ] +>> +endobj +6382 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 507.073 171.594 515.21] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6383 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 137.732 171.594 145.87] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6384 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 125.777 171.594 133.915] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6388 0 obj +<< +/D [6386 0 R /XYZ 69.866 801.979 null] +>> +endobj +6389 0 obj +<< +/D [6386 0 R /XYZ 70.866 771.024 null] +>> +endobj +6108 0 obj +<< +/D [6386 0 R /XYZ 70.866 616.898 null] +>> +endobj +1158 0 obj +<< +/D [6386 0 R /XYZ 70.866 589.702 null] +>> +endobj +6390 0 obj +<< +/D [6386 0 R /XYZ 70.866 385.567 null] +>> +endobj +6106 0 obj +<< +/D [6386 0 R /XYZ 70.866 259.513 null] +>> +endobj +1162 0 obj +<< +/D [6386 0 R /XYZ 70.866 232.317 null] +>> +endobj +6385 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6400 0 obj +<< +/Length 1668 +/Filter /FlateDecode +>> +stream +xڽ�Mo�8���:�@���a/�lXl6�����,)k�M���P�l�bd�r{(dW�;�����w$x�Op�������ɇOLER���[�0�R*�H���)������×��=�%�X����6�Ψ��m�>$q�/�M��G'<L��x�(�5Ҕ�d2�����b�����$��!�|��L�>��棹X�q8- ��z}7�<\�I�ǻ)!��tz�\;<�D@���W� K(��vh��a"�DD*MH4C��C +淈��17+�h�kR�g��}�e�h�)���ok6%C2"M��lJD�ZN � + (�g��k��қ,s�/l�P�Y�e��pg�h0��n��x�ҰxQ ������k����Ϥ��Ѵ/?�n��6�����ץk��m2@B� +E�( K���8���Kt�eгCށ��M7^u��ٛ�U��v�����7/�&�+��̏��ε) �-q��Q%i2����P(��h�"���4�gэY��)�r{�߇�ϴ�)��U+�}�0 v�Ł��?-F���N�%`d�&���+�4���"˼�n7� � ��o��:V���f3ɑ��n�1�Q���[�B`�H����+��R8V(R�X!{_���f���L����(6�U�J3B`?a��ҋ^�~Dk�L�S���/f�����8|�ه=����'�<����t��� ���3��_�,:�-ߙ���8?����U����Ep5*��7��*��ZW��p����<���5�'Q'�����i�5�,lXhZ�X��fяY�r���\l���e�Y/OY�I|5d��b�M�R��f�{��²�0p*�[^N"��J�R#��Ͼc�:α@�Gk���:�q���Q��,:�x�f�Z�8�q.=�7��HBGҰ?��5�j��������Ꮇq!�(��H�ȱ����G�EE}:`?�N�6m��D��y'q �za��ݢ�E�� �( �R��Km/��.��sҢq~&��Ս����mq���?n��t��>� ���HP9��1�:���WHs�7��t^���m�zVV?�n����U�}��ҧA� ���(*F7F��-�@�`HG�q^���m�zV/�n���Vކ�݆�V�x#ayc;N�p��8�&y��L���]y�U?���鮫� v�MHp>������Q-ot 訄������Ӧ�����Y�p��\r�Ww�<��&����o��mt@��bo�����T�A����Pڇ�S��%�˓���>�6e8�wq����_�S�����q�����:��i /r�����*�m�;D��O�X����w�FJ�cs�<6/���x�ؙ��>�|�>N�QB�?N?�f�����ٷ��'s����N�<��H����W�&ޛ�l�R��\��+,/�[�L�)��sl�,/��q%7��rM��l78l&U%��`��R�ɍu��Z�4[c���c��1F���q��ɍ���\t�gr38c����!�Y{��;��,/��i���ƾܖO������N���t��{Re8�rNL�f�O�M����2ԅ��ܘ<�����Y�<v� �tȟ�UA(Uf����pERڬ�9N��2w����T����M������$�3� +endstream +endobj +6399 0 obj +<< +/Type /Page +/Contents 6400 0 R +/Resources 6398 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6391 0 R +/Annots [ 6392 0 R 6393 0 R 6394 0 R 6395 0 R 6396 0 R 6397 0 R ] +>> +endobj +6392 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 521.387 171.594 529.525] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6393 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 485.522 171.594 493.659] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6394 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 473.567 171.594 481.704] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6395 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 173.242 171.594 181.38] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6396 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 149.332 171.594 157.469] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6397 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 125.422 171.594 133.559] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6401 0 obj +<< +/D [6399 0 R /XYZ 69.866 801.979 null] +>> +endobj +6402 0 obj +<< +/D [6399 0 R /XYZ 70.866 771.024 null] +>> +endobj +6189 0 obj +<< +/D [6399 0 R /XYZ 70.866 643.167 null] +>> +endobj +1166 0 obj +<< +/D [6399 0 R /XYZ 70.866 615.972 null] +>> +endobj +6403 0 obj +<< +/D [6399 0 R /XYZ 70.866 436.948 null] +>> +endobj +6196 0 obj +<< +/D [6399 0 R /XYZ 70.866 266.944 null] +>> +endobj +1170 0 obj +<< +/D [6399 0 R /XYZ 70.866 240.584 null] +>> +endobj +6398 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6413 0 obj +<< +/Length 1718 +/Filter /FlateDecode +>> +stream +x��Z]o�H}���і��|�����R���ټ��Em�"�b���~���f��>�m8�ΝÝ;����B���>�~�����T�Q(%n����2P!E�7��vN0�d��J�Өȓg��>}L�quv�/��y�������3����Ra0f���y3�1#�-���HS����6����#��gyep���η�?��_�Lj +sjv4�xF# ���˂�y�Gi\����������F��R�L���/A�"P#�뀀��DZ�*!"!!T��h�($�L{��$k�� +1�����]`�$M=�R@��RB�%dL�U�2�-�������o�����:߭��!ͪ��x]���s����{['&��WjS �Ԩ@�ށ�\�I�a$`r��6��/5�freg�v�$Z��N�o\~�A<��V�."������Ib�a�F(\�.Q@�:Gl�(�bsI���G闖K銧��5���R{['�A�!z�6���5�<�D]�)E��6��/5��N�ٵmd ~��tq�lK.2TH�)���`��9b��!`�GnzdJϑ�(F���i��:]�Ʊz��`V���a[�nT��sحt�lh�m��!�ڵIVf2D���/{��)��fU�w��Ch�8�JsYaW0}u=�k��� ���}����h� ��-��N��`�v�j(*��}ɇ�+�4K�dg���fg�d6�����ln�M7��2�G^��#�]�QH-܅1�n�*]P(��~m���[9i%< +Z)L,#P�E���K6��t�^@�� TivH�����xٻ �**��:4f_��I�<�,�5��+kh�I��l_��Cb�Z4<�#:�Uc� *V�|}���fw�R[���O���-��&��p=S�D1R_�����$J" +�˒�����/�����}Z���$��i�����ꋟI�q��1^'湊7Nf2g��<5}�# +9�b�ơ�+չU�,rv�LMè�I�q_�;s��1�e�������e�A�u�B�^t,�ъ(a��&�0�gĐ�1����g�U�$�J]L+H����X����~u�����A��V�HN��������5<Ԗ0����ԓ�5 ÊKQ�1��s��B�|�+�q�~q���c��8f��\��~�;��A�g[�!�!��5 ��K�f�_` e��s�5�ү/����9��q�~���iY��>.YG�{��������X[����&�IVR�9���k$=ÔG�W�K����aJX���į/7�� +fbL2Gv畱����b^��xX���q҈0�Z�oDHL�fOD4RԶ.������1 `��������n�4��r�3hlVi��8D���=���2�w�j���xm�Ӹ�w��y4���p���a����7#(ȗy3�˛Y=�k����4T %t�I���n��_�5Uj�ئ��;��> ��_�R�}����� ө�^wH���$U�����KE|�:�o�D�m�t�N����B�_J�5�8�[ż�����w�t.�p 2�<)�(�/�\���D�J��)�_��}zec��:�2<p +Y��� �<K��1z�!*8{ӵ��t�I�8��d�@N���[P���eX:`�1Sdfb� ��H���bɾ1���%���Z}�\M������4�D����N����S��yT�f����;�T=�z0�V��7*>� +endstream +endobj +6412 0 obj +<< +/Type /Page +/Contents 6413 0 R +/Resources 6411 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6391 0 R +/Annots [ 6404 0 R 6405 0 R 6406 0 R 6407 0 R 6408 0 R 6409 0 R 6410 0 R ] +>> +endobj +6404 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 491.964 171.594 500.101] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6405 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 480.009 171.594 488.146] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6406 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 468.053 171.594 476.191] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6407 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 163.317 171.594 171.454] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6408 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 151.362 171.594 159.499] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6409 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 139.407 171.594 147.544] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6410 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 127.451 171.594 135.589] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6414 0 obj +<< +/D [6412 0 R /XYZ 69.866 801.979 null] +>> +endobj +6415 0 obj +<< +/D [6412 0 R /XYZ 70.866 771.024 null] +>> +endobj +6201 0 obj +<< +/D [6412 0 R /XYZ 70.866 613.744 null] +>> +endobj +1174 0 obj +<< +/D [6412 0 R /XYZ 70.866 586.548 null] +>> +endobj +6416 0 obj +<< +/D [6412 0 R /XYZ 70.866 431.435 null] +>> +endobj +6193 0 obj +<< +/D [6412 0 R /XYZ 70.866 272.238 null] +>> +endobj +1178 0 obj +<< +/D [6412 0 R /XYZ 70.866 245.709 null] +>> +endobj +6411 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6424 0 obj +<< +/Length 1726 +/Filter /FlateDecode +>> +stream +xڭZ˒�8��+X⪶�b1��d���2��l:]�I7U<�����s��#c#��t�����4��~!��n��';����>2ߑ(�9�?#)�� ��o��0o�x��a��y*֏?&i�\Q_���>��*��"WE�/~-��9@J�$��u�xx���}v�1��K]2s<���N���Ĉr�S]��91-�^��%�ܨ�����%!��4F��#2졀�C�7� ��F8���D4:%� %T��H�($�|��:#��o���-������>if��>�ij�h;��!�>�.�oI�ۨ�����s�,��}�{I��*J}�C�|I���~���,��TH^Ѱ���Ki�⡾��8�e���h4J$\�B��Qv�F�(���#��4k�˹.�}��V]�c* 8�YꚅѨKu��B�$��E|D�B\V�fmu9w�(���Y��e�=�qQ��Ռ6&����T6g�g�֏D�wq(�$ ��S/ +ȒҬ�.i�B=� ��x^J���ԍ`[$y�NNUq�r��֦;� n�g�mF#6�����b2@\\�ZR��#��4���]4F����u�����"��yB��� �hp�)^�ż 4H&M��}5�4;N�Һ��]F���h�lVU�y\U�xW%�>�^>.�[�|�I���ZcZ�ܤ������Z��1Lm�Ea�����w�i��U��&y�_���ԩ*�aH��DB+ +#�j����%�n\��:� *�U]������30���Pc\@�lIa�����w�1� �G��I����g�.80��F��N� +A��sgE����{��+��q�`Q�FKvgcՔ�B��/D��|j��������U�N9���8Q�n����!���A��a�)l9�� �k�6N���-z�Xoh��H���U�_E��W��X�*٦ɺ3i��+��%��{%��Q�&n0������H�����%0sW� c��bfh.L�B�e��wDC��.��>�#w�3 ��3�{�T'@��d�o#}��]�������K�ͯ���M��]�7�G�~sȋ<�K�6��!��z�4.�D��!�vBz�3N��3T�Lo3|P�=��b3Cp~���w;L�e��n�y�\q�jIi���HG\PKN�6��im`�7F�� ~�ub�ubz[��Qޤ7O{s �Qذ7ў2��5ڳ�4k�K:�nZr����u7gHorS���Yқ�H��o�&0�a�q��`Ii�^���M���,�n4�܄Vf��j 0��d6BˌX�Bf��k<+KF��:��鼠,�͂���)���3*nz��(s7�Q���ѿ�'O���W�W��F��X/�W��F���'�W٭d8�=C ��v�!�Wv�r�m�<ۊ���u�ա�0�R��@�?�K��?�U���* +_[� +N�0G�i����nB��KU�"�͊M�o�K��",Ֆ,�>�pŶ +!��T���`�P˰��8������pS +wJ ���&Y�<�D�o*̢��>*7U�.����Ui������0�CV�E�=[��av����H۩iT�!]*�P��V�G��n���iT����Fx<|7К����zI5|�~o=L��0��y���9j;��)���گ��>LMJ\\��H�f}�h��0~�ה^_ߞT.A��!���ؠ +endstream +endobj +6423 0 obj +<< +/Type /Page +/Contents 6424 0 R +/Resources 6422 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6391 0 R +/Annots [ 6417 0 R 6418 0 R 6419 0 R ] +>> +endobj +6417 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 467.673 171.594 475.811] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6418 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 455.718 171.594 463.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6419 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 443.763 171.594 451.901] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6425 0 obj +<< +/D [6423 0 R /XYZ 69.866 801.979 null] +>> +endobj +6426 0 obj +<< +/D [6423 0 R /XYZ 70.866 771.024 null] +>> +endobj +6191 0 obj +<< +/D [6423 0 R /XYZ 70.866 589.454 null] +>> +endobj +1182 0 obj +<< +/D [6423 0 R /XYZ 70.866 562.258 null] +>> +endobj +6427 0 obj +<< +/D [6423 0 R /XYZ 70.866 372.153 null] +>> +endobj +6110 0 obj +<< +/D [6423 0 R /XYZ 70.866 166.133 null] +>> +endobj +1186 0 obj +<< +/D [6423 0 R /XYZ 70.866 138.967 null] +>> +endobj +6422 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6433 0 obj +<< +/Length 1681 +/Filter /FlateDecode +>> +stream +x�͚�r�8��~ +�vU[�X�L_�z՝�.�ra�d�2�Ƹ����#K8�(�fw�������rsw��xO� ��<�}��y7���|/@��̻{�|�)=?�H�n��O F�����iT�Z�_�M���Ə3��qg�x�p���,@"@E�`B�=�p7�>!�/��Q+P@��J'��[õ�F,��C���!�|�xO�����(�1Q� ��q�- �U �IV�R9��R�8��¯\f�&����ؼ�t*27�� A!\9ܬ�F� ��q�0+�]�Z��Ӈ���6X�2�Ԥ��gWFE�(��E����k����ٺ{�A�W��*ѕ�k�^�;���>�Np� +��X=(Xgs��Ӈ{�̓����#��!�aAt)Z=Μ��_8|�W��|;cx�S�/���F�l���?���U���i��(ss=����R����/��Et�ưq�M�1�֬�`A8�gd�����.�����|�)�R�(�W���*�&�Z_L̵�W�z���QL=�$��$��P���'�SO����;��([W-`�S�j6�*ޙ6/�аIҤT�S?�3z|���K (��ճ2E��}j4�==D�bH#H+j�ǁxb���KMw�eF9؉Ҹ��jԻF$�� D��@+ix�.C ^�"D�b@i�+�&D5 �����!J=!a<�3�c1�>� �JJ��.����M?D�ˡ��^�ڒ�5kde*C٧˪#�z�#��'�j��p��&&��}�(�F�0�qh��_5"t m���4K3;�0I7h���W]���@~>D;f�b�AL��$䢍2&�i�)�)�5���<>��"�y�A��چ�9$�uU�3���>��@C�(�F�0�&���*��AG �t���ٚjZ�S�����k�|�Y�}�bU�Srp�����ϸ�u�]�����e�2���Gh'uTC*f(��H��w u���T[S/tAt�7���#Sq5��=l��^�+� ��C���MbD:�lB�0�0��d��i��f�m<�yp�Y�0�չ�e!�]�`<����(H��0��n�/�i�wa���ݐښ��:�����w�W��o�HAr>B;��b,ժ�.���HȰ���Xښfy[�f�{��A.�|�.�k��S��˳,��I�#��Ÿ��q1���!.( +X��A�_�Z��F��?��~�=��d�t�l|\�㈵u��0�o�phf���<�� I7���qS��"�0Gn*mG����}!��þƛA���f�X�a�������0�Y��BQYmce����r�;6�����"1�o���:)���^@���y�x�a���{(��z���zL�N�ɠ�S�cF�j��:���UY�w[k�;������:ہ(blc����Ö#U3�T��o���m^UC���?���Z,���?U�C�H��/��Gն3�}/�v#<:��y���������V5Z\��J��摕����h��������j{9���Z��G�T�]�o�?:֣�8��pi=��9�X��V�z����O�� �$ژ���Jo�d�IVV�rL��U��tصO��^#�!�#��:���G��~�Pi�9��'珎�w�=�CQ'�z���sJD}ɭGm K�N}�����Gr��%��O*��������N +endstream +endobj +6432 0 obj +<< +/Type /Page +/Contents 6433 0 R +/Resources 6431 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6391 0 R +/Annots [ 6420 0 R 6421 0 R 6428 0 R 6429 0 R 6430 0 R ] +>> +endobj +6420 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6421 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 663.375 171.594 671.513] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6428 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 265.938 171.594 274.075] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6429 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 242.027 171.594 250.165] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6430 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 122.476 171.594 130.613] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6434 0 obj +<< +/D [6432 0 R /XYZ 69.866 801.979 null] +>> +endobj +6435 0 obj +<< +/D [6432 0 R /XYZ 70.866 589.981 null] +>> +endobj +6190 0 obj +<< +/D [6432 0 R /XYZ 70.866 367.35 null] +>> +endobj +1190 0 obj +<< +/D [6432 0 R /XYZ 70.866 340.591 null] +>> +endobj +6431 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6442 0 obj +<< +/Length 2205 +/Filter /FlateDecode +>> +stream +xڽ�Ms۶���\J3�.zon3�U�z�z4��8���\�J�����?���e�z����燧�_I�z^��5�����?��d�P"��>G#%D$���^�OK����闈�{,����?��l��R-?w�CV�i��������_�G�*�R4�v�ŧg��{�D����{}�!�9C<f�z����&F�W/�� �GЂ ��]�x���CVf�!�sY#��\{"� G�R�g� I�@O�> �|b��{�G �U�(�(�d̐��;$w �1�x: +{�ͱh{���q�)V//��!}s��8���"�Э��v�9�S�x�>~�������\�i ����P7lc$��Xu�ѯ0L]����rD�PKbD�7���$���,��٦���OpU|��\�3��B;��Ǽ(����M���H`�°�0��0�fHv��8C���:�s;>�yE��̎`R�;g�c�2���aw�ƒ0�44t"��$|�%İ��%d��i���6�z�:�p�������M�C�H�ⰺ.L�P�(|��6���uBTbu~�N�Z���\�0|1^���q��}�����/'p�H��fj���Eu����D���I<NnG�%�`,l� �0< +Y�^� I�$#p�st�hy���x��_n�ZfM����܈.? !U �A��j���H�\!"F �e�&вl�ê��+7�Vv��/$©��� +��0�4�L!9K�+0���ڞ:������v����S��6t����0�Q�Β)g#��t�g�n'W�~��Y�#]�I(����E���{|� �#N�l�lX5Vn�8�Y�q�M���B���!���pr#����ih +y����"O$�zZ:)l�n����Q8AlE1�8�����PTIH�X$LÐ��������c�&���M�m�Uzڻ���Շ��8� ]x@��@��4�U��H8Um��������|��:��Y1���Wn�l�A�1���}�a +xS#�2 +1 ۙ �0�q���gxF¹D�M���!��Ӎ��Z����3"7�vD��I|�m�����7]��k�T����Y�{P�~I�s�}^��c i���4G��n�� �a����c�y��2;e�.3S�vE��ώ���A�s�H���,(PV�9*�b�(��Zd�9�V��2�@~ܥ������jfmQ=�E���X0�7Ec1��6�v%�M�p���X�hM�����T�R�&�2e + +7ٜ;�o�Ã#����[�x0G�*�N���Ǐ�1F��֩�w�1C�%���況�0��|�����ƺ���1t5s���X~����g���G��Iw�������gGk �,F�g'o��V�[S��� ɤ��_/e�n�8��;�e�u��y�Iz�)rj����y�E�jmJ|[Q��v��ܖ6�y#qٮ��>��Y^�O�eE\�����*b��uf�N������H!ʐ�j@H��6n?Ll?�(�":��{+��U~����t$�K�G�m��K~Ȋ3�G#duvlw�M�'�T��oE�����3�^�Ek韾��^)9eg`D����a�e����5GW퓸��VP�p�b�s��%��/>�4t�KTj#��5I0J�xx����,|[�u�w�J�b���mW�@���e;����Zw �g���I�7��Qj�8��0 è���30*%|�G<:�st3j{��>�^�nFm�I�%G�55�.�@bFW���K`Xv s�H �z���c2����.��������u��tɪ�����X�c�a��υ ��a��ZO&s��'#�xZ� �M�ճWԠ���%;��͢{�)T�}�M�JU�'�Sa�����q��0��q���э��9m����+7uv0�ԍ����('a�iȈ����t��C���3۴٫�y�>X~�n�l��q�Jߵ#q��� �< [��i�0�Ҁρ�1���?������M�m���i65���w�������44|�h��p"��a9�I���=��l�އ���ɜ�;�i��朓�� ��T��� +cp�D�K�}�(�m� ��@�D���6t�8���h!�f�Ǭ�Ni�z���X=|��zl�̊���<Ԁ[ +endstream +endobj +6441 0 obj +<< +/Type /Page +/Contents 6442 0 R +/Resources 6440 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6391 0 R +/Annots [ 6436 0 R 6437 0 R 6438 0 R 6439 0 R ] +>> +endobj +6436 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 349.666 171.594 357.804] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6437 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 337.711 171.594 345.849] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6438 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 325.756 171.594 333.893] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6439 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 289.891 171.594 298.028] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6443 0 obj +<< +/D [6441 0 R /XYZ 69.866 801.979 null] +>> +endobj +6444 0 obj +<< +/D [6441 0 R /XYZ 70.866 771.024 null] +>> +endobj +6194 0 obj +<< +/D [6441 0 R /XYZ 70.866 471.447 null] +>> +endobj +1194 0 obj +<< +/D [6441 0 R /XYZ 70.866 444.251 null] +>> +endobj +6445 0 obj +<< +/D [6441 0 R /XYZ 70.866 218.281 null] +>> +endobj +6440 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6450 0 obj +<< +/Length 1216 +/Filter /FlateDecode +>> +stream +xڵ��n�8��~ +.m`��Nj;�4@W�ֻ40�Dɨ�%�����ϡHet�/��E [�����t�a��E��A����ٟ�هO\#�#�8Z� M�Q +�aE����)��.�L��6.��~r�>���}���,(�'E�=%���g$���pq\�ӳ�V�g�D߽��� ����?�����A�j� ɱ>oз����Y�_QL�>&� aYZ�y��Kwܤ��@��}�_��^R�g�^,����q�AK& l�`��u���E벺�3� �@�֨�3�9\E��� �ȼ\�4+�I��:A)�Ƒ&�r��N�g�>/����E�i+U%�%�DKJq���o0̬Kg�� �Y&u}g�"Y�1NQ S�*řc�x��|���4�a�TK/�0�� � ������>�g�\��Q��/��a�f��gj�z�=�L�E��on��HK������io�tXZS��B��z��mb��eX������x�V��z��ؿ=.�֝L6�6����a�a����I�^�pa~:�,���E�MʤXP:߷�UCEX@�;Q �☓�^Y�VN��Q�~JFC�Ty���}�`6���a8f�"�*r3�f�}���dc-U�P��NZ�ۀ��X��i�H��㨛h����1T䖞���ٍ�m��G0ln6��9/�F�ݧ$�i��M��iZ��i�E]�N�6�2LZ�4;A�8�0iM�iPR߶�uAv�P�.&�6IÃ&�J�T"�[g@+&������4mܼ{89��'M�f4����2��gZ�np�}`@���8�$ �Xu6.�1'V�%̍r#���O����o"~G�ߎ�6*�0l�8�l����S���(H��18I�3��D�+0�<��f����x.�oT�a�:ܘ������p��I�: +�q� +�1j��F��بz��#Ѝ� �\0�y�|�j�ǧa7E�SG8����\��(�0xM�N��r����u�oK�и����lo�5����� ���3UbH��H��v���X��ja�ݺX�w�{��v���`~�_��<���&�aڴ�ߤ �^�}��ꊶ�<&�iv�$��Ʃ�m^W�n�~;X~���[��֓Y���P�s��uqk�^���?�v�����o�T�jKm#�#Y���L+ѨTBb��z�K�����g�hk���m���W[Q`C�F�1�nh +endstream +endobj +6449 0 obj +<< +/Type /Page +/Contents 6450 0 R +/Resources 6448 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6453 0 R +/Annots [ 6446 0 R 6447 0 R ] +>> +endobj +6446 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 601.595 171.594 609.732] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6447 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 237.729 171.594 245.867] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6451 0 obj +<< +/D [6449 0 R /XYZ 69.866 801.979 null] +>> +endobj +6182 0 obj +<< +/D [6449 0 R /XYZ 70.866 723.375 null] +>> +endobj +1198 0 obj +<< +/D [6449 0 R /XYZ 70.866 696.18 null] +>> +endobj +6452 0 obj +<< +/D [6449 0 R /XYZ 70.866 517.156 null] +>> +endobj +6262 0 obj +<< +/D [6449 0 R /XYZ 70.866 347.554 null] +>> +endobj +1202 0 obj +<< +/D [6449 0 R /XYZ 70.866 320.359 null] +>> +endobj +6448 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6459 0 obj +<< +/Length 1371 +/Filter /FlateDecode +>> +stream +x�ՙ]o�8�����x�m�v՝Js5�a�����MIB;���8�CLB��^T�������c�i���������f�O�� +4 +�d��%Pi)R$I0[�1az�4�0��:��o�ɔ*=�OW�]�d�,N�t��l�ψ@K����HS�v����/(�:��[�.���m�m��)L��0ͣZGВ �˨�N(/��]�E� !�CY%��<["�B#eExc ����`��fYJS"���J3%�!JA�!��H�XB���ZJ{#���n��T�!������)"R�=W���K +6� �����O_�g�w /p��ϻe͈�?P3nFC�}�nB�`��%�A�Q�����J�Eh#+S�v����lݰ���������z�`��C;��4N���,�]�8�̀��zw�4J��� ��"����g�f�f�B����,��Q<=}ܧ���B�;���Q�;�&! A�%�)�QP&C�@�Px��;(� P����M�m�z�2OO7e�� �כS�?�!FBr>��a%e��a:�BE�A���k(�tRV3��i�m▢���I[���]����w�MP �P;�(a�0"�]0�Ś�FB_����5�Ӡ%�м�ݜ��N�L$C)�oP�|Xu�ќ�J�JD�r{�G�1�I���Yf�s'�\)&�h�l5�*�F�`J9Ҵpx�^&��}���C��"�w"�^�">O(�,�;.��*ݽ}���U�.=@S���.<0,(�:H�7�8"x�CA_�2���e��2����yOcH��/�bT��H�JSB�4W����EV8��r`���n`vw� �e�BQ�SL��K��~S���0j5�N_f�j�,gvpLǐ +��c�{�'O��H�}O�����S"%��t6K���m�4`�<���*����"���-��ܰ�����>���_G��E>a�Tx_C1��b�u�1E/�a�ˆ)�Q78�1����m� �6�kY�`���k�;�'�i�ӳ��0݄�=k�r�=T�K�jG{�D$����Q����[\0H�R�W��g���6MZ���t�e{��弒�ޱ6ɐ���k�FI�HAA?�j��B�4h����M�m��Z���/7wv4���<A�;�&0 !�0�zK\��f� ��u3�īn�����M�-��-�E��E�]U�ޕV����zaJ�cA�ZH$���ŷ�_��OA-��>Z��z���J춒3��E���okn�c)�{�%�����!�N��خ4��c�C�]:�7���Y`y��-=X[�߽�vEk��U�>߆W_�é\���� +����RVcL��2s%����?7fB�>�_�i)s +endstream +endobj +6458 0 obj +<< +/Type /Page +/Contents 6459 0 R +/Resources 6457 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6453 0 R +/Annots [ 6454 0 R 6455 0 R 6456 0 R ] +>> +endobj +6454 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 442.009 171.594 450.146] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6455 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 180.007 110.119 188.144] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6456 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 144.142 171.594 152.279] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6460 0 obj +<< +/D [6458 0 R /XYZ 69.866 801.979 null] +>> +endobj +6461 0 obj +<< +/D [6458 0 R /XYZ 70.866 771.024 null] +>> +endobj +6111 0 obj +<< +/D [6458 0 R /XYZ 70.866 563.789 null] +>> +endobj +1206 0 obj +<< +/D [6458 0 R /XYZ 70.866 536.594 null] +>> +endobj +6462 0 obj +<< +/D [6458 0 R /XYZ 70.866 405.39 null] +>> +endobj +6269 0 obj +<< +/D [6458 0 R /XYZ 70.866 265.922 null] +>> +endobj +1210 0 obj +<< +/D [6458 0 R /XYZ 70.866 238.726 null] +>> +endobj +6457 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6470 0 obj +<< +/Length 1439 +/Filter /FlateDecode +>> +stream +x�͚�r�H��z +��������'We���s\*Y� +) �����;T3�p!��������?=�}#�f?��������a��S�FFJ�<�: +#-��E�8/ΣK0�d��J��*����:����z٧;�uN����p�͟�:�i$��L�����χ��3w�C�^Z#M��f�O�y�g_����G�f�p���>o���_��1�"��\lmi��$Hs[�os���nx�������r������#B� b�#��AX +Gq�T�C�fi%�&��&�2i���Đ��O[��}C0ALб���+$�)� �� �Gz�C�S(�/{�9�G�l�{���{��]�� �� +���`��3="�:��[��I/*���%�bP��3�gٌW�4��k�g3^E�u�=�e�k��H�=��I�.B��뭊ᢏ.�!���Y6�U4-t�#\�p��kw�i��[�qZ�mppuH@�tK�6I#M���=U�H�>�0EJ�~��96cV�l�i�e3KE˶%R`������:^L�I�LӰ�h�n��RR$�k�H�F|J�?;����Oɳe ��gp4�� ��4~�kLD$����;/>��r��_+MM)���9�J���9�j{��7ٍU\y�4�}�R��}(v�ϴ�� �q������w�i��~�m�~h}���"ۆej��T2S�,$`�i!+E�h)(�1���r������Yz[/��x�$�����Q�XY١����PqY�;ieOŴ1 ��J@������^ƙ��7Ȋ�PyV\5���d�r�bxeqJ��m,�w��N�®j����A:������ε�E'Z�}�{�ç�&�aul�SǗ�Ԃ��!�3`e���,����2J�(\��'�@�Z�܇�(����~���R�P,�*�sJeBl)C��чLSX2�WK!%�}Ɯ����L���N���6�cť��c-�+.��,�6js��Y^0C*^����zD�u2@��ipM��l���\�-a�g�N��Y6�U4 ;����V��'9Z�C�s��ilMҰpq��V��L�%�����(�f����ŧ�Q�̈́5[�N/��w�}u�44�:��AiJ�4,J�c��|a��Xb,U�,]E����q��@������r�ƅ�Z1�)�d9o�c���M���k���j�dL��9���r�t�JNG���,���n}����k +�M�y��<�kI�:u�11ԕ���ܝB�n����sW�'/����u�w��^�n�w�_�^/?<�7�٦�0�Xo��a���<����C�U&#` F�V��P<n�>�'Qu����1s����^K�z�]^wQ���u�\h��^�G���$o�Z#�>L[1�@BK�L�]�*pM���@�� �VC��a�'�p��Bo���&��Q2O���I&����i� +endstream +endobj +6469 0 obj +<< +/Type /Page +/Contents 6470 0 R +/Resources 6468 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6453 0 R +/Annots [ 6463 0 R 6464 0 R 6465 0 R 6466 0 R 6467 0 R ] +>> +endobj +6463 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 448.864 171.594 457.001] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6464 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 436.909 171.594 445.046] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6465 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 146.272 171.594 154.409] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6466 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 134.317 171.594 142.454] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6467 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 122.361 171.594 130.499] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6471 0 obj +<< +/D [6469 0 R /XYZ 69.866 801.979 null] +>> +endobj +6472 0 obj +<< +/D [6469 0 R /XYZ 70.866 771.024 null] +>> +endobj +6198 0 obj +<< +/D [6469 0 R /XYZ 70.866 570.644 null] +>> +endobj +1214 0 obj +<< +/D [6469 0 R /XYZ 70.866 543.449 null] +>> +endobj +6473 0 obj +<< +/D [6469 0 R /XYZ 70.866 400.183 null] +>> +endobj +6186 0 obj +<< +/D [6469 0 R /XYZ 70.866 260.236 null] +>> +endobj +1218 0 obj +<< +/D [6469 0 R /XYZ 70.866 233.446 null] +>> +endobj +6468 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6479 0 obj +<< +/Length 1451 +/Filter /FlateDecode +>> +stream +xڽ�Ko�8���Z�@��M�;w2 �U'�. �VR���q���J�=Y��-���9W���Q�iy��8/�;/v�&_��O_�r4r�d���Qi)�R$���:S���i��a��f�w�lN���F�c���:�0�u��r������!gI�������'�l�o(��9ew ����c�L��HL/�hA,EK�47U�Q>]ց�x�!�8����V��-Rɐ���+k��pLj��h��a"�D�%�q�K�L�D3D)(1�`|��-cC�B��C-ey|/���O��� -K��#��y�fDLO9����1� d����k����� +���7Q~]o��Y=cI>��&+ƫ]�2o�4oTB��k�Ơexfi�l��6���[�s�A��ֻ�&* !`���m����PD��G��캀�0�n�,���M0�ZL��k~�j��W�a�aR�V�t��cz��|m����� !��H�Fi�IW���]�6.�X� P���@K;ke�/�YX���r ����& +�}P�_h�TBr> +�q5����P�pR�Ԝc�c���0O+k��*��,^��nX=V�*��s����������6� 6�� +�+�x��̦p������;?4�U)i�]�6Y'Bs�!Ù1���gO��n<3��(��5V ��#��L�;AZ��."'F� +���Ld��`�ޯ�O~̏�\�B����2Ȅ¬^�D>�)Kz�Vt��OS��I!Hr%�y���@�^%��KK.@���� �� ^�h��Mj��M����+�d՚D���.o�NM�`��O7�~��6�ȷ*ڪ��jta��� ��YXpue������>6��)]��a�`\�|m_%�u�զ���b�{�dU{�Q{���F��WL���K��d�ee��o�LI$ �B�d� +���ALС��=�W�^1�y�j�ơ���}O(�@��94ZZv= +����6�� N�8�Fi�$ET�+���@�t ���U6- ^��V�ݰj�ܕ�i?ou�wqMH@�K\m���k8E\� 0�8��0K;h���y�q*{�����mt�Zֻ�& !���( ����ފ1���Aw@l�����kb�<툕=��^��7�� �G"�_�àH]�(�_砨��1��[�bl ��V�[��W[o�"���N�=�0���?9�����U�Vqܭ�$�v���⧑;K]1�Wm�s�]<�4���p�.��X�1��� ,֊��1ζN5�Y��zL��"��w��������j,Ý��>��K3���'�̶����:A�3D7 >�O�E}��?�[aY/�E���>b�����}_��c���f�^����Y��6H�=~��e [%yf)8��IP̜��;�ۊu�#���%]T�^X/�_gb�> +endstream +endobj +6478 0 obj +<< +/Type /Page +/Contents 6479 0 R +/Resources 6477 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6453 0 R +/Annots [ 6474 0 R 6475 0 R 6476 0 R ] +>> +endobj +6474 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 492.837 171.594 500.974] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6475 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 134.064 171.594 142.202] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6476 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 122.109 171.594 130.247] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6480 0 obj +<< +/D [6478 0 R /XYZ 69.866 801.979 null] +>> +endobj +6481 0 obj +<< +/D [6478 0 R /XYZ 70.866 771.024 null] +>> +endobj +6261 0 obj +<< +/D [6478 0 R /XYZ 70.866 602.662 null] +>> +endobj +1222 0 obj +<< +/D [6478 0 R /XYZ 70.866 575.466 null] +>> +endobj +6482 0 obj +<< +/D [6478 0 R /XYZ 70.866 407.487 null] +>> +endobj +6197 0 obj +<< +/D [6478 0 R /XYZ 70.866 247.118 null] +>> +endobj +1226 0 obj +<< +/D [6478 0 R /XYZ 70.866 220.375 null] +>> +endobj +6477 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6490 0 obj +<< +/Length 1757 +/Filter /FlateDecode +>> +stream +xڵ�Ms�8�����X�oఇ���T�;�K&�"6q�2�<�뷅� F���v�ZR;�V��$�.�ag�`����j��#s�R2g��yR:�O�$�j�<� F�,����qPd�O��}������,��Y�l�������C��@E�������ی���!G-�C��&�=>ag�=81�s~�#c��gp�w���u�#*ԭ��h�D# � ���� ��!���2i��\;<�.'���7�A��q9F���D:%��!%T��xQ +�ra�ˌDI{nv��XIY��,���E����hM��a�3�,]1���M��� (�N_��x O�/����v�q�|:fN�h0��n�xM�a�r%o���(��q�v��I^�4�x�57��'��k��m2���7`]�l��Xo(>}t"��k�������#L�'�Oյ��q>�i���FIQ�U����\ 0A�M��5Ɇ�K�.��}��V���)�d9=���i竮z�Z�eٯ�6�;juw�Qۆy%A�I�=��W,��W�\������rN`��|Zm�b����[��q�����yh�LH�'Q=�F{>*[�#���D�����}��I\4���R6e"��%� � +j?Ϫ�|�zh���^���T�Í�b5-wơd�~�hJ�<�<o���x�Kݻ`a��E�Y?y�]�l��(HJV5a2q��T�0r�| [?�49��kHH�X�w�8Ⱦ�l[��V� P&���m��e�FMTei��.0*!#^���hy�"cs�ZY��PhY����M�O.�]L�I�����i��-[ڎ�FY+c��wE3�T�o]h%x]OJ��R�V�f|gqfiƌ��ܙ�z���y�>�]#RE�8��� C����c���<Y�0#G��Σ�Q�ȱ�<�Ʌx�U��7\uS�&O���S���m��%�.�6*��i�v(��]�^$��mmj+�q���@�[����ӏ�x�w� ��kE�-�[+�jA�U�K��>��닮�p���A-�b��j-L�b�rH =�!d�?f�K|G�����}rWVaN��PU>E��M_�+�T��,ky)��/�g��6��$�d{��1o>9˛�TU�%�>��b����&S�Gf� �y�L��ΚCg�!5�Pc'4�c���l�$��C�dBo{)c�����Hz^��j��u�����F����� +�(fM��-����Yhl�NE��Vx6���p���� �p�M0�@��s� C&氃� ��GpL���q�v2�I��4�d�5�v��'0�ن +LP�Ns� &�a�\z�F�����~0GJZ�l�^�0���� +jÇI�(��p�ZhP�G��&�5͆�˕�1� +��~ʯ�k����fydQ�c�A�(m;Tu��������� ���X LLcl� ��]��`m�R���8I;eu�窅tE 烝���%�l 2k��.��Lo"��l�N�M�&Gg�}������f���|�3X���&���T&�Q98�6Q`O-��m\�SE�/'dp��"I�&6&�&6�w7�_j�f��+��jd�����K}l��:1G"�U���s��_�;qlF��((��a�����{փ� 7x��^?��E���ҏ����!_��6���j�!����pW��F;��nW�]�n�d��N W�N�KU��`P�\�k�HJ��OafAQ�R+����TM��_;�B♇��� +endstream +endobj +6489 0 obj +<< +/Type /Page +/Contents 6490 0 R +/Resources 6488 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6453 0 R +/Annots [ 6483 0 R 6484 0 R 6485 0 R ] +>> +endobj +6483 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 458.45 171.594 466.587] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6484 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 434.539 171.594 442.677] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6485 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 422.584 171.594 430.721] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6491 0 obj +<< +/D [6489 0 R /XYZ 69.866 801.979 null] +>> +endobj +6492 0 obj +<< +/D [6489 0 R /XYZ 70.866 771.024 null] +>> +endobj +6195 0 obj +<< +/D [6489 0 R /XYZ 70.866 580.23 null] +>> +endobj +1230 0 obj +<< +/D [6489 0 R /XYZ 70.866 553.034 null] +>> +endobj +6493 0 obj +<< +/D [6489 0 R /XYZ 70.866 350.974 null] +>> +endobj +6107 0 obj +<< +/D [6489 0 R /XYZ 70.866 162.056 null] +>> +endobj +1234 0 obj +<< +/D [6489 0 R /XYZ 70.866 135.101 null] +>> +endobj +6488 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R /F92 4494 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6501 0 obj +<< +/Length 1560 +/Filter /FlateDecode +>> +stream +x�͚�s�6���+8�X�o���m���^���e3�!Yf������}B�#c�NO$A|�O��ޛ\����\`�����ůw��k����R2���SRz*�H��ɻ� �ˇ�/�{�Kx���u���+��*_o�8��*�3=t��������#;� @��:]�?`� �}�@1�����!�����Z�� SO�Pa��$�B,�- �M��$���JGpy��p *TyvQi�+^l����MV��!(�;��iTɻq��g��,l��b�h��OSݭ�L������"0�ӱ +$�j�<_� f [d�H�����^�]����u[ť!��n���%�~���yi��?�kd.:��?yGf6��zB�R/i�cp�iQ�7K����Ҹ����egA\����l�>*8�����JhN�'���Ji�h�)�V�a?����~[Q�IP�ؾ������78�R����}�e�4ux�q�"&zvx#�@���g�/��L3�M��v��˨@TM��H�a��p�Ұt��z��B*P'�5��MV�2 k������:�l��X��`�~T�4,T,D��Ǧrq+ΑP� XM�t��6m�b�������`7-"7x�^sHZҪ�0i{#:�+�qt�}�@BKGq��Ef$;��f��|[ �8���b�u����qZHn�! èN2���G�G$�����_4�%(>���*��1͒�e�*s�$�]9!�'�~b�8L��2�ɮN���m��d؏�8[�O�oK����痸z�����v�S����#�����</���8+`y���#�����({�m9�\��l7Q�Bw�d��N] s�0���)1$;�"�@c�6o1l�:���6h$E(2;�e�-O P�'ee� -V/0�\�neuj�^8bqV���r������]����/l�QQ��� +<=Z�B�H Ok����?���qS%��d��(��S��-���u�{ځ��-T[���|u��o�Ejm�㼃M��&��#f�9ތ��^Ԓ��e����ؿ�>dnޚ�Ii~�̯��)I㬄�Gsg7k}�5k�}���4R�H��sM�3�ZV�Ű��˥G_��%��3�&��+ ێ�]��_F�Ʋ��إ�]���] +�C��`��0G!%���y&Ӣ�����$�������3���I�L&zv3)ɐI׳L����*��6��6;�aA0a�=���l��4,���)�g�I�O`t���юi6��4O'��s�<�F��'��`X�8]�4,]2@��3ԚT1ĥ<��i�n�ڦv��,֦E�f��peyh;�a����A ��<�fiX�t�6ܧ;6"u�qئY�ak��ki4�M�� ^;���kC�����Km���n� +G���b�:h=ݤ�]mm7@�4g7Um瑍��t�`��fq���՝X:����i$�z��vTo��ipq�h���n١�ԋJ���x���H��H� +U�@Ӫ~��ݪ����������F$�J��;��H6'��8���ru,�r���?_���q�~�@ +endstream +endobj +6500 0 obj +<< +/Type /Page +/Contents 6501 0 R +/Resources 6499 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6453 0 R +/Annots [ 6486 0 R 6487 0 R 6494 0 R 6495 0 R 6496 0 R ] +>> +endobj +6486 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6487 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 743.244] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6494 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 422.895 171.594 431.033] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6495 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 410.94 171.594 419.078] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6496 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 398.985 171.594 407.123] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6502 0 obj +<< +/D [6500 0 R /XYZ 69.866 801.979 null] +>> +endobj +6503 0 obj +<< +/D [6500 0 R /XYZ 70.866 698.488 null] +>> +endobj +6192 0 obj +<< +/D [6500 0 R /XYZ 70.866 544.676 null] +>> +endobj +1238 0 obj +<< +/D [6500 0 R /XYZ 70.866 517.48 null] +>> +endobj +6504 0 obj +<< +/D [6500 0 R /XYZ 70.866 327.375 null] +>> +endobj +6270 0 obj +<< +/D [6500 0 R /XYZ 70.866 163.786 null] +>> +endobj +1242 0 obj +<< +/D [6500 0 R /XYZ 70.866 136.741 null] +>> +endobj +6499 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6529 0 obj +<< +/Length 1513 +/Filter /FlateDecode +>> +stream +x��Y[o�H~��@�����/ҪR�i��T)�Fڇ4�(�)����t���<���>a�p�o���̜���$�[Mpp������������,��(����2I\̓�`��tF�Q�L�W��"���C�eJp�,�<N�7W��4Z���Yu{��j����]� ��HSċ�� ���]�3:x�G..���,�8���_�@!�0��F�`[���ӼԷe��������� +հ��j��������2s��A��/[�X� �g3���7�7��͙%ׅq�;0��%�Z���Y��k��=�<3 ���',�DMK�3B��3�AZv�_�錈0-�f#{�>�"�����杧m�ڣ�_�k�սp_��2-�k@�g�*^�N\QͶ�Ԟ"-������0ZF��L�SB�U�[�ܑB"C̮ܡD@F�M��F�f"�;�w�0����L4�k�TV��Q +���%.Dck� X!�)� �\`�]x0�B��q ��沘�����j-]/>���ŗ��Z�D�d��5���nK�W���5ʆ��2�PcH+y��!�����w�k�_[mȸ����:��*����5ʆS0\�b��(FRj��b]���0L��ڨ��]�U����06~ݵ��p�h�VÄv4�m�� ��8���ᔆ)RL� +E��� #q�6�/��1 ��k� ���(p�K=Dz�<Xl��j� +(��q�eJ�Q��3�+�跧�3ӫ��{�n��f+�� b����p�Q-�/>Bi�;@>���ic�zm���%�n +�fC{蕕My�Fw4�m�(���� ������Av�w�|�J�)��4w�2�t��+�Nj1�5?S�G!��\"�U�kE0Ƈ��z3���;Hm�}���uU�ZU��4,~����p]�gig�C#�5R@�f6���<�B6�8\�?�L�cˀpe3��P�ʺm���[���E���uL��M��0�^�3�`0��yT����r����2Y�:J�DF +�܉�'JE��z&��6�`��>�I�vJ�y�赵�W��aiTE�R��*�s��[\^�Y�8�Ժ�ܦP�[^:'�(�7��_�E��i+� �!�`'1M"��)�aq2�?���`ח};T�p^�?W̲��"q�w�|��*����F�%�$/.O�j��K� 'q�����x}�q�M:����3"�ϰ�? ���[4C�M8�J��6��*����NC-�]��خ�'�^����p饰���Wu�n�}��^;7���p��;ZF�m�~���y[��Q��S���gY/E6q`=����r��O�`2�7�O�dǫ"Βh��Řh��'3,��뒸,Z�A!9uD�l}l� �b�������ZƷ'��y�*;V�0<*���6Y�"�8�z�S���i~{�E�8��>0��K��� ��KT��� ��v5���Uxq��t��7I�,��Y+������2>�����0���eQ +endstream +endobj +6528 0 obj +<< +/Type /Page +/Contents 6529 0 R +/Resources 6527 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6535 0 R +/Annots [ 6497 0 R 6498 0 R 6505 0 R 6506 0 R 6507 0 R 6508 0 R 6509 0 R 6510 0 R 6511 0 R 6512 0 R 6513 0 R 6514 0 R 6515 0 R 6516 0 R 6517 0 R 6518 0 R ] +>> +endobj +6497 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6498 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 711.196 171.594 719.333] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6505 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.326 337.346 172.766 346.803] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +6506 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.678 257.461 160.689 266.918] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6507 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.678 230.659 173.009 239.43] +/A << /S /GoTo /D (matrix_8h_af57ae8796956bfd0ee173b9040ba5192) >> +>> +endobj +6508 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.678 216.917 149.598 226.374] +/A << /S /GoTo /D (matrix_8h_ae71449b1cc6e6250b91f539153a7a0d3) >> +>> +endobj +6509 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 151.875 156.466 161.332] +/A << /S /GoTo /D (matrix_8h_acfd2bbc4a90915e57a4555694e842312) >> +>> +endobj +6510 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.194 151.875 275.205 161.332] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6511 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.654 151.875 361.665 161.332] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6512 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 124.181 164.437 133.638] +/A << /S /GoTo /D (matrix_8h_a0e06b2cfb86340e88be7b1219bef0ce3) >> +>> +endobj +6513 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [249.165 124.181 283.176 133.638] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6514 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 95.676 184.288 105.944] +/A << /S /GoTo /D (matrix_8h_ad7c9a682a3cc4ca33c030afa8798241a) >> +>> +endobj +6515 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [269.016 96.488 303.027 105.944] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6516 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.414 96.488 406.425 105.944] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6517 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 67.983 222.664 78.251] +/A << /S /GoTo /D (matrix_8h_a48b36217faeda15438f4e07c54d0ef9e) >> +>> +endobj +6518 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [268.012 68.794 302.023 78.251] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6530 0 obj +<< +/D [6528 0 R /XYZ 69.866 801.979 null] +>> +endobj +6531 0 obj +<< +/D [6528 0 R /XYZ 70.866 674.577 null] +>> +endobj +4161 0 obj +<< +/D [6528 0 R /XYZ 70.866 533.123 null] +>> +endobj +1246 0 obj +<< +/D [6528 0 R /XYZ 70.866 516.805 null] +>> +endobj +6532 0 obj +<< +/D [6528 0 R /XYZ 70.866 377.318 null] +>> +endobj +6533 0 obj +<< +/D [6528 0 R /XYZ 70.866 297.433 null] +>> +endobj +6534 0 obj +<< +/D [6528 0 R /XYZ 70.866 191.847 null] +>> +endobj +6527 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6609 0 obj +<< +/Length 1826 +/Filter /FlateDecode +>> +stream +x��[Y��F~ׯ�UY�p���ɺ�U�Jl�iUB�L�"P֛_��1�i��6NjYCOwO����[~�UWv�);)g��U<�wSY>).�<�Q\��]Yn���[�|�����ʹH^?$i<_����G�}��a��&�����1Ӂ)z���4ϰ�h?[����o���{�3��+�mj�e�ߩ�e�[���$j�z����j���|��utx�����2.���W�n�-i���ǹ��0+y�^�O���>��n��7�̎�q�`�5�-C3|SY��Z���0la��Zض��97l5O����q���PI��(?�M����0�#��)�ʹ�zA��~G��}�2{7^`�&�8FA�h�_����L�qQ6�¤t��lw����-�5-�zf,��qc�C~f�r�=ˁ��4藢�t������Zv��� �',��g���>P`b���v��]���(�(+͏����$۶�g�w��8����e���<�����Q9���fA D�X��.�G�|ۦ��F�Q����Gy�NE����S�sAN>�}'�S�t;�4����lD<=[]�d��#"Owy�m�B�B�4ȸ��i�x���n�� Zv18�V���2�k��$ۥI/az�� <����q�+�^�yIѕoe�7\`����S��+8�~�j�~6��!=��)�q$�� iH��)���8x^���#�u0�I�� ���5\�&A<�D�W�K�}aT�n�ۆ�o�Ա�y��י�2A@��t;�㿗 � u�+f �9[�Eo:Y8����.i�l�/e i�ŵV�pQ 80$���n#�꽟(|�D���\�wX/��n��a����#���C�խ������s��F#N��fh���=����7�YP��!M��-��)�y��ئ�K�mx!�8�[�η�C�-�bȺۯ��a���k����n���{R`�o�����3l�C-^�]+HY6l�y0j ��s���H��6D�٦��+2���]T�F����l��VG���'�&��ll�pi��\������ne�2���F�n��2�n7�U4ž9� +o��_��BOמ�sR~(���=̦^�ǹ����|ў��G[���Ci^�K�^�yC�9T�;�N��������ob�yy�n��8 +�ؾA�X?����m��Zk��ՂiU���bB Ͼ~��0��%d� "�a�pUi^�Vmy�O��(�./�8����D�7�mK�3^f�ۧNў��P���ە�q��&Ş���%�?"��kf{�+�0 �g��̔��f٪�`@��E`@���w)�qP�i<T�R�䰝<%2�KU� +��<a�{M�*����ӧ&͉�U����$���.s��b1�ME\[|�DN�ء؍K+>�d�Oj�{^_b6�0M%,���b�"�8�Q���]��`pą,�h��d��@��f[>v"L�/�^�~ه[wzz`���6Q��ɏ�kV5^[YOI�zu\���p�!�x�G�!v&�A��&����� v�������� +�1y}��u�\4����Ӽ7 �d��4W�^�@`���Z�1��X^�o<��q�������^�T��u��e�NI�^�+��βj�/{w��7�-E�!e�̈́Q�0�+�۞���ҏU-m�u���^��!�qV�`߇8<V�fo�-Jz՞��D�كۗ�7����%[�{��Yڹ�*��Y��'X�\Z;� d�"e���h��C6 ���� �5aD;���lۂ��8�e��,�����E^~{���g����T^ +endstream +endobj +6608 0 obj +<< +/Type /Page +/Contents 6609 0 R +/Resources 6607 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6535 0 R +/Annots [ 6519 0 R 6520 0 R 6521 0 R 6522 0 R 6523 0 R 6524 0 R 6525 0 R 6526 0 R 6542 0 R 6543 0 R 6544 0 R 6545 0 R 6546 0 R 6547 0 R 6548 0 R 6549 0 R 6550 0 R 6551 0 R 6552 0 R 6553 0 R 6554 0 R 6555 0 R 6556 0 R 6557 0 R 6558 0 R 6559 0 R 6560 0 R 6561 0 R 6562 0 R 6563 0 R 6564 0 R 6565 0 R 6566 0 R 6567 0 R 6568 0 R 6569 0 R 6570 0 R 6571 0 R 6572 0 R 6573 0 R 6574 0 R 6575 0 R 6576 0 R 6577 0 R 6578 0 R 6579 0 R 6580 0 R 6581 0 R 6582 0 R 6583 0 R 6584 0 R 6585 0 R 6586 0 R 6587 0 R 6588 0 R 6589 0 R 6590 0 R 6591 0 R 6592 0 R 6593 0 R 6594 0 R 6595 0 R 6596 0 R 6597 0 R 6598 0 R 6599 0 R 6600 0 R 6601 0 R 6602 0 R 6603 0 R ] +>> +endobj +6519 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 745.436 163.675 755.704] +/A << /S /GoTo /D (matrix_8h_ae8d8daa117e9f96a5e29fe6c76c4998c) >> +>> +endobj +6520 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.403 746.247 282.414 755.704] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6521 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.801 746.247 385.811 755.704] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6522 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.245 717.96 185.224 728.229] +/A << /S /GoTo /D (matrix_8h_a56513a88eff05b0683320c532fadf945) >> +>> +endobj +6523 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.111 718.772 308.121 728.229] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6524 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 706.817 525.406 716.273] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6525 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 666.467 190.501 676.843] +/A << /S /GoTo /D (matrix_8h_a53879e7c4cfbc96725aef9f8234be7dd) >> +>> +endobj +6526 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [275.229 667.386 309.24 676.843] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6542 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 639.91 159.963 649.367] +/A << /S /GoTo /D (matrix_8h_ac7101bbaa3a2698658276a7e21501093) >> +>> +endobj +6543 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.691 639.91 278.701 649.367] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6544 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.591 639.91 346.602 649.367] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6545 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [380.492 639.91 414.503 649.367] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6546 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 611.516 194.357 621.891] +/A << /S /GoTo /D (matrix_8h_aa8acafd4181978f536976f8151e51516) >> +>> +endobj +6547 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [237.222 612.435 271.233 621.891] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6548 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [384.95 612.435 418.961 621.891] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6549 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 584.959 159.461 594.416] +/A << /S /GoTo /D (matrix_8h_aed6fab1ffa40243eeb08117215082be3) >> +>> +endobj +6550 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.189 584.959 278.199 594.416] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6551 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.089 584.959 346.1 594.416] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6552 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.99 584.959 414.001 594.416] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6553 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.404 557.483 159.277 566.94] +/A << /S /GoTo /D (matrix_8h_a550aa0d5a3212e35ad0af134895fd20a) >> +>> +endobj +6554 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.182 557.483 355.192 566.94] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6555 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [233.541 545.528 267.552 554.985] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6556 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [407.237 545.528 441.247 554.985] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6557 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.322 505.286 180.988 515.554] +/A << /S /GoTo /D (matrix_8h_a3763252ca00e4c8522ae1bfd5ef40f0a) >> +>> +endobj +6558 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [287.261 506.098 321.272 515.554] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6559 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [122.811 494.142 156.822 503.599] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6560 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.861 470.232 331.871 479.689] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6561 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 442.756 178.075 452.213] +/A << /S /GoTo /D (matrix_8h_ad610bcce232c69ca302550f57b1ad9fb) >> +>> +endobj +6562 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.803 442.756 296.813 452.213] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6563 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.263 442.756 383.274 452.213] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6564 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [412.457 442.756 446.467 452.213] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6565 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.502 415.281 202.916 424.738] +/A << /S /GoTo /D (matrix_8h_a53b0a1829b2085414fb66a9e9bd6c7b7) >> +>> +endobj +6566 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [287.718 415.281 321.729 424.738] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6567 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [415.717 415.281 449.728 424.738] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6568 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 415.281 525.406 424.738] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6569 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.819 375.85 233.857 385.307] +/A << /S /GoTo /D (matrix_8h_acfd7c6f021f4fbcd393fe849c82f34de) >> +>> +endobj +6570 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [283.529 375.85 317.539 385.307] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6571 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [411.015 375.85 445.026 385.307] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6572 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.669 363.895 160.68 373.352] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6573 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 336.419 200.992 345.876] +/A << /S /GoTo /D (matrix_8h_a3cf18a2c5c6ad62a4e0a0c00d27e2887) >> +>> +endobj +6574 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [285.72 336.419 319.731 345.876] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6575 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.397 336.419 385.408 345.876] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6576 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [437.858 336.419 471.869 345.876] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6577 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.115 308.944 229.517 318.401] +/A << /S /GoTo /D (matrix_8h_ac735d13efe5b76ecf60ac13ec79da8e3) >> +>> +endobj +6578 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.526 308.944 346.537 318.401] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6579 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [374.814 308.944 408.825 318.401] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6580 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [439.819 308.944 473.83 318.401] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6581 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 296.989 128.787 306.445] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6582 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 269.513 207.609 279.176] +/A << /S /GoTo /D (matrix_8h_a0107887a6c40980fa639750be8262f01) >> +>> +endobj +6583 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [292.337 269.513 326.348 278.97] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6584 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [360.238 269.513 394.248 278.97] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6585 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 241.118 220.261 251.494] +/A << /S /GoTo /D (matrix_8h_a49aa70a7d6ad76388ea08acfe43b7374) >> +>> +endobj +6586 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [304.989 242.037 338.999 251.494] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6587 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.555 242.037 399.566 251.494] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6588 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.205 213.643 222.299 224.019] +/A << /S /GoTo /D (matrix_8h_ae808f007791f060590d39c7668501988) >> +>> +endobj +6589 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.464 214.562 350.475 224.019] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6590 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 214.562 525.406 224.019] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6591 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 174.212 199.333 184.588] +/A << /S /GoTo /D (matrix_8h_a18e47742f1653dcc4491badfe2537a0a) >> +>> +endobj +6592 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [284.061 175.131 318.072 184.588] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6593 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.628 175.131 378.639 184.588] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6594 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.416 147.655 188.187 157.112] +/A << /S /GoTo /D (matrix_8h_a51139e6c87b602e5e0ebfbc406fda35d) >> +>> +endobj +6595 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [272.58 147.655 306.59 157.112] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6596 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.252 147.655 400.263 157.112] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6597 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [426.687 147.655 460.698 157.112] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6598 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.661 119.261 211.238 129.637] +/A << /S /GoTo /D (matrix_8h_a3ae0b9f73f82716f3427a523a3412864) >> +>> +endobj +6599 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.414 120.18 336.425 129.637] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6600 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [462.338 120.18 496.349 129.637] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6601 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.262 79.83 231.631 90.206] +/A << /S /GoTo /D (matrix_8h_ac20399f6a8de13b1f392a1e3f7c0fbf4) >> +>> +endobj +6602 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [364.453 80.749 398.464 90.206] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6603 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [189.881 68.794 223.891 78.251] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6610 0 obj +<< +/D [6608 0 R /XYZ 69.866 801.979 null] +>> +endobj +6607 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6684 0 obj +<< +/Length 1618 +/Filter /FlateDecode +>> +stream +x��ZAs�8��Wp��� ! 8v���tz�M��C�a�-;t0����߯�������XO��>}z��zr�7Ж��Җ��ݎ����olGsM�[�,4�2]B4ǃ&�d����24��q�U����$�݄Owta�K�)�g�x�|Ґ��uY/�¼x��d�}X����/�5]���jt�hisV�I�L�s���JC�61��s�}�S�_�-�����>`y��X'�29�[��q�g��Y�,M��YmVqk��1XgN)�W��z5��!4�gkc`�)�b��K�+�R���v�ݏ1&�n���������K����ŧ]�a��9�M�,lm�8w}�Օ�m�W������6�_=�Ǐm��Q�1'�fņ����n�]93G+h�O��Q�.i&K�Kh��b���$���Tp�C�`��O����Jؕ�N3搜ր� =EN�4�Q���=,��k�D|�9S��� +���b�c�0Rc3��\��[#���.�!���Z���`!K��j�ۣ`�f,4�@���aP���X4d-��J�41���K������9��e���2yk[�oU]��m�&w�Q�]�}����6�����;��oL]�R��V|�|F���s���-���nD��[t!���R�p������n�P�IE��H=�Z���P�@R����yA.!�nY!���K��존C�Mh{G%6�X�6���$��<L�V6L|�ė4/�M���`�����־>� +>Y�z�P���D��&뢍sa[���9o�n�̩�4�@vģ�3;�-�����Vv�[h�+�BЍ�SE��S"���*l+�V�f!�)]�����ؕ7ޚ���ૹp��<O6SZzD_dl�b��������U��4��F����x;��EZ��J"���7A$+���>��& +R!��}�Y��i2��Ѿ1fqJ�p#�;�����Xx�a��3�6�_V��H}mH�0[��6W�C_� ����,*��n��*ͪ(Mzg��2ڪ9�\��ʇH�ڗ���'��硜x%��ߊd�љគF��Q�GdC������A�A����*]�6T����+��L�����w���|�[�-#4`�~�u���O�*�VZ��%�����q��@B +H�)�.��f +#.\���:�¨.�'�؋�^��ty����`�l�~oP�f��ͥe��ܲ�pt�(��~fV)K�ߔ���T��^�t����ԟ�wa[�`�Ӕ7x�B2X��,U�4���L�q{E���p^؝*�_e�N/{5e�%_�{�m��6px�M�EQ9����X}�O�泱�����${vR����l��͗�h��3���ªȭA��;�Zh;�-��BG3��w#=� +I�-�����:�zm nܙ����Ա^\��� |^��\W�����ͳ��TI��zi����=�>�3�,�-���*��: +g�6��f����0j$��U�rp2�m?~{�w_) �����s��7�ݟS�(u���LJs�W���>˧�^z�ڎ�Ю%����փu>(l��U�0��}�Yl����v��վhG�$�Z1M��J!+2`2������%���q��J +endstream +endobj +6683 0 obj +<< +/Type /Page +/Contents 6684 0 R +/Resources 6682 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6535 0 R +/Annots [ 6604 0 R 6605 0 R 6606 0 R 6631 0 R 6632 0 R 6633 0 R 6634 0 R 6635 0 R 6636 0 R 6637 0 R 6638 0 R 6639 0 R 6640 0 R 6641 0 R 6642 0 R 6643 0 R 6644 0 R 6645 0 R 6646 0 R 6647 0 R 6648 0 R 6649 0 R 6650 0 R 6651 0 R 6652 0 R 6653 0 R 6654 0 R 6655 0 R 6656 0 R 6657 0 R 6658 0 R 6659 0 R 6660 0 R 6661 0 R 6662 0 R 6663 0 R 6664 0 R 6665 0 R 6666 0 R 6667 0 R 6668 0 R 6669 0 R 6670 0 R 6671 0 R 6672 0 R 6673 0 R 6674 0 R 6675 0 R 6676 0 R 6677 0 R 6678 0 R 6679 0 R 6680 0 R 6681 0 R ] +>> +endobj +6604 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 745.121 128.787 754.578] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6605 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 744.202 265.45 754.578] +/A << /S /GoTo /D (matrix_8h_aef8d1508ad101227ab255a714ab22b94) >> +>> +endobj +6606 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.178 745.121 384.189 754.578] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6631 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 715.394 128.787 724.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6632 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 714.474 284.889 724.85] +/A << /S /GoTo /D (matrix_8h_a0a3d3cfa20ad3e75ad783af457343672) >> +>> +endobj +6633 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.617 715.394 403.628 724.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6634 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 685.666 128.787 695.123] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6635 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.445 684.747 288.4 695.123] +/A << /S /GoTo /D (matrix_8h_ad2cecc467ac6480ef0f3423f962b39bc) >> +>> +endobj +6636 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [428.841 685.666 462.852 695.123] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6637 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 643.983 128.787 653.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6638 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.518 643.064 305.912 653.44] +/A << /S /GoTo /D (matrix_8h_a8d77cfae4f1da83acac929c1ce13d252) >> +>> +endobj +6639 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [435.754 643.983 469.764 653.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6640 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 602.3 128.787 611.757] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6641 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [130.988 601.381 353.469 611.757] +/A << /S /GoTo /D (matrix_8h_a5f6a1948ec005cff4985559821c4943f) >> +>> +endobj +6642 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 602.3 525.406 611.757] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6643 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 559.806 189.31 570.074] +/A << /S /GoTo /D (matrix_8h_a875d6c55a16ee9f8bf523b8c1c82bc6f) >> +>> +endobj +6644 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [232.175 560.617 266.185 570.074] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6645 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.798 530.078 211.411 540.347] +/A << /S /GoTo /D (matrix_8h_a3570c016691507c003dd7a54cb37e7e2) >> +>> +endobj +6646 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [258.529 530.89 292.539 540.347] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6647 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 488.288 212.469 498.664] +/A << /S /GoTo /D (matrix_8h_aec03481d950677386122e3c8ba6a5cd0) >> +>> +endobj +6648 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.197 489.207 331.208 498.664] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6649 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 458.56 214.056 469.142] +/A << /S /GoTo /D (matrix_8h_aaf85a32b8562c91d2d1889819580375e) >> +>> +endobj +6650 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [298.784 459.479 332.794 468.936] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6651 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 428.832 221.22 439.208] +/A << /S /GoTo /D (matrix_8h_ab166871472924745f70e2bb6e17498c8) >> +>> +endobj +6652 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.948 429.751 339.958 439.208] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6653 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.533 429.751 402.544 439.208] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6654 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 399.105 219.579 409.481] +/A << /S /GoTo /D (matrix_8h_ae8e87640fa1a2d259ee4dc98c955cb48) >> +>> +endobj +6655 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [304.307 400.024 338.318 409.481] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6656 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.404 400.024 399.415 409.481] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6657 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 369.377 204.955 379.753] +/A << /S /GoTo /D (matrix_8h_abbaf8f39b2b7bb4bd2987f99674c1213) >> +>> +endobj +6658 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [289.683 370.296 323.694 379.753] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6659 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.775 370.296 385.786 379.753] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6660 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 339.649 203.314 350.025] +/A << /S /GoTo /D (matrix_8h_adfd93dda9be9b2e8df5805af7fee7845) >> +>> +endobj +6661 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.042 340.568 322.053 350.025] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6662 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.134 340.568 384.145 350.025] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6663 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 310.029 162.581 320.298] +/A << /S /GoTo /D (matrix_8h_a32ab12965ec43c2acf65cf9dd510353a) >> +>> +endobj +6664 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [247.309 310.841 281.319 320.298] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6665 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.226 280.302 183.11 290.57] +/A << /S /GoTo /D (matrix_8h_a72073ccd483f9cc438425d3d8ffd3029) >> +>> +endobj +6666 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [266.63 281.113 300.64 290.57] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6667 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 238.619 181.249 249.093] +/A << /S /GoTo /D (matrix_8h_a82f374a9b8b215f0ef53d35401eae524) >> +>> +endobj +6668 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [265.977 239.43 299.987 248.887] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6669 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.777 208.891 202.329 219.366] +/A << /S /GoTo /D (matrix_8h_a72297a60e572f85929989e813388a9c5) >> +>> +endobj +6670 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.639 209.703 322.65 219.159] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6671 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.023 167.208 250.217 177.477] +/A << /S /GoTo /D (matrix_8h_a06f75ae4924e3f0dfd0b6a25313dc731) >> +>> +endobj +6672 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [376.649 168.02 410.66 177.477] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6673 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [438.772 168.02 472.782 177.477] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6674 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 156.065 128.787 165.521] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6675 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [392.018 156.065 426.029 165.521] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6676 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 114.382 128.787 123.839] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6677 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 114.382 178.747 123.839] +/A << /S /GoTo /D (matrix_8h_a722a0230185fd66f0cecbeae7d50ce1a) >> +>> +endobj +6678 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [263.475 114.382 297.485 123.839] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6679 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 84.654 164.069 94.111] +/A << /S /GoTo /D (matrix_8h_a90b6eafa665d34d7330581c32564d632) >> +>> +endobj +6680 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.797 84.654 282.808 94.111] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6681 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [408.027 84.654 442.038 94.111] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6685 0 obj +<< +/D [6683 0 R /XYZ 69.866 801.979 null] +>> +endobj +6682 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6712 0 obj +<< +/Length 1037 +/Filter /FlateDecode +>> +stream +x��W�n�6}�W�����Vg7I���鮟� Y�m!����&���)K��&�E�`��8��3g��է[���� p�\���+*@�Cߧ`����� �1X%������W�U�(�a7}�f�[��˸�e�DMZz�s�r�p�Z��\q���#��o���[�2�S�U�|v~; +#(x���1DC�2���!��l"bbb�u\�{�� G�F`A���&j*养�So�����W{jv�(+,�ς�Xu3igmb`+���0r��6�����DI��gv�����lT�c�oE�/�ά�t�A��P?���@P���4K�0�mve5�`�3� �*o@�x����12xD}p�:O������>�h8�G�%��0P�0d��Q����ikYei����Y(�Q�e�G���MWAniI�!Rt��@�Y�(̸E�'��<���[�� +�O���Dn�B�·&݈B�0��)BRB����;��mjX�����mkM�*��ɩ�m��(re%��xi�yژuI�Q$�hV���Ϩ�Yw^=�l���* +��i�Y�����]z��~�����,,{��\.�+p_Y�۽��n�.[[��CVd�r��#�53��Jc��3�+�)-�VH�h����}�b[|�N%)��;A�r�z��I��O��7fg0�ޒ�]g��c+giH��B�ӳ���Lj]8� Ĝ �%C��]Y���Z6�tyJYL�R�JK����?�8 ޜ��S�k~���+��� J4~�đ���im_�4�I���]��PS� +&��Ð��[t`�����*l���N��0k��cqf����ܫ>];��d\c�^9َQ�hh�[���w��k75�?�������a������D���b��@��Ψ�!a|*7���\m�un�3��������L���b�8��/gw�J6��w��͚iDZ����S���P��r���~���Y�>� �L=�����������;�|��/1O�[��,�!���C� +endstream +endobj +6711 0 obj +<< +/Type /Page +/Contents 6712 0 R +/Resources 6710 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6535 0 R +/Annots [ 6706 0 R 6707 0 R 6708 0 R 6709 0 R ] +>> +endobj +6706 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 678.816 297.675 705.356] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6707 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 138.537 171.594 146.674] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6708 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 126.581 171.594 134.719] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6709 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 114.626 171.594 122.764] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6713 0 obj +<< +/D [6711 0 R /XYZ 69.866 801.979 null] +>> +endobj +1250 0 obj +<< +/D [6711 0 R /XYZ 70.866 771.024 null] +>> +endobj +1254 0 obj +<< +/D [6711 0 R /XYZ 70.866 665.356 null] +>> +endobj +6537 0 obj +<< +/D [6711 0 R /XYZ 70.866 633.145 null] +>> +endobj +1258 0 obj +<< +/D [6711 0 R /XYZ 70.866 606.733 null] +>> +endobj +6536 0 obj +<< +/D [6711 0 R /XYZ 70.866 523.418 null] +>> +endobj +1262 0 obj +<< +/D [6711 0 R /XYZ 70.866 497.007 null] +>> +endobj +4561 0 obj +<< +/D [6711 0 R /XYZ 70.866 413.691 null] +>> +endobj +1266 0 obj +<< +/D [6711 0 R /XYZ 70.866 387.28 null] +>> +endobj +1270 0 obj +<< +/D [6711 0 R /XYZ 70.866 277.369 null] +>> +endobj +6614 0 obj +<< +/D [6711 0 R /XYZ 70.866 245.186 null] +>> +endobj +1274 0 obj +<< +/D [6711 0 R /XYZ 70.866 218.775 null] +>> +endobj +6710 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6719 0 obj +<< +/Length 1599 +/Filter /FlateDecode +>> +stream +x�͚˒�8��~ +�vU[�]bٙLR�U&ӻN����q��������Fx�f��K��I��s��<|�D��a��m�����7� +4 +�d�÷@a��TH�$��&x��8],���}T�_�{���.��w��o��q��x���1�L#�5�T\��g>�~�|�r��iʃ�~���� ��c�u�R^��`Hp����_��1�¼5/�5�8Z# ��6�ӂ�y�G����!�CY-����DH�D�Fxc ����h`�\�&�JT]"���J�%�!JA�!_��.� � +1�Z��(����m�wxB3���h�J!A�<�lA���b65��_��s��z-�ǯ�/�p���OV�F� �FϨBTy�E��p�K�6I��F%���nn�� +��,ݸ5M���<ݸ5=�Yrܧ�.m�c�f�$�&iX�ED5���k�6"Q����Y�ik��?�Pj1�_{���M_3��.-j�j�N�}��懢�^j��bB +�D�&iT��PA>�gM��j�"���yZ�Qk���5�ܨ5c�G���t3���qv(1��I�MӰ�&<o@��,�R��fǢ5?O'j-��Տ�xX�!�/'q�P���ćb�F�.K�`7:�.2 ��A7V��a�$�����]l�t��%�]��]j{�q��M�-I7=A�!�%�P��!15 �k@;ݿ.(���(� +�/X`�#��Y +��u�E0 �~��-CW��$U�U��6�ȼ�֢�&L#�B���dP +�f=g;R6�j�m���* +�#W"X�������UQ�����/�.|�;[]�1ηv�?��E����LldE�@=������+�`n�Ow�NX�˽�b�f'����o[�%��������U��ޚKX�Z��o,��;?����,���S���8-�y]XdڧgGf�0�y�JpH����la�����4�j��{�nP&r�QHxO6E���Z��8X 80�2uy��)�}=�{Y(�/E�ӷLt�dR!�}��KH���5I���i�i4�A�BRv���ΝDY�<m�����) -q�18�k�П=]����:x �/1��4 ����W�T�C�A�J�^�<-�x5MO{t�������f������f�<�}^Pi䋅��͗}$�nI�"� ���0��4,�*_H5���"Q��b�C����Ħi9�u�v�A?o7�M��Z�������M�����ѥ$����q�zd�������+�� +���juHayٮ�Q���S-yg����n[��<�צY�(kW�knG��tm�a��wր���Z�Vw<�M=�h +�y"�`(%�0z�����K\��lp�y�U�����+�=��S�b�` +m��s�(�.��4�J�����^�fJ�4���y�ٴteF�| +(��ۛ�dH������ٱ�P�z���P;L��@�2D���#�-3�H�?��}��e�~ӰL/3���d��xã��ё:~�R�pS��$a��@�K�-�H�m�5�]�ݏ]��a���������f,Sj�F��}FB��t`�%�#er:��k���$���7rn.��v���q�\�]f�_��&����<w��� +endstream +endobj +6718 0 obj +<< +/Type /Page +/Contents 6719 0 R +/Resources 6717 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6535 0 R +/Annots [ 6714 0 R 6715 0 R 6716 0 R ] +>> +endobj +6714 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 492.837 171.594 500.974] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6715 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 468.926 171.594 477.064] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6716 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 155.257 171.594 163.395] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6720 0 obj +<< +/D [6718 0 R /XYZ 69.866 801.979 null] +>> +endobj +6721 0 obj +<< +/D [6718 0 R /XYZ 70.866 771.024 null] +>> +endobj +6615 0 obj +<< +/D [6718 0 R /XYZ 70.866 602.662 null] +>> +endobj +1278 0 obj +<< +/D [6718 0 R /XYZ 70.866 575.466 null] +>> +endobj +6722 0 obj +<< +/D [6718 0 R /XYZ 70.866 432.2 null] +>> +endobj +6539 0 obj +<< +/D [6718 0 R /XYZ 70.866 277.038 null] +>> +endobj +1282 0 obj +<< +/D [6718 0 R /XYZ 70.866 249.842 null] +>> +endobj +6723 0 obj +<< +/D [6718 0 R /XYZ 70.866 120.342 null] +>> +endobj +6717 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6730 0 obj +<< +/Length 1445 +/Filter /FlateDecode +>> +stream +x��YK��8��Wp�U�" I�u7�T�a+��mf�� {�����d�������d/{pA���}�V��߾kSͰ����e��r���Z�p���r1�\�"A�el=ڄy�����7� ��NR9_P׳?Q�ɼ�ȕ�������$����G�e��gl����D߳^[��b�A�9�Z���I� 3A���I>aL5,��3M��T&��X맚a��º�/���(B���ZPVk��z�`[�2�d<_0_ث9���z�v�Tu� ++��Q�J�<��:xX><a��G>��c��h*�R��,�ZV���%-@����/Sv�LK �u<,��>7���pOJ �v2-0���q���ZB�υ�#�.D�g�A<[�\I��b�����g6��Ya��e�I~�)�e^���lkd�vl�yXe���c�(rE�0�!Q�Uv�$ Ĺ�B1��<�4Џ"����M(��a@`��aH�$���� +|�S�x�r�,R�aE'��u�y�8����t�ۗ�%J:'�Bo�u�A��=�1{~̟/�ޡܩ=��7P?MO ���c�}�1��a��A���AQ�~钌L�J��0 �#�w� +C��q����Z(�գ ���۴���9evX�����l*qs�ϰw*qS�"N�.q�3�J����G����i���!ں��C4T�`=D�ʼn�\O$��X�ȁ%�Q��ǟ�.��@g6�����z���Ǒ��@e���fP>'�n��a��ᎥG�VCf��� �Dz�c�`8/�;iw���z����}�r�v7j��]_g~�v7���]_eT�M��W��ދc����XwF�:#"�W�3~�u�:ۈhw��i����2߭�#<=n?�� V�f�4+�m8��xXMMp�8﮶s�W���wwat��0�=xV�f� x��'�w��i����Nx�3�6����7�4��I�;��Yo�W[;�Pƒ��w=��ΞQ]��{�Ս=t^̝��qZ����������5��&������~U��B���ف|U�Z[�J6���1�^x��s��W���^�ݤa�S!�鱹�\!�=6�ذj�T՟�6T~b��%l��]7�3����^����N5��ր���K:�K}�j�x �<>�+/?d_�}��pv�%���_���뢔A\����n)� `�����[���3̡��j��S7%m� +�FVGڅ�Y-F-��~�&���%���M�JJ��KVj K��X� +IxWv��RFI������-�t8�����/G�ܷMՁ���#���^ + ��.&�N�%��R��g'�?N3��7��ҥ�]DE^5���5̏�=�qT����te�c�0�Y���VK�+��0��D]8�+�sh79�'��}��,�ZvE���$j�~�mT̓,ph�@�!B +endstream +endobj +6729 0 obj +<< +/Type /Page +/Contents 6730 0 R +/Resources 6728 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6535 0 R +/Annots [ 6724 0 R 6725 0 R 6726 0 R 6727 0 R ] +>> +endobj +6724 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 589.64 171.594 597.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6725 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 577.685 171.594 585.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6726 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 248.605 171.594 256.742] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6727 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [278.922 88.369 348.806 98.637] +/A << /S /GoTo /D (matrix_8c_a72073ccd483f9cc438425d3d8ffd3029) >> +>> +endobj +6731 0 obj +<< +/D [6729 0 R /XYZ 69.866 801.979 null] +>> +endobj +6611 0 obj +<< +/D [6729 0 R /XYZ 70.866 711.42 null] +>> +endobj +1286 0 obj +<< +/D [6729 0 R /XYZ 70.866 684.225 null] +>> +endobj +6732 0 obj +<< +/D [6729 0 R /XYZ 70.866 541.066 null] +>> +endobj +6702 0 obj +<< +/D [6729 0 R /XYZ 70.866 363.269 null] +>> +endobj +1290 0 obj +<< +/D [6729 0 R /XYZ 70.866 336.442 null] +>> +endobj +6728 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6737 0 obj +<< +/Length 1846 +/Filter /FlateDecode +>> +stream +x�͚�n�8��~ +-m fI�i;�@�N&�40[v��䦝��#��)�օr�.Z9����)�0��g�Ͱ�w��y�����'W:�p���#1�p�O� ���y��],����:?�?�[�ӧ0 +�O��nA�<8�&X�<}q��!�y�Ri0��z������o�C�^��<ʜM<{~��~�����=罼3vwg.|��f��Lj��cqQ�pb�F�1���e��qyp\2���jIc�`�µ#B�a�sq���a� 7H�C�v&BITM�����I<Q +J.���e��I�o&����R�@�D��M���)$��:Mp�<����D�4_G��tA����!)�=ů�C�s����[p�~����v܌$�kw�z�[���I�4*���=Hs�1h�~��,ͤ�Iiv�f�tO��M��侠�� Hp�@���@#p{S�z@#��fgiM7�:��������1#�GsH�$�A��+Ђ$��h� ���MҨ���g�����9L��s4#�{f����y�Ro�U�lo�f�6s6��������[� +�r +��4�C>���Y`����`�3H�� +��u�����������Q7ICQW"���a���Sg�h�N��f>Xa��g�<sK��� ��\}�M�o��K�\������Y���,�)��:+o3uM�_K�ذۤ�Bw=��)�5F��hOQ����$����Ҍ�n��.���`�M���03�p��h�p�Ys��9(�`;��S�s��6q�s.w0]��ζ�H�n�~V'i(X��e��ե`��jgi�U7]�`��é���S��Μ��LBtt�m���<'nX�k�\i�b1,U��c� c��y��7�Z���0Q F�l�A�Hd�=lʆ�����^M=��\Q�-��;�a��.����9���`�'���Vy�� ���P�\K�G#�E����$��V���Պ� Z� ��t �j~��!D(.R�(P"�ׅT�#����@�Z��6o�W6>�l\��iL�`�d��RL�!J�q��{�<�4��Y���s�+;�"��?��<'/�\��V��˩|���7����A^�����BKc. ��a����f�h] ��j����|��N���*7��`�A$|g�Oo���6죨�|gW��� �I����q��p��5��*���x1��ߞ�z�)^^W��Vk6�U�7N���AK�9�l���<h>|f��{�����C���欿��K�8�ϋe�r�&� o_�Nn?�5�]f�F��j��̗*Ɨ/�T����=L�w�ӦiT�. +hSϿ�1�7�'T�,-�ˮ���@����3[��r�{L���]OQ1ED�4P ���4��H(�`u�I~�`��Ā ���.�4������yσӚ�ѱ��� �-��$��.������|� ����.�t�����23wz4w;8UЍ�L!�tt�4t�U�=��H�!��Y�k��5�jA~�3����5��jj5���m�BN[�M�P� +�h�� X%��ـŝ��Vݴ�q������S�����Ո�N��H����^D�kܬ��N +፨�Q<���N��R���M�YH�\T+>�ò�$Y����X2*�o�)��hP�~�C����4������Kb����T��4>�Lo����i�8-^� 9�\� +�Shͤ�H���C�����j���� ��F�FU�^��jTؗG�tK�����z��,[�����o��R0m0c@��9H��:7�k?�x?~+�v���K�u +endstream +endobj +6736 0 obj +<< +/Type /Page +/Contents 6737 0 R +/Resources 6735 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6741 0 R +/Annots [ 6733 0 R 6734 0 R ] +>> +endobj +6733 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 400.686 171.594 408.824] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6734 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [278.922 276.191 328.014 286.46] +/A << /S /GoTo /D (matrix_8c_a32ab12965ec43c2acf65cf9dd510353a) >> +>> +endobj +6738 0 obj +<< +/D [6736 0 R /XYZ 69.866 801.979 null] +>> +endobj +6739 0 obj +<< +/D [6736 0 R /XYZ 70.866 771.024 null] +>> +endobj +6701 0 obj +<< +/D [6736 0 R /XYZ 70.866 522.466 null] +>> +endobj +1294 0 obj +<< +/D [6736 0 R /XYZ 70.866 495.271 null] +>> +endobj +6740 0 obj +<< +/D [6736 0 R /XYZ 70.866 255.162 null] +>> +endobj +6735 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6748 0 obj +<< +/Length 1524 +/Filter /FlateDecode +>> +stream +x�ŚMo�8���<�@���u�M�������P5`KY[�f���D*�,F�{d[�C��p����_(z>�zF}Z�v����+���w� 6J!3�(�{B��d�p�q�Dž���Ϸ�>]o�6��bw>�y��Y�W��~�[����$A�ͤ1�0�v���AOp�3��A?�'HH����y��\�1�M��H�`�c��PBHtH�c��}��Fi�MO�C�M��a��O�,J�TF��i��a&$*��b>�߈$�G��I��l�~_�Dǚ���6�b#�u�I�n���ߨ�[�y�x�8��GU��o@Q,�DJq.�r�,/�U���Y�/n0��y]���}����=g���V��֩+$V�BRpLx�K�q_�硾��y�aA�u,~n����i^k�]�����1�o[�f+�f�rs��V�m(�X�a��Eݧ�����R��찆�;��9�\��������}�퇬<�/�)�����]{ib��R�+������qS��/��[�`�*ªKM'mM��0�-��5QrLi�הF���'!<I<+�]��UI���7<`��˝�:���j1nj!)!�(�����h��0E�^~ +�%Q]�:�=����`M�iW�,�do9:�&��~�-؏�c��ޣ�����B"g��}H��0�"4α���4�-�� �)�Akkֻ��hA�~�ڲ-�ڹ�J��u��XPT/�l� �����3�� ���S2Z�����h������衹����7/� feq����qr����&�^��.��#k.���H����\�������¶.�P�2�s��r��6��>'`A���"�5C�_a��1����)zY�h�Ǜ1��Ľ�]�O�B'c6��"�/�F��p�) iq���Is i�3�0U�.{q.@����V��7�D���i�Akk�����JDM��G�����3��؛s�n��o�]TT�#��-\�����&�V˂d���<�m X�i��(��Z3�~_��|̻}�_�F�a�2�fW|��Kr}��s)HTf݃D�����r���V�c�����K\g��ND�U���=��7`�m�f]�W���|��z��ew��rm�:x�qޝ�O�8�4�Yl�T��0�T`�\t�͔�p�/�������5۽Wo]�Omއ�����ڰ��sjJ346��ЋО���餐�ip��R�)��@�ep������ٰ %p���G�� >\�T��$t�r�%�,T�[�Tb0����`�p�С��B�" 6:���n2C M��}4���r^�lX�b��؊&F��"��-���U�������� Q3����9���E&,LZa*�z��*F�q���@�%g60-ja�xak�2|�F�l���� ��ы�Zd��Vl<���&�RuCk��0A/_mɑ��)L��Ӆ�/yI �4ۗ���-���h�~GSW'�g��sfZ����K)���RMu��Ǥ��>u'�w.�/����P� +endstream +endobj +6747 0 obj +<< +/Type /Page +/Contents 6748 0 R +/Resources 6746 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6741 0 R +/Annots [ 6742 0 R 6743 0 R 6744 0 R 6745 0 R ] +>> +endobj +6742 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 687.101 110.119 695.239] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6743 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 651.236 171.594 659.373] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6744 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 217.523 110.119 225.661] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6745 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 181.658 171.594 189.795] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6749 0 obj +<< +/D [6747 0 R /XYZ 69.866 801.979 null] +>> +endobj +6690 0 obj +<< +/D [6747 0 R /XYZ 70.866 773.016 null] +>> +endobj +1298 0 obj +<< +/D [6747 0 R /XYZ 70.866 745.821 null] +>> +endobj +6750 0 obj +<< +/D [6747 0 R /XYZ 70.866 578.752 null] +>> +endobj +6687 0 obj +<< +/D [6747 0 R /XYZ 70.866 303.438 null] +>> +endobj +1302 0 obj +<< +/D [6747 0 R /XYZ 70.866 276.242 null] +>> +endobj +6751 0 obj +<< +/D [6747 0 R /XYZ 70.866 134.787 null] +>> +endobj +6746 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6758 0 obj +<< +/Length 1137 +/Filter /FlateDecode +>> +stream +x�͘Qs�8���)�3�" I�כ6��S/�7��8��2cC��$��� ���<�>d�����ڛ��W���g=!�>��Z�nn�)�H��#� VR�8aXR�x@ˀ�Y8g� +v����w�v�m�y�ӏ!%�.u���j��Ha����?�>-f��(�J=h)��h��-W=��� ��D�צ�qa�#xޢf�?�����n���Jr,ci\��վ̟���nnY�g���*L�0��� �[��'�ߙ����v_���L�����i6�s��&bs�q�Ȩ|��ayVeEnV��f�5)!�����~_�pNE���1:�8��ax�v鞏F�U3�G P*��#�� B��$}�_]����ޥY��X�yF�*5�F�?jעf�|���ի!�qj�#���F܊U��D˹t���ʇM�ډ&@�bXn�aa�gy����m�o�s&��Za��t�8=���U1�j���x��1�I��(y��G,����&_y�e���WY������e��z�6�dۯe����4���:島[�[��7UQ��,�t}���ݍlV���z����G��_Cƃu���J�!�A7���2��� �HʌAަ��|])��VDr��pĭ��J L֡PfI�b ���QD �K���ҍ=%1��+�l#���X@b��a��ǔwT��Zo Be;��%7���K�v���,I A�����@�$�&X��q�%l�� �I/`l���1W�I�' %�̕u(ssڵ ��1"`���L�l� �|�1�Ϲy$��y�38Ò$���q�~�\Qg��*���~����z�����Q��*+�7��c^����SLX���_���Ϡ��s�Q�~�I{v�6��@l����c�Ӛ�c��Pw�!����2"�"�8?��K��Q�~�\���p��Q�~�z����1!`A��p��&�u"$�s�:M����ʺ�F+=J���\��C�/*=f��5�_pl�_��!�k� �����\���?UeV�K�1rT���Ψ�E�)y��I��j �S +�@�C��Sm�����ʉ�H)6�R�V��[��N��K)[os]�+�`<� ~��E�i�~���=���~� +endstream +endobj +6757 0 obj +<< +/Type /Page +/Contents 6758 0 R +/Resources 6756 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6741 0 R +/Annots [ 6752 0 R 6753 0 R 6754 0 R 6755 0 R ] +>> +endobj +6752 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 588.247 110.119 596.385] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6753 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 552.382 171.594 560.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6754 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 146.003 171.594 154.141] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6755 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 122.093 171.594 130.23] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6759 0 obj +<< +/D [6757 0 R /XYZ 69.866 801.979 null] +>> +endobj +6689 0 obj +<< +/D [6757 0 R /XYZ 70.866 674.162 null] +>> +endobj +1306 0 obj +<< +/D [6757 0 R /XYZ 70.866 646.966 null] +>> +endobj +6760 0 obj +<< +/D [6757 0 R /XYZ 70.866 493.556 null] +>> +endobj +6629 0 obj +<< +/D [6757 0 R /XYZ 70.866 267.784 null] +>> +endobj +1310 0 obj +<< +/D [6757 0 R /XYZ 70.866 240.588 null] +>> +endobj +6756 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6767 0 obj +<< +/Length 1435 +/Filter /FlateDecode +>> +stream +x��Ks�H���,Q���w�6㉫��8�9*��2U<�����L�f3��s.�9؟V߈����;ع_|^->}a��/%sVO��ȓ�Q>E�8����A���W��>�%�X��K��-U�{�n��N� Ӥ8t��j�kA�H쐓��!�rg/������(���V;\0$8�ϑ�}�ϩL��(>S� ��%A7U[R�� ֹ>, q���Z�Z!�3��THF�#� +��A��Q#أG3��4ՐLJ!���!JA�!����roV�Q��l���m���)�O��j��!银�!]�Up&K��c� (��O�66��A����7��0� �v�`p{�%��a��J^/�b���k����i҃�4O;^M�m��t]\k��0f�5K��E(��/��b�.�!b]�,�t5M7���p�����i�عkV�I^����@���.$ A�%�A��Q�&}��Х�k��)rh-��5M��lL+9�Dw;XM��&vп�:����Z5��.��CH!!9�E�< C �}� +�L��/���4=�=�M�b�r-0{]R���p�X��V�}����Z�������Z���ļ�v�Bw�j%���*��N���&a��a �j��4Ih{��D��a["TpK9�1sG�ӒaWt��'��%��>A��l�m#ڄy���X`�!���P v�:Pb�a�� D1ƥ>H��7�0(���Q�V�0��&F�A�����!�.z�T)S�(����ȕpn ��is���6ye�ӆz���o|c���3I1�1ٴ��7X=�/Ƙ���[����#����5��z��9u�e}��x���-C�I��iL��yk��#-��_�����iD��_���s���Eo�b���l>�Ha��=��^Bs +�fl��K�ഷ�H�<�oB�4�5�]��+D�9�a-9�dE�z�Z��<h�k�ڞ�ీ)�gG�a���y�������b�h���<�fiTx1�<aW����\��hiūe���k�����5�?�.��CF!��%隧a�R��P����Ky{b]�,�t5Mߗ��M�Sf����^_u����d�k������2X�y���0� �����I�H�سa��4[;kM����^5��J�#�,�?(�}�����R�쀄�b�k�͊�$���ϧdE�,Y1���m��C�nLɮ{`V���w��ɖ����q���4~c��,�W���W鈼�I���6�[�?W��V�{�ˮ��];A�zA��:��"�����8�W/�rm��aD`cƑ$^{�|�f�Q4no��`0=��Z��8��eA1O�wyf2�IK����/(���$���A"�$/�_@N�HJ3��u�Ank/wi�}~�1S>�X���~, +endstream +endobj +6766 0 obj +<< +/Type /Page +/Contents 6767 0 R +/Resources 6765 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6741 0 R +/Annots [ 6761 0 R 6762 0 R 6763 0 R 6764 0 R ] +>> +endobj +6761 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 480.882 171.594 489.019] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6762 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 468.926 171.594 477.064] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6763 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 131.478 171.594 139.615] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6764 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 107.568 171.594 115.705] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6768 0 obj +<< +/D [6766 0 R /XYZ 69.866 801.979 null] +>> +endobj +6769 0 obj +<< +/D [6766 0 R /XYZ 70.866 771.024 null] +>> +endobj +6627 0 obj +<< +/D [6766 0 R /XYZ 70.866 602.662 null] +>> +endobj +1314 0 obj +<< +/D [6766 0 R /XYZ 70.866 575.466 null] +>> +endobj +6770 0 obj +<< +/D [6766 0 R /XYZ 70.866 432.2 null] +>> +endobj +6626 0 obj +<< +/D [6766 0 R /XYZ 70.866 253.222 null] +>> +endobj +1318 0 obj +<< +/D [6766 0 R /XYZ 70.866 226.028 null] +>> +endobj +6765 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6776 0 obj +<< +/Length 1372 +/Filter /FlateDecode +>> +stream +x��Os�8����L��ı��d���nַ4�!q���8m���+#0pO{�`bx�W�O�����_���ΰ��w7�m9�p˔�Q %�/��HK驀"I���0'q�/���4,��z-�n�$*?�G/>��(��:���=�4Z�K�!��������b���F�ro�����}�0b����L=.�����{��!~����ŵF���H�4w���S>�0��(� �o��U���=�kO��y���a)<�1"�� x�!L��(�Dxt ��K4C��C +~�#�i� �QI�Z��(FgA�4��b*�I��'�@�M�<�/�5��]��ﳗ�Z�F��x�o�q�e#�m���K��k��ËJ�+y ���s�q��x�MM^�<��{��d����58�6 !`L�k����PD�8�"�]D!BDE�M�+zg�MX��97��(>�U��cu�p\H���C��Ŧ��+�q� �MH`=q���Q'��%�g�BEp�8Ll�#-�i��&�����i��T�x�k7���2��S�r]d�/�����_�,W�4W�Q� ++���cyW�,;�j����k�s'X ��Ū���~��"�Ml6�]}3&�]�Did��%����mi�) +Դ�t�F�O+-H?1u����+���E��4$,�kױB��T��$[�zߑ��r��\�d+=VUz��[�u��W,0���B��s)��S<��+�m��:*VAY���������ؕ�����G��%�F���dyZ ��vكA����\Ѣ��ݓ�!Y�ܫ9����o/�\ oAd�Nb��UQz��u2������MG8��(Es��[`�q$���.1q�-�XVg�Ѧ?JAd;���p�����o�� @?orwG+ĭ�TtO��wD�_-Ԗ ���O������RK ���O 8�zD�fRD��G��b�F�]1mK�+Tu,`�*��n�����ܬ�B�hxv��r-g���RGoZ^�Ȁ�W=<�VA�W�$�G =��4 ���u�5N�ƈT����q��p�MM\�<��{^������X�d��8O�$ G����^s�)���_@�8�n��/8�hC7m���\ � +6 ��3`DA������妹忧C�Zjg)T:ܽ= e9��@.R�BZ*%�<�W���)�\��d#E��d��H�a�r<[%���oC����i�^ �e�s+g�����w�?K���%�:;���vL��Ӯ�A@M�ع�AhXxu�߳�ۮ�J��T����!�F���+�t�9��]� +��j@([����mV"��?�L\� ���DyXt��O���?~� e�#����R +endstream +endobj +6775 0 obj +<< +/Type /Page +/Contents 6776 0 R +/Resources 6774 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6741 0 R +/Annots [ 6771 0 R 6772 0 R 6773 0 R ] +>> +endobj +6771 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 455.738 171.594 463.876] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6772 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 116.658 171.594 124.795] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6773 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 104.703 171.594 112.84] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6777 0 obj +<< +/D [6775 0 R /XYZ 69.866 801.979 null] +>> +endobj +6778 0 obj +<< +/D [6775 0 R /XYZ 70.866 771.024 null] +>> +endobj +6694 0 obj +<< +/D [6775 0 R /XYZ 70.866 577.518 null] +>> +endobj +1322 0 obj +<< +/D [6775 0 R /XYZ 70.866 550.323 null] +>> +endobj +6779 0 obj +<< +/D [6775 0 R /XYZ 70.866 420.823 null] +>> +endobj +6696 0 obj +<< +/D [6775 0 R /XYZ 70.866 234.276 null] +>> +endobj +1326 0 obj +<< +/D [6775 0 R /XYZ 70.866 207.296 null] +>> +endobj +6774 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6786 0 obj +<< +/Length 1278 +/Filter /FlateDecode +>> +stream +x�ř�r�H��z +�R����e�O\��Eƣ����أ*. ����42� �,R��s������w�H���9�����������,X> +#-e�E����~N_<,?�c\ �����*=����$J�0�diq������3q@�Z#My�Nf�8x��>�ht�Z��\0$8��q���CL��(>ZGhI��6����p&Qm��we�Zҙ�{RB�pb ������ 8�!L����D���bH4C��C +���cnV�Q�k)��@�{�e�4qx +ٸ�'�mxJ�8&m�m� b�Z��.��A�s�T�,�I��Wp��;ꆥ�"E�G�.��_�<^�4,^T�X�)�bpe��g�ƫi������ƫ���}�NK��]2@B� +E�( K��;{+��st���g馫i��=L����C�_7m�/�&�k������h��8��(� +/i4��L���Q�m!�����t��t�)�[ ��3���f�~�l��h����p�QH�Q� ��[-S��}��`L�M��[�J�W�x��q�D���%�c��0B�k +�r���ðG�:�u.Z��(�~��?re3����:q�۫����5�Z'L��q�]�)C�U��SvY\������h�%/��e���$��u��Va���/p���w�\�8���E����,���8,}���+q%A�J�[�����Z +6Ū��r��bp%�kB�=�n�{X9z�Wv�6옆ʢ�Ɣ\9]�s*E9L1���� }�l�����������V/:���j�Lm��؟��}*}���*�t.���=yp$�JLx}�����0�������~"�y�����Юr��Y�WƉ���a� +l�&qƼ�+��|P�w��I�N��4��33pS�f��_P.<-��疩�� +�1��G�a؉�i{N�]�q���3pj^�4,^J�X�)�����,�x5M���<�x5='��g���qt�ҰtI_��sF�stIx����膫����FaY��f���P~~����ˍ�Șq�q�=���j�bˊߢKsA���t��t�K����1lf������HH���7\�d�eX i���V�Um����?����Uz�W剾Wox�t�8{�%=U�=U���������rJ�c OI&�6UE�V�E�m��T�S�.��@})>p<���5<UW{��PE�ǭ��,�^J^��uds�o��o.��a�Z�7Y������(=��9#�: +endstream +endobj +6785 0 obj +<< +/Type /Page +/Contents 6786 0 R +/Resources 6784 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6741 0 R +/Annots [ 6780 0 R 6781 0 R 6782 0 R 6783 0 R ] +>> +endobj +6780 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 470.611 171.594 478.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6781 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 458.656 171.594 466.793] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6782 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 121.409 171.594 129.547] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6783 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 109.454 171.594 117.591] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6787 0 obj +<< +/D [6785 0 R /XYZ 69.866 801.979 null] +>> +endobj +6788 0 obj +<< +/D [6785 0 R /XYZ 70.866 771.024 null] +>> +endobj +6695 0 obj +<< +/D [6785 0 R /XYZ 70.866 592.391 null] +>> +endobj +1330 0 obj +<< +/D [6785 0 R /XYZ 70.866 565.196 null] +>> +endobj +6789 0 obj +<< +/D [6785 0 R /XYZ 70.866 421.929 null] +>> +endobj +6698 0 obj +<< +/D [6785 0 R /XYZ 70.866 243.189 null] +>> +endobj +1334 0 obj +<< +/D [6785 0 R /XYZ 70.866 215.994 null] +>> +endobj +6784 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6796 0 obj +<< +/Length 1318 +/Filter /FlateDecode +>> +stream +x�řMs�8��� +Mՠ�[�q�f��9�f�1E��P�ͬ1�̿߶-+6���C�@�~[��R�p7�J��8!h�z��>���s���h��4�F)�C�E�g�(��MgL� ^g�� /����Q��1z�RDi�l��r� n�4T�R�O��O��P�� z�2&�&�,�=��� �yh�k12FBr,��{����s�3���/v6�:f�(6�N�딉`���(��)���Ȭ +���9\;2d��T�s�7�A1QiA0� vĀ��l��$�P����HkX��"���6�h�Y�+��@�����h��Tkj|5!ۚ������T�%�IN�)~�����}��a��� ��,W@��Y�6��;D?^�bX���Z�[���6Ư��OҍW]4���OӍW]ss؟��t εM�����kTKep�J�jL���.?I7]u���tF���A�_n��9�8쒬�+;��58�6�v���kT�/B��왊�N!�Ë0,����}̗�����j����Y���g:n���t�f3-@�?��:ٞ�k���� A6jG>�ny�ǵs1�ŮbI��=D>G�a�.��Q����[)�L���-{G7E!!��c� +y�Ϋf����i�H�ӹx�����ʢc��H��~a @K����̡�b-�j�� �����}�vɪ<@��-ϋ�nm��gV�Pj�8t�Ңj�g��-f�&�T�Cr��d���hF)�U6� �S���Y- 0;L���ğ�!�<gv�W���u�p�8Kr!]2��y��x�H�ι��^s�r��S�[�Sո +��gfF9�βD�b�e���:���|���b�Y��z��ϔ� �d�e��������3��|ν}�`k�A�6b���ո��*��À����b.��b�d�SZ;uM��},�m=%����Obѐ���d���g<rms!���ò��-�"�����t�UM:���t�U��<�58�6P�;D?]�b�tq��!�����3�O������hm���;�l��5�c?+І'ׂ$��ڸ4 �C��Ȕ�>�4�ï��O� Z]���ʭ�,?u7X� M�����ٴ)�D�;=b�)���9]9��&�>��o��1,84�Q}���*��rf#��RF^�]���+��S�y=��ZeyR��0��\�I�o-�g��,�B�ם�~�,*(\aS����U��,.������ܲ����� +מ��� +OO�����6�7��i;x��-PH���&�D�:s}����oo?�S�\f�/�' +endstream +endobj +6795 0 obj +<< +/Type /Page +/Contents 6796 0 R +/Resources 6794 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6800 0 R +/Annots [ 6790 0 R 6791 0 R 6792 0 R 6793 0 R ] +>> +endobj +6790 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 530.983 110.119 539.12] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6791 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 495.118 171.594 503.255] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6792 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 164.498 110.119 172.636] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6793 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 128.633 171.594 136.77] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6797 0 obj +<< +/D [6795 0 R /XYZ 69.866 801.979 null] +>> +endobj +6798 0 obj +<< +/D [6795 0 R /XYZ 70.866 771.024 null] +>> +endobj +6686 0 obj +<< +/D [6795 0 R /XYZ 70.866 616.898 null] +>> +endobj +1338 0 obj +<< +/D [6795 0 R /XYZ 70.866 589.702 null] +>> +endobj +6799 0 obj +<< +/D [6795 0 R /XYZ 70.866 446.436 null] +>> +endobj +6688 0 obj +<< +/D [6795 0 R /XYZ 70.866 246.28 null] +>> +endobj +1342 0 obj +<< +/D [6795 0 R /XYZ 70.866 219.299 null] +>> +endobj +6794 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6806 0 obj +<< +/Length 1498 +/Filter /FlateDecode +>> +stream +xڽ�˒�8��~ +��*Vt�lS��*�L�w�.qӎklH0����D���f�E۠�?�>��S~}��#������ޯ�ܭ^�c*��Hɢ��Ha�����H���1����뇻�{�KhX��pL��t�6�]NiV&�!ϪGWݭ��<�#�,�5ҔG����G�p�C�FG?�'O ���c�����01��������- ��E�qMy��)-�bMH|�#k$��=��@��B'�s��J���30NjH���x���xPY��f��Hq�Ln=��L4�Q�g�`�5]�S�k{�� +�<f&-[��"�k[�er�d�������� �/�/�C�9�������p~�~���U@�}H@A+��l���J��^�3 +�3�� G?gmϊ�l�� [?gm�g��x9e�b65�>#T ��,��H8�A����0�� ΈD\��ga�~�ڦ������Cs�/,?�h�凬l(+�+�`=>ӈ�h���7��#a��F#��� �2dqa�~�ڞn�ں��2da��02��/_6�X�o�i�x�":K¡�9�r�ET��(=� G/jOX�F`d����|��9�����,g���%&{$HInG�SZ^��{�i�W3A)��,_s��y��I�Oϥ[J�iu��NGb/�������ճm��Hif=ަ�1�١>,Z)'}<d�^J�u��=����`p�+'� <���"�v��j[֭�N��!AC7�^�8E�0Ƶ���W���=������G����?b��5W�@>u����]-�#?<�7��k%�j�~�YwN�\ �0�ύ���z[Z?C[~L6�9��G�W��6�`��c�B��;�?�_�1r}/;�^Y��3�Dzjq_�硾d�~�fA��s�e��ʟ��i4`2t����Kv�,Q{��<x:I���Y�ѝ���� +��}����ҟ�٣���n�2|7^��*@��.�0��N�Z"��˩~���Q0T5|���`0 �[WU����O�m���㋥�y��f��GH��!m�%�="�����1�9�*,��P��oFp�����b�Ǒd�'�m�`��Akj�}.�� ���, 5)�(�P#a�en�h�ūc:��c���K]'���(̦��c���79���8S +q�+�!�8Ӱ�#0s�c��q�vT����j��L_E������w��69�>J�w�*9O�&)�x�$�F��'��i7�p����j����B�:�������*�8l��?�T��̋�������� $8� �, #���K,��"��2��8�y�ql���P;�#�Ӱ(�p��^O�x�j����{o�5�C�ha�8��u�M��y�n��u7�_��I��p��$����B[��du�v�HNS���j�C���39º�M��zE������l_~��2�ϯ+N�x5��s���NѺ^� 8��I)� +V�����˚��w�C�����c1��?_VI +endstream +endobj +6805 0 obj +<< +/Type /Page +/Contents 6806 0 R +/Resources 6804 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6800 0 R +/Annots [ 6801 0 R 6802 0 R 6803 0 R ] +>> +endobj +6801 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 423.471 171.594 431.608] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6802 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 387.605 171.594 395.743] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6803 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 80.777 171.594 88.914] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6807 0 obj +<< +/D [6805 0 R /XYZ 69.866 801.979 null] +>> +endobj +6808 0 obj +<< +/D [6805 0 R /XYZ 70.866 771.024 null] +>> +endobj +6630 0 obj +<< +/D [6805 0 R /XYZ 70.866 545.251 null] +>> +endobj +1346 0 obj +<< +/D [6805 0 R /XYZ 70.866 518.055 null] +>> +endobj +6809 0 obj +<< +/D [6805 0 R /XYZ 70.866 350.986 null] +>> +endobj +6613 0 obj +<< +/D [6805 0 R /XYZ 70.866 197.803 null] +>> +endobj +1350 0 obj +<< +/D [6805 0 R /XYZ 70.866 170.854 null] +>> +endobj +6804 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6816 0 obj +<< +/Length 1533 +/Filter /FlateDecode +>> +stream +xڵY˒�8��+X�U��7"��d�UYLe:��t�(b�nW0t0����B�Fc�=�.-�s�t$݃_/�?o��`o�a�n��b��=�=�)��x�|����P$��XyS���9��t��'z6O�7Il�����8��e<{\|�8SH(,C������ۄ�[�=�RHQ�-���G��<�X��U˭�C�3�O�O���i��$� ��m_�Z<ۛ\G�_�S�d��!�ٜ�)d[僽9��A\� ��{g;h�rW��/��/y<cx�}����y�Ig^ͨ�f_�m���e溎��Pw�t]&Qn���QR�;7�}����Å�V_�`�i�d�("R��Ί��l�GN)����0���llhOe�,6Yj�x��d���ш��8?Jl%I;g�T��ʺ��x�����¾���s����7*s�#�b�����(��B$d�s(�4.�DL�I�Q�%��-�^ �!ҏ��DZ�j� �0 T�QQ +H�Ԯ/����&�@�t,�l��> :�t���☌�tdM���\�<����a��V+~��Vik�2_�Z�N�Lﶣ��X���J� +�J�0n�Pe�a���b�Z�3��(�n�5)�YRn��OfC�n+���Tv�UpegRᰳ�d��z���Qv�I��$<�a��0�JL{$8.�n 6���@����\�YZD��q}ҭ����%��d��:�^�ad*(����LE ����LGRv��!M�t]<��H�NAv��{�j�`<����Z��˫t7���7R"m�$8t�v���E�������3����?�����w�g�i�9���d�Z F�K��$,K�:�'��WkG�݇����ITU���&g��Q� +��m����]��C[����?R�kCB��,ltdi�u�֏S +~蠲0��m�k`ao�Q�Â�֍ %�?Ye�=��X� � W 8e��OP���Yn�B�����@�� +����W��m�(�!��N��^�M�pT|Dǡ�aAM�V���?}|H;Raz�d��0��z� �|�kYx:���[�����g���L���(q?��a�[��ׇ���.8^�T� a��.�a����C|�@�z����TR�qpB�@p�?vGRv�i���6���r�'.H����p���U��5"ض4�J�C8<�=� +�ʋ++~y ����k�H�ny5I�y���W�s�˽P]�cm+ X �S�UV]L���l*�`g�Ge��5��[]Mҷ�������Э�f/T �/��8y �- �����5c�5 (��%�F�`@�z�g�\� |1�D8��Pz1.����fo����]�4��i��^*�Y�UMfdzh�b�Ң��Ш耷1��(����W� M�J�'��PU)�yu���[�m+�h%�P�n3�9�(�݂_;��V���e#m�W�aj=�Tw�Wg���Y�pp�Be��V���e��#�Q%���U��R֎ �sp����t&?YחG�1^�p +endstream +endobj +6815 0 obj +<< +/Type /Page +/Contents 6816 0 R +/Resources 6814 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6800 0 R +/Annots [ 6810 0 R 6811 0 R ] +>> +endobj +6810 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.056 684.929 312 693.413] +/A << /S /GoTo /D (svd_8c_acdccfce5b7732e6334ca5a521c57e63e) >> +>> +endobj +6811 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 329.608 171.594 337.745] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6817 0 obj +<< +/D [6815 0 R /XYZ 69.866 801.979 null] +>> +endobj +6818 0 obj +<< +/D [6815 0 R /XYZ 70.866 664.008 null] +>> +endobj +6693 0 obj +<< +/D [6815 0 R /XYZ 70.866 451.388 null] +>> +endobj +1354 0 obj +<< +/D [6815 0 R /XYZ 70.866 424.193 null] +>> +endobj +6819 0 obj +<< +/D [6815 0 R /XYZ 70.866 292.882 null] +>> +endobj +6697 0 obj +<< +/D [6815 0 R /XYZ 70.866 82.821 null] +>> +endobj +6814 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F92 4494 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6825 0 obj +<< +/Length 1340 +/Filter /FlateDecode +>> +stream +xڽ�_s�H���<bU����.�T���ޞo��*1T 7�o=D��=�0�t�t���[o�߾o��`o�a�a��|r{ϔ�Q %��Ϟ�HK驀"I���{��ӧ���3�%,�o�Ǜh:�J�w��D�Y�8K���?�� �7�G*�Z#M��L&�O�[��/H�����x\0$8�����̔��N�8EQ:����,�.~��_?2�a� ��"]�������)(L�d��AZp'�g��3Y���Yq�����7#B: �85:4NU@k��FT�ҟ�M�5��'Q\&1�%N\v�"�&C��5��#u�!̂R�o��h�����i��B��B��w�R[J�K>�O�W3"5 jF9�Z����Cݼ�Ѯ�W"|��a�(nn��}��͞�u�.v�n�;rۄ�؝�K�%R3 +��F�5_�����"��@��ox�+�$�&��� $�W���2l� +���}2�m�-���<�!�x�J� m3$ � t�G⎪C��_�R�@����4��)9b���� ��ۅh��eS`��1�N���%�%b�-��2�ed��m2@�-�W�u�G�4�J]�����������4]#uv�UW��6�$�T�.7��A��k�NF�h~v+g��),�5Ne'\ ��I���ŵ�q6t��0a�AS���8�.��M�PZ\G�U2 +�d�!Wg�¡=�ѥ8"e�L^�tv�U�Zk�B6ΒN���C6���ҋ��D��*z��e�}\ʢUt�w�w�i糟�q�m����C�d���e�ȼ�����-z�2�vQ��Vnя)��/��u��S*�(݇�h�%�r��)LJW��?�/�}h��)W"74�N��եa��ɚg����b���H��l]1o���͜b����M�nE5�%]c��C"���4� �S����(M�t�;��:�ʓf�#�S赥t�w�-6/�;%��x���*��(�����=72��C���D͵UT�A� Ua^s��{>�ˏd.�n�$6e���t�zX�ZۆL�cʀ�vV[�=�R���j�`�tu�F�;�)�D���=( �V��=�QIǪl��P{8$hCi�d��\���<�5A����h[���Il a�������d��Z<`p??�P"��մ{��5�ԍS�M]]q-|:ǒ�q�t�X�f�|r�F�`��`�[ަ��W7�I�\�ɾ�(�9���Ҷ�,�dG_�o� +͉z;^~�Q�p����M�������b�_ti��@�l�r�O+�O*P�eZ5�a��p�,���i�[����.���U�����/X�� +endstream +endobj +6824 0 obj +<< +/Type /Page +/Contents 6825 0 R +/Resources 6823 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6800 0 R +/Annots [ 6812 0 R 6813 0 R 6820 0 R ] +>> +endobj +6812 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6813 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6820 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 378.664 171.594 386.802] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6826 0 obj +<< +/D [6824 0 R /XYZ 69.866 801.979 null] +>> +endobj +1358 0 obj +<< +/D [6824 0 R /XYZ 70.866 771.024 null] +>> +endobj +6827 0 obj +<< +/D [6824 0 R /XYZ 70.866 642.615 null] +>> +endobj +6541 0 obj +<< +/D [6824 0 R /XYZ 70.866 488.489 null] +>> +endobj +1362 0 obj +<< +/D [6824 0 R /XYZ 70.866 461.294 null] +>> +endobj +6828 0 obj +<< +/D [6824 0 R /XYZ 70.866 257.158 null] +>> +endobj +6538 0 obj +<< +/D [6824 0 R /XYZ 70.866 153.224 null] +>> +endobj +1366 0 obj +<< +/D [6824 0 R /XYZ 70.866 126.727 null] +>> +endobj +6823 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6834 0 obj +<< +/Length 1007 +/Filter /FlateDecode +>> +stream +x�Ř[s�<�����g������i��|�Q&c��zƇL���+$� ���W�Azw�z,��jr����Ո�GD����dtu�#�q�G���BQ̰�hr��%X�p�"�I�L_�7ww�f�]ݚ����,M�0�l� ����8 �ǣ�����ѭ-��f-��tF�=����Fϛ�9�c)8\g�ї��R�������Ť��:-*}WY��c��^2�^o6N:��ۛ}#c?lL)���f�����upϜ���6�FL�ٴ��j�+\h�G���GK�i�`����H�:���Șr�Qh�,����"��$K�T�$��E��?1��MQ��]�����$�@��<���-q���,ү�0s���6Ӂa��F�6�҆�܆X0��!A�LrS�eHi�jE��W���}�2*�x���JX�%R*�/T�i@o�)U^��Xb�S6֑!���eL��s@`�I�?���i�;l�K*��lK�i�沴�<;� +�{��9 pL|�,�j������_�8]ix����5��u�tt\Cv��4Y��5�b7XM��2[���ru���D���/��" O������Tb!�q%�Q�B^������F�i��vSh�fu��0o��kz�TB�SsV��8;۹CJ@B�K'�" OSXA���0��1�8�\��� �؍Y��.��=T�Lw3�m�E��߯L�ӹNr� +�_�8K�k�kI B�~�olj���o�I��,-|� }nm�vD��E.�K�[�$� +�kݬ�0 )a!������A�Nv�z+�!NỮ�L!uV �u��Ʀx��ID�]d�ZC%wv�w�:��Kg�t�4��[�V�%w�P�Mm6��2�f�LS�Ms��"8�7���7"8oG�վ�fUu��Ο��SH�yt�2fp�h�W�+�ue�O�Mj�U�S�.��.�M�m�r�X�U����R�h��*�� �Y�Dc�+��1�Y&U]|�����]�/CN����v +L������8x +endstream +endobj +6833 0 obj +<< +/Type /Page +/Contents 6834 0 R +/Resources 6832 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6800 0 R +/Annots [ 6821 0 R 6822 0 R 6829 0 R 6830 0 R 6831 0 R ] +>> +endobj +6821 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6822 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 743.244] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6829 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 448.851 171.594 456.989] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6830 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 412.986 171.594 421.123] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6831 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 401.031 171.594 409.168] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6835 0 obj +<< +/D [6833 0 R /XYZ 69.866 801.979 null] +>> +endobj +6836 0 obj +<< +/D [6833 0 R /XYZ 70.866 698.488 null] +>> +endobj +6617 0 obj +<< +/D [6833 0 R /XYZ 70.866 570.632 null] +>> +endobj +1370 0 obj +<< +/D [6833 0 R /XYZ 70.866 543.436 null] +>> +endobj +6832 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6845 0 obj +<< +/Length 1707 +/Filter /FlateDecode +>> +stream +x�͚]o�6���+t)1�oR�Y�(0,�r��⨩K�l�M��Eʑ,F�(o�E ;����|tH���� ���3=G8�8��n��S�F��,��)����J(�$�{��c"����S���n���a����t|�]�(�r�-̥���f�\�#r��iʣU>������b��Օy�C�3������y#*�GspA� Z����fNy���<+�ݜ�x_EVKz#{Ǟ��H�c��� K)�@?�> �l�S��!���J��!J#�R0�Uw�=C�B�&���9N,۞�r�.�e1'8>�� @��C� -������Ή�XH]��C�}��˯����ݾ�_������� `���������WDn��C�J����r��$g ��G��.W������kڃ�!/�E���ݥ� +�u2 �)8B�`C���@� �Hd���'��.#wG-���`X8~�|ۮ��&��^��сvy ���� ��L�D��A4�����ik:>�9�����j���P��j[<��md�L���)�M�p�iG:�5�J=�� G/m-���f�0{/n-�Q�i�mc�����y�"�x� <���M��p�À��[�����c�d��F8��i�p�����L�K'I8�@L�K'1ۯmesa�~暮Oپ�.,$?w͐��3�[lC��h����o�D��j)B!f��:3��b��+�[����$kO斺����UՍ��r��[���˜�8�e�*s����������˛�?n>c��\ut�%����N!������8[n�'�-����*��:�&!�:8��) ^��s�aS��߳�rg��U��^;Xx>���k�������5*�M�m�f�ͪ�$AFzk��+������KhÏiD��������tvώ�ۏ��(�6k�6A.²U�;��a�P��J�4�>��t��]Ԓ"�%"�%n(�˷$O_��uk��I�&+)� +���0M�����+ҭ��\�I�>�nO��C���ؼZnn����z�H�u�H���B=>ɭ]�}�W�v78���`R���P��������Ƅ)`���k1�46/�8`���I�b:�=��\0L�_!�9?{r��_S{�O�<+���tc�8�N���Do�JEW鵋ޒ����!1����A�D0H��+�ס1i() +���~�p�6�PX�T^$0S!(Wpe^��9ON���4���RM��ȁU3�s����EZ�Է��������E�2l���bG3x���%��Bb�r��I�M�������&�0��l�@K?jM�j-`G�g`��_3��@l�c�b$p��l�$l�WR���qqla�^�Z���h�Yz�jY��� �e�@mt�]N@BJ5 �)5��Ŝ�ר�rqja�~Ԛ��z�wnn�`3���H��`������K7E�'$R�Oy@%F29� G?oM�j��6]A�~����[c�0PD�9v�Pz҂m��ÌSD��x��k奷���'��ڨn{a���k2����# �ot�]x@�i���x��K1F\��k���15\OՔ"-�����WM��t����АD�I�H_mT��F�)��Ok�p�r�3�ֺL�[M���F�l��U�4���GBp8�u�Ǭ�vi�+�_oM�����"Ί���өS +endstream +endobj +6844 0 obj +<< +/Type /Page +/Contents 6845 0 R +/Resources 6843 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6800 0 R +/Annots [ 6837 0 R 6838 0 R 6839 0 R 6840 0 R ] +>> +endobj +6837 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 464.712 171.594 472.85] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6838 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 440.802 171.594 448.939] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6839 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 416.891 171.594 425.029] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6840 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 68.822 171.594 76.959] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6846 0 obj +<< +/D [6844 0 R /XYZ 69.866 801.979 null] +>> +endobj +6847 0 obj +<< +/D [6844 0 R /XYZ 70.866 771.024 null] +>> +endobj +6621 0 obj +<< +/D [6844 0 R /XYZ 70.866 574.537 null] +>> +endobj +1374 0 obj +<< +/D [6844 0 R /XYZ 70.866 547.342 null] +>> +endobj +6848 0 obj +<< +/D [6844 0 R /XYZ 70.866 343.497 null] +>> +endobj +6628 0 obj +<< +/D [6844 0 R /XYZ 70.866 188.58 null] +>> +endobj +1378 0 obj +<< +/D [6844 0 R /XYZ 70.866 161.489 null] +>> +endobj +6843 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6858 0 obj +<< +/Length 1711 +/Filter /FlateDecode +>> +stream +xڽ�Mo�8���:�@���a���@�v�����:J"��SYN���;4)��hYFO�-r���������$z�Lp�������ɻ�LE�R���)Ri)#S$It��O F���T�i�Te���O�Uj�nӧ�ӴL�e:{��q���T� I�ד?�&�&���ki�4��2��?���}�0b����Z� ��~�;�gS>;��nDBD +� +3"�(b�$A��Ȣ�9U[{�1�^G�fq=��d�Mo\�S�ɹ�:'��d�$�X<���>�/L�E�b�n�b�؛�9QQ.�9�g����*{]���V�&]�yZT�i��f6'b���_|Ϫ����t�}�������S�tCv� +3zs�E�x�b�b@]���Q>M�$O���2�E/D�r�m4Q����+�0��H� �f�P�tjrc�&�!J# "� HV4_#�b0���~��ǚy@R�H:P�OC'6��������2T��e����^����+���6��L�qd���Ȓ"%��L��Z�$�l��E[�4�p����j�We���M0���B��k� � Hzq(1l(� �;�5L2�/j��M�lAl�r1_�u�U�T�>aj�ޖ�^|���������k� �S��KC��:�K|q8\�.| ���7� �&���w���-�*[��i��4YV�r&��ގ5q�X�Dj� ��(&�5�,��t^o���I���D�'~X��>����y��}3>f��]�e���M^��j7q���6�1s���T6fR���!,Ie���p����4L�U`3X��K����$ڬN�!ǒ�}�Q<�i�W���A���p�y^�I�m�����ؤ�7���l�B��r]����#��_�n2n~�.7�`$��lz{T�����b��YC 1�uڝ� mW��2Y%��-].̓�r �������uf��YlZ�ύ���%A\���o�Ҷp��3 ȩ}�pi���Xt-^�D�/lh~m���>��E�aK4���P��M�H�2\�Rs�4$"���5ƶ�c��n��4:s�8)�Y?����eߝPl�z=H�[�~ �W�jkz������c#��ѹ��W�,��}�[r�Q���)��>�q��f/`�>�� ����9���6��$���tl���<-60�!/�������)�d�?�:K�^�]3Cf"��Cz�힐2���>�Mi�����t,D9\(���מT1�Pr�(1Ά=�R8���5*�T���KF4P2x|= � +a��B �<>�J�dL�57����L���sՂ���>���ɗ�[A�Q����5� ͮ���r���3�-��3�k^��X����&`�i>��Q6]p��a] +E�RI�r ߐp R��k���<`�t�|t�����/���e~F�p����� + �R��_h�d� _��P-���a�Y�=h����N�k�z;��j�����(6����q�e+&���v���aބ��i���۹&$`��g�Q6hL_� +RZv(k��扺JESÄ�Ly�=�����0��GԀ��0�l�l��uN���{��+ܷ��b<Ժ7�^� +]��/M�����C�DT��B���I���i�T��������6.���l��Ӵ8������ +endstream +endobj +6857 0 obj +<< +/Type /Page +/Contents 6858 0 R +/Resources 6856 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6862 0 R +/Annots [ 6841 0 R 6842 0 R 6849 0 R 6850 0 R 6851 0 R 6852 0 R ] +>> +endobj +6841 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 767.154] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6842 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6849 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 408.346 171.594 416.483] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6850 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 396.391 171.594 404.528] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6851 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 384.435 171.594 392.573] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6852 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 372.48 171.594 380.618] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6859 0 obj +<< +/D [6857 0 R /XYZ 69.866 801.979 null] +>> +endobj +6860 0 obj +<< +/D [6857 0 R /XYZ 70.866 710.443 null] +>> +endobj +6623 0 obj +<< +/D [6857 0 R /XYZ 70.866 530.126 null] +>> +endobj +1382 0 obj +<< +/D [6857 0 R /XYZ 70.866 502.93 null] +>> +endobj +6861 0 obj +<< +/D [6857 0 R /XYZ 70.866 300.87 null] +>> +endobj +6619 0 obj +<< +/D [6857 0 R /XYZ 70.866 82.821 null] +>> +endobj +6856 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6867 0 obj +<< +/Length 1734 +/Filter /FlateDecode +>> +stream +x��ZIs�H��WpDUV�w���LR��Lƕ��EaDl�(,����5�H a$���R �����os�]��8��;�v�,>\/�}f���/%s�8FJJ��)�Ĺ^;7.�ty{��a��q �ǟ�M�\QO���N� +�$���ş�+�Cv�J!E����[���W}�<6+S��gp�q�Y�}��� ��#NC�_���MêH��tI�[o�_q�/����B8�=L4"vV� %���'��JvP�y�q��|� gE�4[�$�TP>��` +Q�L��X�5QLC�ąq{qo�����!���B���a��hvܤ�7����- ��C�v�� +¢�s>���i�tO1�wH�"�C�HgE9Kۏy��+{��{�.�&m�l7IdV�<�a��]f�ۅ�<��I��[�:��-�p�ʋ��.j��6F�oqU ,�[�rߧW�1�p�S�l�c���^������]�=�"�}�����[���q���Z�����gh~ꃗ>e��+�}I�������r��7۔��� D��n̛�_ԡ_�Ra�>P��K�"�zi'BP@ +�Ч��c��Xj.�K�c�q��RQny�גr7,�4��bI�[��<�����XfB��������p�d�b�@�j�Xo ��n��O�( )�}�d ��!�̔(��'r�=��H8���L���C�C��'�ȗ@�GC�� �]\��>���*? +/�p��g +���C��n�1k�B�ˈw �%�%�B<�>?�x�$�#3!�<����솮�Ļɖ� ����; ��qC���)�1 �;�x�D�+��eo{�^G89O�aNv���P�,l96��1�MV�#�!�!N��K3��`�5hFT ���9L��P[�Pj��aJu%�S*�^� �n��nj��E��KD�z �A����6����9L��P���pn��a�u�Sn�U�uZ���88ٜca��q���q�Tťn���S])͒����\7If]��0z�f {D�^����%�.��Y�G��j���l��/�;=�z6��q��MO�� +R���ɣ�>��2��a�c�g�%�M�u�m���+���&��\��p�kH�A�wo�̑���j%�CN�q��vH�݈d54� �̥�4,~�a���(/ +`v�ST{��7F×�����������f��������]Z�@�m�8v�$�7a�`��C{�K`�F���%���e _I��m���K������ ���M0�" +�����É3�n/�� �֯�8[���˛i�V�:a6n���m���-�T����g-ْ��A���fh,M���⟚KS�e�<�B3Yi?L����m-f9�3��r����V�-�A�|yI���?����e^���ӫ�03o�� +�����eb߅T� �0�֫�%�X{`��+����!�u��wYsT�awUHX�m��&Ul�خ�薗���.�uJ8� 2,;sJ ��b��ڧ��c!�U��A���SH�� &�D_�(d�3F6�v5]�C3j�G�˙���F֓8mDݲ����C��t���$�1�"�0)�g�&���i�<����^f�<���J�4��N��Z�(� �h���t���&��,!�$o���pER�L�%��"L �r�����u7��a��0XG +endstream +endobj +6866 0 obj +<< +/Type /Page +/Contents 6867 0 R +/Resources 6865 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6862 0 R +/Annots [ 6853 0 R 6854 0 R 6855 0 R 6863 0 R 6864 0 R ] +>> +endobj +6853 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6854 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6855 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6863 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 266.794 171.594 274.932] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6864 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 183.108 171.594 191.246] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6868 0 obj +<< +/D [6866 0 R /XYZ 69.866 801.979 null] +>> +endobj +1386 0 obj +<< +/D [6866 0 R /XYZ 70.866 771.024 null] +>> +endobj +6869 0 obj +<< +/D [6866 0 R /XYZ 70.866 595.776 null] +>> +endobj +6612 0 obj +<< +/D [6866 0 R /XYZ 70.866 388.575 null] +>> +endobj +1390 0 obj +<< +/D [6866 0 R /XYZ 70.866 361.379 null] +>> +endobj +6870 0 obj +<< +/D [6866 0 R /XYZ 70.866 109.714 null] +>> +endobj +6865 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6876 0 obj +<< +/Length 1328 +/Filter /FlateDecode +>> +stream +x�͙_��:���\�̚�?��9mw�W�ﶎ��Zf������ DIU`m���y��_�7��f����F��xػ�5���|O!-%�fO������5E�x���8&q:�R_��A��^ѷ���(�O�ӄ�q��U8��>y�)$��(��d����l�}D�.��!�RHQ��9����'#���R��z\0$8�ϱ�����?FT���b{#��7� �mw>O(�`��nB�8+��%�!<����i$�>8�j���|h@)9���\X�jX��aX�4êHx>7�X5�Q�~������!e�M�]`���V��dJ�8z}������p�kĹ���Rs��4k:zN��`UΊ<��ov�di�[�ǩd}��Q���>F�Ѐ��5�A<*W�bW�������^���cfy����q�إx�/�(Y����7luG�����&�0<~���O'Z��/~�c��镨v�e�2P��#u��%��ÄN*���/��+���z�0Y_�h/nD�L��?�f�q^�2��4*6�Vc�lb�4�/��/���z��*�J��x���Ƴ�� + +��m�v�d0�}��?�aR��j8���WW@�+��FL��^��Wp'����ϛ`ٵwm�@K=�AK�o��J��{��>��L�"���w&��]lϰ�ǃ͚��ݺ�b�,����z�y�&�)�؏6@pel�C$,�B"_�7`Pb�cz��"�)��,14K�e{9p3Xwp����v�M(=�,>L�b�)��RO8"�\�K�c�i���_L7���%���@=-�Ѭ[:_j!� \�bg�m�@�,v�h���Z#���{~Ř&�q����QbGQ��7OĎ�ڪF�?�)j���b��k�]-'�V���`q�n�d� a� �4[|y0�ʼ�;kk��A�M�cB$k�b��������:;ؑ`G�k���1ƶҾx6�j�H[c�����$LHi8�XIF�v���F�M6�@����F�I��7�é�z��|�"���Zs���ߗ��j(�0�^�l���XP�G'6�V� +h��b�(ş��a����g�,�}�� /�;��M�B#�]]���.O���mW��9�$��9�]=�^��K]�.���Ƕ������c��6�=�_=:���[��!�͢��;�9Lm�7���%ÎI��m���¶Ǒ���Uۿa{*��$1y��� �i�N�y�G�Z�rH�_L��t�]��9:w�IPn�q��V/�xUĎ(���ݥ�!��V�Yg�g�����N��U�����R����߇I�rW��>-k<?7&�|����xX� +endstream +endobj +6875 0 obj +<< +/Type /Page +/Contents 6876 0 R +/Resources 6874 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6862 0 R +/Annots [ 6871 0 R 6872 0 R 6873 0 R ] +>> +endobj +6871 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 451.579 171.594 459.716] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6872 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 427.669 171.594 435.806] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6873 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 308.117 171.594 316.254] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6877 0 obj +<< +/D [6875 0 R /XYZ 69.866 801.979 null] +>> +endobj +6618 0 obj +<< +/D [6875 0 R /XYZ 70.866 561.404 null] +>> +endobj +1394 0 obj +<< +/D [6875 0 R /XYZ 70.866 534.208 null] +>> +endobj +6874 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6884 0 obj +<< +/Length 2205 +/Filter /FlateDecode +>> +stream +xڽ�Ms۶���\J3�.zon3�U�z�z4��8���\�J�����?����d�z����燧�_I�z^��5�����?��d�P"��>G#%D$���^�OK"����/��X,�������jM�Z~8�.��(�2?ե��=-�� p%��UR)�h��O�8z��~�@1Q����Cs�x���>�}��5L�(��V/&hNA�Tl��uE�ezJY��V�,�ud��3B�g��!M8J��F8�AX�H�zJ�i����#<J�G��zD1Di$c�$o�!�ch�����Q�c@�c�E�3���M�"xy9l�#�\��nE��G�#��ˡМ�8��C���~-������Υ�ᐖp��� uÆ1F�{�U�P� +��i�(GT�$Fn��(�&IF`�g���6M7��}�Wŗ���}��qCh����eC]y���ɑv� ,UvA;��Ɏp�c��rtCg{n�';�ܜ�LJv�lw,^&Q75�.0��X]���N$���$��u�����b=-��٦[�\���A;��\7��v���\Vׅi���g8kS�P'@%�P�g餮e�n�e +��e�9W0��79�]��"qĘk���k^�Ww���M�y�����vtY �¦�0 ã�����I2G?G7��g�Ɋ�q�E��Њ�Ea֤���ɍ��R2�a���l���"b�^�n-�V>���^�bp3h�`��B"�ڈ.?�@ c0H�0������������ ����� ~^�n�lw��<NmC�P�*�� C�0�,)���q6??K7��vrU���E;��U�^���8�]�(�a��LJq�08�q��ȆU�a�6����G�t;�,��͡�Ⱥp +'7�KH0Ha����'1J��!)�$A2A�����vJi���Vc��YH�ފE��$a�E�4� +=��9�0�a�,�$ڦ�Q塧�A�~\}8���Ѕ$�0H��X5�����CP���0^�n�lϗ��9�����zE�&Ў�&���*ؼ�G��75�.3�Ӱ��0 ����x�g$�K��٤8^���<��ٮ5z>�I<#r�hG���ė���v� �x~�5���hA5I��a��U�E~��<7���:���-]}�9�dw��H�` �7e��+���)+v����+��v6%��c�Gj�wg�@Y��j�Qa�'��0Ƶ��s���Cet���K��i�-���6ڢz����`)n��o�b-m��J�*�A��њXA��6�6M�e�n�9vH�6�Glks��j�`�lUh�^ c�c�L��S_�,c�0KK�Ec=�w=a<>����+|}�7�u�R<;���̱cX/3`��}v:�����]H^`IO'�e�.Z�kk��%������ͭ����!x��I�=�^���q��w����>�Y�D��RS��L�����~�ڔ���P�ʣ�,m*�F�]��}:I��T���:�����#�U�J1r����+Gu��<B�!%Հ�D�m�~:<��~�/�\ԋ�/����w�Y����#9^�/=:/;�_�CV�a<!��c��oR?9���|x+*T��7�I�.Z+H��� z�䔝��^�_��������]u�O�;�[AA 8�K1��w�Q���a��% +*�u����$%I<���st�-�:�;l%G1h�ٶ�[ P@�вX\�K@��ϳ T� t�����(5]�h��aTVQ��n����ڞz.�Ϩ���Q�v�iɑtM �K(�X���a��]Cǜ(RC��D0$������43�}��|�x9|o).�_�*���35���s��sa��i~�֓��G�c�Ɉ8��n�lS3A��5(�E�fɎ����l +fk���R�I�T�a`c�s��&L "G��st�f{Nۢl�� +�M�L?u#gĩ�u�IdA2"�~���U��c(�tcf�6{:o����M��{ �S�v$��7�]t@�'aK�0 ��P�9��~3fB��t�g���w=��ٻ����7�Ϧ��79�.8�_ְ��@����\��@$1,G< �st�g{�������:��}'>��ۜsR8�A��?�QaN�hv ��e��<�?h�����ކ��q�-�����)-]��>�'�o�V��Y�~�o���^ +endstream +endobj +6883 0 obj +<< +/Type /Page +/Contents 6884 0 R +/Resources 6882 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6862 0 R +/Annots [ 6878 0 R 6879 0 R 6880 0 R 6881 0 R ] +>> +endobj +6878 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 349.666 171.594 357.804] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6879 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 337.711 171.594 345.849] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6880 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 325.756 171.594 333.893] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6881 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 289.891 171.594 298.028] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6885 0 obj +<< +/D [6883 0 R /XYZ 69.866 801.979 null] +>> +endobj +6886 0 obj +<< +/D [6883 0 R /XYZ 70.866 771.024 null] +>> +endobj +6703 0 obj +<< +/D [6883 0 R /XYZ 70.866 471.447 null] +>> +endobj +1398 0 obj +<< +/D [6883 0 R /XYZ 70.866 444.251 null] +>> +endobj +6887 0 obj +<< +/D [6883 0 R /XYZ 70.866 218.281 null] +>> +endobj +6882 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6892 0 obj +<< +/Length 1217 +/Filter /FlateDecode +>> +stream +xڵ�]s�8���+tif֪�%nw��L����R��$$�c�����{�Dʗ?��"�M���#�����^�3�^Aw������F�Jq�|A�`��!Ê��3z�S�L��6*����}J6��t����<N��`���7X.NCI{z��r�ߌ�Y�軗1�0�����A��ψ`t(Gn��K���}��ی��=�+�I����!,M�$K]�Q$��ً;�K��l����9�����Z0a;�?���w.Z�E�� �F9͘c��*B����.F��z�'i�H� J�45�^�Sl�p�?��9X���q��T�L��-(�!(�W��0�.�M�j6pg��՝����q�j�bZ*�#�����nv�ć�S-��äe'8&<|O���a�zHW����fg_�9ϳ�:I����@�8}�����)��,r��#-5�FVc���X鰴4�T��X��d��Dv1�v˰���π�y�y��g������E�Nƛx��>�s�AyX��d�6�4\���/�(��q���}�˾j(�(}'�!SP%H�^ ��a+�D�(�?��!W��DY��>�0L��03J!D�I��>@ �\����~(�X' �m���X��i6H��㰝h���1�g�����ڍ�m��G0�o6ݸ9/�F�ݥ$�i��M��iZ��i�EU�N�6β���iz��q����=k�AI}ۦ�mp�]H@B����$ ��gR(��R �n� ����6β��i��=�����:�@p\4�֣�e��W�Y4�?�|t�����y�&ix��ڨ��pq�9a� +/an�c?ruO�D,�}�;Z��v��Qq���ǘ����w +¡�w�i�4'ixᵐs��g}s����{�7�K�@?|��nL�����p8����$ O��8z����̍��G��X�z��#Ѝ�����F<� �o`�]f�}��� O�X�k`0s w����{�z$G�e��\���� ��� +(pͦ�6\�h˙+� /o9S%����t�i�{,�u���!ڭ�����k?���/�����q�_5��Ӧ��&M�����WW���1~Mқ(ǽm�r�:���p�1�6�׃�7��^nq��)k<��ڼ�� +��1��]��n�e�:���n�ܺ[���S�a�m�~$�~�S�i%j�JH��_/wq�Q�,mm��m����j+ +l��3�ns +endstream +endobj +6891 0 obj +<< +/Type /Page +/Contents 6892 0 R +/Resources 6890 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6862 0 R +/Annots [ 6888 0 R 6889 0 R ] +>> +endobj +6888 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 601.595 171.594 609.732] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6889 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 237.729 171.594 245.867] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6893 0 obj +<< +/D [6891 0 R /XYZ 69.866 801.979 null] +>> +endobj +6700 0 obj +<< +/D [6891 0 R /XYZ 70.866 723.375 null] +>> +endobj +1402 0 obj +<< +/D [6891 0 R /XYZ 70.866 696.18 null] +>> +endobj +6894 0 obj +<< +/D [6891 0 R /XYZ 70.866 517.156 null] +>> +endobj +6692 0 obj +<< +/D [6891 0 R /XYZ 70.866 347.554 null] +>> +endobj +1406 0 obj +<< +/D [6891 0 R /XYZ 70.866 320.359 null] +>> +endobj +6890 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6900 0 obj +<< +/Length 1371 +/Filter /FlateDecode +>> +stream +x�ՙ]o�8�����x�m�v՝Js5�a�����MIB;���8�CLB��^T�������c�i���������f�O�� +4 +�d��%Pi)R$I0[�1�r�4�0��:��o�ɔ*=�OW�]�d�,N�t��l�ψ@K����HS�v����/(�:��[�.���m�m��)L��0ͣZGВ �˨�N(/��]�E� !�CY%��<["�B#eExc ����`��fYJS"���J3%�!JA�!��H�XB���ZJ{#���n��T�!������)"R�=W���K +6� �����O_�g�w /p��ϻe͈�?P3nFC�}�nB�`��%�A�Q�����J�Eh#+S�v����lݰ���������z�`��C;��4N���,�]�8�̀��zw�4J��� ��"����g�f�f�B����,��Q<=}ܧ���B�;���Q�;�&! A�%�)�QP&C�@�Px��;(� P����M�m�z�2OO7e�� �כS�?�!FBr>��a%e��a:�BE�A���k(�tRV3��i�m▢���I[���]����w�MP �P;�(a�0"�]0�Ś�FB_����5�Ӡ%�м�ݜ��N�L$C)�oP�|Xu�ќ�J�JD�r{�G�1�I���Yf�s'�\)&�h�l5�*�F�`J9Ҵpx�^&��}���C��"�w"�^�">O(�,�;.��*ݽ}���U�.=@S���.<0�P3��1�À��P�W:�l-u&���/d���g����|8����8͕s}�fz�!���,���ݝ#�i٦P������ �ߔl=>�ZMįӗY��=˙�1�l����ɓc(�l�Sl�&��H�$,���}|x�. ?�������r{�klx�27l#s�u0�O����QgwQ�O$��PL+�m��8DL��y`�F�a�#A� NiLiD0oy�`���Z�_7X�g���� �@@����iL7�u�Z��y��������6�� F�0�i�xA�#�������x�Y��M���<�xٞ�n9���w�M2$F!����Q��%RP���d���* Z��t�e���֬���ͭ͝�5O��� H9����f�Y~Czu�L8,��"ze���d�t��f�xW��we��a��^����EP�I��s�m����SP�zA���k���.<�����v�m<�ۚ[�ojn�X��^c�o~"yu��Sy���+ e�X�e��� ��pX��K��6��w��]�Z�CnմϷ��p*W0~���A8nr�����h��\��>5y��ύم���C��})x +endstream +endobj +6899 0 obj +<< +/Type /Page +/Contents 6900 0 R +/Resources 6898 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6862 0 R +/Annots [ 6895 0 R 6896 0 R 6897 0 R ] +>> +endobj +6895 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 442.009 171.594 450.146] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6896 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 180.007 110.119 188.144] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6897 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 144.142 171.594 152.279] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6901 0 obj +<< +/D [6899 0 R /XYZ 69.866 801.979 null] +>> +endobj +6902 0 obj +<< +/D [6899 0 R /XYZ 70.866 771.024 null] +>> +endobj +6699 0 obj +<< +/D [6899 0 R /XYZ 70.866 563.789 null] +>> +endobj +1410 0 obj +<< +/D [6899 0 R /XYZ 70.866 536.594 null] +>> +endobj +6903 0 obj +<< +/D [6899 0 R /XYZ 70.866 405.39 null] +>> +endobj +6704 0 obj +<< +/D [6899 0 R /XYZ 70.866 265.922 null] +>> +endobj +1414 0 obj +<< +/D [6899 0 R /XYZ 70.866 238.726 null] +>> +endobj +6898 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6911 0 obj +<< +/Length 1440 +/Filter /FlateDecode +>> +stream +x�͚�r�H��z +��������'We�q�s\*Y�2) �����;T3�p!��������?��}#�f?��������~��S�FFJ�ܿ8 +#-��E�8��K0�t��J��*����k�틿��Ow�˜`��y�ڛ?�u8�Hh .��T��ٟ���g�b���F�rg���Ͼ:1�������!�|�:�g�Lj��cr����6� �mu��)wW�U���nN��O#�%#{)6�)z���a)�1"P� x�!L��ȚD8��ʤI4C��C +:>m?�� �1A�Z�b/����l4x +�<� O��"�칋�D��aB�!x���Kv�_�������R�fzD�u4tO�D?^�4,^TB[�K�Šeg�5β��i�8�f����h{���58�: �T{]�4,]�B�[�E]D!B�t��l��hZ��j�>����E��]1�����8���ꐀ��m�F�4�{�B�&}�a��"���slƬ���8�f���mK��n=���u�4�����a��<�*N���6H�3�������Lv�3γ���g���h�}��i����H&�w�w^|��#�V��R�,0s��>���s*�����o4����Fi�����9�P�Пi:�Hi��Џ�(,�l���h#�1&E� ��:��d��YH�D�BV� �RP +cls��ދ���*Ao���^�����H&�U!�0���Ca��=�Ⲧw�ʞ&�ic@jɕ��!�����c��37Cn�S��8�jha���0����`��X��ng�&�] �8.Y��t +3�۽'ܝki�N�L�"+�<>�� M�%���&��/��1 C�g��R�ݳԮ���(I��peo�h(�jr~�Zzc����:��X6U��ʄ�R�c�5���dt��B JX��9M#[q��)�d�01#mdNJK!I�Z�W\�58`Y2m:�0 +�(3ֳ�`�T��y�C ���X�d�!���"aق`չ[� ���l��lf�hv�5γ����O4r��Z�$���ؚ�a����jz�ɸDT�3��،V����#6ʺ��f���œ������T��8(MBi��E��v����#,XK�������w�4ζ���q�v�!Y�ٸ��A+�4�,�mpluX@��s�p�zY-�� 9?�rP��S��2����?ڭ�Ӝb�wMa��3/��'p-��P��>&������@hV�M[xx�J���?�N������M�n���e�����5�T���65L�T���Q�v���d��(���j}����G�$����?f��A���ג��d��]��q]9�%�W�Q�a�8����ȷ�VL7�В-SnW� +\�!�!��gC�Ր�0�q��I;\o��ۭ⦉�s��S�~o�I���j���)�i� +endstream +endobj +6910 0 obj +<< +/Type /Page +/Contents 6911 0 R +/Resources 6909 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6915 0 R +/Annots [ 6904 0 R 6905 0 R 6906 0 R 6907 0 R 6908 0 R ] +>> +endobj +6904 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 448.864 171.594 457.001] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6905 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 436.909 171.594 445.046] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6906 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 146.272 171.594 154.409] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6907 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 134.317 171.594 142.454] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6908 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 122.361 171.594 130.499] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6912 0 obj +<< +/D [6910 0 R /XYZ 69.866 801.979 null] +>> +endobj +6913 0 obj +<< +/D [6910 0 R /XYZ 70.866 771.024 null] +>> +endobj +6625 0 obj +<< +/D [6910 0 R /XYZ 70.866 570.644 null] +>> +endobj +1418 0 obj +<< +/D [6910 0 R /XYZ 70.866 543.449 null] +>> +endobj +6914 0 obj +<< +/D [6910 0 R /XYZ 70.866 400.183 null] +>> +endobj +6616 0 obj +<< +/D [6910 0 R /XYZ 70.866 260.236 null] +>> +endobj +1422 0 obj +<< +/D [6910 0 R /XYZ 70.866 233.446 null] +>> +endobj +6909 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6921 0 obj +<< +/Length 1452 +/Filter /FlateDecode +>> +stream +xڽ�Ko�8���Z�@��M�;w2 �U'�. �VR���q���J�=Y��-���9W���Q�iy��8/�;/v�&_��O_�r4r�d���Qi)�R$���:S"��i��a��f�w�lN���F�c���:�0�u��r������!gI�������'�l�o(��9ew ����c�L��HL/�hA,EK�47U�Q>]ց�x�!�8����V��-Rɐ���+k��pLj��h��a"�D�%�q�K�L�D3D)(1�`|��-cC�B��C-ey|/���O��� -K��#��y�fDLO9����1� d����k����� +���7Q~]o��Y=cI>��&+ƫ]�2o�4oTB��k�Ơexfi�l��6���[�s�A��ֻ�&* !`���m����PD��G��캀�0�n�,���M0�ZL��k~�j��W�a�aR�V�t��cz��|m����� !��H�Fi�IW���]�6.�X� P���@K;ke�/�YX���r ����& +�}P�_h�TBr> +�q5����P�pR�Ԝc�c���0O+k��*��,^��nX=V�*��s����������6� 6�� +�+�x��̦p������;?4�U)i�]�6Y'Bs�!Ù1���gO��n<3��(��5V ��#��L�;AZ��."'F�"�(�`�3-�����z�:�>�1?.tsY�O +� +#� +�z��P�,�eZ�)�?M��'� ɕp��T4>�z��..-�0�U�"�7&h��|x1�}7��67�*&����Ukvu0s��E:5��)>�X�an�z ߪh����EЅM�7�gt`�EԕU�R��ج +�t�2K���q��}�8n�-V���o$�}ﵓU�F�}FZ�_e0��s�.m�����i�F�)2%�$� +ђi�+L��_1A�ZV�D�_<z��� �Y�zV�=������hi��(�b���$$8���a�QE�p�b��:�5��NWٴ4x�[wê�sW��������5! �.q�Q4��q�7d��h�,��UL[p�iǩ�y&ǟ�qkYx��jb�4bJVWx+Ƙg��a�v�ʦ�-� �#V�<��ze�z��$�X��"u�������wP�Hjn ��%V[�n�rw\m�M��wS;��̟B��j�业?��:�WAZ�q����=��O���?��F�,u�\=��Ϲv���lS[�`��Fc���҃�X+F.�T8�R8�Tf���1��Pv��%�~�oJo���w/�(�.e������2�n�L'�]��4��?�����o�e���������;���}�2�����Yz�#W�Gf�.Fd�D ���m��%`l�䙥�HW$A1s��B�Nl+�m���tQ�za���=�L +endstream +endobj +6920 0 obj +<< +/Type /Page +/Contents 6921 0 R +/Resources 6919 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6915 0 R +/Annots [ 6916 0 R 6917 0 R 6918 0 R ] +>> +endobj +6916 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 492.837 171.594 500.974] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6917 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 134.064 171.594 142.202] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6918 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 122.109 171.594 130.247] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6922 0 obj +<< +/D [6920 0 R /XYZ 69.866 801.979 null] +>> +endobj +6923 0 obj +<< +/D [6920 0 R /XYZ 70.866 771.024 null] +>> +endobj +6691 0 obj +<< +/D [6920 0 R /XYZ 70.866 602.662 null] +>> +endobj +1426 0 obj +<< +/D [6920 0 R /XYZ 70.866 575.466 null] +>> +endobj +6924 0 obj +<< +/D [6920 0 R /XYZ 70.866 407.487 null] +>> +endobj +6624 0 obj +<< +/D [6920 0 R /XYZ 70.866 247.118 null] +>> +endobj +1430 0 obj +<< +/D [6920 0 R /XYZ 70.866 220.375 null] +>> +endobj +6919 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6932 0 obj +<< +/Length 1757 +/Filter /FlateDecode +>> +stream +xڵ�Ms�8�����X�oఇ���T�;�K&�"6q�2�<�뷅� F���v�ZR;�V��$�.�ag�`����j��#s�R2g��yR:�O�$�j�<� F�.����qPd�O�����C}�9|Y<�0ل��ՃÙ��灊�!}�����ی���!G-�C��&�=>ag�=81�s~�#c��gp�w���u�#*ԭ��h�D# � ���� ��!���2i��\;<�.'���7�A��q9F���D:%��!%T��xQ +�ra�ˌDI{nv��XIY��,���E����hM��a�3�,]1���M��� (�N_��x O�/����v�q�|:fN�h0��n�xM�a�r%o���(��q�v��I^�4�x�57��'��k��m2���7`]�l��Xo(>}t"��k�������#L�'�Oյ��q>�i���FIQ�U����\ 0A�M��5Ɇ�K�.��}��V���)�d9=���i竮z�Z�eٯ�6�;juw�Qۆy%A�I�=��W,��W�\������rN`��|Zm�b����[��q�����yh�LH�'Q=�F{>*[�#���D�����}��I\4���R6e"��%� � +j?Ϫ�|�zh���^���T�Í�b5-wơd�~�hJ�<�<o���x�Kݻ`a��E�Y?y�]�l��(HJV5a2q��T�0r�| [?�49��kHH�X�w�8Ⱦ�l[��V� P&���m��e�FMTei��.0*!#^����2�16Ǯu�I������)��$��"��Ędp����F�Zٲ���o��2F8-qW4=@�օV�����/n�n�wg�f�(�ɝ9��W+ۙw���5"U��#ޙ�0TϪ�<�O�ɓ53rT��<�7�˳�\��ZU[|�U7�j�d�`9�;�� +�F�[�"!h�"���o�"<���E����Ѧ�wۙ����y���:�� +�Шo�M]+�l!��Z�V�b]���^_t ��,,j���PkarۖCJ��Y!;�1�_�;����/� +�p�}����)ʍo��^����MdY�K����>/�Q&9$;�돎y��Yތ��z. ���;Ng�0��>2�N`�Sg���u�:�����wBS�1��n��fJ��;�I&����2�l{�������FJZw� Q[KH`��ˑ�ͭ���b���:��U���T�~�m�gs������8�P� ��T�0'�0db;����}DŽ+�'i'�.�t�9N�Nf]sl7�sp�m��%�40'��`RfΥ7hDQ�>�s��̆�5��H��6|�Ԉ2x w���|�l^�l�\�㽡���`���F)��k�G�<�T�ҶCU�>*��]����P_�|���4�&�0����� �V*e9������SV}�ZHW��q>�i���]�.�� �v*�"pp�m|���&"8ɆA��AQkrt��Gj���n08�;�u�n��]Oer��Cj&���8���~9U��!�rB��)��^hbcrjb�}w���lfؽ���F���н��6��s$�]u�xq8�H����f����y�fi��q���g= r�w����]d�/��p����5�oì��6��N- wup�n�SI�v5�����M���pU�t��TU� +�ɕ��*q��4��&aU+�"\�H�$���S)T �y��]�, +endstream +endobj +6931 0 obj +<< +/Type /Page +/Contents 6932 0 R +/Resources 6930 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6915 0 R +/Annots [ 6925 0 R 6926 0 R 6927 0 R ] +>> +endobj +6925 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 458.45 171.594 466.587] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6926 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 434.539 171.594 442.677] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6927 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 422.584 171.594 430.721] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6933 0 obj +<< +/D [6931 0 R /XYZ 69.866 801.979 null] +>> +endobj +6934 0 obj +<< +/D [6931 0 R /XYZ 70.866 771.024 null] +>> +endobj +6620 0 obj +<< +/D [6931 0 R /XYZ 70.866 580.23 null] +>> +endobj +1434 0 obj +<< +/D [6931 0 R /XYZ 70.866 553.034 null] +>> +endobj +6935 0 obj +<< +/D [6931 0 R /XYZ 70.866 350.974 null] +>> +endobj +6540 0 obj +<< +/D [6931 0 R /XYZ 70.866 162.056 null] +>> +endobj +1438 0 obj +<< +/D [6931 0 R /XYZ 70.866 135.101 null] +>> +endobj +6930 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R /F92 4494 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6943 0 obj +<< +/Length 1560 +/Filter /FlateDecode +>> +stream +x�͚Ms�6���+82UY߂C�8ު��q|�\�{����ͯO�1f��TNؖ��<���|yw{C��r��{���-.���Jɼ�gOaH驐"I��'��' +/�x���b���d/WT�U�ަqVEU�gz������3�Gv&���{�tq���'���0�~�3S��g����k�g�M!<�B��v�0 +��mIn�&Y<Vڃ�됶���Q�ϳ��I�]�bݼ��/����A!��/�QU$�Fe���g���+���y�>}��NU�Vf�?�e��g�� OG*��]x�bA�$��X�#oE9|H����u[ť!��n���%�~���yi��?�gdڥ�?yGf5k� ���AZ�TaYԆ�fI�QW1(��ą��Ɇ裂#�?�;� ͩ�T��Đ � +%Қh�!T�_�!J= )�_!ql;�b�'J�v� �,���CS���1Q�� ��u5�| ��0e��m� �����X�YF�j��}0�6q�Y6,]0���-�� +� lMt�Ֆ�Ț��檭��7�4;+V#�0p?�Y6,T,D܂ǖrq+ΑP� XM�t��m�b������y`7�#7xm�^sHZҪ�0i{3:�+L�q��}���6q�Y6,��"A�9Pd�g0�M��j��i�n۪��l<��\r��viF�p��$�98��>:`�>��6�A��D��GSt\�_1�Y���2�M��� ٽI��e���X'�:�6���a?.�l?���-)���_�����H۱N�/zv!?����_㬀�Q�x����M���ݑS�����&*Z��#�L�Щ+aM�45%F��8㦰y���nl7�@c�Q��EF�d��� 8*�LY3f@�E#W�[Y�Z<�_�������@�����_9���C6* +�u|6Aa�ӣu/$�����e��u]g��*y�$��A���N���U^�m�r�X���M��1�ߒ�Ը���}��Cn�F�k������^�&����20�b|���5�Ii~�̯��)I㬄�G3�[�o�Z`�Z�d&SԘ"�vM�3�YV�`�w�p��u�k����;�j\�a\I���]��?F�Ų��إ�b���] +�C��`��0G!%���y6L�EC �9jI�1�� I�DIg��u�)`K�&5���dH���Y&�h���i�Y� +Ұ ���_��l��lXF0K��( $�����4I'��l��i�NF;���y4t���O$�����tͲa�R���֤ +�\)O�k������=a*ˆ�i�Yk{0\Y:!C�m��}P���bl�lX�t�6ܧ;6"u�qئI�ak��ki4�M�� ^ۛ��kC��v����8�,��xl)�s����N�M�t��V����UӔ�T��G6�ӽ������K�sTwb�<��8�N#aP�+'�Ӡz�O���3GC�tt����^Tr�Ż��ER�G�V�R�V��g�V ���W:�2���*���LBpx"�����,.��ձ��u������q������E +endstream +endobj +6942 0 obj +<< +/Type /Page +/Contents 6943 0 R +/Resources 6941 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6915 0 R +/Annots [ 6928 0 R 6929 0 R 6936 0 R 6937 0 R 6938 0 R ] +>> +endobj +6928 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6929 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 743.244] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6936 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 422.895 171.594 431.033] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6937 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 410.94 171.594 419.078] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6938 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 398.985 171.594 407.123] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6944 0 obj +<< +/D [6942 0 R /XYZ 69.866 801.979 null] +>> +endobj +6945 0 obj +<< +/D [6942 0 R /XYZ 70.866 698.488 null] +>> +endobj +6622 0 obj +<< +/D [6942 0 R /XYZ 70.866 544.676 null] +>> +endobj +1442 0 obj +<< +/D [6942 0 R /XYZ 70.866 517.48 null] +>> +endobj +6946 0 obj +<< +/D [6942 0 R /XYZ 70.866 327.375 null] +>> +endobj +6705 0 obj +<< +/D [6942 0 R /XYZ 70.866 163.786 null] +>> +endobj +1446 0 obj +<< +/D [6942 0 R /XYZ 70.866 136.741 null] +>> +endobj +6941 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6955 0 obj +<< +/Length 1475 +/Filter /FlateDecode +>> +stream +x��Ymo�6��_!t_d�f�N�mhS�E��30`i�����%ϒ��_��H9�L˱�n��D&�yx|�<=��{K��b����/'��'�.� +"��d��&PERJS$I0_�!���錪(\��6�z]&E���E�J�_)�a�M�E2��� +8���"���1�'/擿&����E����� +K��U��Q���`Hp���'��!D��V��EF�`[��e�Ҭ��K��م����� +U�̞V$-������ed��A~�&�r&,�g3]�������%׆q�[0]K��".ϳ������x�Yшн��cA� �J�ʐ�4�QҲc��NgD�i�4���)a�ڹ�i���жӾ���}�wn�&/�2��4 �ӧ /d� +�0�5��S��AX3u>z;�<���:)�픐�hy�;RH���JD����#�0a& {�po�hX+��D��A��F��`I!�]��nd �b��!es�.�l��=�B!A�P̖8�mVs�OAd_��2�Kw� ��������*�!YɊ��d����8y����� ��c��1)��u B���k�_[M�E�ڭ�ǕֹTU00��Q6��`����R4��E1�2�>�we���a���Dml�%<#^��� c��]��&��E-�2&����L(��)m� �4L�bщ�P�SB�d$��!�e���� H�������a�z�es��`A���Q6�x�*�#�)�"D�V�@H�|Z���g �W?-�#5�_>�9�{c��q�q6�~�@$�㓏PR�=@>���ib��Z���%��/�uA�ҹV��3�٬e�8�Ѹ:7�ơ�j[�"���'�1�Y�\_�Wi��1iJ͔�Njd��L�hB��Ls�T��\��j�,�g���x�Y%E��A�`��7�26�-L�B�V�}@�=���O��f��n�8�)�"��M�=�O����\�9���EU����x��n��q�e���B%'�i��x������&)��T ��Q��}/z �;/5Ч �>jZ!N�1�I�'�2]�ҟT�[�nv�ڀrcmb���em���Uދ]��a���u.�r��R�{JEkNp9��y8O�G��0���唄�]cu��6X7�c��Ve K�YJ��k|�Q��%;��+��l���#�!ߘ�;��gf{4�tX>�k�B���5�8��V�����")���=��ϥ���x�d[$�Q�� ���+p��ťwV7�gL#*���Q[q��yR�PM����Xl�MU��Ŕ .��b�-�ozf�ɔ�_rf�$ypj�m�M���<�1���;��b>�ʻ|{D-ǂ�������g�)��ݮ�u\�Sg��>�_���} E�8�����9�n��nW'8��e���N!Lq?�_�yR"�$o+�@����$K�qYk��ߜ�j�����I������7 +endstream +endobj +6954 0 obj +<< +/Type /Page +/Contents 6955 0 R +/Resources 6953 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6915 0 R +/Annots [ 6939 0 R 6940 0 R 6947 0 R 6948 0 R 6949 0 R 6950 0 R 6951 0 R ] +>> +endobj +6939 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 755.199] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6940 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 711.196 171.594 719.333] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6947 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 286.315 161.953 295.772] +/A << /S /GoTo /D (matrix__test_8c_aad3d0f4acb79e8a9b61eda59dc3a12b2) >> +>> +endobj +6948 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 257.591 230.177 267.967] +/A << /S /GoTo /D (matrix__test_8c_a5713bd664a96ccd028896420050f22df) >> +>> +endobj +6949 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 229.786 213.912 240.162] +/A << /S /GoTo /D (matrix__test_8c_af3bd1663337eb8dbe0fbcb49b517621f) >> +>> +endobj +6950 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [233.682 119.258 260.215 127.742] +/A << /S /GoTo /D (matrix_8h) >> +>> +endobj +6951 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6956 0 obj +<< +/D [6954 0 R /XYZ 69.866 801.979 null] +>> +endobj +6957 0 obj +<< +/D [6954 0 R /XYZ 70.866 674.577 null] +>> +endobj +4162 0 obj +<< +/D [6954 0 R /XYZ 70.866 532.42 null] +>> +endobj +1450 0 obj +<< +/D [6954 0 R /XYZ 70.866 516.049 null] +>> +endobj +6958 0 obj +<< +/D [6954 0 R /XYZ 70.866 326.767 null] +>> +endobj +6959 0 obj +<< +/D [6954 0 R /XYZ 95.773 300.342 null] +>> +endobj +6960 0 obj +<< +/D [6954 0 R /XYZ 95.773 272.537 null] +>> +endobj +6961 0 obj +<< +/D [6954 0 R /XYZ 95.773 244.732 null] +>> +endobj +1454 0 obj +<< +/D [6954 0 R /XYZ 70.866 200.885 null] +>> +endobj +3895 0 obj +<< +/D [6954 0 R /XYZ 70.866 60.975 null] +>> +endobj +6953 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6981 0 obj +<< +/Length 1195 +/Filter /FlateDecode +>> +stream +x��Xmo�F��_��~)l�������N��ԟ�D�؋Mc��%���,/����T�'0;���3�3�/�7�R�*f�A׳��+�"�Jq4��K��r}�E�%�������G�a���W�F�s=�}����ag�1�}����Q�$��!={L�E2��'h k ��\[&HH���p�A��~{F�2�S*y*�ɞ(�B�%�XIX��.(uQ�uC�'|�#�K�:]hC���"������0�nt�l�j<�3iŻ��"K�U#Ba�s� ���W��})[�t�l0�u�;�Cv=96�B��19n���f���e�f��Wm nj��Z�1s]�Hҡ�=��LA|Bໆ)c��9���6*s�2��Ԯ�,�G̶:7qIxLg�M�7�-t�S�>�0]U�ЦV�l�8"��f�M�\�n�kyG:/��j@>� ��iǬ�����|��G��>&��<�%Ӷ��eEgٖI],�x���5��X2���c�k��'v5�͉5�hT/�>��LE.ꊛ �0�f�ܚ����#)��h��`3aU�:ˏ�~�#�^��C2���>�]����Iܢ5m�uw��@?��8+�=hRm������>N#U�7q��zt���ʁ������Rާ��U���az�ª(�T�h~.�/^ٽ~2Q5�yTC��#8��m����,��U��U��6�����8]l�e˅�Kh�n�ݷX.v!ЭAQ.���s x#��j��&�@I�\iߎ��z���$r���bA�f��xW����w��=aڌ6c[5i��e����e��:ͳ����Y�O�ô�`>��)�U�i���"������y�i�Ma�p�Q���\_�O!��Zzq·�m6唳 Z����$�xk���#}�Ô �=��y�PQ�u9�Sy/�DI�1��z��S��|ĥ�T�*y��IId=T�����fZ ���J��N,�������f�� +t�g��e�$�YCR��8R�w�|!��'%:���Haٓr&X;�)(���wA�<i��CS�O�7�<|�h�gD����ǃI}�E_�� ��"{���u�4���yb�<?��c��;k�M.������_��_7�~�S��З.|��g~�yo2W�:^R`)\�Rmg�֩�ò��`H~������/+3NY:S�Q`4@ +endstream +endobj +6980 0 obj +<< +/Type /Page +/Contents 6981 0 R +/Resources 6979 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 6915 0 R +/Annots [ 6952 0 R 6962 0 R 6963 0 R 6964 0 R 6965 0 R 6966 0 R 6967 0 R 6968 0 R 6969 0 R 6970 0 R 6971 0 R 6972 0 R 6973 0 R 6974 0 R 6975 0 R 6976 0 R ] +>> +endobj +6952 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 637.832 161.953 647.289] +/A << /S /GoTo /D (matrix__test_8h_aad3d0f4acb79e8a9b61eda59dc3a12b2) >> +>> +endobj +6962 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 606.644 230.177 617.02] +/A << /S /GoTo /D (matrix__test_8h_a5713bd664a96ccd028896420050f22df) >> +>> +endobj +6963 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 576.375 213.912 586.751] +/A << /S /GoTo /D (matrix__test_8h_af3bd1663337eb8dbe0fbcb49b517621f) >> +>> +endobj +6964 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [208.756 444.73 235.289 453.214] +/A << /S /GoTo /D (matrix_8h) >> +>> +endobj +6965 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 387.686 297.675 414.226] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6966 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.654 107.916 223.15 118.498] +/A << /S /GoTo /D (modified__gauss__newton_8c_a7376799043ad2c27fac02371624051bc) >> +>> +endobj +6967 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.89 108.835 368.552 117.987] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6968 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [413.243 108.835 446.904 117.987] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6969 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 96.88 128.787 106.337] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6970 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.043 96.88 184.054 106.337] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6971 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.484 96.88 334.145 106.032] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6972 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [465.205 96.88 498.867 106.032] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6973 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [120.134 84.925 153.796 94.077] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6974 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [202.087 84.925 235.748 94.077] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6975 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.066 84.925 386.727 94.077] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6976 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [427.039 84.925 461.05 94.382] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6982 0 obj +<< +/D [6980 0 R /XYZ 69.866 801.979 null] +>> +endobj +1458 0 obj +<< +/D [6980 0 R /XYZ 70.866 771.024 null] +>> +endobj +6983 0 obj +<< +/D [6980 0 R /XYZ 70.866 683.781 null] +>> +endobj +3897 0 obj +<< +/D [6980 0 R /XYZ 95.773 651.859 null] +>> +endobj +6984 0 obj +<< +/D [6980 0 R /XYZ 95.773 621.59 null] +>> +endobj +6985 0 obj +<< +/D [6980 0 R /XYZ 95.773 591.321 null] +>> +endobj +1462 0 obj +<< +/D [6980 0 R /XYZ 70.866 543.406 null] +>> +endobj +4163 0 obj +<< +/D [6980 0 R /XYZ 70.866 376.939 null] +>> +endobj +1466 0 obj +<< +/D [6980 0 R /XYZ 70.866 369.476 null] +>> +endobj +6986 0 obj +<< +/D [6980 0 R /XYZ 70.866 154.784 null] +>> +endobj +6979 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F11 3889 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +6999 0 obj +<< +/Length 973 +/Filter /FlateDecode +>> +stream +x��W]s�6}���#�Y} o��Ԟfg2m�&��i@J�&��+���Kv�dg��1��sν:���m�~Ǡh������lEC��s +69�8aL �`��k#��O�ȫUV� DD��m)��y_;%�v��*+1<]�|��'!��/���.o7�_7�X�@�?�F�H������L�]�i�����B ��+�������,��H8�h +�K#��sѥZm6�=��)�RI��lE�Q^�)����J�Bv��ngc^����/Œ�>1�@Z�Ѽ�+�] �8�f��Z���1��G���t��>�K�i�qQ����]�b���q��ܿ���1;�VՓra��ɾ%�n-�'��$���v: oS�Wz������i[�mp�=pO��&b�Hz7p#�#4�}�7k?�2��MUJ�M{ ɷZ��>�e���^gh�t��&+�8VF� p�R(-��B�B�^�nU} ljtY� GΡ�Չ��j���jk4w��'E@{.�0�l�|n�SnC��Pk���/e%��p���#����!�hЀ>�A�t�Z�S��-ik�.�yR Yt�3�|;u�f��vk�7��gW��1$_ĶS��2�� ]@!���{D�^t-o�����I��]��<���N��|<�_<�o"�o%��R�ze.�c�R��Iى&�����F�]�8v�Q6Qe���*�������u%�3�$���a�a�D�ZP�/������������=���P���M6��b�|��K�D4�j���!E���GΎ]8��W2��@�yx���ӭ�+S9$7�Q8�r���)�}��@w����k��;����\u=��,���U���Ծ���2��2���.(�q�ԁ��@�[Z���%h����v�w����6�^Xh|«�{E���<�!�ކs�ڨJ;��w&�O�iZR} +� +�yB*���J� +endstream +endobj +6998 0 obj +<< +/Type /Page +/Contents 6999 0 R +/Resources 6997 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7001 0 R +/Annots [ 6977 0 R 6978 0 R 6987 0 R 6988 0 R 6989 0 R 6990 0 R 6991 0 R 6992 0 R 6993 0 R 6994 0 R 6995 0 R 6996 0 R ] +>> +endobj +6977 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 617.669 297.675 644.209] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +6978 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 600.349 346.876 610.264] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +6987 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 419.147 171.594 426.631] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6988 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 407.192 171.594 414.675] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6989 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 395.236 171.594 403.374] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6990 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 383.281 171.594 391.419] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +6991 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 359.371 171.594 366.855] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6992 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 347.416 209.303 354.9] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6993 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 347.416 301.573 354.9] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6994 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.159 347.416 403.408 354.9] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6995 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 335.461 209.303 342.944] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +6996 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 335.461 301.573 343.598] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7000 0 obj +<< +/D [6998 0 R /XYZ 69.866 801.979 null] +>> +endobj +1470 0 obj +<< +/D [6998 0 R /XYZ 70.866 771.024 null] +>> +endobj +1474 0 obj +<< +/D [6998 0 R /XYZ 70.866 586.105 null] +>> +endobj +5793 0 obj +<< +/D [6998 0 R /XYZ 70.866 540.927 null] +>> +endobj +1478 0 obj +<< +/D [6998 0 R /XYZ 70.866 513.731 null] +>> +endobj +6997 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7027 0 obj +<< +/Length 2065 +/Filter /FlateDecode +>> +stream +xڭ�ݏ�8����@�/�����N��SߌnV����Ό�47�����_�e0 4�O$`���]U6o>�F�}~�����ww�z�{�|)��s\�<)קH�!r>����_�;�1.�����8Q� u��}�=TZ�E����ݿ���#�;�"��G��=�}�����w@��9�- ��w����31�B��c� �%A7V���|�*�iM�*/-�EZ-��2�����W�A��qt {C2�5o�FD����*�K<�(u\ΐ�[z$�� �.bԟ�R6G�=,�JwA��}�dQ��]>W5�P��H-�Fq�h���œaV�N٩��;�[Mn^����b��<x���sʑG�S���'n�C�f�p�G`�8o��qk�L0���NYC� dyc���hM5�OH�`�"��0d�0��᮰��#hA�%��8[�T��j*}Ɓ�O� �����n���4b>S�-��}� ��j�� +*�H%�k@�1��j��*�P5�Fa���fر�1���`�"�pN8 +�2(�^o�'>�IzQL_��,�V�Z:�1�g�R+<-��v{�Ï�D��9��ؙjI�A]�9-a��^y�&r��(�Kș�ҎNS���O3���i������^�U�%�B*ݚl��h �Bnr��H��.�n�C��U +D)<D_R �Ti����>10�z�χ�`'�cB|����0�]Y4�=�Ӎ<�]x��ϔ�jM��Ϣ~3L��P"@��a��}�"��Zr�'ԣ�� +�a��ya��\�9O�ΆR����l�v@�f����*�>c��#܊�ZY*�dj�6��>+ B��x[$��k��X +uU�^���gG��Q����-� �(�ˎ�g�Yզ%�CR�٫"�ed,�� �n�Qmt��iQ��E�,`O��O����@��0�Bɫ��_�Qh�ܗ@:O�Ӧ������6{��t�y]�����0��u$7Vw` 6��y�������/���˘x�"�n�Ӗ��8���K}����an6N�s|���pV�5gcQ�\���h_��6Y�f`mgq���$�E����`�s� �$th[��`��\Y�{�f6eJ���orJÓ:�гG���zu@�ea�g*��"'.r��zb�d5�� �YvR�Q��,W���̑�w�WNXΑ��uZ�z��F+ y +��l���pAq]pA���K��[�0���\� >w�_��`��߿�Z�f-_��I�0 �8/t%y[�n�f���������0�.d�4�-t�oaǰ���a�PL�WN�@���,Ui�IPn�6�齔���ɳ8xGw��r�!�� +&+=ћ�;�N�SE��1��yp����\���H�?��aXS 8�9���a��ڞ�?��69G�B �<r}���Q.r�_7��R|?�=�d�F�3�i��!�X���b�F������lv�~+q4m��Ě�� ܃����˩hsM��U���-����+Χ�rugxAa�Huڛ���l�Z�2us�g-��Q�6��V�g�O�9k�W����O�eP�������-�C��!hE����z�)�q1zOP;�V�ԑf]>�n܌�t�6�Ukk__���F�Ɉ����̳���<� +�l�|�j��8}}>̗�MHmh'lv6#���蛯�����u�5��`_"~]^_:��2b�hj���#��?eQ��}�F�\�JX�p��~�XփK��_B_މ}�usN,lǁ +�n�ه8o�vDLp�WE�ۨ�W���O���[��uPy��}�N�)Z1�7�$'�B�,N�⼽ga�sw�RS�$���⺛*�`r]�0Ȗ���۹x'̳���khh�w �Cl�UE�W���kw�A +�]g�__��?�����Ơ�B��6FX��#�_#�2��`eӇ�t�t��B�fP�^V��F���,ۃ�P��V��>�.��O�/'� +-y�.A9-�+��L�w����m3���ʌ��^Ϫ�J�_'� ��H +endstream +endobj +7026 0 obj +<< +/Type /Page +/Contents 7027 0 R +/Resources 7025 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7001 0 R +/Annots [ 7002 0 R 7003 0 R 7004 0 R 7005 0 R 7006 0 R 7007 0 R 7008 0 R 7009 0 R 7010 0 R 7011 0 R 7012 0 R 7013 0 R 7014 0 R ] +>> +endobj +7002 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.654 276.175 223.15 286.757] +/A << /S /GoTo /D (modified__gauss__newton_8h_a7376799043ad2c27fac02371624051bc) >> +>> +endobj +7003 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.89 277.094 368.552 286.246] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7004 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [413.243 277.094 446.904 286.246] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7005 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 265.139 128.787 274.596] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7006 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.043 265.139 184.054 274.596] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7007 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.484 265.139 334.145 274.291] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7008 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [465.205 265.139 498.867 274.291] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7009 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [120.134 253.184 153.796 262.336] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7010 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [202.087 253.184 235.748 262.336] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7011 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.066 253.184 386.727 262.336] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7012 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [427.039 253.184 461.05 262.64] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7013 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 85.068 297.675 111.608] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7014 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 68.336 346.876 78.251] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +7028 0 obj +<< +/D [7026 0 R /XYZ 69.866 801.979 null] +>> +endobj +7029 0 obj +<< +/D [7026 0 R /XYZ 70.866 771.024 null] +>> +endobj +4164 0 obj +<< +/D [7026 0 R /XYZ 70.866 461.245 null] +>> +endobj +1482 0 obj +<< +/D [7026 0 R /XYZ 70.866 445.386 null] +>> +endobj +7030 0 obj +<< +/D [7026 0 R /XYZ 70.866 312.874 null] +>> +endobj +1486 0 obj +<< +/D [7026 0 R /XYZ 70.866 224.417 null] +>> +endobj +7025 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7034 0 obj +<< +/Length 1878 +/Filter /FlateDecode +>> +stream +x��ZAo�8��Wp$��c��u5�j{�v{�T�&Nʊ@H���~��4&8$�j�=TM��}�ٟ�����p��8�r�������o��7��(�s֎�Q �� �<��G�`��|A�����;�T��M�/�(�s�ݟU�����M���ӽ\� ve!��z$X������3F`��� +(s����vV����Ϻ��a�C�y�9u����sl�y(LOA�� +����7�lY%y֘�%_�2����x42�Y���w��`C�s����Q�c�A=��A�IVQ5_��N<������1�;���l!5ؼ�Q�i�n�2�T/�,v-t�Q�Y�8k���I���]B�*�U^4,��{D�<����{�tz̞.���'Ү�*���q�/�m\��5�rWNq�z��6ɬZ��_��m�%�,�l��oe#�*z3�s�L�d�.��7�0�S6�vς���� '-���SN9���U���'����x:���9�x�I�!A�� ld�#Yya߇H�<�u��t�KN�v�b�O� �}����e��ę�IG��M/�F44δ�� ���YPGo����.��$,���z�ǧ��V�K�)_�b�9��q�����I��E�I�;-澔E�|���F��:<_��n��a?�EkQ~dY�͝i�;eS;>���>�K��:��aGQտz�!ݓߣD4��+�����tƖRĔn�o�Nʮ)ͷ��Ff03�i�K��N�\i��,]hR��P�~�S��E���'nٱ��y�@l8�8C���c����Q��`@kX�<�u� �~�Q +H��$Y?%؇����,A*ȥC�F �@ql,uGt$��It�5q��|}z��G��uN�[�}s��z��Ԃ&c�������$�M�Њ |��|��ō��+�$��6��.5�sPje��v�kv��}q���4�M���jkfg\�j�����������$U�O3�*x ��4��qF�g1^TW[��(�4QM�Т��(�G� +��{�j�]T&i��\,�qf�eulƵ��ږ��B@�<IP�0���%��g] �YAѰޖ�j�]P&�ܕ��j�/��&�_�H�9�g�!�\mJ���|&ah�@�N�w�L�9�����3�Ѯ�Sռ�3�ծ���sb�y|��<��aSOW!Vv>�������B0 +����0�Q�n��� zI�8�Ү9��PU��ߞ�H�<2!�Ʃ�ATZw-j˞��M/ֿ�6d������ �Ĭr��J��yWLð8)���M��}5��q�VuvXu���m�V����b����;x����{rU�<��ஷ�/U� �4�M�В�\��(dP��qpA!c$�]q&��O�aE!$��R�Ab�kh��'4;��fMOt�|����z#�B̧E�ah�B,0��r1q$�]�&�G����9��q���j�2�������jN��!�^mn_s���4y�����"�CC!�:��վ��k�Xӻ�?�Iўt��X{����"��]�zƺl�&��W�vC:�#������Z��D=l����k_*���N�mmy����2��!�N���L�C�;NR�2]�`���u�=��dV䥌����B_!�`��q��ڥ��V0�m�,l���C��Ѡ6�la0���a�w_%)�=?:�2ߩq��iA� +_�i��q���Ry�iD�>�ubJO�+��G?�+Y-�λ�>�y�h�?������ ����.�dV%q�u� +�DØ^�2iVN�'��>�wʝ�fCt�N6����m�+m�~��� +�H]��U7Ƈ ��/y="�6�5Wf��94� +endstream +endobj +7033 0 obj +<< +/Type /Page +/Contents 7034 0 R +/Resources 7032 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7001 0 R +/Annots [ 7015 0 R 7016 0 R 7017 0 R 7018 0 R 7019 0 R 7020 0 R 7021 0 R 7022 0 R 7023 0 R 7024 0 R ] +>> +endobj +7015 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 626.865] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7016 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 607.426 171.594 614.91] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7017 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 595.471 171.594 603.608] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7018 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 583.516 171.594 591.653] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7019 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 559.606 171.594 567.089] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7020 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 547.65 209.303 555.134] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7021 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 547.65 301.573 555.134] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7022 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.159 547.65 403.408 555.134] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7023 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 535.695 209.303 543.179] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7024 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.324 535.695 301.573 543.833] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7035 0 obj +<< +/D [7033 0 R /XYZ 69.866 801.979 null] +>> +endobj +1490 0 obj +<< +/D [7033 0 R /XYZ 70.866 771.024 null] +>> +endobj +7031 0 obj +<< +/D [7033 0 R /XYZ 70.866 741.162 null] +>> +endobj +1494 0 obj +<< +/D [7033 0 R /XYZ 70.866 713.966 null] +>> +endobj +7036 0 obj +<< +/D [7033 0 R /XYZ 70.866 414.082 null] +>> +endobj +4165 0 obj +<< +/D [7033 0 R /XYZ 70.866 68.979 null] +>> +endobj +7032 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7048 0 obj +<< +/Length 789 +/Filter /FlateDecode +>> +stream +x��V�n�0��+��"4�N (���$(��>5 E�m!��Jr���;�[��@Z�� r8�8�ސ{��SF��GɔPr�}y{�b�M��iML�A32�s�\����=!5l��� Bn"�HW��I��3�F�w��%%��eA�%I��%%c�;&�1�ȏ�rA������|��<��8Č�M��}�JA� d�RQ��Zڼ8�� +�YH��^ն�!m��/qf'��-m�Zw��Co$��P�*jc�%���V��bҎ����م��\� +��%"hw���(��z��6�R$�H\w��m�[���t�w�۰�tL_W�w;|02� �z�0��H2���7v�w8¬ +��b�yahY^��K[�D�b0F?��3\�^��o֔h�P�ո���[[Vfo�ӧ=$u��u�-#)�eS"өc��NU����[�b�I�g�y ��\�E6�����i����ʱk��;����~݉�h��l`�ƍ�Pi�q�9�d+F� AS�hDB)Q�jC��:���:A)���d��̖};ڡd15/�A����m�l �?��jSY�F�d�ha�kG���,�t�j �bWn�WrŶ�&Ak���c����gx��|d�"]�A�+߷�&����;I�E�yk����N�-�kѺ���qg?d�&��ږ�,��ݒ�� �9I�(P�פ��������Q/���k3��(zmF���ͨw����o����߱n�l�sJ�RGL�na�ܖIݳ�� ���7ž�:�b�P�/��� +endstream +endobj +7047 0 obj +<< +/Type /Page +/Contents 7048 0 R +/Resources 7046 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7001 0 R +/Annots [ 7037 0 R 7038 0 R 7039 0 R 7040 0 R 7041 0 R 7042 0 R ] +>> +endobj +7037 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 574.443 221.453 584.711] +/A << /S /GoTo /D (moore__penrose__pinv__test_8c_a71ea6881aeb228d371528527d1974014) >> +>> +endobj +7038 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [250.673 455.361 316.989 463.845] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h) >> +>> +endobj +7039 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 402.603 297.675 429.143] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7040 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 241.555 221.453 251.823] +/A << /S /GoTo /D (moore__penrose__pinv__test_8h_a71ea6881aeb228d371528527d1974014) >> +>> +endobj +7041 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [250.673 122.473 316.989 130.958] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h) >> +>> +endobj +7042 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7049 0 obj +<< +/D [7047 0 R /XYZ 69.866 801.979 null] +>> +endobj +1498 0 obj +<< +/D [7047 0 R /XYZ 70.866 771.024 null] +>> +endobj +7050 0 obj +<< +/D [7047 0 R /XYZ 70.866 617.945 null] +>> +endobj +7051 0 obj +<< +/D [7047 0 R /XYZ 95.773 589.282 null] +>> +endobj +1502 0 obj +<< +/D [7047 0 R /XYZ 70.866 543.905 null] +>> +endobj +4222 0 obj +<< +/D [7047 0 R /XYZ 70.866 392.992 null] +>> +endobj +1506 0 obj +<< +/D [7047 0 R /XYZ 70.866 386.176 null] +>> +endobj +7052 0 obj +<< +/D [7047 0 R /XYZ 70.866 285.057 null] +>> +endobj +7053 0 obj +<< +/D [7047 0 R /XYZ 95.773 256.394 null] +>> +endobj +1510 0 obj +<< +/D [7047 0 R /XYZ 70.866 211.017 null] +>> +endobj +4223 0 obj +<< +/D [7047 0 R /XYZ 70.866 60.104 null] +>> +endobj +7046 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7061 0 obj +<< +/Length 1093 +/Filter /FlateDecode +>> +stream +x��W�n�6}�W�/1$ŋEӦ �A�mb�a��!ˊ-ĖR]����MҖ��M�}! Ϝ�9���Ǘ)Z�#����ѯ���Y�P�c)C4�E��HJ�b�%E�9�x�`�S��.�*��gE�3�5�묝�Ӽ�9�6Y�S��X�f�Y����2��)�*+R����xT)�f�a��x�-��F�q��G�����"8�#�ek�F\�X��+t5��Ah��RэMRL�QB��F!����Z��P`I�������1�������%�EY'���rm�5�y����m�a���3���l�3,ZykQͣ��&)�*�lM��:�� k!P�����"���"]�s�C����c��(���A��ge���g�~>�@Iqȅ^�X���]^��)��r{� A���P$(��^j=�mt���Fՙ +�{�m��[Cs$V"v��}gm�6yY����@�Tb��,@Ƣ�M!��M4m�}���=��[�nO�g��Ț齓��To�Li-�A82������{���ܜL�7���{a\$��H`O{v�,CO��3�Jg�1����q̹I�o�*�����?�Jޤ#<&�`�z��OKaˡ��/�QHb�>�����Z��@mt�Jzɿ���>�s��������~����a"xgpbjG�i�$0-�ӬN��^w�G� 4Q�����g�=vN��d]�E4��<gI���pv���.�k_�E���je�� h�_]�j��,�L�~h� :��T*߉ϸ�6KH�a�����Z��bn�Χ�.��9�H�un�������h06���~B�}������� fY��l&{��@�p[��i��)�:uΦ�L�uV�Z:��2�`�Rуډ��}q��xv~�+���k�x���c`�]�=��<ܘoq+O��r%�s���㳘u��h@�쮏 +�ͿB|���ĉ��Z��1 w��g��Щ�ܻ,�ީ.���'�a�����g&�ˈ��O?h����hp�$���w^�ڙ��H�I��Y^��Ҷ���CC����B +�|���q��)�;��~ޤ�yVd�F3�AsM������Ő�?���d +endstream +endobj +7060 0 obj +<< +/Type /Page +/Contents 7061 0 R +/Resources 7059 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7001 0 R +/Annots [ 7043 0 R 7044 0 R 7045 0 R 7054 0 R 7055 0 R 7056 0 R 7057 0 R 7058 0 R ] +>> +endobj +7043 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 570.994 222.681 581.37] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8c_a0ddd46446f074a0d38c04157686f5fce) >> +>> +endobj +7044 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [307.409 571.913 341.42 581.37] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7045 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [375.31 571.913 409.321 581.37] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7054 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 543.206 261.451 553.474] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8c_ada5b18da23c06c1a6f2449bbfe97a7c9) >> +>> +endobj +7055 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [346.179 544.017 380.19 553.474] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7056 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 381.055 297.675 407.594] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7057 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 198.472 171.594 206.61] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7058 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 186.517 171.594 194.655] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7062 0 obj +<< +/D [7060 0 R /XYZ 69.866 801.979 null] +>> +endobj +1514 0 obj +<< +/D [7060 0 R /XYZ 70.866 771.024 null] +>> +endobj +7063 0 obj +<< +/D [7060 0 R /XYZ 70.866 612.753 null] +>> +endobj +1518 0 obj +<< +/D [7060 0 R /XYZ 70.866 514.207 null] +>> +endobj +1522 0 obj +<< +/D [7060 0 R /XYZ 70.866 366.811 null] +>> +endobj +7064 0 obj +<< +/D [7060 0 R /XYZ 70.866 320.253 null] +>> +endobj +1526 0 obj +<< +/D [7060 0 R /XYZ 70.866 293.057 null] +>> +endobj +7059 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7069 0 obj +<< +/Length 1755 +/Filter /FlateDecode +>> +stream +xڽ�K��6���:�@��-*�%�6 +ݦ���BPl�W��-���;�(�$Ӳ-/r�cQ3��H�0����-�ֻ���>�~�����O�PJ��=yFJJ/)�Ļ[y�> ������3�%�X��!I�|A���*�y�I������f_fFb��M*���2��?bo����b��o����!�|O�f�ebD��j>�hA�%A�[շs��xg���9!��V֚t*�>GR��t��m����� ��a"��&$�!$T��(�(K��:"�#7��p�K����˾���SB"��i�ڎO)S��s[̉�5p�s��*���.�����қ�%<����I�|B�(��Ω��v��Mt8��"x�����8��U6,TB0�k���5���o�K7]���|����\i��?��'s�������*?B�vr*!��#"D���4�n��N��Cn�����ip��հ)��l�k�:���1�.�xH� �&NSv���2*�y��a����EU�l�O7f]��YD�6Q�����Q�6;]���pw�8�����a������M\X�JӅr���']Vۼ_¶���P�����C��@��#ex�,�lSٺ�}<�Y[�����|[��r�/�5��j�Ի�S��Y��SHG#fqTMO�8���4�u��z� +~9Z��h��j�s���K�Wz�We�]��;dk��Wz�� ��ϒ�����+߷�lP "�X�B���/@�m�`�4rA��h?��證C��wnձ�ӗ*N�K[,�Q�l�s�0�y�P\6�)���T_�y��3CW�iȊ��!r>�}�(�.�]O&�z�s�m���t'��,*߽f"�D+P�7�t�f��ۀ,�K��8��8p����ֺ�vI�Nudi`�Da��I5��p�P?`��(��"혅��FH�j�c���J�Z]��ԙ�-����|�A'� /s���&W?�w�#+��q���K0^?����v�sZ,�u\�@�6v��E>����W��s�;wq�i�C��UA�%/��mԐ�y��&S��H�50���/�� x۬>z,���u�71<��/�e���<V&�ɋ�̾wEPH�B��C�IE?�N�$�u ����tb�x� ��L�eدE��=����f3�X���@��T�0��אv�2'r���3�b��ߦ�خm9����'f�1;S����ޱ��Ѽq�=��ι��]�ܹ$�p<I������W�� +����[���/��U�<P*ϫJ�s'>Rc�˱A-f6@�/i����*���`�ּ�F��PXT�W�ԡf� &�T��n:'S�w}��a�2�]�{%�=��omU֝����0�����lX�8�B,| � ���3���� W�i>B�4�n��>�^��u��C2����kLX���B��= 5G �`k�K7[]��ԝqO�R7M��������0�X�!#`�TWqv� �@'�BԽ'8��A���<�1���i�K7K]�i�Y�c�\��0�`+u&��8���E��38����u/B0"��M�`G��57`Ǜ��H��뫛G������.k��1pL�m�K�+;P�#��S�.�9t-a�oA��;�~�i�PS��n���/�`�V���1�)F!V���H����9�o��n�s����&f��� +��v��U�D4���t��#E"HJ[�|Թ�ƥ+�7E�ڏ�� De(��O@ +endstream +endobj +7068 0 obj +<< +/Type /Page +/Contents 7069 0 R +/Resources 7067 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7001 0 R +/Annots [ 7066 0 R ] +>> +endobj +7066 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 340.7 171.594 348.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7070 0 obj +<< +/D [7068 0 R /XYZ 69.866 801.979 null] +>> +endobj +7071 0 obj +<< +/D [7068 0 R /XYZ 70.866 771.024 null] +>> +endobj +7065 0 obj +<< +/D [7068 0 R /XYZ 70.866 462.481 null] +>> +endobj +1530 0 obj +<< +/D [7068 0 R /XYZ 70.866 435.285 null] +>> +endobj +7072 0 obj +<< +/D [7068 0 R /XYZ 70.866 292.126 null] +>> +endobj +4224 0 obj +<< +/D [7068 0 R /XYZ 70.866 141.885 null] +>> +endobj +1534 0 obj +<< +/D [7068 0 R /XYZ 70.866 125.986 null] +>> +endobj +7067 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7089 0 obj +<< +/Length 1281 +/Filter /FlateDecode +>> +stream +x��X[S�H~ϯ�f^Hդm���͚h9^�&ѵV- +I'�������= M":c�*牆���;�9���xx�)��������֟����n*�ӕ�T11�SL� �)�r�jQ���R�8N���Q�&X�SX�<�Ď� �>�Q5��6VѼ<t��\ ���a�'<��#B U5�nߏ����ֿ- ��4ò�E�[��X���w#ݶ�ś�bPQC�u��Z�]�T��5��]co_��� �0V��n���h�EXT Λ�.�c�C1"�<z�z���J������2-S� �6˓w�x�r۱tC�:�w���MD2�������g8��ik����� ��kOW���8/�*� b�JG3�@V�6��P���Ay��"�?ʛH�0 �Žr[�v��C���I����8���=8�8��h�h��Ac0��K��1�`9�_�����3�:<�FMi;Ct.jX�.�\��8�;P O�ڐ�<Y>L�k�{O�i/��"��o��X��rN� [��������h�e�G��-o�X}�8�|FZ�����u�On��{1���F��E,K,n�.��� +[x���gI�y�r�A����|��;�����ԁ�U3`[W��U���/���=�wr3���SɿW������m�-�X�P��(��̏���OJ���r���]~����@93�9��@5�z�)Υ�R·�Z{}���>Kkj����mt������@$X�mK�C7���ͪ\ڲ�o0%�^�F3�4Sg�DT(l��ɿF�� �D�hAyϤiQ���X{�b�k-�N�.ݕ��dXs~�ئV#������\�)��=�z����W� |�z�����n0��]�<�ǫ/��U"��Og���Jڲc�����_�Z5�w��*9��#=���&^+�=.�Se� ��'�U�O��X��`�6`��]ů�&��gs@�����E �P �AK����DPBzꦡ/��S�R�N7G?F�3#.���(���GS4�;�-������J�Du�HK"iY54 e��!�d,+��bb�Q����I{&vTٮİ-"Se}ᯉlk �� +� ^kO垐X�Fdä �T� _�׃#��i+ 1+t�o u�;�D�1�oV�w�H�ˑ~��n�3t�u�R��^��T�Q�Bյ�c��d�z��C������%n�I�w#��y���H,�RO��������5�E>�{����1���[ʠ�1��<� D��J��/UY)��Y �M���� +endstream +endobj +7088 0 obj +<< +/Type /Page +/Contents 7089 0 R +/Resources 7087 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7100 0 R +/Annots [ 7073 0 R 7074 0 R 7075 0 R 7076 0 R 7077 0 R 7078 0 R 7079 0 R 7080 0 R 7081 0 R 7082 0 R 7083 0 R 7084 0 R 7085 0 R 7086 0 R ] +>> +endobj +7073 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 687.381 202.893 697.044] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_a08c63915b31bfeb8d6256981f71b3746) >> +>> +endobj +7074 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 660.281 199.414 669.944] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_ad174a66874978917203ae18e88d263af) >> +>> +endobj +7075 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 633.181 336.929 642.844] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_ae65d746cc90c1447fe1651614fde76eb) >> +>> +endobj +7076 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 606.08 415.662 615.744] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_a4b5bc244bcae0f030336269904158df1) >> +>> +endobj +7077 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 578.98 382.28 588.643] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_aa41b1dd19931edcc50247511f12859e4) >> +>> +endobj +7078 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 551.88 318.01 561.543] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_a068a278115f777cb1b92107e5c88c68e) >> +>> +endobj +7079 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 476.762 222.681 487.138] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_a0ddd46446f074a0d38c04157686f5fce) >> +>> +endobj +7080 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [307.409 477.681 341.42 487.138] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7081 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [375.31 477.681 409.321 487.138] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7082 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 449.769 261.451 460.038] +/A << /S /GoTo /D (moore__penrose__pseudo__inverse_8h_ada5b18da23c06c1a6f2449bbfe97a7c9) >> +>> +endobj +7083 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [346.179 450.581 380.19 460.038] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7084 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 304.071 297.675 330.611] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7085 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 135.931 171.594 144.068] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7086 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 123.976 171.594 132.113] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7090 0 obj +<< +/D [7088 0 R /XYZ 69.866 801.979 null] +>> +endobj +7091 0 obj +<< +/D [7088 0 R /XYZ 70.866 724.798 null] +>> +endobj +7092 0 obj +<< +/D [7088 0 R /XYZ 95.773 701.408 null] +>> +endobj +7093 0 obj +<< +/D [7088 0 R /XYZ 95.773 674.308 null] +>> +endobj +7094 0 obj +<< +/D [7088 0 R /XYZ 95.773 647.208 null] +>> +endobj +7095 0 obj +<< +/D [7088 0 R /XYZ 95.773 620.108 null] +>> +endobj +7096 0 obj +<< +/D [7088 0 R /XYZ 95.773 593.008 null] +>> +endobj +7097 0 obj +<< +/D [7088 0 R /XYZ 95.773 565.908 null] +>> +endobj +7098 0 obj +<< +/D [7088 0 R /XYZ 70.866 515.098 null] +>> +endobj +1538 0 obj +<< +/D [7088 0 R /XYZ 70.866 421.542 null] +>> +endobj +1542 0 obj +<< +/D [7088 0 R /XYZ 70.866 290.202 null] +>> +endobj +7099 0 obj +<< +/D [7088 0 R /XYZ 70.866 250.49 null] +>> +endobj +1546 0 obj +<< +/D [7088 0 R /XYZ 70.866 223.669 null] +>> +endobj +7087 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7105 0 obj +<< +/Length 1799 +/Filter /FlateDecode +>> +stream +xڽ��s�8���W�h�Ԫ��{�]��t��r��S�a��8���h���V b�2�q�O��ݟ�ݍ��|�&ަ�ao�a������ۏ�� +�d�̓�c�����"I���w;' +/�o>{�1.�����8ы%���*_U��ʨ����}��}��=�,R)�(�V���{kx�����~�#S��gp�x���~6#*̭�X�q- R�Z}��|��T�z� d^Ԗ�"��z���IH�l�+� K��#���DZ�K��K�4.QQ +��!��GbGl���T����}��C��@���k;:�DL���]� b���3[<�ү�A�w��\�GKo�� +>��웼���(�_P1B��p6�=$&y���2ɰ�Q Δ����(;��i*��u�f#�M��毫s�'U��b�Ξ�!: B����dX��؋S �x ?�#B� �MS�Ư���-�V��}{�q� n�6l�8+[�Z����~���m<$D�q/Sv���2(�y��a�|ߦyU�l�N7f]�[�Y�g�6�7o=cFy��Z����6dq�� ?�H>R�"�qf6+9L��ڧ_tY��~ +�^1�A + �'����G���Y�鶲y��x�3�wzy�x��]�F���h�E�Z�x��:�`$����<jM=�i���Q��<NP�n ���El4�km���O+��zݷ�R����쐭�*[��Z7��yg��wX�:�}���Ά "R��%�o͐^�|��v@�Hc.�<(��%;f���!��;5�x�ӷ*J�K[,X�#_�L�J�aL�xPT6����1շ�|�V���+�6d������s�(�*�]&�z�3�m���t'��4,߽fB�x�W�7�t=��+�`��� �c�U`()��Í.�"�6�- ̓(�2��#<�w�c; +wFAB�H;f� fɁ��@���������EkWg"u�2kk�f>��� s��_M�~�{:7B�:)��K0^�����z�8�W�&� +0Q9?�<I�ul������;wq�e�C��U�JV\��mؐ�},z��Ò'�<o�K���_��G�E�=��6�w��xU%�.���k��5�﵈� + P��=�!AQЃ1��L�^���wL�'�p���j`�Q�����0ٓm�d6���_I�E?JSa�h hG+Sp"�m�a��c&I�����d��M'�|����l;fg�e�u�;�|v4_ܦ��ٽs.vxo�8u.�C O��V���!8@V`w_�� �����q�$w��Ӳ��܉���tl��� �D��"�9�r4[���䚗�h� +�� +� +MjV?+� b�N�دv�r29W���;�i;LTٯi�`��TN�(:��0�;5��C.@�2�.�a��P��5@r*O�k�J7\]��]�t�����0��l[���B�.a�b�@�B���#��'�5M�����N�N�Ӵ�M��M]ך���c��m�!# �dqv��@�/L�"�{_�2�r@N��Ƭ�s�I*�,uU&�W��qr������e��/�p�VQ6O��>���6B0"�H'd��CPŚ��t��%�}����Zw�08f��v�n�R�a +x�?5괜C�����Q%e����0J6y�$oY��4\�E��5�Uc����\Қ�^L]�Q�U���S�n}�6��C�ǴyV{��[�{uz�oz�<�n�ٴN�$m��q��,��*+L`CvƯ1��HD}8�M�)8�;r�����'��]T��}���ܘPA�64�O� +� +endstream +endobj +7104 0 obj +<< +/Type /Page +/Contents 7105 0 R +/Resources 7103 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7100 0 R +/Annots [ 7102 0 R ] +>> +endobj +7102 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 340.7 171.594 348.838] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7106 0 obj +<< +/D [7104 0 R /XYZ 69.866 801.979 null] +>> +endobj +7107 0 obj +<< +/D [7104 0 R /XYZ 70.866 771.024 null] +>> +endobj +7101 0 obj +<< +/D [7104 0 R /XYZ 70.866 462.481 null] +>> +endobj +1550 0 obj +<< +/D [7104 0 R /XYZ 70.866 435.285 null] +>> +endobj +7108 0 obj +<< +/D [7104 0 R /XYZ 70.866 292.126 null] +>> +endobj +4225 0 obj +<< +/D [7104 0 R /XYZ 70.866 141.885 null] +>> +endobj +1554 0 obj +<< +/D [7104 0 R /XYZ 70.866 125.986 null] +>> +endobj +7103 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7117 0 obj +<< +/Length 964 +/Filter /FlateDecode +>> +stream +x��W�o�6~�_At/��) �vH��.���B�%Z�"��~����%ʑ=�s��M�=�����}�N<[]��(of删��/����Q�c!|�ڠ��H��V��(���,��rΈ�����6�En3���T%���$�M['�jZ�<��P��Rm�x�VUj_?��������j�qFAt�!�p�����e��kD�G�SoY����>������8G1���4/A1�IWi�e�"8[R:1��!�Cß���8��`SiS�g�����=?hA�I����ydhM�i�4�u�%;�-����c_D�xlp�jۻ���c�����>�P�� �{V=8I�Z���TI�[�K���g6:l��@�I�Bݪj��<)e���u֞�;�I]eI�*U��ԧ9�~k٨,�S�f�e�`Ǎ>tG]��*��1����B5O����wΰDм��}'��C�ô쪾GM�[���-Y<QQ*p�h�LH88�g�����E���q����g�Ν^�V��҉�Ωw(���ܛ*��^6�{�ɸ���}. ��d�\�,�<@.�!�W�ey3 +���v�^Xh���v[�6s�x=ʩe�R�W��ӹV��4��� ԁ��0�R�>84����ǚ��cL@+@�(��5� @ 0�\�f���\5i�o���p{�J�0G��AN��}�1�vi�ќdS2rY������-�<Β���KK�M�N��Z����lJ�� ����7�[p���_�����6x�-@� +]�A�i�"�`�;�o��+�E��t+��k�п\g�(MW*W3]�S���I�`L@��x�����Ԕ)X�2S��ᘇ0W`<�"�y�x�d�y���������t�G����!��h������x�S�[|K���.��^hr����P�+l��.ϋ�c}$��;w�e���OU{H��U�! +endstream +endobj +7116 0 obj +<< +/Type /Page +/Contents 7117 0 R +/Resources 7115 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7100 0 R +/Annots [ 7109 0 R 7110 0 R 7111 0 R 7112 0 R 7113 0 R 7114 0 R ] +>> +endobj +7109 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 549.45 264.482 559.826] +/A << /S /GoTo /D (multipath__algo__own__norm__distr__test_8c_a557f81ea2791d07f6341dc44b0f169dd) >> +>> +endobj +7110 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 415.324 297.675 441.863] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7111 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 382.252 346.876 392.168] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +7112 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 235.533 264.482 245.909] +/A << /S /GoTo /D (multipath__algo__own__norm__distr__test_8h_a557f81ea2791d07f6341dc44b0f169dd) >> +>> +endobj +7113 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 101.407 297.675 127.947] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7114 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 68.336 346.876 78.251] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +7118 0 obj +<< +/D [7116 0 R /XYZ 69.866 801.979 null] +>> +endobj +7119 0 obj +<< +/D [7116 0 R /XYZ 70.866 590.396 null] +>> +endobj +7120 0 obj +<< +/D [7116 0 R /XYZ 95.773 564.396 null] +>> +endobj +1558 0 obj +<< +/D [7116 0 R /XYZ 70.866 520.645 null] +>> +endobj +4226 0 obj +<< +/D [7116 0 R /XYZ 70.866 373.759 null] +>> +endobj +1562 0 obj +<< +/D [7116 0 R /XYZ 70.866 366.925 null] +>> +endobj +7121 0 obj +<< +/D [7116 0 R /XYZ 70.866 276.479 null] +>> +endobj +7122 0 obj +<< +/D [7116 0 R /XYZ 95.773 250.48 null] +>> +endobj +1566 0 obj +<< +/D [7116 0 R /XYZ 70.866 206.728 null] +>> +endobj +4227 0 obj +<< +/D [7116 0 R /XYZ 70.866 59.842 null] +>> +endobj +7115 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F11 3889 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7152 0 obj +<< +/Length 1575 +/Filter /FlateDecode +>> +stream +x��Ym��8��_�z_�Ը`0/�������V��{:��"�$�ӷ_c�` �}I��d<~<���<�|��6V��2V�e�O^^N��r|#@��9����-x��y�q�s�������������+�����yƓmN�i:��r���K˰w.���5�|2����{m��00>ז��ׁߙ�a�� �6F�m�6N�F����3�ٖe��[�6l�u��JD)4��� ��Ѣ�Y�~1��rj[&-i�P��g�p� +�e�Y����{�ɨ\|3Z���=� +�����N#in�"U�v�����.��.�j+�l�KX"1�X��G�>�)|�A�Z���I�M�Jl�e ���L���/�n� rXZ�qHM�2�e��,��k;�̶Q�<2�J�γAp]W��@Q�krBt�bsm�j�f9�CNm��X< +4�Q��b�yľ[�/8%���a���X��̃��2Aɾ����,X��� ���8ۄ�V�`ϒ�?��rD�?jy�,�hEZ�G��4ˢ���8�z�E\�4������w�AY,����j!���R������#W�\W�^�=�~��|Ęt�4U�\����|b�g�x�����%���nE��6#:u,�K���"YH#�#�����a�p��7��P�K�b`���, ��Ӧ�nᑃ#U���:�u��.N���ڕЗ��b(k��|O��W�o��V�fb7Ss�v���뎅�v���|�kj*��V+������ia�[�F����^�烄�(X�4_��� ���OSL�:M�e��4���q���&�,�|4/�'����a6���B�Ȗ������տU��6��l�rqb�#;�Q�@_����D��+�����͎uN�Q=M���.�cr:fj�s�&�Йˣ��~Y�վǷ�4;��;N莳#hv�ю$9xO��v �>@�Vyܚp��� @6���;g%Ý*J�=*8�]��nw-A�f���S�w�E+d2����6�I��o��R}�Ϳ��]�e��`y�E��Z�`p�Z9��n��ٕUT�1ӺKn!H��k��^)_�꠸��P]�`�Ek��}�__=TT�v4�0���T��kr�rT�l��q�$^x�9�Ũ�[Ma���$vɈ&{;�����v=F)qth�aJ��<!s�-U��]Uu��(Vm7��<����~YU���%�6�؋G�{���z�#�]���ү�4��y���@M0]�u7﹤�x��a V��9U�(wɯndFo 3j�j-���AFJ ��ͫf����m� w�3BV`�B�㹭�ud��u�>���T����m�����98r���|O�D��I���q,5�_L14���s`�îw%�@����?�u�p�w�7q�3��Trm�_o&�s9��`��Z�}Ί%Zng�Μ�5g�3���`Q����f9�oLo!5��e�HX��v]�+F�r�|�� +x� �}�ȴ����ۘoc�Zt��e��f��f���w�¤�,y�QY���q�<O��j�/䷥���W���u%w�I�>���(�� +endstream +endobj +7151 0 obj +<< +/Type /Page +/Contents 7152 0 R +/Resources 7150 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7100 0 R +/Annots [ 7123 0 R 7124 0 R 7125 0 R 7126 0 R 7127 0 R 7128 0 R 7129 0 R 7130 0 R 7131 0 R 7132 0 R 7133 0 R 7134 0 R 7135 0 R 7136 0 R 7137 0 R 7138 0 R 7139 0 R 7140 0 R 7141 0 R 7142 0 R 7143 0 R 7144 0 R 7145 0 R 7146 0 R 7147 0 R ] +>> +endobj +7123 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 446.661 128.787 456.118] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7124 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 445.742 253.122 456.118] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c_a38019260396a33562d5a1912c691c26a) >> +>> +endobj +7125 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.607 446.661 290.618 456.118] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7126 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 419.12 160.546 428.577] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c_a5609107d45b6abfa6614fc79c56273c8) >> +>> +endobj +7127 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.031 419.12 198.042 428.577] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7128 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [266.649 419.12 300.66 428.577] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7129 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 391.578 155.076 401.035] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c_a944bb181ffe0b3abc69e345ae88fbfc1) >> +>> +endobj +7130 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [200.425 391.578 234.436 401.035] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7131 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.321 364.036 175.096 373.493] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c_a2776d1c18727f8feb5f0a83a6963e957) >> +>> +endobj +7132 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [223.15 364.036 257.16 373.493] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7133 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [420.413 364.036 454.424 373.493] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7134 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 352.081 128.787 361.538] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7135 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [216.913 352.081 250.924 361.538] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7136 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.781 323.62 237.853 334.202] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c_a6530e8d8955c511d3452748fec987a39) >> +>> +endobj +7137 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.161 324.539 368.171 333.996] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7138 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [231.323 312.584 265.333 322.041] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7139 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.199 284.123 249.38 294.499] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c_a540837de8e8a9d4e5dbaac1814b19b5e) >> +>> +endobj +7140 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [290.932 285.042 324.942 294.499] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7141 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 273.087 128.787 282.544] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7142 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.455 244.626 217.519 255.002] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8c_a8cce1ff9263404ca1e58d67910f38d47) >> +>> +endobj +7143 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.559 245.546 346.57 255.002] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7144 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [418.892 245.546 452.903 255.002] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7145 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [233.313 233.59 267.324 243.047] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7146 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 101.242 297.675 127.782] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7147 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 84.099 346.876 94.014] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +7153 0 obj +<< +/D [7151 0 R /XYZ 69.866 801.979 null] +>> +endobj +1570 0 obj +<< +/D [7151 0 R /XYZ 70.866 771.024 null] +>> +endobj +7154 0 obj +<< +/D [7151 0 R /XYZ 70.866 485.98 null] +>> +endobj +1574 0 obj +<< +/D [7151 0 R /XYZ 70.866 204.026 null] +>> +endobj +7150 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7168 0 obj +<< +/Length 1472 +/Filter /FlateDecode +>> +stream +xڭYKs�8��Wp�U����uv6S5��l���IQ��8Tx���o�A���sH��_w���O���� 6���_f��f�7LER���)Pi)Q$Ip��C��`�U:L���m���s�N�*^�ʬ�$��4��Ͳ��V��dk�[�4'84��V���:$��������7#�H��HS�����p�k��t�y2 �`Hp߷�߳�A��JD��${a!:_�qx�Ϛ(�����>5Y�DS��&K8X(�""<S�8c��34Ul�D�������b��<��:�y��I���ظD�~�0��&���CM�U���+���/d�A >�������ĕb<�v}ў��!�"�Ӭ(�S�˓���t(>\�Lz1-�k��X!l���Ԉ�vI����vS���G���ݾ2�eE���l�7�j/�۫GS�l�n���v�ǮJ�,{?[{B�j�]��>�l�u�돆#�g&�Q��os��e�L�J�9!a���X� ��H�c»��Xu��@H��ـ�9"�5є=�{��M�k�I +���mh� ;�1A�B�~� VH��<ЮF�E���'A{&R .�]=�,� 4���Z>��X'ٲ�v�t���Hj2!�!q�ܽ�{��p�����S4=�z�Ǚ����1�M��_�\�u��,�M?�U3M��(���05.�}g�h����-��P��(BRH��[S��o���� J�-���s�nϤ�6�K�#�{�HG��e�c)ͬ{��w�i���:�I�p�3�^Ѻ��^��V����6�=�Mk 2C�����U.��h��bN���?5δ��L f��U;�� �|W%�r���T \q�'�Y�?̪�0ߑ��b�ȓ���=����U���ӣ�i�j����i�w�Y9Y�����JO��M�U�e�������I�N��D\��}'Fb%�����cJ`R@e�k��cKm��7����Ea�]�A�߸Ɛ�i.k���3�t���*�06Y�H"����'��ޟ��J��@�H�%��"T *�TH_�@_��E�e�I9d*���7^�9�n5��N�wyY&M_����qa���8��/�ʮA��s��j��C�� ).c�%&��� �>C��cL��4e'm�8�z��oNEh�����;����8���W���`{���vlH��4]ĮKL8v��%G��Qv ЯD�@�i���ꃎ������8�Fܱ�zY�����M�S����#�ٞ &��C�Q�]b����h/��)����T]_����Ѧ���<�p~C;�t�\']ߵ��z-g�6ó��LH..���&�)mMa�H+�O9��>�K`�}ڹշ��n�8���g�ۍ���+�z��z�:�0�|�zcbϪw>�>����P���q%y�]�@R��������s�(���؝�����z� +endstream +endobj +7167 0 obj +<< +/Type /Page +/Contents 7168 0 R +/Resources 7166 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7100 0 R +/Annots [ 7148 0 R 7149 0 R 7162 0 R 7163 0 R ] +>> +endobj +7148 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 655.247 110.119 663.384] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7149 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 643.292 171.594 651.429] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7162 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 274.497 171.594 282.634] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7163 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 250.587 171.594 258.724] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7169 0 obj +<< +/D [7167 0 R /XYZ 69.866 801.979 null] +>> +endobj +1578 0 obj +<< +/D [7167 0 R /XYZ 70.866 771.024 null] +>> +endobj +7155 0 obj +<< +/D [7167 0 R /XYZ 70.866 741.162 null] +>> +endobj +1582 0 obj +<< +/D [7167 0 R /XYZ 70.866 713.966 null] +>> +endobj +7170 0 obj +<< +/D [7167 0 R /XYZ 70.866 594.718 null] +>> +endobj +7160 0 obj +<< +/D [7167 0 R /XYZ 70.866 384.322 null] +>> +endobj +1586 0 obj +<< +/D [7167 0 R /XYZ 70.866 357.127 null] +>> +endobj +7171 0 obj +<< +/D [7167 0 R /XYZ 70.866 213.86 null] +>> +endobj +7159 0 obj +<< +/D [7167 0 R /XYZ 70.866 82.821 null] +>> +endobj +7166 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7175 0 obj +<< +/Length 1212 +/Filter /FlateDecode +>> +stream +x��XKs�8��W�hWŊ��u'�T�i6��E�A*��wf���^����9�d@��S�S�����o��AkD��������(đRM^P@p� +"�E��i(F��W�� +��&�Y��.K�z^�E�����P�I�C�!�@�l0���o_ F!�azfHH�������uME1��$�3�GcJ�u;L���i6���y �ɰN�L^�l^����D�Q���QJ�( T�!h�)���-��h�4v����Ѹ�q@R�)őTj��u��f�6y�������(�8�ewƵ֧��9��ip�y���9ia,/ko��Âc�#o�}6��ٔ��:5v�[F/��['b�4.E�K�/�l1}������Î S��B?�]�,j�~�������)�K�mw�ۍ����`���վ}����C�W�"͗��*���(�8�2ɗq[������ �&� �/�U�;�rn9~11���,��rD�jy�+b( +�$�T��!������:�H$#XyzLa��,X�����F��!E8恋&iG��$�V��I�\� +S�D�����b�.;f��4�K�%V�A��3�HJ�җ�^��a}h�0���H,B��w�\(0��B�9�Iw�\?���k��υ�)���|�����`�P�Z&�x�B�RA����(J~�:�.fes��Ҽz.Dz��&iބᤩ"8�>#�@`A.�f?���l}�X|�Lv��m���Ea����mQU�bɩO���b�h���&n���҉�)�]��X&�!��v�����C:uz*GB���"�ׄ�R�g�[jM�� ��؏M� +;�4��`��1b�)�]��X�AOC���MNc�� �>#� �%���'D��f��ZV�c��ǽ��~��w��+�?�}�<s�^M�XS�!o�����sP" +����C�.2yj�,�+�m7i� J¶���d&����v^�ƫ���\Ɩ0��wm7�Ҹ�����Zn&?+hΫ_]��ͺ��\?�87�E3c��!ê}��ί���X�b��$qՏ��^ܪYd=[_ +��V:�j0�����EQll-��8�qi��"�o*�L/,�4 +U�uN��o.iݥ ��li���K�95e�`�F={��>(4.��K��t|��6/j|�� |:�:�T� +��,P��Y +���+�|���I ���?���~��e~H�?�0 +endstream +endobj +7174 0 obj +<< +/Type /Page +/Contents 7175 0 R +/Resources 7173 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7100 0 R +/Annots [ 7164 0 R 7165 0 R 7172 0 R ] +>> +endobj +7164 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7165 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7172 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 350.126 171.594 358.264] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7176 0 obj +<< +/D [7174 0 R /XYZ 69.866 801.979 null] +>> +endobj +1590 0 obj +<< +/D [7174 0 R /XYZ 70.866 771.024 null] +>> +endobj +7177 0 obj +<< +/D [7174 0 R /XYZ 70.866 630.66 null] +>> +endobj +7157 0 obj +<< +/D [7174 0 R /XYZ 70.866 459.951 null] +>> +endobj +1594 0 obj +<< +/D [7174 0 R /XYZ 70.866 432.756 null] +>> +endobj +7173 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7185 0 obj +<< +/Length 1291 +/Filter /FlateDecode +>> +stream +xڽ��o�8���W��H���Ư�^+�t�^/�{�F�&4E`���q���d��I�j*��;��x<��.?Q�;��!�f���{�P���-��"8�)Ͱ�h�E+�,�|�T�sF��}�|�ʗp��p��L�,L�2�E�%�Է�'��~�?�)��"�6�-J�������g�-g��(8D=:8`>ڤ�՚�-|��u��Uw�����=�s��1(��0/�ņ(�#DIq��?͙�EE�B4ŜR�Py֘tz��g<�a����w�A1�)�1�� ����6Q/�@��I�$nj!�s���jE��47�P�+)�Y�DaquDS���*� +-M)�~W33`��O�� +�����/����-v�/y���9>��k�R�I�)v���$�1�W!] +����1�ip c�$�E!�a��j��䭛��ƹ�F��J�R��b��qv���k�6y^l�,*���Hʪ�^�rp,�@� �'B9Ɇ�&���(|p���P��tC�� +�$��w���JbԪ��h��))D�1=���66� �z1��ȺDs�%T�����2 � +8�`��f'���8��~be�u�sA�"��`k��]U�hp���:�ha���G����τ�,1%� +Y�If+�]F�M��V�����k(�q=[�n[|2����h�����-�ܜ��K+�"���D���T��a r��b�!2J���ش +������"Ԛ��Y +��Oy�I���5&,"�bg�}|�!��WRG��sf%�ò����f-m�k7WO|��͋��{c- ��_����3�1�ݼ�v_�>61����*[;B�Sy��gN:�la��h���ׯ�82��h�(�&[(����β_t7S�~��beb�������l��g��4�YC��/z�腣�K�%ї��q�Γ���u@Tǡ-�"��{�����j�P���X�1�E��iꥀ����3Ɇ�G���ߡ��"�����t���p3N� N[��gX��:�j�"�i��k���p� ��i�M�a� +SX��ph��%�|s��+�'��-��晙��n�n��~T]h�I��s��=�K�'ִ�&�LÕ��ya@Ӟ*ƌ �����A�������us�!Iÿ��Pٽ4���Uw(�v((�M�k����w���m;�d[�}s?����v��8gW�~������;�߫�V�z��7e�L�?�ׄ� g��[[�XJ��q�%\w�a�����ċ�������� +endstream +endobj +7184 0 obj +<< +/Type /Page +/Contents 7185 0 R +/Resources 7183 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7189 0 R +/Annots [ 7178 0 R 7179 0 R 7180 0 R ] +>> +endobj +7178 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 457.218 171.594 465.356] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7179 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 433.308 171.594 441.445] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7180 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 68.822 171.594 76.959] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7186 0 obj +<< +/D [7184 0 R /XYZ 69.866 801.979 null] +>> +endobj +7187 0 obj +<< +/D [7184 0 R /XYZ 70.866 771.024 null] +>> +endobj +7156 0 obj +<< +/D [7184 0 R /XYZ 70.866 555.088 null] +>> +endobj +1598 0 obj +<< +/D [7184 0 R /XYZ 70.866 527.893 null] +>> +endobj +7188 0 obj +<< +/D [7184 0 R /XYZ 70.866 396.689 null] +>> +endobj +7161 0 obj +<< +/D [7184 0 R /XYZ 70.866 188.337 null] +>> +endobj +1602 0 obj +<< +/D [7184 0 R /XYZ 70.866 161.259 null] +>> +endobj +7183 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7192 0 obj +<< +/Length 435 +/Filter /FlateDecode +>> +stream +xڕSK��0��+�Rq��\�4����rK��%.� +&%N����Iw�\�x�{��yQ=}!М `xH>V�b� +P���A� +���P�I�6)Q2�V��B�q���ʶ&�i��e_�;���w���S��NH��@��J!E9�]��b؇�#�R�߱�.����%_�6'����OѸP����b�0�5I��w��y�GS3�bU�W@�f�<հs�=��7���y��GDN*Ceĝ��j��g +QQ���Շ~8�����n7�&�;#ުF�7�������l{g>E-�����h�*'9Q)�@y��qߟ�ck.Q���1!�s��Q�C� 6\=��xS��?��G������ ^/������6���D��:�f�"(�`�=��D��|ܦ�H�H�q��̠���d�/���N�_�����Z�a� +endstream +endobj +7191 0 obj +<< +/Type /Page +/Contents 7192 0 R +/Resources 7190 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7189 0 R +/Annots [ 7181 0 R 7182 0 R ] +>> +endobj +7181 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 767.154] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7182 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 743.244] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7193 0 obj +<< +/D [7191 0 R /XYZ 69.866 801.979 null] +>> +endobj +7190 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7200 0 obj +<< +/Length 2124 +/Filter /FlateDecode +>> +stream +xڽ�[o�8���+�(5˛( +��N[����&�C��8�XRƒ����=�([F:�O�e�\ȏ���zw�;q�� +;{;_V�V�?3ߑ(�9wO������q�vνK0��zC}�k��ӡL^��9�%E��2ޖI��iR&�H}Eۺ�����n�5�n|���zD0�.������է���+a�� �Iʝm�����������^�L�1�q����_g�0����>��1�(�\����r7:F)xs\��e�H�����爅̧ȓ�l�� ��Y�0��d@k�B-�� `H�PC"���9C>�P�H� �PQAmU��,FgAW�_C�� +��N�tR"%���"4ʶ����|�~ɋ"yT�7��M�f����l��&i���&hh9-Գ��!'V����dh����Ʉ+�S���������J3km��kv:ͬ�uf*��G��"*��H���ج! �czHW�� �B&���A�x�����T�Aj+=�O�ר���=|J�}h>G0��ȌYۢ��Ǜ��Nl�ѡ�l���]�Ee\t�+�u�WT|;o�*�Ֆ>��b_�\���J6��Q�)��O.3 1}�ML���lZ�4��Vz�<)�]��5��x; ��)f(��o���������H��b�-�D�B^��u24b����r%�S� �#����T�(�{W���Iffg����%ڂ���6�aM�KU�S���[6�Dp�]G�U24aB"*�0 +��5`��S9��V3cm� `"9v��Y�b��mK�28$$SP-�c�H��{�4S�eǣ��M����`h�jt2[֟�$�ў0�M8T��T�V9�B5�`݆r$�>�ߴ3Hk�ݏ�}�������o7��On�������:���MX�u�-�}\�Y}�+��I�����E �AzHSWe��τ9�O�iK��y�VW�~��V��J��Ӧͦn�� �&�}giV�P��-�����^�4k&��D`v?Hn�Kr����',���9>�"�Bz=����*�`��\zi����6�:��/jj~��*�Z-�'I��g0��1�#�6 +�M��튿O�1��e�a��cӪˬYݻ�3�4-����\�F߳���:9��ɗU�j(���\U�E�bc�H���??T�1����pج�@P��ӑ'`�����()�����u��d��ZC@[�H�oV@�N�T�:�u ����ٵ��j%: PH*;���:���|9�ս�Ӈ{���0�e��F���Ѷ_rh��-�w�hһ��"٧�"���Sf5O�N�͚�����b���������n�+��ȝ�q}$SD<���pz�<�����7`K;��&:�@�mU� �u��_�|��D����Y�qj +\wM��d����]T(Z� �M9�d�^��r�~>s-5�11<�%���E��u/z��EfƬ/(����VL������S}*،���� +I"�c�48�3�ڪ�&��G��Qj(�X��:;k��Rwt�V�㫊�,�@B���S��Q���k�x�FuZ +��x��a�N�����^*;]�=�gg����E��:m��b_�Lq9YceҺ�f�q$؛�;�rs��Sif���>�t�� �,1�ضd)�zc���O�C{0$Dpv���5��2:}�`9E �&3���h���:��f�����g�Zj�a�u��AB�x����� �?�4���Э�X.TE���<<{6��:{ +��k +1���-^��8�Q�g`h�Ҍa[i6 �Ns�����:��M�T��r��U��b���Ͽ�5��5k$�1��'��Gg칖*��u�v�uzǵ�����v��k�Q$�z�&j�_#�^ +g�q(�SыH�Me���SK����c��O_���� �xZl�p�A�ƺ�F�W���"|8���Xi4��9���3FV��1j[��=�����I�3������^d�kk"���L_��=�ze���1��K���������Ն�U���۹��Dk��9q�u�c�5�$)�4VyRﹺ�2\�u.�β�� �h����x��Ny�@��������|���h�v��W��s�n��8�[�_���a +endstream +endobj +7199 0 obj +<< +/Type /Page +/Contents 7200 0 R +/Resources 7198 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7189 0 R +/Annots [ 7194 0 R 7195 0 R 7196 0 R 7197 0 R ] +>> +endobj +7194 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 428.887 171.594 437.025] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7195 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 404.977 171.594 413.114] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7196 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 381.066 171.594 389.204] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7197 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 357.156 171.594 365.294] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7201 0 obj +<< +/D [7199 0 R /XYZ 69.866 801.979 null] +>> +endobj +7202 0 obj +<< +/D [7199 0 R /XYZ 70.866 771.024 null] +>> +endobj +7158 0 obj +<< +/D [7199 0 R /XYZ 70.866 538.712 null] +>> +endobj +1606 0 obj +<< +/D [7199 0 R /XYZ 70.866 511.517 null] +>> +endobj +7203 0 obj +<< +/D [7199 0 R /XYZ 70.866 295.609 null] +>> +endobj +4228 0 obj +<< +/D [7199 0 R /XYZ 70.866 68.871 null] +>> +endobj +7198 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7233 0 obj +<< +/Length 1557 +/Filter /FlateDecode +>> +stream +x��Xێ�6}�W��\�E (�$Mw�����,�6���Zr���wH�ZI���8�>�F��93"������Z��Z[�u5y~3��t����]�fe1�o�� [7�5�qL7/-�����K���a���Hϫ�E.�N~���3�0ұpc2P@<+�&�c������z�Ff�G]D=����G01A!ƴ����i�:0{:Î��ٔ8�a[�]\m�T�U��'b��J�Z���p��7|5Ŏ��<O�\��% [r���QHY��l��r���j��\�:D� ��'��~��TOjp����\�xq W��n���HmQm2T�� +�5>�f����ȓ�!�+��5�� ��Οl1ļ�yU��x !�"�i�<`k��K\����{�f>��CW{�m~� H��hhV�I{���C�bX*�����>b��!�3���~����jb�g����S�CT=<E��Uħ�c��j�m%=�|T\7@_ې�&��� �����|� +`h�j/��r9�+�DZ� ��X�^(uugb � �B&cI"���CT��"�*^�����vĿ��{�a�ȿ�dŲI²��C��J�:C�xu��cj�5K �vB��eQlOR���2�x���( '��)�6� Pu���!42�A�d�S���9R�5 ��L������"�+�����R���N����k�x�TI���˃�_9h�-��p��)�~e���=M��|=b�����%�@�Rdџ=Wu�o�e��G�#_����89Ҁ!Gj8���9�؆ +�*��(�:�[������a�������k�Va�����l�Gy!J�F���}��A̘uE�Vh�M]1��̖1x��Eo��֏��++�}K{��B��Do�]������Y߃���|Q'e�*cR���Hs}���k�KS����:+�hc4)���vq����h��#����&���ѫ�e��ڇm�HntE�>��Q5��o)I��I���(���դ�v;�(u`���"Q�x��>�0J����Q0�͗RUm��[ֿߤ��y�+�{�T�gk����̓bm��<�����w��1���^8�ߒ��뜂�����g��#[|R]4��,~���h��U�S��k79����!'��v�V�a���1�'S�L�bgT�= b}���=G�Py+/�)�{�}�ՠ�M �����D�C�{�c�� ����>���Lhku3��2w�&���OQp�M�x+�>� +�38"oE��.���-�D�>�?[�|���Xcz �0���O��aX���\x�.�5�"A��Ef��дJ^��!�砫�'�^jU�X�Dkմ�N�S{-Z�݇�8�j���W[���Ku���d�H%��B�ب@22�Hݩ;.?���z`C���Q�k��y�vۄ��..C���q�ne�#Ƙ>���4�s�j�:ҩ�#.x��'����6�Q�#�1��u������@gm��O +�c�����#�|OE�L�W����+��=�4Х��ߙTQ��Ӛ���hb� +endstream +endobj +7232 0 obj +<< +/Type /Page +/Contents 7233 0 R +/Resources 7231 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7189 0 R +/Annots [ 7204 0 R 7205 0 R 7206 0 R 7207 0 R 7208 0 R 7209 0 R 7210 0 R 7211 0 R 7212 0 R 7213 0 R 7214 0 R 7215 0 R 7216 0 R 7217 0 R 7218 0 R 7219 0 R 7220 0 R 7221 0 R 7222 0 R 7223 0 R 7224 0 R 7225 0 R 7226 0 R 7227 0 R 7228 0 R 7229 0 R 7230 0 R ] +>> +endobj +7204 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 622.771 128.787 632.228] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7205 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.287 621.852 253.122 632.228] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h_a38019260396a33562d5a1912c691c26a) >> +>> +endobj +7206 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.607 622.771 290.618 632.228] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7207 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 595.724 160.546 605.18] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h_a5609107d45b6abfa6614fc79c56273c8) >> +>> +endobj +7208 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.031 595.724 198.042 605.18] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7209 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [266.649 595.724 300.66 605.18] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7210 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 568.676 155.076 578.133] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h_a944bb181ffe0b3abc69e345ae88fbfc1) >> +>> +endobj +7211 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [200.425 568.676 234.436 578.133] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7212 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.321 541.628 175.096 551.085] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h_a2776d1c18727f8feb5f0a83a6963e957) >> +>> +endobj +7213 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [223.15 541.628 257.16 551.085] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7214 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [420.413 541.628 454.424 551.085] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7215 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 529.673 128.787 539.13] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7216 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [216.913 529.673 250.924 539.13] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7217 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.781 501.706 237.853 512.288] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h_a6530e8d8955c511d3452748fec987a39) >> +>> +endobj +7218 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.161 502.625 368.171 512.082] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7219 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [231.323 490.67 265.333 500.127] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7220 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.199 462.703 249.38 473.079] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h_a540837de8e8a9d4e5dbaac1814b19b5e) >> +>> +endobj +7221 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [290.932 463.622 324.942 473.079] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7222 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 451.667 128.787 461.124] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7223 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.455 423.7 217.519 434.076] +/A << /S /GoTo /D (multipath__dist__detection__mitigation_8h_a2840a12d90b5b26b59d50f449f754fbd) >> +>> +endobj +7224 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.559 424.619 346.57 434.076] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7225 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [418.892 424.619 452.903 434.076] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7226 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.415 412.664 238.426 422.121] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7227 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 288.409 297.675 314.949] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7228 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 271.513 346.876 281.428] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +7229 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 126.051 110.119 134.189] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7230 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 114.096 171.594 122.234] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7234 0 obj +<< +/D [7232 0 R /XYZ 69.866 801.979 null] +>> +endobj +1610 0 obj +<< +/D [7232 0 R /XYZ 70.866 771.024 null] +>> +endobj +7235 0 obj +<< +/D [7232 0 R /XYZ 70.866 659.963 null] +>> +endobj +1614 0 obj +<< +/D [7232 0 R /XYZ 70.866 383.579 null] +>> +endobj +1618 0 obj +<< +/D [7232 0 R /XYZ 70.866 243.502 null] +>> +endobj +7236 0 obj +<< +/D [7232 0 R /XYZ 70.866 204.27 null] +>> +endobj +1622 0 obj +<< +/D [7232 0 R /XYZ 70.866 177.474 null] +>> +endobj +7231 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7249 0 obj +<< +/Length 1429 +/Filter /FlateDecode +>> +stream +x��YMo�H��Wp�R������ى4��lV{�D�ŀpf��o5�0�?p4�"l�T��~�� +���J�M9�����������gx!RR2���0 +��E�$���{� F��4�tN���V�.���uRV�ZWzU%y�I�lb�=�埓�����Ӝ`_:[�[X)�P���~���3#�{��(��[���G��_<�� +������0��ޟ�?ڠ0��|4� #!J�B�b�:��8�h�9!~Y#kL�"��G2H&�E��6�RxS�@��9"�k¦Dx +RB�II��^� +� uF�l�7���Rvw��� ��N���$�F|���i��Ɏk)�A�u�\h�X'��J�p���]�y�N��ҥ��?�kl/�x�:Ć[ee�0b$C2!�!s�r%�����G9��]�G"�9��r�}]����xU���4������ճ�\�/[�]�a�&@G"�c,�8�!���V/�q���@����j_d}yo�{D)�� !�\4;��r�%Ja�*�RW��r��#�t��I�>XzBY����8 +Bf�}��0�Yұ��n���O"�D)5�Ϩ�+e��l�cjW�|<L~DU�!2���Ҵ?]�I�����7,0����A�f%� �M��%cc����|W%i��vqa��J�KeyR�u��W���*@*���`�4G��<��X�ش���:�y�@��R��=(NU֫����T�^�r�k�P�qg��vv�u��91�av���wP1S��n�� �oFR�p�M��I���(�U�.^m��"*����X �b ����S�%P-�d���[����;n�Q_A�F�B��<��8e�¥�~���-�g�V��\h�9��&7�,�H��hˎ�ک��W�� !T��&)�ɑ~� +(\t��~?��]�/C��C��d����HءKW��s���wyY&�*��k�\��ӎeеTe+�}�<P����C�8��:�]c���Cq~"��8E3"��<��r�g]�o�7�·: +����A�_?��v�>*��MmK��� �a�B.�"�5&�`0�PoN��I�A��(;�`�\���t���&�48�$�c��������.ͤ5>��$�ِ!`�7q�dטp$#�N�1�ɠ�Q�jHv��#D��v�h]����hg�n�q�u��g��p��^̐d�ou�^ja�Pg��9����u e�:�R>ol�[���<��n}π�Fl���N���o����ۀB��M�FG=�'�aa�*��0;o�O�������ՕPg��w���j���_<��<t0<>�3&c9e�?'��ݬ=���� ��U�'�m�A��=ar�7l[ڪ�ȫ���qG�� �0}���_����$���E�I�(u�3]�H��ѧ���~�c�"�(�� +endstream +endobj +7248 0 obj +<< +/Type /Page +/Contents 7249 0 R +/Resources 7247 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7189 0 R +/Annots [ 7243 0 R 7244 0 R 7245 0 R 7246 0 R ] +>> +endobj +7243 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 450.803 171.594 458.94] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7244 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 426.892 171.594 435.03] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7245 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 139.51 171.594 147.648] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7246 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 103.645 171.594 111.782] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7250 0 obj +<< +/D [7248 0 R /XYZ 69.866 801.979 null] +>> +endobj +7251 0 obj +<< +/D [7248 0 R /XYZ 70.866 771.024 null] +>> +endobj +7241 0 obj +<< +/D [7248 0 R /XYZ 70.866 560.628 null] +>> +endobj +1626 0 obj +<< +/D [7248 0 R /XYZ 70.866 533.432 null] +>> +endobj +7252 0 obj +<< +/D [7248 0 R /XYZ 70.866 390.166 null] +>> +endobj +7240 0 obj +<< +/D [7248 0 R /XYZ 70.866 243.65 null] +>> +endobj +1630 0 obj +<< +/D [7248 0 R /XYZ 70.866 216.749 null] +>> +endobj +7247 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7256 0 obj +<< +/Length 1072 +/Filter /FlateDecode +>> +stream +xڭ�]��8����Ī6����T�t�\��z�X*mS+�����= �a����bxϛ��I�_��?(ڗ3����������7��Ɓ�-_�"XK�T���h�C+�d�^~G~㾄��o�!�/���c�=�qVEU�g�������ѳ��X3m��jM�~��@1���"_p,|����g�3a>��1-�iI���?����"J�*.�z�u�$Bx��\3�=;�d ��H��*�i@oS��Z����&͔h�C��X���Iֆ�9Ɔ��U�V��n�(۾�EfsJ�S�w��T�5��� 0&P�5������n�׆�"~�s��E�m�G�<ɪrN���� �\����p�t"p�4���Ep{(������7.�0p����aU�ڰ|�� +Z-��k��8C��� U�E/v d��ct���y�K���ˏ�Y�9�&�w���H�`"��44)�ė������h�9�f;��o\�a��!-7M���$��L6sF<w����"6���f�3����jw;�cB8�'�6I�FM+�n����P#�pչ��Ȑè����*I�C��m�nn���n�)p�f�%�tcr �+���LJ��Obl�FØ���'�3���M�ٸ���u����R�ī�m��;�� x���k[����v�`�/�����3� �D.���O�ӂ�$!M ��$�e�-��y����dͱA��N�yŝ)��{��U��.)�p����)��뭿���pcЬ �ܾ��jE{d�R��<�͊����&�6h�%�2Ǟ9����5k�8쨺w���J�Jp�]�L�t���!�KJ�|���tj�� +�L���P��3+��s�S�l�4_���%(r}%ЂRX���+:�j����a=�P�fO�"��S����f��k� f�$ou�s}*/���U�^��������p68�����@y@�vԮ���w�_P_a;��ݣ����s�<q��U 6��������,������;�����)��A�B��b �v4Oq���z��}��� ��٥���:"� +endstream +endobj +7255 0 obj +<< +/Type /Page +/Contents 7256 0 R +/Resources 7254 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7189 0 R +/Annots [ 7253 0 R ] +>> +endobj +7253 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 490.49 171.594 498.627] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7257 0 obj +<< +/D [7255 0 R /XYZ 69.866 801.979 null] +>> +endobj +7258 0 obj +<< +/D [7255 0 R /XYZ 70.866 771.024 null] +>> +endobj +7238 0 obj +<< +/D [7255 0 R /XYZ 70.866 600.315 null] +>> +endobj +1634 0 obj +<< +/D [7255 0 R /XYZ 70.866 573.119 null] +>> +endobj +7254 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7266 0 obj +<< +/Length 1291 +/Filter /FlateDecode +>> +stream +xڽ��o�8���W��H�����U��V:i���=d#D���G������`�@� ڇ�4���x>�$���O�3�v���ه����{��JJ����#ؗy�aI�r�V%X���|'�3���KX�m|,�mTD�"�� ��x�x_�����s�:�ĉ�(�跈Rܡ���ˏ�ߖ�g"���}�3m��jM�>����G��;� +�qx}@��8E0������()�]�9s�0�&�S�K�j�VA������1��:yxc)��&T\�w���"T&�%H��0����1�{@C�"qz�J(悍���,P�aq�D��Þ?V�Rb!ܶf��|K^ �%��ku-����� v�/Y��9>��+�R�I�9v���$�1�!��BX/cLa�_��8I;cMQHg��E��/�/�u}���8W��5])�y-�q�G(�ᡢk�e�6N�":^��(Ko/��c9 +Lp5�I6�p0Wޢ��]����r��ʦhYP� q���Ħ�P�F�D�`�I! +�鉴 �1����L�U��oy�� �k'� +��I�T�9{�-�;��Z�ز����0���}�����h�1���vY5���f;ͪL��q�>�|�>��X�#d8ĩ�@R��O��_R������5����j����N��xx�eA���i�Ou�$�f���g"��R������Z�l}1�%��jI�[��FeJ���G�1���f�_�6�l>\��MD4���0��4C@�� H�J.���V���5���!\C\>��7��,>.̍���n���~�,tLx������"汉Q$ufW���d�ʓo?s��f]��O[X=��~Ilj��Fۄ�6�B��l6w�����:��S<4�+���A����Ơ�Hq�:N�Q��0�@���3hD{�b.�D����'qK���(7�E[�EP/�iwNa����>����1_a�6؍��KہO�g� ����ߠ��"�������M/p3N�NS���Y��Z�j� �n��k���p� ����d���=La/�¡Q}���p�W�6N�XS���3C �8?��5�(���[�"�s��=�K�&ִ�&�L����ya@Ӝ|*ƌ ������A�vl��s���c������7�ý�P �P�G�lW{���{��i;�x[�]s?����v��Xg[�~������;��˧V�z��w����t�?�ׄ�� g�t[�XJ��OQ�%\�f�����ĉҮ������ +endstream +endobj +7265 0 obj +<< +/Type /Page +/Contents 7266 0 R +/Resources 7264 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7270 0 R +/Annots [ 7259 0 R 7260 0 R 7261 0 R ] +>> +endobj +7259 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 457.218 171.594 465.356] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7260 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 433.308 171.594 441.445] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7261 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 68.822 171.594 76.959] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7267 0 obj +<< +/D [7265 0 R /XYZ 69.866 801.979 null] +>> +endobj +7268 0 obj +<< +/D [7265 0 R /XYZ 70.866 771.024 null] +>> +endobj +7237 0 obj +<< +/D [7265 0 R /XYZ 70.866 555.088 null] +>> +endobj +1638 0 obj +<< +/D [7265 0 R /XYZ 70.866 527.893 null] +>> +endobj +7269 0 obj +<< +/D [7265 0 R /XYZ 70.866 396.689 null] +>> +endobj +7242 0 obj +<< +/D [7265 0 R /XYZ 70.866 188.337 null] +>> +endobj +1642 0 obj +<< +/D [7265 0 R /XYZ 70.866 161.259 null] +>> +endobj +7264 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7273 0 obj +<< +/Length 435 +/Filter /FlateDecode +>> +stream +xڕSK��0��+�Rq�ƾViV])R��F�K\b�GJ�v�����F�� ������|�B�>%j��|,�Ŋ����A� +���Ph�$�r��h�m�G`�Ƹ��x���P鲯έ����.�ɧ2���Љ�\)�B�r��d�Ű�G�Z�߱�.����%_�6'����OѸP ]`r1N $��[���m����3����v]�Nv��c�M��pA�(���t����뼚�n��BT3��C?�v�ѻ�4�_�ĝoU#����w�f�Wu��3�"�j1�cA�&�_�$'J ��(�5��s{l�% +S0�!&d}n�;��q�FW���Vct�O��#�yW���������hjm�~�r"R�-z��{E������C"ZH>nSp$O$�8����`���d�/���N�_�������W�߸ +endstream +endobj +7272 0 obj +<< +/Type /Page +/Contents 7273 0 R +/Resources 7271 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7270 0 R +/Annots [ 7262 0 R 7263 0 R ] +>> +endobj +7262 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 767.154] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7263 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 743.244] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7274 0 obj +<< +/D [7272 0 R /XYZ 69.866 801.979 null] +>> +endobj +7271 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7281 0 obj +<< +/Length 2123 +/Filter /FlateDecode +>> +stream +xڽ�[��8���+x�U��jߒIR;U����y�tQ�M��1�c�&�_�G lj.r�>��ҹH����xw�;q�� +;{;_V�V�?3� P(s��@�)Ĺ�9�.���� �7[S�U�W��.-�h�TɶJ�<��*���+zn�NI��&yZ�&�$��G8�KB�~��u��n����A�!g���;�lu��������{�2s���0����_g�0���*?��1�( +����5�n|�3��&�-k�Z�FA=���O�g�XAXx��B��7&ZsD`͐xNCB���!J�3� ����pn��V��g�0�8�J�꤀��-u�P�I�@��Κ�8�>Dz�� {��(��Q�B\�7ɚa��@�!��fI^�К����P�f���0X �J֮��X�&�0pWL�FCD�9�٩4��+�FX��ifMי� x�%>��� 5�b�����u ]%C�D� +�\�N-�!�g3@�SiIWzL���q�"{�<������"3f�E��1I6;�J؎�CCٶ(��4�����W=����vަeЫ�-}��ž��a �+ټJFæ�?����lb�</�f�R��M]�1ʋ�Lvѿ��s��4��������=�v��ƪ�L#!�&S�-�l����*Į�� ��nkWB>��|ĸ����J#b�j�*�����,1ֱDY�P�צ1� }٣�|�p2B�bˆt�N���J�"L�o� �� +�wũ��J��1]/�H��jfV��)�m�P��t +��vy� x|o�fj���x��`� Ua���M^��Jf����*�ƺ ��Ҟ��:'��)l�1�6���������@Z2�~���F�nn~�y�?�����O���H���a�P�۶��I��)�����3��y$�=�Ip��J��&́} +N[r�8��=�����X��Z+�N�6��Ag�7N���� �Y!@�VcZif� p�� +��]3)��'��Ar�]��^7ퟨR����p��B ��h��Ђ�zr饕�c�Oe2u�-^���ԤJ��ғ4�53]�����f��v�ߧ������ݰ��m�eր��]�~�D|�Q!S�����z�#�䫎�^5P�j�+y�"_2��[�Y�ǟja��F���O8l6R (W�Q�`���o�H)�����u���UU���j�H�oW@�N�d�:�U ����ٵQ�%* �HJ;���:���|9�5�{���0�e��F����^ +h/�-�w�hһ��2�g�"���Sn5O�Nd횸����b�������I��\WT�k�;G��H&�0xi���y����7@o$�=�ܦ*�@�mU� �u��_�b��ė���YVIf +\wm��d�m��**��jCt�����Wx���O�BI�UL,�w U1�jѤe���m�t��1�� +�z���f���T� +6�,8��B���X- �̣�*��>��$w���V硭��Z!~�����e���c��,����C6@�T�u�-���-�Q��zl�N۲e��̖����N�i���Yd&O���Y�m�\�ː)L�XG��d �&�&�T��ԕ6ǔNv8���%fuK���6f��N�t=�%p�C�@gWh�_Y ��7�!���d�v��j:��mvj �=Ӧ���3�A<$B -�J߿�7\���Ӑ�R8�B7��,\ȊB��yx4.�lHQ}�Z�Wb[�[��Aq�����N�C]i> �Ns�����:��M����j��U��b���Ͽ�5�� k$�1��'��Gg칖*��u�v�uzǵ�����v��k�Q$�z�&j�_!�^ +g�q( +�� �l4 ��B3O�JY=��J����2��� �ؐᄃ<~;:�u���6��kD�p.�3���h&F�9���3FV��1�-Y�FK�R[�$ə}�la�W/2�5 ���L?x�{L��5�c +�חr�b;=QUDͫ �U�B�s��.���mr�|�|��k�IZFY"��sy�e���\ +v�e����R����C����y��/�����P�|I��h�v�R���s/o��$�[�_��m +endstream +endobj +7280 0 obj +<< +/Type /Page +/Contents 7281 0 R +/Resources 7279 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7270 0 R +/Annots [ 7275 0 R 7276 0 R 7277 0 R 7278 0 R ] +>> +endobj +7275 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 428.887 171.594 437.025] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7276 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 404.977 171.594 413.114] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7277 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 381.066 171.594 389.204] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7278 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 357.156 171.594 365.294] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7282 0 obj +<< +/D [7280 0 R /XYZ 69.866 801.979 null] +>> +endobj +7283 0 obj +<< +/D [7280 0 R /XYZ 70.866 771.024 null] +>> +endobj +7239 0 obj +<< +/D [7280 0 R /XYZ 70.866 538.712 null] +>> +endobj +1646 0 obj +<< +/D [7280 0 R /XYZ 70.866 511.517 null] +>> +endobj +7284 0 obj +<< +/D [7280 0 R /XYZ 70.866 295.609 null] +>> +endobj +4229 0 obj +<< +/D [7280 0 R /XYZ 70.866 68.871 null] +>> +endobj +7279 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7301 0 obj +<< +/Length 1270 +/Filter /FlateDecode +>> +stream +x��XMs�6��Wp�5�� ���vRg��dRW��-Ak�T�����]�$R�;�'J�r���b߂����[V#�-=�}�6]\2�(�yӅ'1 +��dD� �t���$ +�w�+��3x��}�fj<�2���f��:��"צ�ߧ��#��#{�a�Bx����{sxv��(����k/������k�� LBQD?�)�{�q>�����1������2٬�"G3����Z-���T�Li��4:�{ ����M��:���ʺ�����n)�&�y�dˢD�O����{Ġ�Ơ1P�x�泬��g�x�U��(��M���%E����:��töEQ�x���Z�f^�i�Ue��C8F�G(��-��e��t��6�.Q=�@2��G��w3�\�M��a\�G�nʥ-���(��Ϊ�:.u�,�=w��s�\N���8S��^�O8���v��|Xm�S����8)�Ht��;a^4���6 @m*]�C���.N�8�Kj�g����n <�axT��n�M�wc�0�̫E:�D�|��. ��F������($�f�` ��,�����9��Y����fi��'�-bk��~�JDe�R6�Nf�}��?B� ����u�,/� ��`z��mp���w*���7��n$���(�����$����3a��p0q��� �����s+I����� �@c��#fc���ݘ{*Ol�p�Z�)�w�v��N'����I�2`+�NT�~��kc���z�j�n�Q��N8']�h�kW��~S�` ���!�RH�O`��K�mp}L�uj�����s�>�z�)8 +az����/i�@�fr�JX=���>�� +fF�ںrBwf��O���1' W�"=�Jt[p��]�D��d�J��!ZG�N�=�a<��؏��q$��= +�Bȵt,d��Ě���Y��� ۡ��0�Y��$YJ�!����@Z�35��rj���Ď�/#� �����Ό�"���ő=4��e�g�(��g%���?�?,���)?0"��@�9l�{$��rn�$���E�?���)c�ϕ�a�!�d���А4�F�S��E�9l: ]��Is�YQo*e��ZMfǎMY��M��lS��SUWɡ^&�k���[�W�������^����᧢V����*��X�?ww�re�iY�h���y��'.QH_���}(0����&v+���������nVl��G��c8���Z�a�C�7[UU +endstream +endobj +7300 0 obj +<< +/Type /Page +/Contents 7301 0 R +/Resources 7299 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7270 0 R +/Annots [ 7285 0 R 7286 0 R 7287 0 R 7288 0 R 7289 0 R 7290 0 R 7291 0 R 7292 0 R 7293 0 R 7294 0 R 7295 0 R 7296 0 R 7297 0 R 7298 0 R ] +>> +endobj +7285 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.992 601.002 194.003 611.27] +/A << /S /GoTo /D (newton__raphson_8c_ac6837f695990867bd72cf23ee93961cc) >> +>> +endobj +7286 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [313.099 601.813 346.761 610.965] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7287 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 589.858 128.438 599.01] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7288 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [273.441 589.858 307.102 599.01] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7289 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.212 589.858 373.873 599.01] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7290 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 589.858 525.406 599.01] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7291 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.832 577.903 160.843 587.359] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7292 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 421.946 297.675 448.485] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7293 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 245.513 171.594 252.996] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7294 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 209.647 171.594 217.131] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7295 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 197.692 209.303 205.176] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7296 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 197.692 296.791 205.176] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7297 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 185.737 209.303 193.221] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7298 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 185.737 296.791 193.874] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7302 0 obj +<< +/D [7300 0 R /XYZ 69.866 801.979 null] +>> +endobj +1650 0 obj +<< +/D [7300 0 R /XYZ 70.866 771.024 null] +>> +endobj +7303 0 obj +<< +/D [7300 0 R /XYZ 70.866 641.196 null] +>> +endobj +1654 0 obj +<< +/D [7300 0 R /XYZ 70.866 548.324 null] +>> +endobj +1658 0 obj +<< +/D [7300 0 R /XYZ 70.866 407.861 null] +>> +endobj +7304 0 obj +<< +/D [7300 0 R /XYZ 70.866 364.218 null] +>> +endobj +1662 0 obj +<< +/D [7300 0 R /XYZ 70.866 337.182 null] +>> +endobj +7299 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F14 3888 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7321 0 obj +<< +/Length 1775 +/Filter /FlateDecode +>> +stream +xڭZ[o�F~��@�--�s�����]uW��i�����1]��w�������fp� f8�;�|s.C��\"�C6������nfo�1�xȗ�97kGa�I�(�"I���s;' �p���^1��'q���M��hS>ymuyw����:��~b�9'�X��|��~3�:#�;���G����nﰳ�g���9ߋ�;��gp�u���uď��\�5��X# �5�ӂ�y��;��tA�<+�U"{�z��Ly�#��A��Q�ސX���Q:D8>8�J��!J�R��Q܍� +1�OU)�1 b�eS�:���!������v�j����b�$fM�Vq��d]^�%�N�$-oׇx�GI��~[P1��<G]��{�����djX�Y�]"����A7�#�r�m�����2 �$���i�X���0���Xb��%H�� /��%",���`�g��<"�̕��̚���Zu��8��v�O���6 @?�����i4�.���ag�t���N\,}v����ƈ��g�4Qe?��J�>;͡�Z�9T�.����l��d�}r�W��y#����\$ǃ+��P�'��K�3Me/yJw�c�Al"y� �h�^�D�p[R(*�k�����P"������^P\��)���Q> +��1��#�7�!j����+��v�"��R"�7�@5>CM�H��$9�ܜ����u�:˃Ǘ�ʉ���������d�g,p�l��pOF���0�$Ի�~^$��L�pL_c��B")^��OT�O��RS���;�k�(�!R�Z�Y��!��R�yАG�8�Fq�=e=Nv�5���[�O�8��e��$��.�ҡ�]=�R,���.3�4C���K<a��K�{��]�Q�5��)����T�s���5��o�L�0>C�i���nJ/q�U��)�`�de[��X;n�rL"_ыX;Z���J��۾�u~H�� eumG�"���sې����*x�YU�� +bJ�,]i`���7C;o�TT�Q��ՙ7�3����%���xYjĠS �xe�z���l�*�`H�+@o[�;1<�p=�+��$Iu��q�d:0d[}k�Lk�?X&{��%����ч�6Z�0�օ���`^�-9G�ϛ�W�VI$<Z�q����%Q +bK�/llW����f�d����0^uV��c`_�7��:�RH���a�HY�̖k#�+�e�K�O����.X����~�w:�/+Z���x�=�,Bj+C +����O=�Rܯ@�̟�:C�>Y>R����J� �&+��\ >��[c������Z�q ��k�@b��_yA�b�.^}w<�'�Vt�D +Zӆ� ���s� +!������I��ͻ��"��Y�-ά4��D����� �������Z���Y��5����Ur(����`Nv�e}��s�I0"��!`�����9,�V':�aS��9�=�/W�{�z�3l �"���hр�uU,*Oؤ�oP�U|�7��TW��c��f�[=�Vc�uLыU�n�;��h6��K_��V��#&��~��o3������B�)�_+$��Rr��j�-SW:[�ѾhU�K�Ɔ�f�h���b�,�6id���Xmm�\v@y���VNX�[qĈ�ߟ����o���W� ��o��i��?�#���0�EVZ�rq����M +�=�����w��5Z\hf�xT������B�4<������$���\ )m��^�:}>n�wOW�i���!��@�8�� +endstream +endobj +7320 0 obj +<< +/Type /Page +/Contents 7321 0 R +/Resources 7319 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7270 0 R +/Annots [ 7305 0 R 7306 0 R 7307 0 R 7308 0 R 7309 0 R 7310 0 R 7311 0 R 7312 0 R ] +>> +endobj +7305 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.992 257.419 194.003 267.688] +/A << /S /GoTo /D (newton__raphson_8h_ac6837f695990867bd72cf23ee93961cc) >> +>> +endobj +7306 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [313.099 258.231 346.761 267.383] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7307 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 246.276 128.438 255.428] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7308 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [273.441 246.276 307.102 255.428] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7309 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.212 246.276 373.873 255.428] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7310 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.745 246.276 525.406 255.428] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7311 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.832 234.321 160.843 243.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7312 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7322 0 obj +<< +/D [7320 0 R /XYZ 69.866 801.979 null] +>> +endobj +7323 0 obj +<< +/D [7320 0 R /XYZ 70.866 771.024 null] +>> +endobj +4230 0 obj +<< +/D [7320 0 R /XYZ 70.866 470.737 null] +>> +endobj +1666 0 obj +<< +/D [7320 0 R /XYZ 70.866 454.153 null] +>> +endobj +7324 0 obj +<< +/D [7320 0 R /XYZ 70.866 299.385 null] +>> +endobj +1670 0 obj +<< +/D [7320 0 R /XYZ 70.866 204.169 null] +>> +endobj +7319 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7329 0 obj +<< +/Length 1846 +/Filter /FlateDecode +>> +stream +x��ZMo�6��Wۋ ����=�,��b�� �Vl���G6��J�,ٌ�A=qd�͛��̧ۛo�[�<�}��~;�tŔ�@J��>z +#_JOI��.��) �����c��^�_%�x6�ʟ~��6N˨L�T��q;�1!0{���}�S�-���{�-�k��Y��z\0$8�����_G4 FJ��S�[� ��lN0�ӫ*]Ԅ����\уBĀ����2K�<ڭ�,����` �)(L#��J����\�@]�晆�#�p%�9&�o�f�1�|D����n�tU�?:���Q�i�8i�2_�I��2y���xQfyc���s�!�k��Q��Aܕ��;�1/�-����p��15��p�u"/��6z�2L����(��Q�zʒ�ݧ+_v�SI`-|ǘ909�L��b����wWK����;��·g�����Cui�[�0g���$ ��,(�2��Do�y��ƹ�w��S������-��$J>J��Ru�lѠSr!�LD�rXL�s��ĺRM�.�f���(�K�wJ�-���h��rpAL�r�Eu-��A��(U�ͧb�U�e�y�g��?%K3l�A�ǹ�5�A.s�K��G�Qo�+Qj��5k��ɣY� +m��C]����l���(�v�G_�2��^�)E��Ή�0�6Iѧ��e����D��f�b���/ �!�sc�*�o3ʧQm�R��i�c��8��� vL�_�m�B���X _�! Y ��@�� +�C��u��3D��u��MI�� +1���&ew�^ +��3j���@ dG��K$1�6�k5e���y�fG��ӌ�i]g�l���G +Z��� �0�I�]��Q⿃�X !���ziҩ����u����Z��ЊR�n����:��64&�%���K)�!)�aȇ�� y��|� �g�-����^�����#��Z��x9���XJ"_T�.�0r�VO�L�r$�'�$A->{��ƙt˩k6�gխ���h���nka����J�C�9������"�\a�a��c���-�g�-��Q{ +�g���h��$�hc���t����0{������ �+�<ۻc]qEI\$�K �4���8���� i2evAYUhs�M�6�V{'E'��q��<����c�(}�Qd�J�>8s�<��H����tv ��l���P)C���%p�I�̺F��b�w�Q���P���a�k's�������-خ7�h� P{����ٌ��b�v/�0�Ő`,x�b=��;Τ[�]��]{0zB��\q��S��*|�O����yH�g�=��=�E�=�}��Ȑ_{RE�����&.�<-�=d5o�P��.w���]�ڃS���i��tG�d�fdv��5�������v6mۺ��P�uh���8������8��E\����nkқ�,����l��Y�gY���.N�C�;Hp`��{�v��p��4�����W�M���44��<�`\'%�P�:�,ܦ7H�Ԏ���(� ����-��C�:���KXT_��Q��90/=舙��#�M �5��m��K��@���/������m�}�t��ө>�t�%A������_S"��#L��E!ʌ�/�B��+�r�$@#����`�R�W��a�r�̶���_\D3E�$�bS- YB:#�����K!�۫��\n��v �mmK�o$m����7��G2n���D]І� +q���n�����bE��N^��s������DTI^�W@C���Rv���Ft��s����� +��� +endstream +endobj +7328 0 obj +<< +/Type /Page +/Contents 7329 0 R +/Resources 7327 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7270 0 R +/Annots [ 7313 0 R 7314 0 R 7315 0 R 7316 0 R 7317 0 R 7318 0 R ] +>> +endobj +7313 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 626.865] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7314 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 583.516 171.594 591] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7315 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 571.561 209.303 579.045] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7316 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 571.561 296.791 579.045] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7317 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.054 559.606 209.303 567.089] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7318 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.542 559.606 296.791 567.743] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7330 0 obj +<< +/D [7328 0 R /XYZ 69.866 801.979 null] +>> +endobj +1674 0 obj +<< +/D [7328 0 R /XYZ 70.866 771.024 null] +>> +endobj +7325 0 obj +<< +/D [7328 0 R /XYZ 70.866 741.162 null] +>> +endobj +1678 0 obj +<< +/D [7328 0 R /XYZ 70.866 713.966 null] +>> +endobj +7331 0 obj +<< +/D [7328 0 R /XYZ 70.866 437.992 null] +>> +endobj +4231 0 obj +<< +/D [7328 0 R /XYZ 70.866 186.442 null] +>> +endobj +1682 0 obj +<< +/D [7328 0 R /XYZ 70.866 170.945 null] +>> +endobj +7327 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R /F13 3832 0 R /F10 3833 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7336 0 obj +<< +/Length 1248 +/Filter /FlateDecode +>> +stream +x��XIo�6��W�(�]ҭͤtf +���M�Ʀ!ZR-i�_�G�r$[qLJ�,��[����:�__Q��gmAg����%Q�c�8��QHp� +c�E���(�2�F^QV�b��͢*V��P��BWISV�"^�}�i��ӵ^�fS���y���q����8��9�` At�9�p�Z泛��`�"����ۙ#!9���s�~���� �X �Q�ޟ˶X6iYԝ ��Kp� +�Q�&�{�19:�n)��*�o>#�lW�7�ƹu��3Plt����Y}�U�������yh�]��-�d��{��X<� ,ɾ��v���j��>'�c�$ё�g��P�C�?c��T�X�G�X�ɖ ֙$˞�����K;K�F��J�f�����o�����NJ��=����k�;�q�o����Ͳ�d���rX�C �1��t'~`Nj!L`Z�M�d�Z��i"I���8��"]���[#&�.���W�S������%-t�B�e8o��j��0�Ձ�e�lؗ���I�M����]dws;�1& +�D�A���&B��$P�/t�����V܈�QI�������a{�Q:(0���@9۽+�'6����2��b{�h��q"̤y4?�͒���0U���� ����N�Q� ��H���Gr�8,\����y��^s������b��:N)�#�4� +��ޜ�>-�x��Z�x�w��+�q6IK�h�7 G�r��gb�:2 RS5��k�]k�]Zʠ����KK�l���!�]1E�te�N ���-�}���PB���>q��N[��8�6;hm�2�k߮�m�r՛�ږ�hDOH�x$��ϰ�;�s.F����}.�^�3�1厐W&ϒ*���Po<M fҌ����������03�D���!���*��n.�y�AH�Q3t�'-�GRJ(��R @I�%�5R:��&ԛ�����y�DO�味�tjכƦ0��cL������G�ay�b�^\��G,��� ���T9ɣ�҉A�e:i�$�v���T��9{Ү�����٣���|���1=�X���;5�)�au���ڹ���)�T�G7�N�X�-�B���M�U�armI��tjN����]wa�����ߘ��N�0�(�!�n0��A��t��N8�V+��꧱�hB�Ĵ[�����;�{����������� +�Y�Ā&Bb����L�v x�?��Z�/�O� +endstream +endobj +7335 0 obj +<< +/Type /Page +/Contents 7336 0 R +/Resources 7334 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7342 0 R +/Annots [ 7326 0 R 7332 0 R 7333 0 R ] +>> +endobj +7326 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 733.249 231.19 743.625] +/A << /S /GoTo /D (norm__dist__rnd__generator_8c_a7c43c3270c6c14bb23f14d071f6132bf) >> +>> +endobj +7332 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 705.354 183.634 715.73] +/A << /S /GoTo /D (norm__dist__rnd__generator_8c_a5767383d0f4f1fed2c194695a22f56cb) >> +>> +endobj +7333 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 543.31 297.675 569.85] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7337 0 obj +<< +/D [7335 0 R /XYZ 69.866 801.979 null] +>> +endobj +7338 0 obj +<< +/D [7335 0 R /XYZ 70.866 775.009 null] +>> +endobj +1686 0 obj +<< +/D [7335 0 R /XYZ 70.866 676.365 null] +>> +endobj +1690 0 obj +<< +/D [7335 0 R /XYZ 70.866 529.066 null] +>> +endobj +7339 0 obj +<< +/D [7335 0 R /XYZ 70.866 482.508 null] +>> +endobj +1694 0 obj +<< +/D [7335 0 R /XYZ 70.866 455.313 null] +>> +endobj +7340 0 obj +<< +/D [7335 0 R /XYZ 70.866 335.957 null] +>> +endobj +7341 0 obj +<< +/D [7335 0 R /XYZ 70.866 82.821 null] +>> +endobj +7334 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7349 0 obj +<< +/Length 1403 +/Filter /FlateDecode +>> +stream +x��Xmo�6��_At� CR"%�Ӓf ��C�x(��0�q��%�K�����&۲�5i0`Qy�{��g�g-� AKD���p6�?"�D���nPDp,��E�]z4���f�(�oA(`��>�9�Y{G��/eե]^Wj������J�� 2�q�B�('�����)�I����<�<`\����ߠ���z�#�0����-�ӓݼI�l^M�/�'�J��c�Q���P%� ?�8������P(Q���43J�F4#�|Jq ٚW����5�4�����ʻ<-歔��KZ�P(��%�+�Y���OA�8I��B�=��l��ig}�W��4 ^��;�J3�� ��7�R�_��*��R�ߵlZ3q=e�{��ۼZ�awkO|�W2m��m �a?�R��+`����jݬ�z�v�KZ,k�5�Ի-��23���q���>ʫSd~�����9��1�������3eY@tS���[3����T 3��:m�0� #��3�Cϸ�(�)��qS߯����96S� +�4��=�7��FH�Ξpc�����0���c�ɲ5�Φ2�و��Zh$B:x��UZ<�`h���8ാ�������4���2�m % �.z�5���ı9�l�B/m�R*K(�� o�"��2� b�1�F�"�W��H�#q��)�:�4��k�{�0�S>����Q�b�R)�8��G�u/Pa�?:t���/��FjD!���jl$� � ݩ��*��Y�z�bo��8�:����D0�|_l=_�nf3�B�� �\�ˮo���$�uڷ�/�5%�%(���l(#�'���ŬvG���Z[ig��3��DEl��z����<�[(�� +�r�����v�j$�9t4 �F�eەLU��3���d�C�o�r���C�˭��dC�BAJ��I!���V�Kl�8ۙ��2-���`֭9k�})���hG�� +`�#w�Z�j�`pZm�)���sh=��t4CP�D8�����!]4Jh��cFԑu����{ХϹ�~�L\�ڮүY�<<�˔�g��7�Y`��B_�&�.�}��2��q_-T�� ��T��b�8BA�]A��P�k��R�� ����T���5�;E"��2 +K�@a`C��O_5ڶs7��/���Z���.>�E�vB�q[g�~ʃ�`����@���L]'� +�"O��ǵ�@�����l%/$-�7rW.��r�d��ڀ;������Uv�L����C2����r�� ����W�BO��~��o?�{ϻ��Z�-��ۜ?ӻ�baY�]ږ��f�;�F��m��p���ߩ�?�� ��}@ Z���f��D�����E��!�H�J����C�m��ٞ�tՑqˣ�/�w���iy +endstream +endobj +7348 0 obj +<< +/Type /Page +/Contents 7349 0 R +/Resources 7347 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7342 0 R +/Annots [ 7343 0 R 7344 0 R 7345 0 R 7346 0 R ] +>> +endobj +7343 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.678 315.162 137.144 323.543] +/A << /S /GoTo /D (norm__dist__rnd__generator_8h_a598a3330b3c21701223ee0ca14316eca) >> +>> +endobj +7344 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 250.236 231.19 260.612] +/A << /S /GoTo /D (norm__dist__rnd__generator_8h_a35eb81d6885b8d16d225b230f88a919a) >> +>> +endobj +7345 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 222.775 183.634 233.151] +/A << /S /GoTo /D (norm__dist__rnd__generator_8h_a58c36346c01fb7f1a336a610b177b903) >> +>> +endobj +7346 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7350 0 obj +<< +/D [7348 0 R /XYZ 69.866 801.979 null] +>> +endobj +1698 0 obj +<< +/D [7348 0 R /XYZ 70.866 771.024 null] +>> +endobj +7351 0 obj +<< +/D [7348 0 R /XYZ 70.866 606.459 null] +>> +endobj +4232 0 obj +<< +/D [7348 0 R /XYZ 70.866 455.968 null] +>> +endobj +1702 0 obj +<< +/D [7348 0 R /XYZ 70.866 439.76 null] +>> +endobj +7352 0 obj +<< +/D [7348 0 R /XYZ 70.866 353.057 null] +>> +endobj +7353 0 obj +<< +/D [7348 0 R /XYZ 70.866 290.126 null] +>> +endobj +1706 0 obj +<< +/D [7348 0 R /XYZ 70.866 194.208 null] +>> +endobj +7347 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7359 0 obj +<< +/Length 1285 +/Filter /FlateDecode +>> +stream +xڭX�n�8}�W]`!1˫.�֤�A��&^��)Ţmau�꒮�~�"�H�7N�<�%r�p���0��7��� AkD�lr>����> +p�y�W�'8�<�{�c�͡���2?p��qRՋ2�kwJ��rUFuQ�q��̻LRe�n��ՓJ�/�+�0��0t�ϯ&��'�L( !��<�@�l��;A1|�B�0@?ڙ�c)8<��v��h7�ؗ��ߎG1�3 ��K�,]F������ayR'En��&Sy����^����T�cj�_2k�D>}B�Nq �_b�Jr�g�#�TP2O,:e�d�_'gk��a/u�5b�X�12�2)�)l���Ӌ&[���)m�.Oj;/N�Lժt%�Z�����/�͘��O�A�]�`� ��e�M5�2���x��].z�8�a"y?ܦ�ɗ?�W�˫%���D�(#��k�MvG$�?z<�q�ܧ6��C��|�&۠��/є�=+�����q�N&fZ��|��gpM��S�Vu��գ6}���1D7�),NO�d�s1d�L�����c%� +�!��^�rS��_y\dv��ͽ*��v��=<��$_�U�y����;Ƽ/M�v+�6E�rpB0���a-HҽJ��T]&���eD�S���<�t�s���r �]G|c�yJĽ�S�=gf� +k�m�@�����8�@܇TmD�||PB1��T�^?��X¾NM��#��=�����'���z>f���Y�r��x� 8�S��9�H��M��Oٰ<�{����#K�u�G��<̣�S��t�x|�NCq�NC���6=�'i��(�j8c:� �X;N�������б��`����F�M��n7�Ś1*sJL���[�>;�4�N���B��"J��Q˝��>�߅�����¤�Ͼı�����O�����J��__�[Нi|X�I�I���f/WcZozX��B�%y}@'�St�'�i��E�T�?b �j�yL,� �!�=e�r�ɓ6�%:�H!�����z9B�j�������Ȫ��>�zS �mػ�4�q����� K��[Z�K�M��e{Lw����?�Z���mZ�zg�r���$�y�d��wMg��>��#wt��6��cҐ��>��q�������)\��l^]�GI��p[~���!�S[+c����&۷�۪VYe>]�*W����u��c�<J�l ���3 �*6�}�7����j��"7�-��z.pq}�����{����5v!��I���?ġ���H�m���}��L�� +endstream +endobj +7358 0 obj +<< +/Type /Page +/Contents 7359 0 R +/Resources 7357 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7342 0 R +>> +endobj +7360 0 obj +<< +/D [7358 0 R /XYZ 69.866 801.979 null] +>> +endobj +1710 0 obj +<< +/D [7358 0 R /XYZ 70.866 771.024 null] +>> +endobj +7354 0 obj +<< +/D [7358 0 R /XYZ 70.866 741.162 null] +>> +endobj +1714 0 obj +<< +/D [7358 0 R /XYZ 70.866 713.966 null] +>> +endobj +1718 0 obj +<< +/D [7358 0 R /XYZ 70.866 590.415 null] +>> +endobj +7355 0 obj +<< +/D [7358 0 R /XYZ 70.866 545.698 null] +>> +endobj +1722 0 obj +<< +/D [7358 0 R /XYZ 70.866 518.502 null] +>> +endobj +7361 0 obj +<< +/D [7358 0 R /XYZ 70.866 399.146 null] +>> +endobj +7356 0 obj +<< +/D [7358 0 R /XYZ 70.866 237.259 null] +>> +endobj +1726 0 obj +<< +/D [7358 0 R /XYZ 70.866 210.83 null] +>> +endobj +7357 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F29 2678 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7392 0 obj +<< +/Length 1225 +/Filter /FlateDecode +>> +stream +x��Y�n�6��+��F�>D=���i&����n�HA�hE��J<��^>��9H���]�e����sϵ������ v2;'���ɇc8!�|�9�`��D�ę�ιK1�^�O�1χ���q^���{T/�RT2�y]���O�ɗ ���!�a�B�9�rr~��>;u b:wzf�x�!�1����01�\ �ł�d�OP�Yԟ��s�&)�͔������a{���Cap���1�>w#��C1`6C�y6���;PB}EI����Ռ�#�!� ��[��Y 8@�F�Ms�'E� +�ƷS�ݤ�x(�}a��0B�"���W�Ō,�NL wѷ�(� �=`}���y����c<��|X�!���LȮ��˦�8��3"�q�j�I�֥��R�� +�Q���N��27�b3�Ef�ՠs��l|HÑ�$.0�*�� �Hs-��Sh#�KsU+zӪj��e�歌͛*�3Q �]��]�0 0����gg9e��բ��Քb��gB��{4q�Ilɸ�Ë�����Ͽ?�U� B�5���p�;`R�ɭ��x4���[�ȼ��ўK�J�0��}[��G0ᷲ�5��AG��JʛB�ۜn�c�Qd��PQ��.�ui j��y�(��� dc&1�Qھ��H��^�Ohe���z$������4����J�D������EƸ����E������)�|�����=��{+ ���-ĭ��r��L�/]Ҥ�q�:͗98�tmW�N֕]j��Q��^���a�縫JS��3�za�-�J���|ƹo���S����&�{�g �gS�B��/�xg(��f8�c�W8�SΡRB߽|�0.�ZSS����{�:g��/vض��؏k�4R��EVR?'Ţ+i=B^����dQ_剭� Hۖ�^��9| +���2MS��࠶E��l}h��{)5t�+��:��j<f)��k���D&��o���{ ��xv�-���@S^�N�a�_����D��]:�#>��};��ٵy� ��__EN~{��?�]�R�(t�o�������*����!!�����-u��`ٽJ�z�w��ގ�n�t��Z��ϰEyV�V������������Ya������(�7k��+0�$��A������:���(�O�w����G4�=�|�{�s�����N��D���#�#�c�k�ٹ�B��O� +endstream +endobj +7391 0 obj +<< +/Type /Page +/Contents 7392 0 R +/Resources 7390 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7342 0 R +/Annots [ 7362 0 R 7363 0 R 7364 0 R 7365 0 R 7366 0 R 7367 0 R 7368 0 R 7369 0 R 7370 0 R 7371 0 R 7372 0 R 7373 0 R 7374 0 R 7375 0 R 7376 0 R 7377 0 R 7378 0 R 7379 0 R 7380 0 R 7381 0 R 7382 0 R 7383 0 R 7384 0 R 7385 0 R 7386 0 R ] +>> +endobj +7362 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 322.169 190.233 332.545] +/A << /S /GoTo /D (optimization__test_8c_ac7361316d224b72baa4a681297d9f51c) >> +>> +endobj +7363 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [193.718 323.088 227.38 332.24] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7364 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [267.691 323.088 301.702 332.545] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7365 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [269.929 306.472 358.928 316.195] +/A << /S /GoTo /D (optimization__test_8c_a610651298b8018db96cf21ee31740d3b) >> +>> +endobj +7366 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 292.369 212.155 302.951] +/A << /S /GoTo /D (optimization__test_8c_a610651298b8018db96cf21ee31740d3b) >> +>> +endobj +7367 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [215.641 293.288 249.302 302.44] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7368 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [289.613 293.288 323.275 302.44] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7369 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [416.415 293.288 450.076 302.44] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7370 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 262.677 185.247 272.945] +/A << /S /GoTo /D (optimization__test_8c_a1062ae4598fabcf957ec0b855737db20) >> +>> +endobj +7371 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 232.77 207.412 243.352] +/A << /S /GoTo /D (optimization__test_8c_ac11e842f01767e97924c100df684476d) >> +>> +endobj +7372 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [210.898 233.689 244.559 242.841] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7373 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.885 233.689 313.546 242.841] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7374 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [361.838 233.689 395.499 242.841] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7375 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 202.97 240.623 213.346] +/A << /S /GoTo /D (optimization__test_8c_a98fdeac6ec9a38cb63f48e7c0f0085f0) >> +>> +endobj +7376 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.109 203.889 277.77 213.041] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7377 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [313.096 203.889 347.107 213.346] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7378 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 173.278 255.758 183.546] +/A << /S /GoTo /D (optimization__test_8c_a5f1f1ed377535a6d4c5758c38174fcb9) >> +>> +endobj +7379 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 143.37 204.686 153.953] +/A << /S /GoTo /D (optimization__test_8c_a1daefb42bf903899e7e1d5237ba62c0b) >> +>> +endobj +7380 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [208.172 144.289 241.833 153.441] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7381 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [277.159 144.289 310.821 153.441] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7382 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [359.112 144.289 392.773 153.441] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7383 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 113.571 237.897 123.947] +/A << /S /GoTo /D (optimization__test_8c_acb161b62c37921a9edd0cb7aeb76342a) >> +>> +endobj +7384 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.383 114.49 275.044 123.642] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7385 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.37 114.49 344.381 123.947] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7386 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 83.879 249.948 94.147] +/A << /S /GoTo /D (optimization__test_8c_a5f89a9747d6a7bec1ad0a80ba31647b9) >> +>> +endobj +7393 0 obj +<< +/D [7391 0 R /XYZ 69.866 801.979 null] +>> +endobj +7394 0 obj +<< +/D [7391 0 R /XYZ 70.866 771.024 null] +>> +endobj +4233 0 obj +<< +/D [7391 0 R /XYZ 70.866 594.83 null] +>> +endobj +1730 0 obj +<< +/D [7391 0 R /XYZ 70.866 576.176 null] +>> +endobj +7395 0 obj +<< +/D [7391 0 R /XYZ 70.866 368.027 null] +>> +endobj +7396 0 obj +<< +/D [7391 0 R /XYZ 95.773 277.516 null] +>> +endobj +7390 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7410 0 obj +<< +/Length 1981 +/Filter /FlateDecode +>> +stream +x��ZY��6~ׯ�#U��Aĕ�=O��G�;�;�R��aY�#R�8��i ���f_L�jv��ЍnΫ��ߓdY�p�Lpr7�����[��i)Yr�HF����I��ϓ��`$�xBU�n?���9���fZU�f���媰w�Ř����y���)�d�x�n������8!��,C��l=zx��~{�`�t�|n$� ��~��{��|@���>~I@d<!��MQ�vn�)�ٮ�d2_��ڋN&��Lp����|�iUT.�aP�|�����H��i]���F���ϓo6�1�i`�,pU���OE\��҅���(yh��y�ƴ���N�F�I��q5���c� �_��v^H��70��ܚ�,� �XSD������t�v� +w�-��1!�\X��?�.����]^�K�͒�c��}g��D�F�I +��U��G����-���nUnм���8b3�%N��"u\|���q{����Ŧ�l�&DH��Tu�6gaH��i�}e����:ov���Y�\VH+L"l�i[a�@sL��3�����J�z�\!|u�Z9�m��5�\�皇���,�M�A� �pgZ��OM�Rf�+{�8���iY}m= �#�&H2ْfi%2O@ �u�{���'��/c����5x&UZ5+�<�@�u�MD3QHe��}�*����YxRsX6ĵ#Z�K�x2�3�=M �gPDD`M�/:#���#��iD���><�ј �<{�#�����'�QULs�0 +�w���X��!�\�@� �����Fz�*>FbO��|�E�>U�ca�])�GB#��!�2c1�����G�����≴ cv3$T��.n_�t�m��"{ؙee�B��rS���a�/*W�'�CF1)��U������*��Byt�*�m�bV�T'SG������Y*�j�T� �x~�h� �b��B�+|�8�������w�-C ,�*�{Y##>��=���o�H�uڹo\�j�"�!�����>��xi/���*�a�<��2ⷂb�[��4��.�}�ց,���+ƴ�R"I�f�6)�^�X��]�Hl���: ��'!� �s��n���pT�^���r���o��o� ĭ���m�J���488A��o +�9���5��B�p*y؝�W�yHdd�8��c��M�y�:��imJ^/?]�����������$�����1���@�����ݼJ`.�z����∠�<��B���Ǒ� �8��$� +r g-%ãO���;�m?�y�:��:<����lU��Ϧ���jo��)`$l�i��^��i����;�i���v��vױ M��v����z@�~��1�y +�<�#J��_�`���ĩ��t3I�ì/|ӑ�b�C�{i|A8oN�A�k���Wy� ���f�3�L-$�T�c�P�"1�����U ��I�1�&��X��/j>����X\��3z`��hՎO��.,8V�4��`"�g3�!��I��b��WM`�]��=|�8zf�Y��g�����켼̐Du�^ ��DQbm͊���(gC�Z�h���7fQ +a��2������kM$�؟����f2]�=UI�^����]�.�b7&$��\�LD��|�3�`Bw_�~[� 1���ߪp3�%�ih>Q2� 3<`��f�u�`�d��,J ��AbڄZoˎ){��e�ARijk!��3�A�A�j���A���<D�@L�� ������Ml�E�cUpPP��,�g��:�q>�F��lJ]#Ω>�K�t1�!@��r�nQ�� 9>�GΦ'�g�]H�������ouq���'��a֞�����'�u1�!5@ŷ��b��Za/�OG��|:r�( �~���Eڿ��*�=_�h������Z�� +��|ӆ}q=����W�=� +endstream +endobj +7409 0 obj +<< +/Type /Page +/Contents 7410 0 R +/Resources 7408 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7342 0 R +/Annots [ 7387 0 R 7388 0 R 7389 0 R 7405 0 R 7406 0 R 7407 0 R ] +>> +endobj +7387 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.644 703.206 293.462 711.977] +/A << /S /GoTo /D (modified__gauss__newton_8h) >> +>> +endobj +7388 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [311.41 703.39 331.837 711.771] +/A << /S /GoTo /D (levenberg__marquardt_8h) >> +>> +endobj +7389 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 653.023 297.675 679.563] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7405 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 262.469 171.594 269.952] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7406 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 250.513 171.594 257.997] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7407 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 238.558 171.594 246.042] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7411 0 obj +<< +/D [7409 0 R /XYZ 69.866 801.979 null] +>> +endobj +1734 0 obj +<< +/D [7409 0 R /XYZ 70.866 771.024 null] +>> +endobj +1738 0 obj +<< +/D [7409 0 R /XYZ 70.866 638.779 null] +>> +endobj +7401 0 obj +<< +/D [7409 0 R /XYZ 70.866 592.221 null] +>> +endobj +1742 0 obj +<< +/D [7409 0 R /XYZ 70.866 565.026 null] +>> +endobj +7399 0 obj +<< +/D [7409 0 R /XYZ 70.866 360.338 null] +>> +endobj +1746 0 obj +<< +/D [7409 0 R /XYZ 70.866 333.143 null] +>> +endobj +7413 0 obj +<< +/D [7409 0 R /XYZ 70.866 173.713 null] +>> +endobj +7408 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F11 3889 0 R /F8 5024 0 R /F7 5023 0 R /F10 3833 0 R /F6 7412 0 R /F14 3888 0 R /F13 3832 0 R /F92 4494 0 R /F1 4058 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7421 0 obj +<< +/Length 1725 +/Filter /FlateDecode +>> +stream +x��Z[oG~�W�#He2�K�JU�&����o��6x�"pa�:���fw��0,˂��!-��|�o�-~s��#'�#�����o�KK��Hr}O,��b�����;r3L�n����oR�X>~?{�Gca���r�<�EV̖�pt������IF�V�s� E����-#w��@�w���(-�V���ߚ0�O�4�� �O��H�a���|]A�:z�O��jR�� +F�BH❻�/#��ߪ�˧b6��]Z6��ї���β��]Vd�"_��f��K ;�>}��Q���r4挱����p���54M�����,[lT�&�z�x�/9uZU�.g0��IBk�#Al�*P���O�UV�1��Ca%<z2�S��{/jx��L� I^&x�fY;��ီ��QD��T��Y������j��F�&�&CP�d~un�fc.=U ���=N��"r��#~� +��z7< �Ag/Ճ��l�P}ݡR�0�iKR娐���'(���V�pN<&�5�o]O0b��� M5.�Q�Q�}u����}R�ڙ��ڙ�pn H��]%��M�R-#Q�����yf��� *a��R�-|����7������6���> +����{�9�����T�%�Vl3Y���^e ʅ��{����i�� O����(ȹWQ���BHH�-e���WQ������ kǸ�w�{�zqjhEKh�[�eB�;���7C+ZB���n�=hh��6S����p����9QB�>�Lh�-3}����Ʃ���00�3���E�g�#�i�ۀ���}��ׁg`�`�<S&�Hg}�h���c�vX�.b�iM=�4�L"�:J�'��$��A� +�M����γZ���e=�GK+�˪!7��s�j���F �Cs� gCkHy�<AE.���C��~���uu}=�1Ӈ?_�MV��[�A������(6�ވ�CkFmH���2 �v��CO�7d��l[�m�7ly*/(�?��u����f�PHSaF�>U"��PػJ4"�(�Y�K��w��z� =o��0�`��N]2m���%�4�����FQ*t�F�G9��F/�x�0�i� 5�V�</�Ո��1Ԧv'ʅ�̵�PTH�_���{M>5oX(����r܉�#�C@���E��R��Tj�W��ǁ3����e�CaO���6�A�}�틡���B_� ��a]d���몑fU����8�(��> B���_�R&[8u���)����2�����> +�|������>��,jhn� +���D8���x�< +�.��:X�8�C�W���Y��.���[�8[�}��<�y����f��X��5/�6W��ǽ�j�;�O��*�X�.�r.�!�}�m3;{��[�<��ϫ���΅�ާø��N��=5R���.��e�#�S��j{6{zZ-K6��%K��&*\�(t��[t>h?[R��_�l�ΓQU:�k�/P�A�Y�kR;b�Se���w����4\�c� ���Ѡ� �n�H�O��3�0j_��I�AQ�r*�}B@�Ĥv�ΒI�IXjw R�y:p���4�j:w2hgv���fW����u�ѷ$;�>A �k�ΒI&��) +Y�#�3z���s�²~*�,�)�?�Y� ��U�0�Tһ� +z�\'c�'DXy&�N�q�{�a� �7����E��;ػ׆�ؼ�v�_�8�Z6tc��F�-�VT��V�Yl�>�|�ʑ�p�j��Ŷ}��t�� +endstream +endobj +7420 0 obj +<< +/Type /Page +/Contents 7421 0 R +/Resources 7419 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7342 0 R +/Annots [ 7414 0 R 7415 0 R 7416 0 R 7417 0 R 7418 0 R ] +>> +endobj +7414 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 625.505 171.594 632.989] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7415 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 613.55 171.594 621.688] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7416 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 253.773 171.594 261.256] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7417 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 241.817 171.594 249.301] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7418 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 229.862 171.594 237.346] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7422 0 obj +<< +/D [7420 0 R /XYZ 69.866 801.979 null] +>> +endobj +7400 0 obj +<< +/D [7420 0 R /XYZ 70.866 723.375 null] +>> +endobj +1750 0 obj +<< +/D [7420 0 R /XYZ 70.866 696.18 null] +>> +endobj +7424 0 obj +<< +/D [7420 0 R /XYZ 70.866 503.186 null] +>> +endobj +7398 0 obj +<< +/D [7420 0 R /XYZ 70.866 351.642 null] +>> +endobj +1754 0 obj +<< +/D [7420 0 R /XYZ 70.866 324.447 null] +>> +endobj +7425 0 obj +<< +/D [7420 0 R /XYZ 70.866 193.244 null] +>> +endobj +7419 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F11 3889 0 R /F10 3833 0 R /F8 5024 0 R /F1 4058 0 R /F6 7412 0 R /F7 5023 0 R /F9 7423 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7436 0 obj +<< +/Length 1442 +/Filter /FlateDecode +>> +stream +x��YM��6��+t4����ǦrI63U�6n�S��1W1��I���Ӳl���؆���#[����ԭ�n�����݈�WD������kd�U���i��RH[�E��Q��O�6��,}K���t��g�.���>]%��1Y�)��m�^�!k������t��l�爂i��є1�0�o��g�^��̭A�_�!!9���� +�6��N���}E1)�;F�d��Y~3}=���D�G��|��&J`c�����B�X�n0J���D�R"��&�����ڤ@Q5��wX�3����;F�-�DJ�="&�l��g�ﹻ{�*$DŽ[x��8�9Lz�ZG�ߟ1v��I�Q��g������4�ğ�������ݥ5L(�X� ��Y����b���B������ !^l���ڏ8��AF����d�r�^�����SSV.~�y��n�5_�3�0�n������E�8����|3���-ɒ��hW�m2i8�ถMƈ�̈�&�1�ېIe!�� ���PY@�{4��S�@�1$��R �t�<^(ј�.�T��Px/��u�d�d䷊��s��� d0����"X��,� +e^�9�x�Ovc�0n2b0ۂ��3j + ���*�BTRb-�-D.�826��EU�l�UU�:-��AT�8�EU�(˗�d��zl� d;�e���8[YH +���O�τ�u�'��/q� W�H�ֳ��Q�J�r*�f~��(`v��̳��oX��ֲg���˛�>9�7+nU��7�g��g}Y5*�,V�\,����۩���{��9����W�O�N�߁B�s�:��IQd�Y��X�����8���� �D �ɑ���'s ���X��2[��+�!p���7��F +�ˍ�P�;s�!�G�o~�x)MJ!�UYP����戢��`��<�?�+_S��4*fBEe�N(�N�D�� +�j�kˁ� �R�U��~!���B��/�,�@ٹo�h�j�/��n���:eW��.`�=�^�x[�D-R�m�O�}/�e�D�� ɒKK�ڴ�2\0��R�� +M,&E�~?���$/����� +���nw�� 0 ��w�Aa�& +�&o�0�Ea�V ++�Ț'��B�<ݖ��08�d(�aB���u��-� ���:Y #����P4���� +�����Ad�p�npAdĀ����@���a��C�A1,�`'�C�c�8��t�$�tPn�z����B�C\�5^Q�X,�-�X��XMU3�/]E5�FPT =�ԟKC�I~����(�%\�.-���r�.k���6�z�Z]��0a1U9�v������M�) �_���g{W��Ʋ�+&6�(6Ğ�^�Ǡڼr�̀�U�=0�ϳFC����m=~�,8�j?�X�\��"�u�}�`��Ǎ[��k�+[�2�FU� +endstream +endobj +7435 0 obj +<< +/Type /Page +/Contents 7436 0 R +/Resources 7434 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7440 0 R +/Annots [ 7426 0 R 7427 0 R 7428 0 R 7429 0 R 7430 0 R 7431 0 R ] +>> +endobj +7426 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 650.326 171.594 657.81] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7427 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 638.371 171.594 646.508] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7428 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.736 612.603 347.402 623.185] +/A << /S /GoTo /D (optimization__test_8c_a610651298b8018db96cf21ee31740d3b) >> +>> +endobj +7429 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 352.231 171.594 359.715] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7430 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 340.276 171.594 347.76] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7431 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 328.321 171.594 335.804] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7437 0 obj +<< +/D [7435 0 R /XYZ 69.866 801.979 null] +>> +endobj +7397 0 obj +<< +/D [7435 0 R /XYZ 70.866 748.196 null] +>> +endobj +1758 0 obj +<< +/D [7435 0 R /XYZ 70.866 721 null] +>> +endobj +7438 0 obj +<< +/D [7435 0 R /XYZ 70.866 601.644 null] +>> +endobj +7402 0 obj +<< +/D [7435 0 R /XYZ 70.866 450.101 null] +>> +endobj +1762 0 obj +<< +/D [7435 0 R /XYZ 70.866 422.905 null] +>> +endobj +7439 0 obj +<< +/D [7435 0 R /XYZ 70.866 235.338 null] +>> +endobj +7403 0 obj +<< +/D [7435 0 R /XYZ 70.866 82.821 null] +>> +endobj +7434 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F8 5024 0 R /F7 5023 0 R /F1 4058 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7448 0 obj +<< +/Length 1988 +/Filter /FlateDecode +>> +stream +x��ZIo�F��W�(��x��A.m��>��n�!0-В�T�����7�!EJ�].���@=|�7o��7��H4�;8G8z���߹�c*��Hɢ�S�0�RF�P$I�E]�y�1��,o�e��S��o���4�I��gvi�]��C`%�H-Rk�)�����#�F��$}/WN#.���$����fJ�pe'�HD���cܝ)�i�wi�`lov�b�g��}2�Β�',0�#��;!"����*�Q�҂;���٨�-��+�����{ >��D`0W"� AFH/<�Š��8�o�m����Tد����T���]�^�S-��iR,��)��+��1��H�:F��R�ؽ�0�xSXL��?��p9I +Rų���Qܭѵw��`��f+wc ;0v�pՃm^�]���%E����=� ʜ�� :�ܹAHd� *�pFDe�_�# h0mWXm�'����V���Ѩ�捗�Xcc�Ȉ��#F+��B��GeuS� ��{1�Ðo��".PK�Wk!��Tu�o��(Y��r+Ti<&��I[�DR�����p�N�Ķ5qĥijZ�lK`�49I �EZn ��~4!g*~@+;M~�� +h��Lj������:�D��v!i�M��#�Ǚŏ��_�~���d<��A�$��$���(DUP+�FA���"��_Nz8U�v�C��k�v㲘��ug���=-�6��[g<�62�:��@ +!���~���#��1/Z��z�61���MN3S��y ��e�&��#�MC���=��{�9@\�P (�dۧrѭ�vh�?��I� �)+�.M���Gy7Y$ӴH=B�yk�1Bc$��������f�,ò���p�t�\�;^DI\@jm� :h$@"��*p&C��\���C`@)j)] ����:A��c�n�u� ��G��v��mȋ�l�����E�|у�m[D�#�-��m�����8e\�=1u�S�"N�5bJ(��!u��pH5t�I�GRS�>g_�l�v� +�.���el�R��I����'��,+y����I6����]̟ܯ}�bv[dg����%5�=��1}�1�M�l�曧yP~h��lw�G@y��XR�4��p}��"�A���&y��!~���1TĚ� S� xKh�&ns¢)�P�.8OT�51}�J�_&�T[�4���d<��x���M��H����G��]>-gC���巡��Quk8��"��s��:���z\���� ���igK֢�K�ބ�L"��I��#P[b���"��&��ung�Λ�� +j$u3ȏ��u�q����ϐ�|� D�\l�ٶ�2L�/�q�������!/�� +��G�I89jN�Ȯ.�1(=^�P8Cr�$~Q?��ڎ-qcQ2�Yc%�z�a"Yo'���8����L�XS�Qa*��߷�BA����]G�����L5b��r�J!�@�PP�1T*9��lP]�=��{�h/2�)�jg�3^�yރ�z�Q�9��<-܅�����Ew�e�� +/5�Ɛ����K�K���p+����mӎ�,(�8�?����� �ѹ��Ջ�.�������!guȴv{�Z�U{�~]V^̽p�.�0���S(����[�#ݏ�~�M���i.��#���5�;�Y� m�}�/^ +�c���8�����P�9���8S�:��KmP�R����/��\��N �X Z_j�&��py<Hv�o�7��DA{C���N��|>��&%3(^ٹP1����`�,�|�V@�����f���y�V�P�+�>���`�, �,F���폴��,�f��?9dF[�k��`�! / +��n�/��UӾ6�2���b��6������A��ؖD���W�y��ls �>;����^�j/گ��D}QvZ�(��� _V_JD���r$���0bIOݼOg�")B$�۹������l����� +endstream +endobj +7447 0 obj +<< +/Type /Page +/Contents 7448 0 R +/Resources 7446 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7440 0 R +/Annots [ 7432 0 R 7433 0 R ] +>> +endobj +7432 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 715.207 171.594 722.691] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7433 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7449 0 obj +<< +/D [7447 0 R /XYZ 69.866 801.979 null] +>> +endobj +1766 0 obj +<< +/D [7447 0 R /XYZ 70.866 771.024 null] +>> +endobj +7450 0 obj +<< +/D [7447 0 R /XYZ 70.866 598.314 null] +>> +endobj +7404 0 obj +<< +/D [7447 0 R /XYZ 70.866 426.641 null] +>> +endobj +1770 0 obj +<< +/D [7447 0 R /XYZ 70.866 396.98 null] +>> +endobj +4234 0 obj +<< +/D [7447 0 R /XYZ 70.866 163.663 null] +>> +endobj +1774 0 obj +<< +/D [7447 0 R /XYZ 70.866 144.785 null] +>> +endobj +7446 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F11 3889 0 R /F10 3833 0 R /F8 5024 0 R /F1 4058 0 R /F7 5023 0 R /F51 3827 0 R /F61 3918 0 R /F14 3888 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7454 0 obj +<< +/Length 1975 +/Filter /FlateDecode +>> +stream +x��ZYo�F~ׯࣄV����"�ީЇ:��H�LD�#R������r����d�n��OZ���o��cg�G��h��p4�p���è��S�FFJ�f��HK)C�$�h]� F�T���:O���8Oq�d9�r^��ĭ^'���d��&�_�ӧX.G�z�G��=[�T[i�4��dٻ������0bFG�e�C�3X/�?z����J��/ �ހ���"� +��G/�iN$RZECJڽ��R�z'�j��T���|f���K�^R;d H����f��`��FX��L���`�Q-�� G��h�����E��G5�=2��x1_oC"�i~�,ŷY���e~U�O�\������_�*`�n#wX�HP��]!�)�&��7�k`y���4^��q��rs��{�%x�Ok�e��P�����{�{��n�2���� c5"�Ƹ�,�c�re$<K��&�.��Z'��l4"^ѩ��*�5�ү�qἪ��=�,I�8����i�c���8v�nUc�H�]�I~��f�w�~�vi� ��Z"�Jn�P�߂���k���ɹS�W�..����l���\�z�Տ��h��#I�4�.�}~g��.]��l;|�l� +M�NTw\ +"�A_��/��V��z�]B�kol�t`HrD�i����I��:�o]�Gua2�S�4��:�l���!�N��.��6W [4���H چ��f��;�����vec'Y��>,#�i�ؙ@H�kA�I�5s'�l�s�WG C�/���kտy�I��w5��` ����Ӏf��r$�썓P�`����ù!n�0"�;rĥ�2I�nh!�}�O��M�� s2�X1��rB4� ����P�Li���I������x�ۀ*�B����,�V\凧�����N$wἥf���# +!1J[��x��"%U�GVa��ܗ��˄A�ӚX�Y>�7�k�ǻ����� C�j$Tu�%o�C:����],f��L3�r�+�UZ���m����1�3��9n�%��(����ÿZ�t�*uX��*ZU2y0�DX��4�@��S@�YҨ; +eS��������E�P\m� +H蚞dr'kh���{���/$���Λ��iU-��"��yS��~��Q��ɮr�V9��kn?ح�s/�'�A�W��S�h-�����vY �X$�}R8|H�<K+�H蘋��|Ȇ���X����@�CA8��8��,p~.~.!�=sJnk��k����I�v'�,�����U���_h��J�nO�+~��;k�[;pe~�j���e��=��8�5��F7?���, +(�����v�$�<^}O1�IVз���x9u3�w�k��$�ø����z�L�*�i�F8��D}@�P3ȡ��J��>-`����d�6�[����I�ތ'�$�tW�І\��-��k���4�r��T��q���_�}��.�o�q�~��~� +���Q��mz�~���mk۞~ۚxf�-�&Yft{�]��w�5\Ix뢟��դ��o%#:UOzpK_E�'?��U����ތ0�GL�፩���=S���1U�G���5�3&��䃊c)��|��s�dg�Q� �G)x W�b�PkA�����|�eP�x+����2x��b�Ѩ��I�ڸ �]T �Gsd�t5�>Ȓ�-lq��n$dW��t��Z�#!b�ͩ���YP1���2(�u�3VQ@Q�(�)��� � +�0�_�����V�j���80~h +ď��SHr������<D�$��͡|%ʼn�tC�Š���8���b0g�p���}.M��?HvJ���!D������C����y�]w���A�1���B�FA��!� �W �O�� ��Ç~�?�����}�6E�w��*�Ĺ�J���/#��ϧ�����u�<�K +endstream +endobj +7453 0 obj +<< +/Type /Page +/Contents 7454 0 R +/Resources 7452 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7440 0 R +/Annots [ 7441 0 R 7442 0 R 7443 0 R 7444 0 R 7445 0 R 7451 0 R ] +>> +endobj +7441 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 737.02 185.247 747.288] +/A << /S /GoTo /D (optimization__test_8h_a1062ae4598fabcf957ec0b855737db20) >> +>> +endobj +7442 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 709.975 255.758 720.243] +/A << /S /GoTo /D (optimization__test_8h_a5f1f1ed377535a6d4c5758c38174fcb9) >> +>> +endobj +7443 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 682.931 249.948 693.199] +/A << /S /GoTo /D (optimization__test_8h_a5f89a9747d6a7bec1ad0a80ba31647b9) >> +>> +endobj +7444 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.644 582.776 293.462 591.547] +/A << /S /GoTo /D (modified__gauss__newton_8h) >> +>> +endobj +7445 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [311.41 582.96 331.837 591.341] +/A << /S /GoTo /D (levenberg__marquardt_8h) >> +>> +endobj +7451 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 538.383 297.675 564.923] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7455 0 obj +<< +/D [7453 0 R /XYZ 69.866 801.979 null] +>> +endobj +7456 0 obj +<< +/D [7453 0 R /XYZ 70.866 775.009 null] +>> +endobj +7457 0 obj +<< +/D [7453 0 R /XYZ 95.773 751.858 null] +>> +endobj +1778 0 obj +<< +/D [7453 0 R /XYZ 70.866 654.66 null] +>> +endobj +1782 0 obj +<< +/D [7453 0 R /XYZ 70.866 524.539 null] +>> +endobj +7458 0 obj +<< +/D [7453 0 R /XYZ 70.866 485.307 null] +>> +endobj +1786 0 obj +<< +/D [7453 0 R /XYZ 70.866 458.512 null] +>> +endobj +7459 0 obj +<< +/D [7453 0 R /XYZ 70.866 279.463 null] +>> +endobj +1790 0 obj +<< +/D [7453 0 R /XYZ 70.866 252.668 null] +>> +endobj +4235 0 obj +<< +/D [7453 0 R /XYZ 70.866 68.871 null] +>> +endobj +7452 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F11 3889 0 R /F8 5024 0 R /F7 5023 0 R /F10 3833 0 R /F6 7412 0 R /F14 3888 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7469 0 obj +<< +/Length 777 +/Filter /FlateDecode +>> +stream +x��VKO�0��WX��2�Nl'RU��C�C)�S��xw#�l����`7!��P�����v����NOYT%Bɡ�qf�x�J�ٜ( +��D�$#���ٜJ�bvD<<�|���i�����+�u��:�Ӳ0Pkf}�")a&���8��.(I�술�0 ?dN|��=�g���M�!dLl�hO�Q�츌Rjߔ�e�-�7.�,.k]���7�O��a��+]��P�=��V8(q=R����(��t�^.���zh��� +9;�����q���m��/�]Uk�!Z�B��sٹ���������u�el��S�.7o'l)P~��:IKXN�M +ܻ C`ӆ+�O��\�����|˝F6�I`ի��ϰ�̢Z���uWZ]PP"�#&$��躈 �jT��i�c&A�A��9�;�� <���pa�iҝy���O���H|�[��-�9���{6�l��Tz�c��J����4����ku#�aL]/�����V�A_m{�������*^�7}7�()B�^�������9���=I +Ӛ?i��zHd���K��D��&�ta��M^&�L��P1��ٚ��F�Q�}������p�^�K�;-�A�Pt�����D�-��:�QK�8�����k�Q#��MϺ�6wߧ��k�J����D�*w� +���x�)(P�7��O>���x�ն�ﵭ�˶�_��k[{Ѷ֯Sc�P85�������~3� ��q� ɖ֡.� �k���Ծ���F*wS�� )���&A +endstream +endobj +7468 0 obj +<< +/Type /Page +/Contents 7469 0 R +/Resources 7467 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7440 0 R +/Annots [ 7460 0 R 7461 0 R 7462 0 R 7463 0 R 7464 0 R 7465 0 R ] +>> +endobj +7460 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 574.335 217.643 584.711] +/A << /S /GoTo /D (pos__algos__common__test_8c_ad7c3809ba4d66f929854a4127784be8c) >> +>> +endobj +7461 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [318.879 453.47 444.578 463.845] +/A << /S /GoTo /D (group__pos__algos__common) >> +>> +endobj +7462 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 402.603 297.675 429.143] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7463 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 241.447 217.643 251.823] +/A << /S /GoTo /D (pos__algos__common__test_8h_ad7c3809ba4d66f929854a4127784be8c) >> +>> +endobj +7464 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [318.879 120.582 444.578 130.958] +/A << /S /GoTo /D (group__pos__algos__common) >> +>> +endobj +7465 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7470 0 obj +<< +/D [7468 0 R /XYZ 69.866 801.979 null] +>> +endobj +1794 0 obj +<< +/D [7468 0 R /XYZ 70.866 771.024 null] +>> +endobj +7471 0 obj +<< +/D [7468 0 R /XYZ 70.866 617.945 null] +>> +endobj +7472 0 obj +<< +/D [7468 0 R /XYZ 95.773 589.282 null] +>> +endobj +1798 0 obj +<< +/D [7468 0 R /XYZ 70.866 543.905 null] +>> +endobj +4236 0 obj +<< +/D [7468 0 R /XYZ 70.866 392.992 null] +>> +endobj +1802 0 obj +<< +/D [7468 0 R /XYZ 70.866 386.176 null] +>> +endobj +7473 0 obj +<< +/D [7468 0 R /XYZ 70.866 285.057 null] +>> +endobj +7474 0 obj +<< +/D [7468 0 R /XYZ 95.773 256.394 null] +>> +endobj +1806 0 obj +<< +/D [7468 0 R /XYZ 70.866 211.017 null] +>> +endobj +4237 0 obj +<< +/D [7468 0 R /XYZ 70.866 60.104 null] +>> +endobj +7467 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7491 0 obj +<< +/Length 924 +/Filter /FlateDecode +>> +stream +x��WMo�6�� ҋ� ��HJ�"-HZ�u=�\���Z}8u~}��d�mڢ�O��������hu�E�zA�t��n�8:B�X����($8��1Ò�U��=J��>#���Y��rm����>���u����8�u?;��%%��t��WB��c$\�[�Y�^-�/(` �~Z3�p�8J���;�R�����Y����<G�,~���pL�8܈��LvB !c+����I#�(Q�/��U\���֍��oT�3�^��g�]ij��Cn��|�`N�G"� � ���#�*+��MfJ,!�!d��_�� +q����n����L Nq�Ig��L Hx��#�1|����<�E��@F��K��8�u��u���n]��}���|a#ڤ?�Sm]�K��1��K�z�Yݬ7���z�=n����Ov�]%f��G:^�1�����P�y���L,��+��n'uD%��F�`L�|йܻ^2�,u߬�T;'(g��T����4�u� ��aNG6��AQ"Е8���, S��Kh�`��W<�v?�1:!�8�=L��ҍiK�P�t�T�U{V��P �}e�jُ�[E�UF0���p�q��N�����b�I�BؐГ�9^���~��s~ws[�fo�ڒ�ى��S;X� +:9H�#��d~�d�k!P���X���@y�(���T.���oU]d.Z��/�0{��Ȯ,��������->�l��8��I��"�(���s�L��A���J�p֟t��ߤ:/L[h��SSU�E�c�ێF96�p�����u�SL�0�E�)��L>gP��X��?)���Oʝ��ɓ����>��/��sox� Ͻ�� �8w1��k�p����܆��R�z=ѥ�T3Ps�dĻquo�B��YU�t9B +�]4@� +endstream +endobj +7490 0 obj +<< +/Type /Page +/Contents 7491 0 R +/Resources 7489 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7440 0 R +/Annots [ 7466 0 R 7475 0 R 7476 0 R 7477 0 R 7478 0 R 7479 0 R 7480 0 R 7481 0 R 7482 0 R 7483 0 R ] +>> +endobj +7466 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 551.75 221.13 562.019] +/A << /S /GoTo /D (position__optimization__test_8c_adf2ebfc668717eeac312234ac2b24166) >> +>> +endobj +7475 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.492 452.744 391.31 461.515] +/A << /S /GoTo /D (loc__gauss__newton_8h) >> +>> +endobj +7476 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [409.258 452.928 429.686 461.309] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h) >> +>> +endobj +7477 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 408.915 297.675 435.454] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7478 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 376.588 346.876 386.503] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +7479 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 243.498 221.13 253.767] +/A << /S /GoTo /D (position__optimization__test_8h_adf2ebfc668717eeac312234ac2b24166) >> +>> +endobj +7480 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.492 144.492 391.31 153.263] +/A << /S /GoTo /D (loc__gauss__newton_8h) >> +>> +endobj +7481 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [409.258 144.676 429.686 153.057] +/A << /S /GoTo /D (loc__levenberg__marquardt_8h) >> +>> +endobj +7482 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 100.662 297.675 127.202] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7483 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 68.336 346.876 78.251] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +7492 0 obj +<< +/D [7490 0 R /XYZ 69.866 801.979 null] +>> +endobj +1810 0 obj +<< +/D [7490 0 R /XYZ 70.866 771.024 null] +>> +endobj +7493 0 obj +<< +/D [7490 0 R /XYZ 70.866 589.383 null] +>> +endobj +7494 0 obj +<< +/D [7490 0 R /XYZ 95.773 566.589 null] +>> +endobj +1814 0 obj +<< +/D [7490 0 R /XYZ 70.866 523.56 null] +>> +endobj +4238 0 obj +<< +/D [7490 0 R /XYZ 70.866 369.956 null] +>> +endobj +1818 0 obj +<< +/D [7490 0 R /XYZ 70.866 361.611 null] +>> +endobj +7495 0 obj +<< +/D [7490 0 R /XYZ 70.866 281.131 null] +>> +endobj +7496 0 obj +<< +/D [7490 0 R /XYZ 95.773 258.337 null] +>> +endobj +1822 0 obj +<< +/D [7490 0 R /XYZ 70.866 215.308 null] +>> +endobj +4239 0 obj +<< +/D [7490 0 R /XYZ 70.866 61.703 null] +>> +endobj +7489 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7501 0 obj +<< +/Length 1285 +/Filter /FlateDecode +>> +stream +x��X�r�6��+�$gBO��5�c�I3�C�E팇!�c�tHʉ����AI�$����@�{q�p�����f�{3{���ǣ�&�%Qļ�ԓ�Q�Ʉ��x�̻�)��/��>�#h�O� +B*c���, +U�i�W�~u�n<�:"�&��2�QL�7)FW_��A����f�,<.���w9:�H�P�"���]��H!���Zd�M^������/�ѝM{5�5 �U�ʉ�8:��ZQ�2�"�8�T�âuc�;��F!"�x�����US�L��H��~��pzrI�D.�f�+uvP��T�1%�j3H�DH��)�b��\S*zc��P��W��i��#�¼��}�������B�ο�+�OUU���@@q˺j����|��բQw�<�y�[ +���E�l��߽�U�A}1h0����"�0/$%����WM��jet�K�ʉ��+'��>'{+�%I�,A8��ʬD܊9Vm ++"skZ5�:�V��AP,�� t��`�?�';!9T�ap�� ����n�hW��v/���َ�ÿ���<���ρ����8V�jrS��5���1<�۲�X�[�Wu7+BPҕmM�[%?P_t� +�S?��pB��P�/ڻ�ޡ���[�eJ�.�?���e�X��6E����~�u�>�t���"5�eŰ�����{=������"�U�</Q�;�@�p`0�i��k�:�vF��8������pxP6 ���_����g�(Q"1Y_.5U>��FC�]T������/*�2D��x����ض��cē�\��$�|i^A���,~��f��Ɓ�h� ��dl+����U��Q��5R B �m38��4�hm��X�8�?��&G���a4�xĸ�C�F���HE����C[���W�dxW�=��;�MV�B��A��e���AE���D�� ��9�8�w�� +�;Zw�ޓ�}�d�E(aqz���T[I�*�P�v�q�緳�a;:7���$j�y�fR���\��W����1�w����<���!����H��p�ܱ�Ƙ���hik�`ݙ�p�>�G�{��fhx���[�#��)���|�XZ������ ���*��G>�֒�U���a���������l_^<��ҷ��i���K�7��ӭ�a�~5AA( ����s}�3e�j��F{z@y�c7��q��m�@@�������n0&]S�ph$!�m2�,��/R_���8�}�"#�+�G�8@�#�T�ژv�Zc�����.�����X��џ�e +endstream +endobj +7500 0 obj +<< +/Type /Page +/Contents 7501 0 R +/Resources 7499 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7440 0 R +/Annots [ 7484 0 R 7485 0 R 7486 0 R 7487 0 R 7488 0 R 7497 0 R 7498 0 R ] +>> +endobj +7484 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.604 657.401 174.901 666.172] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3) >> +>> +endobj +7485 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [180.888 656.509 246.218 665.966] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06) >> +>> +endobj +7486 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [249.21 657.482 302.032 665.966] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04) >> +>> +endobj +7487 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.025 657.401 334.696 666.172] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991) >> +>> +endobj +7488 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.689 657.401 365.594 666.172] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220) >> +>> +endobj +7497 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 481.591 297.675 508.131] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7498 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [93.78 335.799 138.811 342.661] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3) >> +>> +endobj +7502 0 obj +<< +/D [7500 0 R /XYZ 69.866 801.979 null] +>> +endobj +1826 0 obj +<< +/D [7500 0 R /XYZ 70.866 771.024 null] +>> +endobj +7503 0 obj +<< +/D [7500 0 R /XYZ 70.866 697.349 null] +>> +endobj +1830 0 obj +<< +/D [7500 0 R /XYZ 70.866 626.601 null] +>> +endobj +1834 0 obj +<< +/D [7500 0 R /XYZ 70.866 467.347 null] +>> +endobj +7504 0 obj +<< +/D [7500 0 R /XYZ 70.866 420.789 null] +>> +endobj +1838 0 obj +<< +/D [7500 0 R /XYZ 70.866 393.594 null] +>> +endobj +7505 0 obj +<< +/D [7500 0 R /XYZ 70.866 298.148 null] +>> +endobj +7506 0 obj +<< +/D [7500 0 R /XYZ 77.242 283.023 null] +>> +endobj +7507 0 obj +<< +/D [7500 0 R /XYZ 89.75 268.572 null] +>> +endobj +7508 0 obj +<< +/D [7500 0 R /XYZ 112.901 253.914 null] +>> +endobj +7509 0 obj +<< +/D [7500 0 R /XYZ 114.667 239.257 null] +>> +endobj +4240 0 obj +<< +/D [7500 0 R /XYZ 70.866 172.57 null] +>> +endobj +1842 0 obj +<< +/D [7500 0 R /XYZ 70.866 154.342 null] +>> +endobj +7499 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7525 0 obj +<< +/Length 1636 +/Filter /FlateDecode +>> +stream +xڵ��o�8����@����o@:�T4{��%ъe�e�t�4�����l�%�W*EZb�����9��~%ֲ�`kia�������9�,R2����0�"I�˅ue��t\�����,��4�P�ΓU����C���,�&F��m��������� ��"��|ʭ(�\�`k�>[���~�=S��g���\t�� +�l*�fK�pc�/I��E�,8;'���z�뎿�]���A�!����!.�ݐ��y�l��6 �%� F<��76�(I>h'ȯ�7bf��g�:ɖöy~�ö�1��d�8Wbl�KCP���i�3�ꉠ��-Wp�����WYT&yV�P64��Ӡ��D��Y.�`�wM����\!���Pa��¼Sp����iݫ�hf�0r(��8D��z1+*����Wî�����J������Ә�W��㸠.y� ��v�}a�\e7�ʚ_�'�x�� +���I��K�`����O��RD��8 +8���;}X�i���vRyg�T?���� IY)4tK�Z����.Ec��(0z:0���Y��l/�(^�.�[��G �)��4�R�ǣ. ";�����c��=U��Qd�A®�b� +�$ +<��Y�BZ��u�96�p��Dֶ���ݨr*��iqv���}�m�MA���9�M�����*���ϭð�X�Rݔ��\L�E�=�E2����e_���U- 1��qB�`���:y�ul��5������z @%�����1�Y��74q;��]�,���v3mգ��j�O9�����:W��1Y�z@GqQ�j8����4.��Ea$�1�&�UT�w5Oj6mvjs�:�uz��.���Wva@T�G�����0�����?�� +�\��S�ې��� �������j���E�i�|����/�L +俔�ݫ��'�-���y�^%�%EˤOP2:5@5[�*��M�7�v<�A����9�3��W�̰'��ڬ�z�dLڰ�����z]�td*yF�~�$�x@��=�e�Iٵ����1��צ�rM��$��?�*1^�X/���q�0�T�u��y�5G_��Й���*�����gBVwlmU hݝ�@�,��h�?��ّk(C��E�U�pBV��!v��:�c�=*|���q�mE�������7z���Z��a�g�R���pE���9�`�Yp�J�v?��ˮ�t@'�B�<Vg� g=���[�s�P'�*���Je�*�ж�Lb�v���d�AC�Tu#t�$�����&t�QP��A�Q��j��F�:J�0[m�Q����m�:��m*@��O"�$�,�I��@5�-a$�h�r���җ;�;��q6�ֶ�!�ڨ�K��ѥ�9�c�l�6%B�$x��v�Cyಷ �x�{�v��a��J�{v��a�ں� �����M��.�6s���>���d�����1� vFՁ��;���9LX[���wSv��a����)�ZU��&���`�ǃ'�����9s7����v����5�>�n��g̍�*Ɍ���u��|k})C�� 8�&l�sk>����!�y���!�Ϛ�}�fS��Ĺ@R����8��a�\���q�mQ&?=/���g}�%�� +endstream +endobj +7524 0 obj +<< +/Type /Page +/Contents 7525 0 R +/Resources 7523 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7530 0 R +/Annots [ 7510 0 R 7511 0 R 7512 0 R 7513 0 R 7514 0 R 7515 0 R 7516 0 R 7517 0 R 7518 0 R 7519 0 R 7520 0 R 7521 0 R 7522 0 R ] +>> +endobj +7510 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 643.483 232.267 653.751] +/A << /S /GoTo /D (qr__common_8c_adad26253c0e08a0d9fe2dfe0f6d64112) >> +>> +endobj +7511 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.995 644.294 351.005 653.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7512 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.58 644.294 413.591 653.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7513 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [436.515 644.294 470.526 653.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7514 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.19 615.48 235.778 626.062] +/A << /S /GoTo /D (qr__common_8c_a47e88b1e236d3637717ea144811cdc1b) >> +>> +endobj +7515 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [319.131 616.399 353.142 625.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7516 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [389.973 616.399 423.984 625.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7517 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [457.829 616.399 491.84 625.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7518 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.147 604.444 168.158 613.901] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7519 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 454.346 297.675 480.886] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7520 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 271.764 171.594 279.901] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7521 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 259.809 171.594 267.946] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7522 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 247.854 171.594 255.991] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7526 0 obj +<< +/D [7524 0 R /XYZ 69.866 801.979 null] +>> +endobj +7527 0 obj +<< +/D [7524 0 R /XYZ 70.866 685.135 null] +>> +endobj +1846 0 obj +<< +/D [7524 0 R /XYZ 70.866 574.536 null] +>> +endobj +1850 0 obj +<< +/D [7524 0 R /XYZ 70.866 440.102 null] +>> +endobj +7528 0 obj +<< +/D [7524 0 R /XYZ 70.866 393.544 null] +>> +endobj +1854 0 obj +<< +/D [7524 0 R /XYZ 70.866 366.349 null] +>> +endobj +7529 0 obj +<< +/D [7524 0 R /XYZ 70.866 211.127 null] +>> +endobj +7523 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F11 3889 0 R /F29 2678 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7548 0 obj +<< +/Length 1708 +/Filter /FlateDecode +>> +stream +xڽ�mo�F���S��,{��.�RU�����Ԫ7}��,��T9�DU�{gY�����Q�D�a��0�ہ�ys5�L��l��;;�_�&o��H ����N��� E�8W+�ڥOo�>9�1_������:�z4���tY�a�/�(M��ɻ�ɷ ���!���HR�YƓ����'�t��#c��q��������&U7A��s~�2솛0Y�+���b��|����r7��E�K�}��?y�r�Yx��W�7f������|.����tz�Ŏ'|$e�-�HD�zc�~��A!N���>��|� +�����5��;R&�,#H±R�1��=��h��Z��U��p�#�Z���\�scMі5&�A�@���W�������"hv19�H��7ѓ�Ұ�3�3����]^�7�w����3�δ�d�Q1��F����9�g`�,���1��[�;��#��T� +�D��_a�y�����K���Q��t?��C����3�,�4���e���N_G���12w���e�HwqS�cƹ�S껋�"�p3%��:��G�"�9�)�(P�I�/��S)w8�0�dHF�QI��fUA4��ѐQ +JqH�eD"˃�`�}��&E{��Xt���@�Td����9�ks�N�d +���o����z2�=�]g��t���h�D0,q��4*���X���Fʎ�k�I;^m���^�l��j�\��"N^���}�%$����:K���+)y�V|D��a�|�P��a�F����1zy S'�{S�m�V�:><���V㕧�������!Z"��Qv�FE��wwئZ0��(�1���l�I;em��(烝��'R6��dw ��ϣ�,��2�b�^"�i�H��0gӎY۪�~��8?쨵�F��{8-����.3�ý���Yw���W/��8' �p7Φ���U��<��q~عk�qw���d�w� ����;YboE�g}ᛨ� �`L���<7��(�b�U��W_Q&�Z�1,���JZ*��N����c7�=�y��G`kFtz)��>0HŶ���{�ޘ�VO��v�R��>��dM�#��`���V|2}�7�I}.��aS���6=��O��@�����g��}�V�� !J�� +����8���UV)���VQ,��9w��3�.d5�ԙ�3#E%w�)m�Lo6���XU1$�5�3�O�e�-ZA��p�&���a�eт�㠩��d����`��)�5���W����_mI°�V��q\J����vzᦚ�n���~���Nd����\�\{�)�t�a�)�������)q�>���C��ԻaQ�� :�|���-���`M\_[�b�w=�&=)����l���x��遅 +�9�0;\�Ҝ˺��a�dYT��ۭfݤ���%�e�:g-���>Svf���D���"Y���li�&� ����b�c��w�+��<+n�,�q��g� +0�\5U:�6*�v�����y��v�u;�8V�i��kЩ�ۇ`��������Y��Tͩ�6ˣ�8PӶ��5Pą8E�w��Ⴑ]J�@I��n�� %0xxV@�@��X��ce��j��a�@*`��y�L��vH|\�QqI�1����S�h�_vy��c�nux�\��Cg��F� �꺓���__a渾9>����E��g��;�6�7��\u�����V^� +endstream +endobj +7547 0 obj +<< +/Type /Page +/Contents 7548 0 R +/Resources 7546 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7530 0 R +/Annots [ 7532 0 R 7533 0 R 7534 0 R 7535 0 R 7536 0 R 7537 0 R 7538 0 R 7539 0 R 7540 0 R 7541 0 R 7542 0 R 7543 0 R 7544 0 R 7545 0 R ] +>> +endobj +7532 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 626.415 171.594 634.553] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7533 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 614.46 171.594 622.598] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7534 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 602.505 171.594 610.643] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7535 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 590.55 171.594 598.687] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7536 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [122.096 196.855 195.828 206.518] +/A << /S /GoTo /D (qr__common_8h_ac62c54358ecc0c35cdef1c3fb37cc73b) >> +>> +endobj +7537 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 121.619 232.267 131.888] +/A << /S /GoTo /D (qr__common_8h_adad26253c0e08a0d9fe2dfe0f6d64112) >> +>> +endobj +7538 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.995 122.431 351.005 131.888] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7539 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.58 122.431 413.591 131.888] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7540 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [436.515 122.431 470.526 131.888] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7541 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.609 94.388 236.197 104.97] +/A << /S /GoTo /D (qr__common_8h_a3144f99da14a69ec80bf9ded23714612) >> +>> +endobj +7542 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [321.582 95.307 355.593 104.764] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7543 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [393.231 95.307 427.242 104.764] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7544 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [461.894 95.307 495.904 104.764] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7545 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.162 83.352 163.172 92.809] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7549 0 obj +<< +/D [7547 0 R /XYZ 69.866 801.979 null] +>> +endobj +7531 0 obj +<< +/D [7547 0 R /XYZ 70.866 748.196 null] +>> +endobj +1858 0 obj +<< +/D [7547 0 R /XYZ 70.866 721 null] +>> +endobj +7550 0 obj +<< +/D [7547 0 R /XYZ 70.866 553.824 null] +>> +endobj +4241 0 obj +<< +/D [7547 0 R /XYZ 70.866 390.078 null] +>> +endobj +1862 0 obj +<< +/D [7547 0 R /XYZ 70.866 374.029 null] +>> +endobj +7551 0 obj +<< +/D [7547 0 R /XYZ 70.866 234.373 null] +>> +endobj +7552 0 obj +<< +/D [7547 0 R /XYZ 95.773 210.882 null] +>> +endobj +7553 0 obj +<< +/D [7547 0 R /XYZ 70.866 159.949 null] +>> +endobj +7546 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7566 0 obj +<< +/Length 1413 +/Filter /FlateDecode +>> +stream +x��YMs�6��W�Ḧ́� ��Ƶ��%V�K���h�c�t��8��]�DJeSnN������}X@��W���Y�3��\�����=g��P %s��#%��I�\��k�`$��G}�~)�Q��y��M�y��Mk�� v�"�"�b������o������}����R(��N�ήo���w��X��o����!��7�߳���2_�k�$�Gd���{W!X�2��eT$�U�g�·�4�x;#H n��5k�E1����,�3K���0[�wI����8���ۻ9�n^��}lz/�*_>�e����},�9��d� Y�e����n�qu��J����+��2�.=�6�BP �YMcn2�<��NL��t�e��Q���Q���q�d�a���画5XY�!�s�۔"�G�\����>�e�X4���m}��'�DڨA +�@G�x�sK�;tW{�q�I2�'�ɨr<N�+(ju^gQ�#�<���7��m,�A ��U�vg-o�hN��� ��ղ�o��3��A���(�1��"������x˼Ո�<`�p_X�X�:�*��[@;lL���ֵ��<;fb���E�Xۜ���=�D+9y2,����8C�-ݧk��7���s�-BoS����:��8y�O�2���@Ț�� �Zo�z��H�x�C�6c�js��M�Ӎ��uB��F�IU�6N�Y�v�W���9Gr e�0�)?�\!dŸ��=�=� ;z�P���������FCh�����Ku�!JI ��G����%؇|L����x/�쓦� *�TΞ�\8���i�oFG��~�)�w�9����{B��2��c��!�8U�@��`Xy�p�)��R�xd�yM��W�4��4�ayu9�|S����Ŷ* 쀓�u�U����rl)�鎨K*䷗�QuM�VW���(���Q�4��ֵ�1�R+/}����Lǧ9���^l�J$Cj��N°J���x � �8i��J��>CaӸ���W��9nU�p{L`/6�P�����I; � +����;�� � �`��w^W# +��9��.���W�4�a�u��U�u��������:��'��c:�b�@���N�ɺ�2�M�Y�Q������v���e! +� ��x�-���β�͒�Vm�M�ʆ���:1��lKo����u��U\�ٖ�v�7���ڡh��"�>�]�A�e�{ܸZ,/� +�8�?���{X�W\vU����旗>��WWx +���)�`�����Gk= R���[]�{I���|ؖ�a��?�����B�H�1�Mj���g��/y'�r���a������dv��=}��"۷�_`߿ +endstream +endobj +7565 0 obj +<< +/Type /Page +/Contents 7566 0 R +/Resources 7564 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7530 0 R +/Annots [ 7556 0 R 7557 0 R 7558 0 R 7559 0 R 7560 0 R 7561 0 R 7562 0 R 7563 0 R ] +>> +endobj +7556 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 665.889 297.675 692.428] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7557 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 483.306 171.594 491.444] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7558 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 471.351 171.594 479.489] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7559 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 459.396 171.594 467.533] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7560 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 136.925 171.594 145.062] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7561 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 124.969 171.594 133.107] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7562 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 113.014 171.594 121.152] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7563 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 101.059 171.594 109.196] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7567 0 obj +<< +/D [7565 0 R /XYZ 69.866 801.979 null] +>> +endobj +1866 0 obj +<< +/D [7565 0 R /XYZ 70.866 771.024 null] +>> +endobj +1870 0 obj +<< +/D [7565 0 R /XYZ 70.866 651.645 null] +>> +endobj +7554 0 obj +<< +/D [7565 0 R /XYZ 70.866 605.087 null] +>> +endobj +1874 0 obj +<< +/D [7565 0 R /XYZ 70.866 577.891 null] +>> +endobj +7568 0 obj +<< +/D [7565 0 R /XYZ 70.866 422.67 null] +>> +endobj +7555 0 obj +<< +/D [7565 0 R /XYZ 70.866 249.296 null] +>> +endobj +1878 0 obj +<< +/D [7565 0 R /XYZ 70.866 222.588 null] +>> +endobj +7564 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7581 0 obj +<< +/Length 1671 +/Filter /FlateDecode +>> +stream +x��Y[��6~��`�<݁���m��L�u����Y����@6���l_��>x����OG����������v�vގ~��~�|'@��̹}t|�)?�H�v�ܹ�����;��;�%t��o�e2����E\gI^EUZ����ї���!k� @�N����3�w�@�Y��.�����st����Q�� =�%A��?�)w�U�%U�▚Y���3(R*��5�c��p|��`@k�0�¸D8!��J咀!J�!�W{$��}�hx�Iٞ��]�Y�M� $���-���˂��U1&�}6����u��"���GSV��,��tH��]�4��Kz�]i0��a���:�ʋJ�t���y�f�_^m����N��/��X�Y~Yu�uW�!`����0��E$�7��u�B���L���m���.�}S��4�jksx*Ҽj�U/��T���h�� +!���*;èL��v��-���}*� @ܫ�M���mtr��N�Я�6�#U6P��w� $�g��<�2%��] �IH~1��.�j@f���Y��*�M�h'��Z�ǰԀe'����w58<SwgaX�I�!/ݤϐ��!�;�f���V�� q����]��9��wG��@��<� �� +�@֤��G�i�ꣽ�ET�r���w"�&��Gs7�e5��,+rk�y�r�}j7��q̰���<N��O�"x�ح��I���?�����5!Q��Q�s��4:�H��1VL���$/Ql�l.0 Ґ0���*� +듷��1.@�=�<���p��T]��Q�Z֨L��L�Y�x*ʴ��ƞ���`�_�Yb�� ��T�W�6uYR-�Yi���Ue\��WW֎g��3�0�̋�k��ի�L�y35*5�g��c���)QE[�ʼ��7�Wꁹ��3EjA�ܔj3�j�[a�S����dRR��I¦M���u֬���a� ++�E��GS- Qs�[s���I�3�p�{8S��ΤC���OO��x���bѝ�f\Q>��Ѫ�\���Vُi/��6!���ATZ?�`���kg��,-Т����v����:d����5pɢ��]׆�A�� ��䥙=.���W��I�l?(1�?�-㭶�0h���a����$��yS�Y���ӝ��p��H�#�7�>Ν'��#VL+�Fm`����&� C�m���`0jA�PWd*�`�������T��vS���Zg/�}��/�7-��*�\c��{�q��v���(��F�6�f�t���d�' Ra_I�����wpt]5��:9���r�w����/Sqe��1��]o9�~��F��=v�U4�@�R��{&��6T���̥%�y��k���|DY� l�_�z��ۧO��9�Hφ��崚��f�q#�Ce��%+֑՞_�V}��IFO��X� ;��I��<Dl�w�T�v6��N�x�>5ߦzR;�-K�@'f������R�C2;��0��^� +�� ��X�|��~����k���,WKV1� +�+�5���Q���>?;����� )�&A�����k�?���{HVpvD&�jQ�Z�A��]�Ԯ�&7y�+�з^u�@���|*������Mp$�6�#ɓUT5����]*n|�>W�a�mS�MR� +endstream +endobj +7580 0 obj +<< +/Type /Page +/Contents 7581 0 R +/Resources 7579 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7530 0 R +/Annots [ 7569 0 R 7570 0 R 7571 0 R 7572 0 R 7573 0 R 7574 0 R 7575 0 R 7576 0 R ] +>> +endobj +7569 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.396 342.466 196.911 352.842] +/A << /S /GoTo /D (qr__givens_8c_a07adca97c58afc057a5cff738f6473cc) >> +>> +endobj +7570 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [282.714 343.385 316.725 352.842] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7571 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [423.844 343.385 457.855 352.842] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7572 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 302.696 206.363 313.072] +/A << /S /GoTo /D (qr__givens_8c_a53f748fbc6f8a129deb6a048d423d644) >> +>> +endobj +7573 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [209.849 303.615 243.86 313.072] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7574 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [257.809 303.615 291.82 313.072] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7575 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.769 303.615 339.779 313.072] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7576 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 142.888 297.675 169.428] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7582 0 obj +<< +/D [7580 0 R /XYZ 69.866 801.979 null] +>> +endobj +7583 0 obj +<< +/D [7580 0 R /XYZ 70.866 771.024 null] +>> +endobj +4242 0 obj +<< +/D [7580 0 R /XYZ 70.866 599.949 null] +>> +endobj +1882 0 obj +<< +/D [7580 0 R /XYZ 70.866 583.574 null] +>> +endobj +7584 0 obj +<< +/D [7580 0 R /XYZ 70.866 383.877 null] +>> +endobj +1886 0 obj +<< +/D [7580 0 R /XYZ 70.866 273.883 null] +>> +endobj +1890 0 obj +<< +/D [7580 0 R /XYZ 70.866 128.682 null] +>> +endobj +7585 0 obj +<< +/D [7580 0 R /XYZ 70.866 82.821 null] +>> +endobj +7579 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7592 0 obj +<< +/Length 1702 +/Filter /FlateDecode +>> +stream +xڽYKs�8��Wp�UA� 8�avg'Usؚd}ˤ\�)If���pxl���,��uK��E�zu���|������ş����.�`���p0r�0�"A��Ƹ7 F�]Z�q͟�z=�I���%ڇ��.|Zl�Y���a�հ����QC �͋�W���� G:�E.�� ^�?`cϾ1�5^���as����~o���=�An��("K�`��Yo� ��1��#���/��L$6,F��m�%��.��@Q���0�v�a�<.��~���h�F�r���j�K�Q��<ĤB\�q϶z�n���~�E���8�:�!̼���=����à/��,_~��t�N����t{��h� ��L���c�!��Y�)�p3����M��k(�"�&ljXԆ�����,�0W˴���z{��J�iQ������W�x���U5|R��%��/u_�Q���w=/)7a����~�j�b�j����7aQ���//L�I�f2m&���cK�c%��c5SVS3/��j(v~����?4�[b�-�<q9����f3`#�=��Rp+5Ԕ.����s��� +��}����y*�#�9v��5�������G�#P٠�Z� 9y+/Ւ" OeX�sO���a���j ���E\�m��#-��Ha�dR���1S-M +a�bƿ-�m���E�- 1��CI�c��'F�����c��`�иaCnvAe#�"�ʑN���2D) d�Nl��L(GTй��9�߆��"�8]��;��%6�:�C�lQf������WƏ���Ї��r&�0q��=eHa�u]����x0V�G�.���5�rX]M��}uͣVW��e�|��ζ�/����.�EZ\��(��x�&�%<��$J�Ҳ�<�a�5��M��aC���n� Âk�pHa�\+�H�UXP�����Ot�����V�e#`O4�i7)��0��8Fܙr�F���*����QˮI��>Txy_r��%פ���ǘ��6���`΅z�C� \��=Uo6F�]o�G��<�a�5YoO�s�L]ӄ�8w{VB=�ƾB�,XM��"�2*kL�2*�� Qm�Ț���ǰ��K�IWH_���dؔ���e8ԍ�T����g�o�+���K������5U%�nL�g�O_��A~����.8(��~e�9���AX�Y��,=����(%�Yc3[�-���X9Lڱ�E�KW�i} U�Ü�B����s�c�4`|��>J4'cmE�7꺾�q�e<P- +� +w�)�y�V�*��h�����U����mX���a]���v����[�l����H�⪳�m�T1��H���q^CM���WA�P��UG�t��5i�v�4�K���i�fle�)=���|�X�zHx���F������>�����:f�_�8��?t|0�0�̈́������aP&L�.��~�"�}S���?Q�?�Z��O���^��m��P�"d���dCP��S|��y���j1Ȏ���' +u���,��YZ-�}k��i[$�N��(_W��g�B,�M��Gc ��:�k�b��ޘ����0>��*��'u��;�翅^p�F��j�-f�����,����7���`�>��4v��Nm�o�1�,��D��pMT;��A��݁��܆4Yk�&L��/�B��j�_��t-�O�10 +endstream +endobj +7591 0 obj +<< +/Type /Page +/Contents 7592 0 R +/Resources 7590 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7530 0 R +/Annots [ 7577 0 R 7578 0 R 7587 0 R 7588 0 R 7589 0 R ] +>> +endobj +7577 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7578 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7587 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 162.953 171.594 171.09] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7588 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 150.998 171.594 159.135] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7589 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 139.043 171.594 147.18] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7593 0 obj +<< +/D [7591 0 R /XYZ 69.866 801.979 null] +>> +endobj +1894 0 obj +<< +/D [7591 0 R /XYZ 70.866 771.024 null] +>> +endobj +7594 0 obj +<< +/D [7591 0 R /XYZ 70.866 523.754 null] +>> +endobj +7586 0 obj +<< +/D [7591 0 R /XYZ 70.866 256.265 null] +>> +endobj +1898 0 obj +<< +/D [7591 0 R /XYZ 70.866 229.306 null] +>> +endobj +7590 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7607 0 obj +<< +/Length 1520 +/Filter /FlateDecode +>> +stream +x��XMs�6��Wp�5c"���L۩[7�I.��S���h��*�H���.P")���NO9h��ۇ݇ł�of��,&�Y:�y;��f���8�B��̓`$�p��"A���s�R¦w7���L�ĺ�M�N� �{���&QeT���C'�L>O���AJ�$eN����ag��9�J�k=r�0�#�|h���&�;�Q���aIs2@Z$�e�aJ���&)�|J�[���A�`އ�Cߗ�H�c�c�wb9��x#��%� �%Th�HQ��Gķ�H:����\��B zXt�>=>X b�3�ߖU�A��k�˔r7ZWV�Qi���v,�h��hm�=�G�����|��O�p���9�8 @����"+<ʐ�O/���O��Ȝ��y�uײ�����<�òk=��T-���ݧA�E�g�j�L�L�2�-�����C Q���2|��!9���R0�O�F�0�ɪrD���b�j</��<��X�BB�ܽQ�yL���f��R��B#ʬ'ξ�V�z��eoT<�txa�E�m���iX�mG/v�!\�S�~�>��!N+����XB@Z�_%1�*���N�X������ +zJSg}�����IgƵ;��G<���,y�i&�'��Y6/Oϲa��R�~3���y��G�1��E/���Eg�m3��[�����]4� ��M@�!0�[,�A+��95[Ұ5����*IH[ �����5��2��(W����u��(^�^�<���H�)q!xh� &�y���%]$f�J��E�j��>P�*[Ko:��������,3�Hݘy��>ru0����;�ƐB�;\�dn����n=O�^�W�����B7|�� +|i��#� �2Oōq5a�TK�@A@�{�V�@@�& �1J��ki�X� +�0-�! +��7� Qs@�-Lc���w8��d���wp&���n!���x���bލC��H-�u������JU��Vۄ�F�#�ldi�<���� Y���M�&��d��t�`y�8"�� +w�<��^,k�j��1 +xج�KDC;�M�b#�����zД�.�H)��qn=΅^��������Ҧ�Y=���`Z�c��-����?0l�v��8nM�d�!3�Mp��|����J��j�Rc�;cػ|Nh7��YfoFy���0�����.������./-���E���l��]!q=�7�]nݝ�c�0�qyx:��؝�Ά�$}H���Q +�ի�����1 ֆ�t1"�q���-jj��l������^O����8���!����+�] eu"�G��~�����1�|�*C���URFPz��*)�<�6_�*�B��Qy��<���C<��8�a��UU�Í��K�A���G�lg�g�������ѧ�agx���Mj��-�Ӵ��o�#��z��������Py�Iw(d����6� +��}N�>oJ�cߵǾ��I������w�h �&�8C�3x"!l@�&*ɣr�Fv��_��-5{�z}��7�� +endstream +endobj +7606 0 obj +<< +/Type /Page +/Contents 7607 0 R +/Resources 7605 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7530 0 R +/Annots [ 7595 0 R 7596 0 R 7597 0 R 7598 0 R 7599 0 R 7600 0 R 7601 0 R 7602 0 R ] +>> +endobj +7595 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.396 364.998 196.911 375.374] +/A << /S /GoTo /D (qr__givens_8h_a07adca97c58afc057a5cff738f6473cc) >> +>> +endobj +7596 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [282.714 365.918 316.725 375.374] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7597 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [423.844 365.918 457.855 375.374] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7598 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 323.86 206.363 334.236] +/A << /S /GoTo /D (qr__givens_8h_a53f748fbc6f8a129deb6a048d423d644) >> +>> +endobj +7599 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [209.849 324.779 243.86 334.236] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7600 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [257.809 324.779 291.82 334.236] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7601 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [305.769 324.779 339.779 334.236] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7602 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 150.984 297.675 177.524] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7608 0 obj +<< +/D [7606 0 R /XYZ 69.866 801.979 null] +>> +endobj +7609 0 obj +<< +/D [7606 0 R /XYZ 70.866 771.024 null] +>> +endobj +4243 0 obj +<< +/D [7606 0 R /XYZ 70.866 605.517 null] +>> +endobj +1902 0 obj +<< +/D [7606 0 R /XYZ 70.866 587.589 null] +>> +endobj +7610 0 obj +<< +/D [7606 0 R /XYZ 70.866 409.529 null] +>> +endobj +1906 0 obj +<< +/D [7606 0 R /XYZ 70.866 292.809 null] +>> +endobj +1910 0 obj +<< +/D [7606 0 R /XYZ 70.866 135.225 null] +>> +endobj +7611 0 obj +<< +/D [7606 0 R /XYZ 70.866 82.821 null] +>> +endobj +7605 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F14 3888 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7618 0 obj +<< +/Length 1702 +/Filter /FlateDecode +>> +stream +xڽYKs�8��Wp�UA� 8�avg'Usؚd}ˤ\�)If���pxl���,��uK_�D�zu���|������ş����.�`���p0r�0�"A��Ƹ7 F�[Z�q͟�z=�I�v��K���]��$��0 ����a3q�� +�.��?Z�A�t��\jA�����}50b�k�T=c��q�����wq{�� ��QD���9�ބA�c��G���_87�9�H8lX� �� +)J +w],-1��Z%V5�`��p�"y\��K�~�����N=Z�Հ)���y�I��P�m���,N!��"�^�q�;t6C�y5ݧ{j�1A_t�Y��\�~���������р|�3�����(C� �pS�f�����T��P�E�M�� ����,�0WaZ�t��ީ�Rn�GE�&�)}���#�s3zU ���qI��Kݗy�l;��D�K�M���oS T�bT n{U_j��´��o&�fBO�?��=V��;V3e55�2ة�b��M?�C���%����RQ������`606���l�!�R�AM�hJ?WO_���߷[����R=b�!�cgQ�!Ц�/��L?�����b��䭼T!E�ʴH�"�'-���ǀj ���E\�m�Z��I^��-�T�6y�TK�B�X��oKj�~��afKB̼e��"ű@������q��`��qÆ����`@o�@Dh�j��t�f�!JI [����_� � +:�R4g���ې[����Ks�R��F\qȚ-�,]�~^�||e��L}�o+g1H��S���/Q�eZ]�c�|����9;A]�(���$M�W�<�au5)a[P��NJ�l[��� +p��.����G�tŃ�aB\��w�$J�Ҳ�<�a�5��M��aC���n� Âk�pHa�\+�H�UXP�����O�{7&�����F��h��nRzah�q��3劍l&��AU?!�ͣ�]�T}������K�I?7���1��mr_+����v�����5{��l����y�Âk�ޞ���0,�� �y����l� +a|�`5���0�ʨ�1}�ʨ@�'d�y��"k�6��ҚG<,�&q0\!i|���ӒaS/(����T7RR��J�e(�A�4�d/Qv��/�TU�,�1Y�=>}Iu�e�>c�ࠔJ��]�8���aQfI>��@��ӣ��/d��l]�(�b�0iǺ/]m���TIZs6 +>*���w�iҀ����(ќ��-ߨ����]��@�(x+��禨硊U��{�x�C?���W��۰X��ún��H��66�$��Ug��r�b>,� ����㼆�tsӯ�6p!�����^�kҢ�i�B���i�fle�)=���|�X�z���a�i��jl�8탍�z{��cv���ǏS+�C�3��L�A�l��a���x���P�B�o�S�'���Z����z@�U�ڦ�NU�� �A� XA�l�����of/�� +�1���D��|P�b ��U���X��D�N�"��)��uu�z�)�2ٴ +|4��P�횬�E�1�7�}x�2����?� G���N��G��o���Qf�s��v}:09Kj�h���}�I0z��g;o�i���7�A�sl��j��&*�����V��@؍�܆e���M���_����@���).�Z�?g1: +endstream +endobj +7617 0 obj +<< +/Type /Page +/Contents 7618 0 R +/Resources 7616 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7621 0 R +/Annots [ 7603 0 R 7604 0 R 7613 0 R 7614 0 R 7615 0 R ] +>> +endobj +7603 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7604 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7613 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 162.953 171.594 171.09] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7614 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 150.998 171.594 159.135] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7615 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 139.043 171.594 147.18] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7619 0 obj +<< +/D [7617 0 R /XYZ 69.866 801.979 null] +>> +endobj +1914 0 obj +<< +/D [7617 0 R /XYZ 70.866 771.024 null] +>> +endobj +7620 0 obj +<< +/D [7617 0 R /XYZ 70.866 523.754 null] +>> +endobj +7612 0 obj +<< +/D [7617 0 R /XYZ 70.866 256.265 null] +>> +endobj +1918 0 obj +<< +/D [7617 0 R /XYZ 70.866 229.306 null] +>> +endobj +7616 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7630 0 obj +<< +/Length 1511 +/Filter /FlateDecode +>> +stream +xڵXKo�F��W��;ImѴnR$�����!0-1�H�����,w(��Z��� �Zg�����}yu��y�jB��G�7�߯&/_�ЋH����Hk/�9�̻Zx�>gzz{���LH /�˯�u: x��ż٤y��Y��ɟW����c[�QD".��fr}K�<{��8O*A�p����\laR�5���f$�����K?)�MZ��1�j�u*������BD�Er��;�`�j� ������UX�(/�pm\ ¹JAB�o��FC"x|�Iݏc=��F>~tX %���ޞՈS���/S��d� A��^�.,�dY�����h/��Hj���4`����&$>�S6�OPVq�x�ҁ��u|+�}�x<&��8�N���]��Cv�v�uӮg��|�N���K�e^��Mn�[��.JTp��O��>��y�L>KҐ�hxt+T�c4�Ph����4�n"���gլ��3��5�H���y7;�H�,7�В��s̵U�^d�r$5�B9<��U����{�J�h�ԷM��?��'o|�}�"<��8���c?��KkN�Y1�?Oo(�y�NI� +��r�/ctX�+ݜ���-3��:sp�s�#n ]�w�̤e���j�����[����ÔS���ߙ��iU�PE���F���-�y���d[����8�S�U��h�E�Q�> ��]���R�E ���cke7|ج�m�"�Mg�p,����_/�L��ص�]"l�q��UC�͠�"�S����q1֓�91J�0��CWHBwU�� +�r(�f��ܯE�LJc�2Ó��CQ���������� +����WNhB�)zZ�"�#d���0y���E�R�]X٦����,����#������&�� ?Z�U^��a�p��xׁRf�:����T�r�eﲕ�R�� sw��K�|nPc��1U@q���0�İ$�Q���Yj��:�u�<�ai���o6��cƴ�u��V-Fx�ġ�M�h��n�wC%E)ړ�DA��L�(H���pȔn�XNMBa'M �cS>�w�hg����_���"��V�Ʀ�:A����P������DS���r;e���W6�������°3��u-�{�yZ���;~pt�E(�L���eaz�lѾ��<�.\�$���a Z�� +�YL��W��f^�g�}��U������x��oR�`�)�v�6����]���_W�Pq�^���t�"l0d���>/�]�P���K� ����Bp���@R�J��R��u���$��l�ލV��̜2�`6����4����v��-$��Y'�#� +�S��W��WB������!W�(� ȜC���A���*�'��t -�wI��P���?y�ݻ�W������~2����w� >�%̵����Q�G|�R�c�w���C'z +*6ʉcw j*��m�W�(%�J���M��eR��������4�aC��� +endstream +endobj +7629 0 obj +<< +/Type /Page +/Contents 7630 0 R +/Resources 7628 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7621 0 R +/Annots [ 7622 0 R 7623 0 R 7624 0 R 7625 0 R ] +>> +endobj +7622 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.913 352.275 220.08 362.543] +/A << /S /GoTo /D (qr__householder_8c_a926e8bce91b658f64837d5c93b0bc74f) >> +>> +endobj +7623 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [303.485 353.086 337.496 362.543] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7624 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [442.699 353.086 476.71 362.543] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7625 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 151.225 297.675 177.765] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7631 0 obj +<< +/D [7629 0 R /XYZ 69.866 801.979 null] +>> +endobj +7632 0 obj +<< +/D [7629 0 R /XYZ 70.866 771.024 null] +>> +endobj +4244 0 obj +<< +/D [7629 0 R /XYZ 70.866 605.203 null] +>> +endobj +1922 0 obj +<< +/D [7629 0 R /XYZ 70.866 587.226 null] +>> +endobj +7633 0 obj +<< +/D [7629 0 R /XYZ 70.866 396.789 null] +>> +endobj +1926 0 obj +<< +/D [7629 0 R /XYZ 70.866 308.994 null] +>> +endobj +1930 0 obj +<< +/D [7629 0 R /XYZ 70.866 135.416 null] +>> +endobj +7634 0 obj +<< +/D [7629 0 R /XYZ 70.866 82.821 null] +>> +endobj +7628 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7640 0 obj +<< +/Length 1561 +/Filter /FlateDecode +>> +stream +x��Y[o�6}����X�IÀn]:�ah�����ڊc��]����H9��79��H��s��<�H����D�U1��*���ɯw���L�R���1Pi)S$Ip��C��"ӈ*>糧�*��l�L��!z��\�7���M��I��xİ�"�DM�>N~��<Op�츴F��`���?�` �}0b���-� ��~�5�9!~In'�E�����-�E���Ą��Z�@�Xab0q1���n��zVN#���d� X��p%��i1*R�ŴE�4�Bg�n{�'rm,�81�'v����SH��2_�,�A��q�0��w���J���7�|T.ϳE��������f��.�rs#�%�6��(C1i�dY-������^iܚ4�iQ3˶� �Y�Ia'i��f�ͭ�Z�fź\g�}�=�ښ���E��n���/S����*������Q?�oV�C*�����0Q��5�z�I+33aKes�3+��˻��t��GD4�܍�K{���(3�t�,=���P��#��A�������|�MJ� +B¢��8 +N�����0�jW_�R�'1�5G:�BԵ�C�Pi�D3Di C�ɦ��B������Q ���`�t���1=��#6�0G;�y6�|��I��Xm�4���D+��,M�J��EÔ��A.��4@P".�EN��֫�j�Ч�p�_�m�t��Q�Eئ���ڦ���Ni����B ^�a5�� z$X�a�9"A�崑�UV��e8�կ�6o�=��2�W��"�����6{� +�yT�h�.n�1O�r}Hwg=��A`�\$��0��4�M y���u�d̎����^�uHݮ�V���G�U\���2xsHng�<� +@(u��.�pz,N_EoJ �ىun�_sm��ݸ��k�pj�;Ehg�8��D(�Lha8� ���6��8�����M��n�Kk�_Zm����<�/J�����|vS_@�jw� X7m�J��|�\9�ȿ��-���l���S`M������J ��P��c���T2�'9�Ha��M�*O��F�ꎏ��Є94�� R-`�U���cd�"�}{��"U��~Νm���'�1�if��ެS��XW��Ƒ���h�ː���nF��$ֺ.uyV^���������rV̍ fe>+��y���,+[�8�rh���e��;�~E�q̭7:̵KN(� |�[#�Kě/Cg�{��S<��i|:� +5���_��Z�:2B;S����z��u��TK!��T��٧?{�R|g��z]�����6Y�i��+"�>e]�y^}J��������0�`���B�ڽz]�� Eϫ�.)��]�R�y'�������1ϡ �b�G�rYx4�}�`kt*h�y�����֝oC�>Y�;Qt�.��cd��m�a�X a��9� +i�_,y�]+�j%�дi�<{N%����&�7�볃���4��ϺQ�V��U� Ђ2:�P����@`J���Ƹ2Gg�6g���͒���R.]!���I>/}��}f +��+S'�$�G�qG�# +endstream +endobj +7639 0 obj +<< +/Type /Page +/Contents 7640 0 R +/Resources 7638 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7621 0 R +/Annots [ 7626 0 R 7627 0 R 7635 0 R 7636 0 R 7637 0 R ] +>> +endobj +7626 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7627 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7635 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.913 94.806 220.08 105.074] +/A << /S /GoTo /D (qr__householder_8h_a926e8bce91b658f64837d5c93b0bc74f) >> +>> +endobj +7636 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [303.485 95.617 337.496 105.074] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7637 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [442.699 95.617 476.71 105.074] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7641 0 obj +<< +/D [7639 0 R /XYZ 69.866 801.979 null] +>> +endobj +1934 0 obj +<< +/D [7639 0 R /XYZ 70.866 771.024 null] +>> +endobj +7642 0 obj +<< +/D [7639 0 R /XYZ 70.866 560.422 null] +>> +endobj +4245 0 obj +<< +/D [7639 0 R /XYZ 70.866 290.818 null] +>> +endobj +1938 0 obj +<< +/D [7639 0 R /XYZ 70.866 274.477 null] +>> +endobj +7643 0 obj +<< +/D [7639 0 R /XYZ 70.866 135.805 null] +>> +endobj +7638 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7650 0 obj +<< +/Length 1610 +/Filter /FlateDecode +>> +stream +x��YKo�6��W�(�Q�C��M�b(�nN��"3������_ߡH9�%;��'�"9���h��f�X�b�������o7�W̷z�n,���,?��#��ʺ�) �w7-s��`c��*و�C�����*���$�j�䏛���Jl��� @u�8���aks-��K�2�\�w��XO�=5 F>���A�QTMD��ۗ��@ŕ�Qq�<5~��a�jl9����ZПYU��l���m��$�N��T?{�2lgfA�h�b�pV"�ҧ�H���S�7�~γ)�����]ܖ"E�0��C=s�T��٪��L?�3Y�Z�*.����s�\�� ����멪H�Z����\|���X�](���2�B��Š-f��ˣȍ�s=$E�Hc4!(�\�s��'����ړ����V� +t�A�Z��f�Y�y5�>�p�����b�J&kq8�����M����Uz,��l��Q�,t�� N�1J���Zl���0�1!��j��-�j�lr�S �����\8J\��x����R�$�$3�L)��sH��k��O�5j���}��41�t���_��V�uTG��9��_��_��*�^�D"���j���@�`4��"�Y;֩���Jִݓ�vr�����&��|��KΊ �kq`��B����2XBhz�D�)%��`�ϻ�R!5XH[`,��o�%� ��5Z�w�D93�P��&�/�'A�ڊ��w��rg�e������C�}��V� �b��:��%�RV�k�|k�V��m�ϲ̀a�_�\��.��Ȯ��|�ĸC@�ٴs'�̬JQ��3=v.5�dv������j������u{B +����WV��Yo�B(�,oJ�D�i�Q�p�֠�:(6I����Q��GA�]t����T�WU������U�;�P�h��2`���Qu��"`�R��Q�$�~=I(Gԣc!���1�M0�X0�[>��H]�h��)�v��7��v����5JE����ę�T5���#����Hx�CB��'! 8��cH8r��P���� Iԥ�����M��'�u vϒa8�yPN�a ���7(�+VІ���*�p�0۸u}p�e̸���4&e[������R���qS�\���ݩJ�)89�u�0���y���=�7 +q�pmLS2�쳟l�Ї��F?/�1�T��4����I��d�1y�=�����7 +u�om��� n�Ükkpl�;�d���'Hpə$;K�!���wIh�G�Q m�0�ژ���aZ���U7~�W�#�9n������r��C��Y �33r@@��4U�V�C�1��oS@y�4��P�����^��s���2���������!���4DY�8�ua�d�u�fB��rȳMۣ�Շ p��;Qf�~��P2+�1���|f�U��S�-1�ٽI��d��h���b���N9�Q��������u��\�m��J��r�Sm���b�岈T�K�|Y<WQ.�y��M'�������v7�{+lW�"��֎�������5_�<D}ϭ{�܅��<�4���yTv�)���X�&�-䮊��;�� +endstream +endobj +7649 0 obj +<< +/Type /Page +/Contents 7650 0 R +/Resources 7648 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7621 0 R +/Annots [ 7645 0 R 7646 0 R 7647 0 R ] +>> +endobj +7645 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 641.068 297.675 667.608] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7646 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 458.486 171.594 466.623] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7647 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 434.576 171.594 442.713] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7651 0 obj +<< +/D [7649 0 R /XYZ 69.866 801.979 null] +>> +endobj +1942 0 obj +<< +/D [7649 0 R /XYZ 70.866 771.024 null] +>> +endobj +1946 0 obj +<< +/D [7649 0 R /XYZ 70.866 626.824 null] +>> +endobj +7644 0 obj +<< +/D [7649 0 R /XYZ 70.866 580.266 null] +>> +endobj +1950 0 obj +<< +/D [7649 0 R /XYZ 70.866 553.071 null] +>> +endobj +7652 0 obj +<< +/D [7649 0 R /XYZ 70.866 327.611 null] +>> +endobj +4246 0 obj +<< +/D [7649 0 R /XYZ 70.866 68.979 null] +>> +endobj +7648 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7665 0 obj +<< +/Length 769 +/Filter /FlateDecode +>> +stream +x��VMO�@��W���9x��-UU[AP�Ҝ +{�X�v� +��gm��DUP�������{��?�02�J���#���� +M�d<!�B��!��8!g.�����:po��E�|��^֦�!�߇�����L���4y���!s9�c�p��83S�2�'q�]P��cBA����̈/H_�zN~8���3!cr�b@��3J�7����<�(%�Рd`��E�bn*�\L쳞��NG�UT�ľ-*�L +p0��T�e4�%��nZ�2���$!f���(�n�C���e�bdl�륱~�~�K���Π)� +�e��6�`�#(c��wN�vD����8���c�U���Np>�`Őg�Q��z���{YT���������b��"ˊ�5�LD�ɰ�Th�<\�q�y��AG�-j1z]>�\�|ș߲�H��_#�r�*k����+���k�SI�h�f=�5RTS�� +u��s���HZ�����D4 ����́�B?0u��n��*.�EӁ'$- ���7� b��oc�of �����2f��Yv������m+�#� �Ţ,�x���D.�e�h�"�V�}P��]p�]�3��n����\��!����?��-Fd��=����f�kҭ�;[�@I�S��u��9�'0YzW���9$fK��c��CKp$��@5_P<u����s�������z��%�g���z���=w]��ƻ�K��ݕ[��߸q�k�,�#��2�;j\5��o�\��~?m���Q(� +endstream +endobj +7664 0 obj +<< +/Type /Page +/Contents 7665 0 R +/Resources 7663 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7621 0 R +/Annots [ 7653 0 R 7654 0 R 7655 0 R 7656 0 R 7657 0 R 7658 0 R ] +>> +endobj +7653 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 574.443 166.634 584.711] +/A << /S /GoTo /D (qr__pinv__test_8c_a292d2351f35310e579dd0741ab4857db) >> +>> +endobj +7654 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [291.577 454.962 371.899 464.052] +/A << /S /GoTo /D (qr__pseudo__inverse_8h) >> +>> +endobj +7655 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 402.603 297.675 429.143] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7656 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 241.555 166.634 251.823] +/A << /S /GoTo /D (qr__pinv__test_8h_a292d2351f35310e579dd0741ab4857db) >> +>> +endobj +7657 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [291.577 122.074 371.899 131.164] +/A << /S /GoTo /D (qr__pseudo__inverse_8h) >> +>> +endobj +7658 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7666 0 obj +<< +/D [7664 0 R /XYZ 69.866 801.979 null] +>> +endobj +1954 0 obj +<< +/D [7664 0 R /XYZ 70.866 771.024 null] +>> +endobj +7667 0 obj +<< +/D [7664 0 R /XYZ 70.866 617.945 null] +>> +endobj +7668 0 obj +<< +/D [7664 0 R /XYZ 95.773 589.282 null] +>> +endobj +1958 0 obj +<< +/D [7664 0 R /XYZ 70.866 543.905 null] +>> +endobj +4247 0 obj +<< +/D [7664 0 R /XYZ 70.866 392.992 null] +>> +endobj +1962 0 obj +<< +/D [7664 0 R /XYZ 70.866 386.176 null] +>> +endobj +7669 0 obj +<< +/D [7664 0 R /XYZ 70.866 285.057 null] +>> +endobj +7670 0 obj +<< +/D [7664 0 R /XYZ 95.773 256.394 null] +>> +endobj +1966 0 obj +<< +/D [7664 0 R /XYZ 70.866 211.017 null] +>> +endobj +4294 0 obj +<< +/D [7664 0 R /XYZ 70.866 60.104 null] +>> +endobj +7663 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7677 0 obj +<< +/Length 1076 +/Filter /FlateDecode +>> +stream +x��WMo�6��WۋDI��E�n��h������Pl�bI^}������mi��^�$���<�����?(ZW#�ֈ���O���m��Rh�B!���(��M�h�1F��w(���K��Nߦ[5�Yy��E���N�ȵ����㈂%A��E8b-��쁠%��C�G���2C\X���[�����0)�1��4NI1q�R�C>�)!��X�w�j��<�ǜx{U���*2���D~<�D�Ɣx�T�B�3\߲�$/����H��~b�-բ�vE��Go����(! +��&��d]���nj���ԇH!��� ���k��O���6a +�b�I&�f�wi��6K{JO!�!d������;��^���q���d��@P���_�c!{����JN�y�2�X[1h��4fE~��:ݫ���|S4��ۥ*/�s`�^���1�J�ؕFpLHl�O�/4i���8��XG%��S����4�^��Ѽ�+�ڕk{�&� cR_����;G��6�@i,V;�]�7�^g2�:��OXz����f�=��0��0�$��H���]n��ٸ��o~��}�v��!p}�!��v,�N���P�a@�c�M�~N��f�<s����+_�E��k�*���3�Ti��y�(ԘzN��7� �$B>g�~���Z=}���ri_U�2�9��JP��heO��8J�a9����6�4�m�n�.ICUys���Yܥ?��S�e$fB�G�R�^)�22G�3�5��Iݩ#��kN���J��M����R�f:�r���^+�GǮ�ϓ��c����U�Msl��IH=��+"`�Te��NY�y��<�����ԁ�Z2�г���Z#�0�qzJ}��4SZ$�7��%�ax(��9���m�N\T:t9̮����B|V�/qb�xO�{�x�IpxY�� �N��t��p� r��sEW�َ�&������>�c��ֹ�>�ra��\�鴝��3�;~L*���e�=��]����>���q?4�P��6�g~2�}#ߩ\�ɡ�<�cv�6���զ���h�� +endstream +endobj +7676 0 obj +<< +/Type /Page +/Contents 7677 0 R +/Resources 7675 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7621 0 R +/Annots [ 7659 0 R 7660 0 R 7661 0 R 7662 0 R 7671 0 R 7672 0 R 7673 0 R 7674 0 R ] +>> +endobj +7659 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.734 559.039 167.396 569.414] +/A << /S /GoTo /D (qr__pseudo__inverse_8c_a9fb1ebdfe21c5a66cd322f00bf886d8d) >> +>> +endobj +7660 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [249.981 559.958 283.991 569.414] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7661 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [317.043 559.958 351.053 569.414] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7662 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [429.716 559.958 503.447 569.621] +/A << /S /GoTo /D (qr__common_8h_ac62c54358ecc0c35cdef1c3fb37cc73b) >> +>> +endobj +7671 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 396.995 297.675 423.535] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7672 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 214.413 171.594 222.55] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7673 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 202.457 171.594 210.595] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7674 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.255 190.502 214.633 198.289] +/A << /S /GoTo /D (qr__common_8h_ac62c54358ecc0c35cdef1c3fb37cc73b) >> +>> +endobj +7678 0 obj +<< +/D [7676 0 R /XYZ 69.866 801.979 null] +>> +endobj +1970 0 obj +<< +/D [7676 0 R /XYZ 70.866 771.024 null] +>> +endobj +7679 0 obj +<< +/D [7676 0 R /XYZ 70.866 600.798 null] +>> +endobj +1974 0 obj +<< +/D [7676 0 R /XYZ 70.866 530.05 null] +>> +endobj +1978 0 obj +<< +/D [7676 0 R /XYZ 70.866 382.751 null] +>> +endobj +7680 0 obj +<< +/D [7676 0 R /XYZ 70.866 336.193 null] +>> +endobj +1982 0 obj +<< +/D [7676 0 R /XYZ 70.866 308.997 null] +>> +endobj +7675 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7691 0 obj +<< +/Length 1602 +/Filter /FlateDecode +>> +stream +x��Y[��F~��@����\������\Z5q���j�ⱍb�1�K}���qlo�<���;�o�s��M�k������u;�e6zq�\�C�̚-,#O��)Ěͭ;�`���q���d1O�d�`�� �3 ���Vժ�h-�OS�l˭LB����kSJ���ף�f��#~`��v=yԱ�xtw��9�{ma�|��\��-�3����_�wu,Q�>�������A��C{;��l�X�*bg�g��C0��:�!#>b�W{��a�-���@���!L���R�-RB�J����Đ$(3uݫ �.b�?פhV��}�E�h�cS@!��a�� �B 摶�m�����i�XZď@���tQ]�&r�p���;iu�|�?�)��>�%h?�c��h��à~���w���L��c�e����L��i4��y6��״��"N�g���>u�����~ah� +����?F?�"�9N��L�ӯi��j�q��\�x��tl��I�$7�3�:̿�!����>C��Cg�E˄�!��O�2L���#-��4;�f?͚V7Z,N�ۙ����� ߪ!s�U�.Hx��{��<~/���0� ā��?BA�5��Dž�L��l ��t�k���Z�l�J�P��Q��#�L:�{��\��y݅��6��d��* +��|gGz��Q�� �0�q&��q��Jp�Uʧ2/�I�4e���Q��4B�U7#�\O7z +�xS�Q�<O&4�._V��̲E�.�.�*����&���$�����4�3�ʵ|�1M�<J5Y��:J�%F�#�z�[���11܅S!wL�cfN�s�g��_w����2��c�Ꮤ`�h�~9V,6�}(X�E�_�&���b��.��`�nZ=6��|i��ag��:PUlyB�M����Q�N���p]�u@�4Vr8��j3���r� =���A�z�|h��,��kB()�&B�h�;�M�왊 �Z=��sx-�r��^^QC�7�p`יwL7E��cOܑ�:���{Jy��n¹P��r}G��v�qZ��T(.e^���(z��"V�����2y>`7HQ��2su��%��0�q�Ƅ����U���p6�M�~��s�j��>p�o�N?��e��0�hM��"�ª_����b�\��پ��a$K���"�W� ���5��s�|�=�@�ļ!^�h���y�ڤ�Zf�6ڔ�/M��=�;��Z�t�3�YY +v~����jZ]o�2�0������U����\��**d9Ds�J��-� �8�h�;�hot��Yi�j�`�Oo�����ۉ�?Գ?G�-�ɣ�B�GUsh�ԡ*����&W���V��4,TU�[[?�@���|L[P5�f���Nպ�P��.&M�{u�*ESh� +�S���)y)r\�n/�N�_���3�&���{���5�8 ��nW-���s���n�GZAר~�B����ѓ�>32j)��[J�O �� 7�Ď�#�+͢�Z[tB����V���4�Nw<Y�\72�dF��':�?�qy�����QW8�S%�B�{+� �c�u�N-_�jmJ��_��@ +endstream +endobj +7690 0 obj +<< +/Type /Page +/Contents 7691 0 R +/Resources 7689 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7696 0 R +/Annots [ 7681 0 R 7682 0 R 7683 0 R 7684 0 R 7685 0 R 7686 0 R 7687 0 R 7688 0 R ] +>> +endobj +7681 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.734 408.276 167.396 418.652] +/A << /S /GoTo /D (qr__pseudo__inverse_8h_a9fb1ebdfe21c5a66cd322f00bf886d8d) >> +>> +endobj +7682 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [249.981 409.195 283.991 418.652] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7683 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [317.043 409.195 351.053 418.652] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7684 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [429.716 409.195 503.447 418.858] +/A << /S /GoTo /D (qr__common_8h_ac62c54358ecc0c35cdef1c3fb37cc73b) >> +>> +endobj +7685 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 284.999 297.675 311.539] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7686 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 136.444 171.594 144.581] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7687 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 124.489 171.594 132.626] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7688 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.255 112.534 214.633 120.32] +/A << /S /GoTo /D (qr__common_8h_ac62c54358ecc0c35cdef1c3fb37cc73b) >> +>> +endobj +7692 0 obj +<< +/D [7690 0 R /XYZ 69.866 801.979 null] +>> +endobj +7693 0 obj +<< +/D [7690 0 R /XYZ 70.866 771.024 null] +>> +endobj +4295 0 obj +<< +/D [7690 0 R /XYZ 70.866 577.663 null] +>> +endobj +1986 0 obj +<< +/D [7690 0 R /XYZ 70.866 562.133 null] +>> +endobj +7694 0 obj +<< +/D [7690 0 R /XYZ 70.866 441.97 null] +>> +endobj +1990 0 obj +<< +/D [7690 0 R /XYZ 70.866 381.106 null] +>> +endobj +1994 0 obj +<< +/D [7690 0 R /XYZ 70.866 271.637 null] +>> +endobj +7695 0 obj +<< +/D [7690 0 R /XYZ 70.866 241.211 null] +>> +endobj +1998 0 obj +<< +/D [7690 0 R /XYZ 70.866 214.897 null] +>> +endobj +7689 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7703 0 obj +<< +/Length 1595 +/Filter /FlateDecode +>> +stream +x��Yߓ�6~�_��/x&V�$��t��5i����^n<�m&w���]���횻v�p>�oW���]����'�� v�v�O~�Oc� P�9s�+G`p"N��ҹq)������3�q�X��]����{��U*3�$���ɯ�ɷ ���!{� @��8���bg �>8��C=2u<�!�cp�u>O�ػ������}2�4'(��ן��s�"J��Ŕ��=����y�2B���/�A�#<�,��fn ���N!�\�$`�R@bH@~�$�!X Fñ&y;���w��69$�^&x۲�9b��,�)�݇��ٔ`�J���|�\�ư7�<� �w�$o�/���)�]Y�Rc��հ��cVs��; q���0����_��Q��7��0��F��gs�m�q����?��ŋ9�@����E�ga� +�٥���~D �9O�q&���6��r����8����a�'�����:ο��Xv���r�<˞�Ѱ���^�,� aڎ�R�i6��0��VwF,�m�3�|�8s�o�RV�|�W�>O��r��C��Y|�� �����B<�z�3��[SJ��H��������ƙ�Z�l�ɓذ�N�]m��z��-�J�ɷ�}6��I���l~�U�MZ������E�ANC�g���� ��&��RUE�=M�k/e�"8́�~5ň�6ݍ��<�U*���d���U˲\U�:k������e��x��a/f&ԫw}�ʕ��1͒���P���&���h�e�3��[�h�\�����u�M�j�`{2����=�� ��%K���H V�&���m�Jc�I��&� Q���Fn����b�U(nП^h?�������~U`��{��J�z����ڎ��6恱�]l�都�Lc�$�����BHk ��E�W?@ $���Z&9��y����~���i9�+��6��W@�m�6����C����2Vya�6ك$��]�Ǒ��*�5���@�� J}����qnf��:���<�bU��j]ף��Z��R'�F�p5a� �� +�`�S�l�M +b�DE���}�wص�`鵕�Zm4�\] +1T�:g�Y�A�@fL�>���\��2w�Tݍ�ۥ5l��-Y���t�%Sk �6C'ͽ����Lu&�� �Ww�z�wO0�:������|W�`12���A���\�̹zܙ|�{ں�2ɇ�u���hc�+���N[⍈��+�"�jS�d�ξ�PjaὠR����R�nUN�B�bߪ�Y�w�.��!��_��S���is�(�(Z+�ڢG�(NT#*ݭ�m�z�!A�;z�_ZWj��ګ?��� �a�ǨL��4�_{����> +���__�ܟ�l�V��NЛ��L�\��sFF �l�9���A�ĉׁ�ӵWCt�a��}�(�� k�u�E�.���Ϫ��!A��V�}A +x�lB�CY���i�@"Z�=�pU�@�;f�صڨ��"c�2���uY�"�n��eI��T �%���0���u����=�"�MI/3YDj�k�ʵb|\kB���]���ab +endstream +endobj +7702 0 obj +<< +/Type /Page +/Contents 7703 0 R +/Resources 7701 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7696 0 R +/Annots [ 7697 0 R 7698 0 R 7699 0 R 7700 0 R ] +>> +endobj +7697 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 396.385 168.66 405.842] +/A << /S /GoTo /D (shell__sort_8c_a92bc0e3a993e78dfab795f5ccc3e227e) >> +>> +endobj +7698 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 370.065 154.206 379.522] +/A << /S /GoTo /D (shell__sort_8c_a569649d96b2e8f453793ea166d3e96a6) >> +>> +endobj +7699 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [157.692 370.065 191.353 379.217] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7700 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 239.688 297.675 266.227] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7704 0 obj +<< +/D [7702 0 R /XYZ 69.866 801.979 null] +>> +endobj +7705 0 obj +<< +/D [7702 0 R /XYZ 70.866 771.024 null] +>> +endobj +4296 0 obj +<< +/D [7702 0 R /XYZ 70.866 571.565 null] +>> +endobj +2002 0 obj +<< +/D [7702 0 R /XYZ 70.866 555.893 null] +>> +endobj +7706 0 obj +<< +/D [7702 0 R /XYZ 70.866 430.445 null] +>> +endobj +2006 0 obj +<< +/D [7702 0 R /XYZ 70.866 341.686 null] +>> +endobj +2010 0 obj +<< +/D [7702 0 R /XYZ 70.866 226.185 null] +>> +endobj +7707 0 obj +<< +/D [7702 0 R /XYZ 70.866 193.187 null] +>> +endobj +2014 0 obj +<< +/D [7702 0 R /XYZ 70.866 166.732 null] +>> +endobj +7701 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F14 3888 0 R /F86 4575 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7716 0 obj +<< +/Length 1485 +/Filter /FlateDecode +>> +stream +xڵY�n�F}�W,� 7{��E���&/i��:��H�DD�\�J�|}g�]��h٢�C�ݙٙ3s�ү���Q�,F-A�GNG���F[�8��"M�Q +i˰�h�@7cJ�֓�i3.V�z=+�9|$���uR�{��N('y�͓ɧ�$���pWc���GMG��(|K�;5&�|3��D�~{��֠o�� �c)8�_���!�I�ֽ�cI�s,E��\�&L��<�$e�O(Ud�do������ИY���mPL�D�[�=eVsl��&�Hd!%L��&�n�3�fǵ��b.�P��YJ4�̶��y� O8��L"j��SO�`A��8�k#������6�*�[����^�e�{ )�qxLPl-�1@��Ҝ��C�ϱ�A��J<r-g��M<d�\����t�d�ruU�����HL�{mo������!&8��"X�o�8Oޖ2R��4]% aYZ�۬�G\֯�4�b��D�#�N���#�y���)��i��3�9��.�}$��� �5��Po��H_��t1�T�DYv6<��,�K����G�Hh�" +��[J��6��-"zumT�9�,�m�SH�#�8,��*�� ����d������`�:��I�q&u�yh��U��X�^H`�e�(�����P=���t���/��L�����y��?i����W$o��r�t_@���jS�c[Ytd��q��($����"Eq��z�K0�As��V`K���~���a�r +x?�#�Ǵ�1�{g�C��-�� nM����@i�IΠ +7C�2ZZb��3�aH%���0���j:}PGT s���KuD����CLp�Ջ`u��u�� ��x���\��<����n�<�r�z�� �������{6-��*O���l�/�2�mܥh�.ӻ�\-�ҟ)[4yo���M�H�,�;��`2��T���hӺ��I�'��;�pDh�������n�l����z;#�S�_�l��-|0�6V�[���_{li@�^B�&6^�X�4�����X����W�����U*�E-���š,�|iù��Һ�z����EG�G����vB>2&[{�M$�����:���?d`��Ӻ��ԧJ4a5*:R����% m��ýޑ�Gw`S� !�z�9��5QVW��q c��+h��5���e�?EJ�3bp���W���Q�G+iN^Mn��lB�=��V�)��T�����z�+Ǡ�C�ya��=2��g�Ə�3�+�X��VL�X�J�F��WI1�ӻ���'��T�g��] +��k�����6���pHn��,݇Y1��kg���k���o`2�9�d�K���$�`=���iY�v�=�6���6�+W`����C���N�Y���K�s��6.6��VK�/(�{�ռJ��i�����4�ŷ��s����5���{�tTvΣ����V�)�$VA��N�$��>=s�u��~�t`�*w���߱�� +endstream +endobj +7715 0 obj +<< +/Type /Page +/Contents 7716 0 R +/Resources 7714 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7696 0 R +/Annots [ 7709 0 R 7710 0 R 7711 0 R 7712 0 R 7713 0 R ] +>> +endobj +7709 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 570.677 171.594 578.161] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7710 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 231.814 168.66 241.271] +/A << /S /GoTo /D (shell__sort_8h_a92bc0e3a993e78dfab795f5ccc3e227e) >> +>> +endobj +7711 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 205.244 154.206 214.701] +/A << /S /GoTo /D (shell__sort_8h_a569649d96b2e8f453793ea166d3e96a6) >> +>> +endobj +7712 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [157.692 205.244 191.353 214.396] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7713 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7717 0 obj +<< +/D [7715 0 R /XYZ 69.866 801.979 null] +>> +endobj +7718 0 obj +<< +/D [7715 0 R /XYZ 70.866 771.024 null] +>> +endobj +7708 0 obj +<< +/D [7715 0 R /XYZ 70.866 668.547 null] +>> +endobj +2018 0 obj +<< +/D [7715 0 R /XYZ 70.866 641.351 null] +>> +endobj +7719 0 obj +<< +/D [7715 0 R /XYZ 70.866 521.996 null] +>> +endobj +4297 0 obj +<< +/D [7715 0 R /XYZ 70.866 400.524 null] +>> +endobj +2022 0 obj +<< +/D [7715 0 R /XYZ 70.866 384.736 null] +>> +endobj +7720 0 obj +<< +/D [7715 0 R /XYZ 70.866 266.946 null] +>> +endobj +2026 0 obj +<< +/D [7715 0 R /XYZ 70.866 176.624 null] +>> +endobj +7714 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F86 4575 0 R /F92 4494 0 R /F11 3889 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7726 0 obj +<< +/Length 1261 +/Filter /FlateDecode +>> +stream +x��XMo�H��W�ً-�{��niw�]e&Ҝf�2�����!�M��o546`�c��,0T���z]��/���� �B{ד?�/ߘ�)��d����1RRz��Ho������������E��ͩ��W�j�5IQ�X�����iB�{d�R�{����{kx��D��J˭�C�3�����_Ga�|�e3NI���}Dgs�1�~�%�2��;����'HтBāEI��7&��y�"�?���#������c)����h=��.LQ=�8e~a*�ޜ@�PP�+��'��B�ĘUF�6�4�įm�,^?��:� +���`�kl���� 2VNc\�!��wa_��p����۪fAuY��ˍ{�>TWԄ&˫Ϡ.���.����-6���6���)�"�Q�٢��Qa�g/��?A�t�F���(�[S�lF�4� ����%$�-�P�z9|0�]9��"��X3��$D����A�Ũ��|$X͠�>@0ALбe3��/`T�'p|F0��JL�{��qX#�hјp���0S���q/�p�Eft�5�1;�Bb=� �r�aa8�qh1�z���a��S���籟a ���������T�o�;��d���|N��1���a�Ӝ:�8M5�05]����VH������Q�rEU;�vD�c��� +� [�jk�������@�TY�B�Λ�I�fx6�"͖Ek�(�f� +B6D�~��bщ`P-�4S�.�}���`F��PC�����"��e�?�B�I1qF���H�Gh F��n��<�v��O������r��v���_(!�F>Q�cJ�k��;��.����.¨hE���`� f�b>ɫ�.���t���p�鸟TMǗ�Ǫ��;���0�IZ��xSD���|I�/"�>WD�/jEwc�g��L�2���yF�<�����ZoS�Y��r��Aa�[�5����1(6���攬�{^h��֬� ��҇�%�\�ܨ�8H�}T�{��ٔ��*�������q�l�V a�������:1u�>����ya�y��H���iW�8�?^��ou��K��ԍxA{1r��*�%�x�v!�a)���� ɯ=X@4��]y��R�����s���� �:�;�%;����SY��Ts�)�:�۠Ȣ���>e�0z6I��Os�4;�̯>듈���� �ኤt3�6�ɀ�=��*�}y -3�&����� +endstream +endobj +7725 0 obj +<< +/Type /Page +/Contents 7726 0 R +/Resources 7724 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7696 0 R +/Annots [ 7723 0 R ] +>> +endobj +7723 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 394.264 171.594 401.748] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +7727 0 obj +<< +/D [7725 0 R /XYZ 69.866 801.979 null] +>> +endobj +2030 0 obj +<< +/D [7725 0 R /XYZ 70.866 771.024 null] +>> +endobj +7721 0 obj +<< +/D [7725 0 R /XYZ 70.866 741.162 null] +>> +endobj +2034 0 obj +<< +/D [7725 0 R /XYZ 70.866 713.966 null] +>> +endobj +7728 0 obj +<< +/D [7725 0 R /XYZ 70.866 594.61 null] +>> +endobj +7722 0 obj +<< +/D [7725 0 R /XYZ 70.866 492.134 null] +>> +endobj +2038 0 obj +<< +/D [7725 0 R /XYZ 70.866 464.938 null] +>> +endobj +7729 0 obj +<< +/D [7725 0 R /XYZ 70.866 345.582 null] +>> +endobj +4298 0 obj +<< +/D [7725 0 R /XYZ 70.866 208.572 null] +>> +endobj +2042 0 obj +<< +/D [7725 0 R /XYZ 70.866 192.293 null] +>> +endobj +7724 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F86 4575 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7754 0 obj +<< +/Length 1252 +/Filter /FlateDecode +>> +stream +x��XYo�6~�� �/�bHI��P�)rl�@w�~��L�B,)ѱ���wxɖ��I�-�O�x�3�73����3E�zB� +t:�u:98�B�8<4]���(P�8�h�@3�F�㆑U��o��©�9�6\���Ҧ��/Rn_L�#ߋ0�"�I�q]&�'���̈́B/A��/�p��(�'��0����.g��gf�� �:��?c(�3�����9�OY�n��b����i��e��o��9���Mߴ�����e[�u�Y�j�&]��e�����5o�<+���Z�t����9A �1!�x�i��E-�l�sp��;��83D�냽պs����++�h���j��v&�@�.��P�<'�� Ŧ�$����j��x��<i*ۡ��n;�z;�`8b�Ŭ�x���Y�l�s0��E��B0���K=�x���o�w��$&�U ��������=��]��h�q����_;G)q�ݹ(W� +���/D���3�='�U�z��اfJ!��27Y��J����jު���si>M�4(�X�f�֚~����m�E���kӾ��L��H9����9�}+k�9��'����y_�3&H�?��{(�J��_D�� �w��.�{0e��i�aJ_��-y�( �J_J��O��RS��D�W�Ѥ���hz���HDq�:�RU�Z��l2��3��a���p�|��.&�۹)a8 %P��&���B�<�uZe�R)�G(�=�#�-~\$�.�pͱ��������ry߄��Mԝ`O ��=ҕL��\V�A'��4�灱en�V*���oxڨ�T.Ѷ�l�z��ԫ�t�G����1Z�ɑ�VQ��u�O��{� ��j ��d�k7r����ؗ3G] +�:�B�Ou���2ШM v�h��`.�����v}�m�e���{������OC�?�+��D)�!��LKS��+dZ�w���(��^���d�/[�Wp`���T1`Xaύ4��]���a�ƫV�m&�r��� +����Dut�o"��P)O�8$t��z���Y��� +(�C��Q�Mi'��#�MXh̕����s�����c6I�^~l�{�x��Nf�0ܛ�;k ��y_��wv���G|��BS��^��_Z��C�K�"��(�z�x��������S����O��3�)I���'�\��'��2w�Il +�|�y� ��JJK��*4xNy���1UŮ)�J��n�V"��7����xg� +endstream +endobj +7753 0 obj +<< +/Type /Page +/Contents 7754 0 R +/Resources 7752 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7696 0 R +/Annots [ 7730 0 R 7731 0 R 7732 0 R 7733 0 R 7734 0 R 7735 0 R 7736 0 R 7737 0 R 7738 0 R 7739 0 R 7740 0 R 7741 0 R 7742 0 R 7743 0 R 7744 0 R 7745 0 R 7746 0 R 7747 0 R 7748 0 R 7749 0 R 7750 0 R 7751 0 R ] +>> +endobj +7730 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 645.267 141.896 653.751] +/A << /S /GoTo /D (solve_8c_a829e66492dc3073c0f7a190cda9b7db1) >> +>> +endobj +7731 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [226.624 644.294 260.635 653.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7732 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.716 644.294 322.727 653.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7733 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.651 644.294 379.662 653.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7734 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [440.872 645.186 496.168 653.957] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3) >> +>> +endobj +7735 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 616.399 196.222 625.856] +/A << /S /GoTo /D (solve_8c_ab6336aff7fbff116a6118b39a0d1e2cd) >> +>> +endobj +7736 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.95 616.399 314.961 625.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7737 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.042 616.399 377.053 625.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7738 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [399.977 616.399 433.988 625.856] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7739 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 587.584 172.569 597.96] +/A << /S /GoTo /D (solve_8c_ac728f92ed0a0cba0e8776222acfe1d88) >> +>> +endobj +7740 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [257.297 588.504 291.308 597.96] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7741 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [319.389 588.504 353.4 597.96] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7742 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [376.324 588.504 410.335 597.96] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7743 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 559.797 190.735 570.065] +/A << /S /GoTo /D (solve_8c_a96faf0d4f04f27a12e4ced0bffd0f634) >> +>> +endobj +7744 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [275.463 560.608 309.474 570.065] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7745 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.555 560.608 371.566 570.065] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7746 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [394.49 560.608 428.501 570.065] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7747 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 385.798 297.675 412.338] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7748 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 203.216 171.594 211.353] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7749 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 191.26 171.594 199.398] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7750 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 179.305 171.594 187.443] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7751 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.255 168.275 200.286 175.137] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3) >> +>> +endobj +7755 0 obj +<< +/D [7753 0 R /XYZ 69.866 801.979 null] +>> +endobj +7756 0 obj +<< +/D [7753 0 R /XYZ 70.866 685.135 null] +>> +endobj +2046 0 obj +<< +/D [7753 0 R /XYZ 70.866 530.701 null] +>> +endobj +2050 0 obj +<< +/D [7753 0 R /XYZ 70.866 371.554 null] +>> +endobj +7757 0 obj +<< +/D [7753 0 R /XYZ 70.866 324.996 null] +>> +endobj +2054 0 obj +<< +/D [7753 0 R /XYZ 70.866 297.8 null] +>> +endobj +7752 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F29 2678 0 R /F61 3918 0 R /F70 4395 0 R /F51 3827 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7766 0 obj +<< +/Length 1633 +/Filter /FlateDecode +>> +stream +x�՚Mo�8���:�@���a]t�E��mni`8����Ԓ����H�l�be}8�ؓ��w8|8�����-��{[{7���f�>2�i�Kɼ�'Oa����O�$��ƻ�S*w�<�1.�����p,�����:��8[eaCg�;���9��iʽu4������E_{�ˑ��C�3�����>�����b���$Hs�����j���,�/���g�I�� ����!�1�^�AX +Oq�L���fiLT!�!���f�R�Đ��-#:ֆ`���JJ{|/�l�FM�`!�XM��҄psƚ��dA��{g� x�G��A�w�T]�gCo���+x �Q�x��>sL�dž��&��*u�`�"�He�lʨ���KP��1�zP6N�M�-wP6N�M���Nvy� d�]n&�I�M�a #`g��sq2�!�d�$ݐ٢��a��?����������% 㬦,K&Q6��6!`�t�8O�$e��s��Ap�"�))��}<O�Hm7]�v7]�*��:K̀������قC� +i1��I&^����xI��95eJ�g|��t��P��L�]���;k�w3���)�8э�`oۜ�*X�X�d��&}�5��T8,�6ŐV�G.'�f�]��Ib�d݈ٲ�K��bL����!�̞�&�yj}�� m��q~|��F='�M 0�.�� <A��<�6Y�ݹ�<��m<�K���nJ��A���橻���"����$�y�\U���5��'��`e�"�����#��f�Y��`���u��O��\,�H��P)^��d�dn�k3gƑ�ƃAmM���h���� �xbwL�U�,�]&I9Ҵ^����`��rwp:�Y�iZ<R̟��7m�!��V����3�ni�v���}���{%�>X���x�����߽T��� [�@ +�x�z4\�!��������0�;J���NƬ����]���$z��6�K���u�����c�]6���y/�Q�'�;pG�;ڸC0Ѕ`O� +Ƹ4T�� +Ke���01V�����L/�Dyb��S�)C! �J4�#7ϖ>�4�%T�L��n\�1�E9�b|e2O��[� +?��:E����k�H^'r�̯��áRp8��*��Y�*!�ǒ�u=��W#�_���u������6�*#�[5���`vT�ԡ�SNH�������ߛ��o�窮�/+U:ꋪ$h�;O^���T ���[�TAM��['�"���:�b��\)dL��T*$ =_���tV� ю��HMg���|��5�PU�.��P`�Σ -)Yb�l�`�Kr��F����=~)����Z��tCfk^�k]36��6`��n���$�1&���{(���~��I��E4�G��f���M���.�X�i�M�a �P�u�p�BF%�\��l��2[�G�z��.[�2=뚯�^������y�&�0|��} ��߉0�ѳ'����ٲ'�&̖�hǺm��mF��k2���6v�(А����DD���%X������V0G�Uق�U}�f�^dZ�o?8f�?v�ZM��CX��jP�"NO0�#!8\��f"7A�W����!)�s?~n����O]�"��= +endstream +endobj +7765 0 obj +<< +/Type /Page +/Contents 7766 0 R +/Resources 7764 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7696 0 R +/Annots [ 7761 0 R 7762 0 R 7763 0 R ] +>> +endobj +7761 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 355.535 171.594 363.672] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7762 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 343.58 171.594 351.717] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7763 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 331.625 171.594 339.762] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7767 0 obj +<< +/D [7765 0 R /XYZ 69.866 801.979 null] +>> +endobj +7768 0 obj +<< +/D [7765 0 R /XYZ 70.866 771.024 null] +>> +endobj +7759 0 obj +<< +/D [7765 0 R /XYZ 70.866 477.315 null] +>> +endobj +2058 0 obj +<< +/D [7765 0 R /XYZ 70.866 450.12 null] +>> +endobj +7769 0 obj +<< +/D [7765 0 R /XYZ 70.866 294.898 null] +>> +endobj +7764 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7778 0 obj +<< +/Length 1299 +/Filter /FlateDecode +>> +stream +x��YKo�8��W�h5�7���h�EO�ַ40d[q��#ѣI��Eʖl��i�� +�}Ù�C�����W��ń�-"�j��b��3��þR-n�&�S +i�aE�b����`���L{�"��0$S��O>GqhG���%�0�u8�Y|A�{Xz0�8�i�x�i1y�PxJ��y��@�dr}C����}=�3$$�Rp�������߳E1ia��u��8 �|6�r=-�w=�r�� -��T����i��A$�?��yȗ�,I�t� +�3p�?�3@�Ͳ�VEy0=H7������M ��\\{��9���58���{�G�F� @6�up1�M�^�eU�e�&�,%%��ׄ:(N�'�����[���ꃱ� X�0���)�>`��W�&�Y�tĤnt���e��XDubZ#N�"�淫� �3�(ƈ�AXQ� � ����l��7���K� ̫���� XgO�ꉻ��Xg/ϩ�XJ����7��u%� +�SCL ��C� �SDmN�Gi�n�=e���'��G���^Q������W{/�V��̥��.�֥ /�U�SG��]� ! +���rn �:c2M��%�S:-:��˵��C��z���]�}M���%��l��!� ��A�IԳ��1c�ıҬI@��%s�HJ����K���I'H�I5��+K8��Ùg�|y�:J�)Y5��n��:Ҝr�����&���p��!f����.°"����!u�?)����"k���-����"ks���J�_���->҇��.��eNc��8�'��yBc�Ә�G٫�i}+�$�J�����Ы�� ������%";��c��e�e"�ÉL����!2Ͱ&�"G�/�6�����/�6���\iWfy�>7����<�@�����.�p�g�W���0WU倾FQ�˫Mj���E߯�6���������HorPh��z�c�����|����4V;��[#���F7�����n)�/7;�`��e����R�FKt��d��.|��}h�U^�zEE�^�Eq[Ż���u�8��iV�s�ݚ���������k�h�{R;Һ{{3o��A��Tx�m?��{h�.ӈ&����i��q������:sp��.� �x囶���aMy���y�L���e4��Z]����v�vI�Pt:�qu��1}���v �[t ��.��.ዻ�WAUQc�8J��uL<F���Y����'����\��E +3 7���-�RN�Wa�A��y�cfR����$�Z���4:? +endstream +endobj +7777 0 obj +<< +/Type /Page +/Contents 7778 0 R +/Resources 7776 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7781 0 R +/Annots [ 7770 0 R 7771 0 R 7772 0 R 7773 0 R 7774 0 R 7775 0 R ] +>> +endobj +7770 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 601.595 171.594 609.732] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7771 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 589.64 171.594 597.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7772 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 577.685 171.594 585.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7773 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 140.127 171.594 148.265] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7774 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 128.172 171.594 136.309] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7775 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 116.217 171.594 124.354] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7779 0 obj +<< +/D [7777 0 R /XYZ 69.866 801.979 null] +>> +endobj +7758 0 obj +<< +/D [7777 0 R /XYZ 70.866 723.375 null] +>> +endobj +2062 0 obj +<< +/D [7777 0 R /XYZ 70.866 696.18 null] +>> +endobj +7780 0 obj +<< +/D [7777 0 R /XYZ 70.866 540.958 null] +>> +endobj +7760 0 obj +<< +/D [7777 0 R /XYZ 70.866 261.907 null] +>> +endobj +2066 0 obj +<< +/D [7777 0 R /XYZ 70.866 234.712 null] +>> +endobj +7776 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F14 3888 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7806 0 obj +<< +/Length 1764 +/Filter /FlateDecode +>> +stream +x��Ko�8������j��H=li�m��6�i���m��G�G����C�$+rm'��!�,�3��7��ד���Z�l--l���^�ٮ�!�qlkrc�y�c�>E�&�rH�7����lxg3:��ga$Fc�z��t^�")�"L�t�f2�2 �[d-��G�5����Z��wH�=�A��-�mę ���y�im&F��[y1Fs�a�C�nj�G� �,�E!�!�\YV����p���x�m�� ;�rF��#Z�Lj����t�g#JA��\�]台cfv�M�CU:�9 �c��4���\�F�P�`mM'x��vSg��>h4���2��wz���ʰ���~p��m�C�>��m>l��~T:ұ{;J���:�1�9 ��8g7d��솬�4��0�ݐ�u�Ө���`lo������(Ǝ�a#:�;��3��1�"B�70v��n��JO.a=>���=�fC7su��0)*Ȋ���6qA�E��(2��f�s@�)r]��UvCVW:� ׁ������~D�P̋�4��>���Vn���.��Qx%��h��y��~5)JZ=x������i�F߀�a�;k��Gl+U��������ۘx�WG����=k��=O{�Be�4��ښ Ja",�sH���W�������a�l�G&"0�%���fn�y!b##7���\��M��K`+B�5�_Bg��� wc�Rީ�_�+�f#��P��>�u���������&�����(�w��f�(�D��N뙯GE T�~�����C����=���B���� +s��ԩ��.E1� Fr?�t�4�ɲ�s�R�hw�� ����y�E�B�K6�c}����@�#ߵ=I2cq�W�W�a� +�ZA��Ѫ�X7hĘq��1&�(�Y0��}����4/gyQ��{��B��f�!E��@�㫼�F +��+3��\\�1V$�����͙�TN*���6��1-�MR��7�� j�(țhv��irb��ߪ᫋�K�+<�a76Ŗ+ �yT.�����$|D�_��\��Vۻ\��x�Y.L�dp%�+u#^��ge2׃����= +1�5v�Ⱦ��7�X�c�HoZ�7r_Ȗf��Pm��n ���q R � �ћe�4�����_K#º4m*���XY���h:+��h�L5�/���/�����%1����'�G�(aH��H}�?2�n�I��� ��(�p�Xs�Ժ���Ͳ��n���#F�&�2�w����R����4� �|�I�H�4W;�q�۴��*�B%U�i�k)�}�ҝ����b����6tcX��?c�LW�~0E�'�~�:z��B�v�^�y ��O�r>O +������)�ZM���} H�BP�������e����o�0�Z�����; sZ��f[>It;��68�AI�A W+t1�Ω(�mLu*�y�U�N�.m��\��NJ�u1c����m����ws�\��E$慾�' +�u���Mw�^�|eޚVE��3�SoL��<�mAF6���N�����m]Gy�q�ό �~�듉4W�"h4�}j\�]]���&���<Z�zT~e<�A����-��@��U�[.����u3�� =�=X�N��8�k��I�\D�)�O�Ge�J���� n+�m�� �C#M�b�Z����ٵÑX����[���0�A7�x&21Z�NӺ���.�k��?��SD�j����3�l:���s��,(��`NSI��ץ\fdm���?�J� +endstream +endobj +7805 0 obj +<< +/Type /Page +/Contents 7806 0 R +/Resources 7804 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7781 0 R +/Annots [ 7782 0 R 7783 0 R 7784 0 R 7785 0 R 7786 0 R 7787 0 R 7788 0 R 7789 0 R 7790 0 R 7791 0 R 7792 0 R 7793 0 R 7794 0 R 7795 0 R 7796 0 R 7797 0 R 7798 0 R 7799 0 R ] +>> +endobj +7782 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 323.959 141.896 332.443] +/A << /S /GoTo /D (solve_8h_a829e66492dc3073c0f7a190cda9b7db1) >> +>> +endobj +7783 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [226.624 322.986 260.635 332.443] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7784 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.716 322.986 322.727 332.443] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7785 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.651 322.986 379.662 332.443] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7786 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [440.872 323.879 496.168 332.65] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3) >> +>> +endobj +7787 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 295.816 196.222 305.273] +/A << /S /GoTo /D (solve_8h_ab6336aff7fbff116a6118b39a0d1e2cd) >> +>> +endobj +7788 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.95 295.816 314.961 305.273] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7789 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.042 295.816 377.053 305.273] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7790 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [399.977 295.816 433.988 305.273] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7791 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 267.727 172.569 278.103] +/A << /S /GoTo /D (solve_8h_ac728f92ed0a0cba0e8776222acfe1d88) >> +>> +endobj +7792 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [257.297 268.646 291.308 278.103] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7793 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [319.389 268.646 353.4 278.103] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7794 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [376.324 268.646 410.335 278.103] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7795 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.2 240.665 190.735 250.933] +/A << /S /GoTo /D (solve_8h_a96faf0d4f04f27a12e4ced0bffd0f634) >> +>> +endobj +7796 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [275.463 241.476 309.474 250.933] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7797 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.555 241.476 371.566 250.933] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7798 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [394.49 241.476 428.501 250.933] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7799 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7807 0 obj +<< +/D [7805 0 R /XYZ 69.866 801.979 null] +>> +endobj +7808 0 obj +<< +/D [7805 0 R /XYZ 70.866 771.024 null] +>> +endobj +4299 0 obj +<< +/D [7805 0 R /XYZ 70.866 505.3 null] +>> +endobj +2070 0 obj +<< +/D [7805 0 R /XYZ 70.866 489.229 null] +>> +endobj +7809 0 obj +<< +/D [7805 0 R /XYZ 70.866 360.705 null] +>> +endobj +2074 0 obj +<< +/D [7805 0 R /XYZ 70.866 212.272 null] +>> +endobj +7804 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F70 4395 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7819 0 obj +<< +/Length 1475 +/Filter /FlateDecode +>> +stream +x���o�8���W�1�6^�^������y�VQ��)R�n������` + i���C2f�c���3�8���h��Z#�.G��F/��|(���y�J!/`XQ4[��1%�&S���4���pK����\�m��������x�'���HpK���cA�<�c6�>��J���>��@�htsK� +�}F��G?˞�c)8�o���?c(ܔ�r�(&�Q`6�RB��"��Y�����d�G:�e��7)M=�*�0���Y�F$�5�K�<x���9ž���q�ϳ�TU����@9m��$�R�����K��9�a����9�>��Om�A���Ȭ�vm���r��h�m�'��[�=9�1�A%wv��y�ۛ������w7�0E5T�i�_��5��q��!�)!:�����?g��ty,{�V^,6�����O 6�}1��Ô*4e������09�aaa�X�wdlP���ʽ* ���B����cb�M\�SZ݄�^lmpzN3���'s��\�D�gs��a�6�ك��K�l�7���DB$��I�'T�?�ǟ�<��f���sۚl��\�f�qjg�&���0{��Y�+���/�N���'�*ǔs3� ��v��)��%n���>� +��P̥��ol���I*�%���ށ$c���c���1c`)���*�~N(�0tJ*w(<�D5E�M��2���M��#'`��ۤ��).>�yt�-v��~E2��=p�}�a;��CB���m�s�Yq�ņ������(L��� �l���;(��N���L6y�dG�|��N��$2�T*�ޡB�@&����������5Dˣ�/�e�/C7ЇV�><&p�(˒S(;��B��n���f�R�q�C���y��A.�O�0�v�\ѻW�5L��.W��.sJ[f��n" ����h7�� +��I��d�&�1�[����=�$y�A�0�v�\U�F�S6L��2W��2�-�+ s����=L�n���d��& 9��g()�MXAb�͆I���V��� �mG̕M�2,rc����L.�B�Z��e"��x2�Բ~��i�7WgɪȰ��<z��d� �M��<�F�/7p=���@Ank+�:˷q3�K,�UdAH�DTUC[/��Z�a �-h����ny#���r���>ߔ�UT����Fr��q���O������Šs]P���EV��;.�IF�Ʀ����Tл܍��7�ݲ�OxUx.�l|��Ӵ*݈���ԍ-�hu��̃6s��oK�̶�%�yK���_>{4������� W��T�vs0_�F�z�N����^�E�����+�L�Ǫk���+i���p=oL�N�~/�^����[_4���-�3����5x�R �Z������/O-ŷ,Y��פּ�@B�k�g)\�J�m5�WU����^�O���U��)8h*�|{��JYz/u����-��'Etzz^�����⢊ +endstream +endobj +7818 0 obj +<< +/Type /Page +/Contents 7819 0 R +/Resources 7817 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7781 0 R +/Annots [ 7800 0 R 7801 0 R 7802 0 R 7803 0 R 7814 0 R 7815 0 R 7816 0 R ] +>> +endobj +7800 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 619.381 171.594 627.519] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7801 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 607.426 171.594 615.564] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7802 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 595.471 171.594 603.608] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7803 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.255 584.44 200.286 591.303] +/A << /S /GoTo /D (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3) >> +>> +endobj +7814 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 131.474 171.594 139.612] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7815 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 119.519 171.594 127.656] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7816 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 107.564 171.594 115.701] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7820 0 obj +<< +/D [7818 0 R /XYZ 69.866 801.979 null] +>> +endobj +2078 0 obj +<< +/D [7818 0 R /XYZ 70.866 771.024 null] +>> +endobj +7810 0 obj +<< +/D [7818 0 R /XYZ 70.866 741.162 null] +>> +endobj +2082 0 obj +<< +/D [7818 0 R /XYZ 70.866 713.966 null] +>> +endobj +7821 0 obj +<< +/D [7818 0 R /XYZ 70.866 546.79 null] +>> +endobj +7812 0 obj +<< +/D [7818 0 R /XYZ 70.866 253.213 null] +>> +endobj +2086 0 obj +<< +/D [7818 0 R /XYZ 70.866 226.02 null] +>> +endobj +7817 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7830 0 obj +<< +/Length 1534 +/Filter /FlateDecode +>> +stream +x��Z]s�8}���ўIT}K<�Cw��N��i�Ҍ���&��{�Q����C�9WWG�ձ���|!�6�ao�a�����ٻ�Ly�R2���Si)=�S$�w��������g��3�%�X���ۇ�k���C�.�0|��e����3-�G�Z#M���fw������ ��{�ZF �����:��&FT�ˋ ZKВ �M�_�σ4��<L�̳*��!�3�DH4��?xY��������fi �χ�PY&D3D) 1�`t�|�,#C�B�����=�,�����+F�� Ѷ8!ۜ�.g�,��?�Ҍϋh��O�k�h�9<�v�����3�Q�r_i����l@c�0�Ȩ���K���k���"s����M�̍�.�6�:�Q�q_�!`6L��$�1B�v�+>�4F"D��17J��ڤ��`����7��`�\;���.�������/� ��E6 ���5�ܿ��0EJ��"s����M�:-.Gn���������b���4X-8��Z_��iC� +i1I^� ��@ +��KB�˩)Q�"���U^��e��ϐ��Ub�a�AlEu~8�T��`�2�u�&Im<�ȳ�dQL�Lބy���Ms= Ja <s��f!Wu�w�����ۣ����00��(�ױ�^�<�Ff��u�ež+��"�z�x��q�;q[� �R��jA�N����T�&��#�Mi�!��1�w���+a��`ڭ�W�a���Y:E9��I�����0 c�{�X�W�{iY�q����u�4����D�H��$��x� +�e��~*# ��2+VY~�<�7����86!�|o�v;a�æ�X���(�#� %@j����T7�i�q�.�"��&L� +j�|���bv�C���%����ԷK��c� ����̼_��ȧ-"�a���G��,�\�6N��Y�*ݚ������R1�X:���1���6V +j���\f�P3KW��]�����z��-CV5�M�W�u���r��v&��Ä7�Y�j�[���`�JkI�&�䠈*��U�96�֪��/��Z�g{.TQYj�Ǩޱ�{���31�!Ɯ];�a���M��+E�8<�0T �����GJk��!p�9��a���\��!��|�d�8 È���%DVn�g8Î�v��8<;GJ��Z�ofٍ�/���O�$#0.��y�q�B�&%=C`N�v}�9Gvn!����r~�����5Q_S ��E¿��Bȇ�3��FiX���Αۮ�6�Eͺ�Q���J?y�7�0��Hy���7��g�u��v��Yϴ���"k�]7>ؾNJ+KL���c�]G������8��a�5%H��Дo����O;h-��Wگ: Nύ�V~�'�%��_*��2 +R�tӎC�Y�Dk�S��$�1鼈����<��-�Ļv�N��>�g Ti���%R�C)�����{GBp�B�g�Oa�An33?$e�_��1 �<���� +endstream +endobj +7829 0 obj +<< +/Type /Page +/Contents 7830 0 R +/Resources 7828 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7781 0 R +/Annots [ 7822 0 R 7823 0 R 7824 0 R ] +>> +endobj +7822 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 366.207 171.594 374.345] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7823 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 354.252 171.594 362.39] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7824 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 342.297 171.594 350.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7831 0 obj +<< +/D [7829 0 R /XYZ 69.866 801.979 null] +>> +endobj +7832 0 obj +<< +/D [7829 0 R /XYZ 70.866 771.024 null] +>> +endobj +7811 0 obj +<< +/D [7829 0 R /XYZ 70.866 487.988 null] +>> +endobj +2090 0 obj +<< +/D [7829 0 R /XYZ 70.866 460.792 null] +>> +endobj +7833 0 obj +<< +/D [7829 0 R /XYZ 70.866 305.571 null] +>> +endobj +7813 0 obj +<< +/D [7829 0 R /XYZ 70.866 82.821 null] +>> +endobj +7828 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7839 0 obj +<< +/Length 1514 +/Filter /FlateDecode +>> +stream +xڽY�n�8}�W��X�I�t�&@�vӼ��!ۊ#�.�%5���P�d�V�[���:g8<Ό?���M�u1��������ɇ+�<�)�w��)���� +(�Ļ]ywSCx�S��E����eT�hiG��$�o7�Ì�i���e4����q����jʈ�|��|��i��F�ro�N���}�0b���뙩�C�3xO����X�$w�D��c�V�T�U��ӧoX`�� �p%��P�01h��AZpg���3_��AU/��O +��_W��&����U�~��ͱ��4ĬF�X�o���7דcHҰ��/��u�g����x�Vjz����.d^ܥ�3�����زzb{� +�AG�>� + A=�r8N�_A\3*��x��}y��p/�* ���`�e�t� N夕DmO���Yn�!�Y�Qj�?������q<}o߫"����|tF^�UQč���8����s7�����)�ז�-F��s0��)LJ��>(�l�yԛG�^�8�1D�K�{F�4܄iTF�!Ӣ��C�G�#L�B� �6�-� R�A��Vc0h�tu��m%��ԓ�!��h�r V��,Τ��M ��e�4��S�gr�E� �qn�H��j)3Q�."���aG��[�9}D�6S�eg���a.�j)���ÉLK�{� #"8Bd�Q��G����<�A��8�yR�ٯ����� �8�a�]��4�(���CK �8�1%����G9��.i��hI�{�h�<�5�)��Y�_"��M�l��Pc�@8� ���o!1 VGH�<�a�uIGH�<�aiu�ǥe��e�o:�߈�N�r_���!��"�/���o�/�ѥ(yU��<�a�uYmqrXd�����?.2����ɉQ��l�N���C��M!үl�|�~��~�����j���my�� +��AY ��]UK\�?l;9��[���W�ҭ[ƅ��˨(���*�)!&������Y^GNw���\.fO����wf@H]n�)25wo��-�}#���E�I��,ϲ]H�h�aƚ�����^�,��nj0���:*�p��J~�[,͛ a��8�3�����;�#3K7�E��.��f�y�P١@1]�O8G"۶�n�̒P�f�?�aႀ6v�Z�E�4��ٸ#ܬ�E�(����;�jnF�����=��AI( +��1R5=E�a�4&�l��,גT�E��/a��DE_s�Sx����w���gˤZ9��6�RA��}�K!��fZQ��=�qHy���s�<�N?�5��ξ���ߵA����x��������ư�A�,!�_��U�-����c�2�uס��o���7ޝ���f�^�z¬�4ku��4�E8� \Ӯ�n��@���p��/��k>�[f��5{['-�����F�����F|���^wp���6B!s���_`�_^$�ʤ{۴E )ݚ��,ڄ�P����P��smB�4�v-�ig/� +endstream +endobj +7838 0 obj +<< +/Type /Page +/Contents 7839 0 R +/Resources 7837 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7781 0 R +/Annots [ 7825 0 R 7826 0 R 7827 0 R 7834 0 R 7835 0 R ] +>> +endobj +7825 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7826 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7827 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7834 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 112.329 158.116 121.786] +/A << /S /GoTo /D (solve__test_8c_a468b4492daa139d24a18624526001220) >> +>> +endobj +7835 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 83.051 204.588 93.427] +/A << /S /GoTo /D (solve__test_8c_acb6c59801ca040ac66f436b8f332a371) >> +>> +endobj +7840 0 obj +<< +/D [7838 0 R /XYZ 69.866 801.979 null] +>> +endobj +2094 0 obj +<< +/D [7838 0 R /XYZ 70.866 771.024 null] +>> +endobj +7841 0 obj +<< +/D [7838 0 R /XYZ 70.866 630.66 null] +>> +endobj +4300 0 obj +<< +/D [7838 0 R /XYZ 70.866 341.034 null] +>> +endobj +2098 0 obj +<< +/D [7838 0 R /XYZ 70.866 324.075 null] +>> +endobj +7842 0 obj +<< +/D [7838 0 R /XYZ 70.866 154.167 null] +>> +endobj +7843 0 obj +<< +/D [7838 0 R /XYZ 95.773 126.356 null] +>> +endobj +7844 0 obj +<< +/D [7838 0 R /XYZ 95.773 97.997 null] +>> +endobj +7837 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F14 3888 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7859 0 obj +<< +/Length 1238 +/Filter /FlateDecode +>> +stream +x��XKo�6��ҋD4I��T�ES86_R{�C� �%�`=Q�#�>ÇvWky� v�CO�����7�)�O?g)g�Y:�9��1�������/���s'J(�ę�΅K�}�p�B/�ᣢ�O��=l��u�vES+�����ˌ�%v��e���NV�.>a'��xLb�N[VN������s6��L�Q������0cD<�`��Cѥ�1�����f@xpD��]c�(���y�V7����faZٔ�E�4eQ��5}�7;7f���s�� |�%��}�}^̔`w��3,��\�ۥe��x�\�{������N.�:S�IpE��#�TW5�@<#�� +xb��Σ��w�����͔"��Ob�Cf��^+��"5{;IeUXoFB���;Qp���G�e��A@V�_�ջ��-z�J�@0���7B�(!�)>�2��� +C�QҠ#E��� ١�A�Q��Xx��u&��CQ����X+��ơM�!�;��#Eq4�%�lW0q�ZJM�?Ss��)�)�_q�\�� �p�;�0-�(�(��+��E�ze�L�_���b��J;���[�?��alai��0�ez�gQ9)J?H������Ce��_���:���4��m��,���ecw٭*�q*�j4 ��V��8�2m�ӹa7-{a�E�T7�,�P��R������6��6J|�En]�"Rj��}0c�����.ޘA���[գi�Yx燃� A �������il���+P!��_M�a��ۑL ��K�%����G1l�&�0�Q�t�9�d�[�n�ꦐ�})�+%�HG3R�:]�oͲ���j�|ҳ}��H��<��r�~���C2�8���Ρ��*�P�T�c���������c�\�f�n����֬�+�i�E/u}T�F�0vܔ���p>�t�֪s*�Zf+c��f�~=�L�N%����Im���H��8�Y�Rȟ�]�^C��[�Zӡ;�iE�g�i�[�]�ʱLU��"�*�̐^t�66�w��䧢��>����DP�I�_&\E( +��@v�UӔp�'W�M��|±�t^]Qw�Í�����|?<J���rd5 ���1�Z�y5d�k!�&��qS��6��I���h�����}��[���|��up��L�����qpR��N;�Y״�v}���/����Wb���x�y`!b,�qn��Z�i7\l��i�����R�\\Q�B��mi� +endstream +endobj +7858 0 obj +<< +/Type /Page +/Contents 7859 0 R +/Resources 7857 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7781 0 R +/Annots [ 7836 0 R 7845 0 R 7846 0 R 7847 0 R 7848 0 R 7849 0 R ] +>> +endobj +7836 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [258.958 702.971 281.654 711.455] +/A << /S /GoTo /D (solve_8h) >> +>> +endobj +7845 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 652.506 297.675 679.046] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7846 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 501.117 158.116 510.573] +/A << /S /GoTo /D (solve__test_8h_a468b4492daa139d24a18624526001220) >> +>> +endobj +7847 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 472.233 204.588 482.609] +/A << /S /GoTo /D (solve__test_8h_acb6c59801ca040ac66f436b8f332a371) >> +>> +endobj +7848 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [258.958 359.871 281.654 368.355] +/A << /S /GoTo /D (solve_8h) >> +>> +endobj +7849 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 309.406 297.675 335.946] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7860 0 obj +<< +/D [7858 0 R /XYZ 69.866 801.979 null] +>> +endobj +2102 0 obj +<< +/D [7858 0 R /XYZ 70.866 771.024 null] +>> +endobj +4301 0 obj +<< +/D [7858 0 R /XYZ 70.866 643.488 null] +>> +endobj +2106 0 obj +<< +/D [7858 0 R /XYZ 70.866 637.008 null] +>> +endobj +7861 0 obj +<< +/D [7858 0 R /XYZ 70.866 542.106 null] +>> +endobj +7862 0 obj +<< +/D [7858 0 R /XYZ 95.773 515.144 null] +>> +endobj +7863 0 obj +<< +/D [7858 0 R /XYZ 95.773 487.179 null] +>> +endobj +2110 0 obj +<< +/D [7858 0 R /XYZ 70.866 443.128 null] +>> +endobj +4302 0 obj +<< +/D [7858 0 R /XYZ 70.866 300.388 null] +>> +endobj +2114 0 obj +<< +/D [7858 0 R /XYZ 70.866 293.908 null] +>> +endobj +7857 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F14 3888 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7883 0 obj +<< +/Length 1642 +/Filter /FlateDecode +>> +stream +x��YYo�F~ׯ�# Xk�ˣ@��M A�Ē�P�h���+��s����.%�:,ۊ۾��=ff��f�:_~�Ƣ��°����ƃ��7z�c�o �&��~ȈG��ܘ���5d~`�s��E�%jt��Z�6�"qb]�?��B`��Ӄ?ƃ�fm��Pw�8L�mck�8a`|�;s����� >o ��<���{�؍����t%J)Cs�����kS���o#����/���c:��3,��U:�kx�b�ou)wiU�I5���ӼO7|��][�LE�*���L=���8;�)���Rn�ߐ�^��FeRC��pS֘�mK����0�͞����CwC��COe�MR�x>W~���J;L�����l�^W������ĕ��&9dH� �8����%����[�m��%��.�hIJB�g�rd�ϔ���)�C��X�:[6�>ʔe*�`�,�I��:)gR�v7ﱪ]���j�n�b�f�.8��7��(�Pq!4A���.�]��>T��2��u(:ps;:�]l�N�멸ަ +�)�~��L��@�~��sI�2����0����!��库�&����9*��x�%bQ-_� If����p*�����A�~����z+>F���˷%S5�.�a��L�5(��&��X��0�5�S��"���b�����n�s��N��s�EgR�v'�9�8hs){��QQ4��K{���-���!n��.�w5�����-;U]+�g�Zu�6ۇT+�2�Kq�� ��à�E9�m�H�ՠх��P1ywT��ġ;� +�MK�G�m��6U�����2.�{ <�� �Bo�;ͷ�b��W��:Q��c�8�P��������w��w� wDm�T��Qҹ&)�8)KI�6���<���y����d�h_�DL�Fq���bow�Z�`$R�����Y[-�Q�+��N��$�K<�����a�S�eU��)��.�"i$���������m��t��!�zP��b%$�t5!4���>�My�FIN��+��6�N�����y*703|H��[� +��3�}�sn���:*q7 +���4�l���5¯�V>s�WY}@��}�����e��2^�Q?���R��X_���RK"�.��˭�Q����>I;�?�M��F��I&�:�,cl�z��1�m ���F6d��jl�8��inyZÍ�\��{@���.b.���*Ew�֦��Ǩ�SMM}��3��G��ci�?��쯩�%��z�,d��i���8l'3 ���; ǫ��洊6���z �|b;�Cj��f�{�<%��Ccl�h��Y{�cj ��y�����骣յ�_��E� ��~���l���q�c)�M��0���J�=v�: v��l�5��g]C6v'V́�� ��9��<FgOg�h��sخ{�;�jhmf����D�����}�z�%C��n��Y� �����՛`�p-���{��R�T`ΌD��_Mi��<}�M�~�\��'PV���{�M��5e�����'��Y�EZm +�&c� ��H����vU{�I��_������X�o��蹭?�\N<O���D$ET5&l +2�Z��߾/0W���K� �� +endstream +endobj +7882 0 obj +<< +/Type /Page +/Contents 7883 0 R +/Resources 7881 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7886 0 R +/Annots [ 7850 0 R 7851 0 R 7852 0 R 7853 0 R 7854 0 R 7855 0 R 7856 0 R 7864 0 R 7865 0 R 7866 0 R 7867 0 R 7868 0 R 7869 0 R 7870 0 R 7871 0 R 7872 0 R 7873 0 R 7874 0 R 7875 0 R 7876 0 R 7877 0 R 7878 0 R 7879 0 R 7880 0 R ] +>> +endobj +7850 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 735.563 177.77 745.939] +/A << /S /GoTo /D (svd_8c_a8194826f85cc3105c4d8d4f342ca8df8) >> +>> +endobj +7851 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.498 736.482 315.938 745.939] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7852 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 708.205 177.277 718.787] +/A << /S /GoTo /D (svd_8c_aeb7ac3eac076a0f52c729849599808a6) >> +>> +endobj +7853 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.005 709.124 315.445 718.581] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7854 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 680.847 177.277 691.223] +/A << /S /GoTo /D (svd_8c_aa65fbd187ce13d0da98cecb40cfa3b07) >> +>> +endobj +7855 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.005 681.766 315.445 691.223] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7856 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 653.489 238.991 663.865] +/A << /S /GoTo /D (svd_8c_a91b85e542b1fc44d3500ba52aecb8e0e) >> +>> +endobj +7864 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.767 628.023 130.711 636.507] +/A << /S /GoTo /D (svd_8c_acdccfce5b7732e6334ca5a521c57e63e) >> +>> +endobj +7865 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [222.471 627.05 256.482 636.507] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7866 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [400.184 627.05 434.195 636.507] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7867 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 627.05 525.406 636.507] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7868 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.653 615.095 169.664 624.551] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7869 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.03 615.095 334.04 624.551] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7870 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.578 586.818 252.889 597.193] +/A << /S /GoTo /D (svd_8c_ae92d53fe415ccfd63a21bb36936294cb) >> +>> +endobj +7871 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [412.625 587.737 446.636 597.193] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7872 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 575.781 128.787 585.238] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7873 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 547.612 234.221 558.087] +/A << /S /GoTo /D (svd_8c_a55b4a07eb7dbd09f7fa1d15debd44595) >> +>> +endobj +7874 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [318.949 548.423 352.96 557.88] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7875 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 383.221 297.675 409.761] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7876 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 210.398 171.594 218.535] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7877 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 174.532 171.594 182.67] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7878 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 162.577 171.594 170.714] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7879 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 150.622 171.594 158.759] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7880 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 126.711 171.594 134.849] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7884 0 obj +<< +/D [7882 0 R /XYZ 69.866 801.979 null] +>> +endobj +7885 0 obj +<< +/D [7882 0 R /XYZ 70.866 775.009 null] +>> +endobj +2118 0 obj +<< +/D [7882 0 R /XYZ 70.866 519.134 null] +>> +endobj +2122 0 obj +<< +/D [7882 0 R /XYZ 70.866 369.23 null] +>> +endobj +6373 0 obj +<< +/D [7882 0 R /XYZ 70.866 327.298 null] +>> +endobj +2126 0 obj +<< +/D [7882 0 R /XYZ 70.866 300.356 null] +>> +endobj +7881 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F14 3888 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7896 0 obj +<< +/Length 1358 +/Filter /FlateDecode +>> +stream +xڵ�]o�8���+��q�m���n+��l�n� +1)M� �MH;���Lł`��*Hb����96�����[��[{ػX�q�8=g�Q$%�<�Q(��"�$��;�2<\��Ƹ����7�4XR�g�ꐥy���"�M]/�]h�=�2QH���w�{�߾{1 +���e�q���η����w�Q�O����bZr��G@���,-�]@����5!�A��q�!��3yw��1�Rx +��@h�&҄�S"�RB�NI���!�[edcB���J��(FgQW4�kRB�5i�Ҥ$(>i���3��O���\<����Л%%�l~�_|C}Ϝ�Ј��s��4b��Y1eTB��WP��2ʎ��M�NY[4��M�NY[sUlY��@6�r!�fA6+��F�El�+c�� d'š��M�Z[���b(���8���;xm/�&/��bi�=�)�d8�8i�bԤ�(DR�Ѯ0>�HH1>��)�kk�E�M�U[t�yp��6�v���p��l^�Y�QD�|�du?,���I��YG�,�n�V�:��V�Q̦��#`���٬3�%���S*�(��-���v���7�/����=L\8Ga��O�~�V��y1mB"L��x��3B��H�cis������@��;mmi� +�0m�}�I&♴͊ah�I}���%�I����������<�ik{�H�m�Y�m��>*���h���F� ����`�CA��as�����o�u��ȥ�x����y�57v��.����M[<l��Z�@�n���Y�f&:��Y1p��F{�� ��]H�4��}���ּ%�C�o�;b�s�cG�����b�&1�+�+�aѪ{�xѩ}�ӥ߶�yo~b�skb !N�:�g�=�4�T{8Uf��>n7��!Q���%�.��������r($3a\�O�~�K�U�,�(����]��V�x��q���8��R��=�� ���j�xUd/�2�_̥y��W�m�ﶦ~��Fe�T[Bد6�*��c�O�c݇�s�<�"�B�1�9�h���1Ǧn��H���Ͳn�I����R����y��\d�:��Ⰿ��|�]5�@u���WBzC�^�I���b�);���!A]�s}Q���x���@��P��g�r ���~�y��\D[rLj2��X-M������ӕ�[���X#�q��~�'9���w�Hv����.���\�ԟ�%`���@6�����e�����T��}�QH��˫۳n�'��J4��*�O��m��%� +��s.��#�ҼN����A9�>4�J�+�'�_�,�4�l�?5�p +endstream +endobj +7895 0 obj +<< +/Type /Page +/Contents 7896 0 R +/Resources 7894 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7886 0 R +/Annots [ 7893 0 R ] +>> +endobj +7893 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 397.998 171.594 406.135] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7897 0 obj +<< +/D [7895 0 R /XYZ 69.866 801.979 null] +>> +endobj +7898 0 obj +<< +/D [7895 0 R /XYZ 70.866 771.024 null] +>> +endobj +7892 0 obj +<< +/D [7895 0 R /XYZ 70.866 519.778 null] +>> +endobj +2130 0 obj +<< +/D [7895 0 R /XYZ 70.866 492.582 null] +>> +endobj +7894 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7904 0 obj +<< +/Length 1551 +/Filter /FlateDecode +>> +stream +x�͚Ks�H��| +�*����q�M�r��d/���X��)"�o�=�֠A��. i����|3��$O�N��|�5�|`*��Hɒ�c�0�R&�P$I2{H�� <��)Uz��������:�����6͖��n�)�L#�5H�(��������8!!��:O��ѷ;�<��O F���W�r�p�������蟃�Qao�Ņ"H$I��.���Nj�b��vB�xWz�MF=y��*~���6�R$�cD �К!L�3Q�D$RB�M�f�R�Đ�^/3�ʚ}C0ALо���+$� E7M�W��&(�4CR�Ps�O�����,���=@P���k���, +x�~�7��n���l�8ax����S��\����O�f�L d��ˣl2Š_�Mts9Ȇ�JH���>��.�Iƹ��f-\�ӌsY�\���&{%X^d)0!`� �r� �%����pх%Q�q��$�X�Ek�>_l���^�@�ϣ8�u�~䫬��P����5A��D7l�lT�IcѼ#�4�b S��f��b�@�4L�$�,�%�t���ź�.�\�b&=l4����D����}�c���U���EQ]� (%e� �O���ܔ���)尟v��;s�w��TH�%�ͼx�V��[y�L����w�߱��G"����Yw��#p:0���SZ�w��i��m<7K$2�i�=�9F�c�w̱k�k�`��Է�V �N�rAQ*��7������X�ӝ���_�+��!ߥ�_m��Q��H������^�l������dyC0oB�1ƕ/�~m�� +z�e���z�������N%�+H&N��1Ip��|�J/p��-mV���2p��J���:z^T���T�H��}h4��6�,f��e�i�T<�q�F;=l��<�������&8wi±3�5������w�z� ��`~ʗH� �@1{��p0R*��w��ǾH�v��� Gb��e���&:ΞW;�AI��܍H��~���O��N��b�Q%����3~�"�C��4�Ԝ^��٨6:���E��\��t�L_�p����h�A1l5�}ÒlJ�/B�WQ��<2�G�M���t��l8.�D���������e?�8�uѬ��~�q.뚯�q��� �HQ�t��n,�pX�\k� +�E�ta �)%�,�IƱ��V[�6� �ٌ�Y�=Hɜ�Oئ:H�^���]E0A�0���p�a���@��B�3��'G�.�v�/'4��A��Fĺ�E���xqM���`W�A6*��+~��Cv��|_����f�@58��dOg�H��F���*N��6H�Z �� Z{�8Y���qR_P����*A��x��h�5/Nԅ��5��u!���U���H��w��Sh����Q�V�)�G-kK��T/ �"~�r_�K7e⚱�t������OBZ�-�K������@g�����Qg�A([����3���HD�����ґ�1��-�����h����{�?���4 +endstream +endobj +7903 0 obj +<< +/Type /Page +/Contents 7904 0 R +/Resources 7902 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7886 0 R +/Annots [ 7899 0 R 7900 0 R 7901 0 R ] +>> +endobj +7899 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 447.836 171.594 455.973] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7900 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 435.881 171.594 444.018] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7901 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 101.136 190.722 109.273] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7905 0 obj +<< +/D [7903 0 R /XYZ 69.866 801.979 null] +>> +endobj +7906 0 obj +<< +/D [7903 0 R /XYZ 70.866 771.024 null] +>> +endobj +7891 0 obj +<< +/D [7903 0 R /XYZ 70.866 581.571 null] +>> +endobj +2134 0 obj +<< +/D [7903 0 R /XYZ 70.866 554.376 null] +>> +endobj +7907 0 obj +<< +/D [7903 0 R /XYZ 70.866 374.334 null] +>> +endobj +7888 0 obj +<< +/D [7903 0 R /XYZ 70.866 216.226 null] +>> +endobj +2138 0 obj +<< +/D [7903 0 R /XYZ 70.866 189.377 null] +>> +endobj +7902 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7911 0 obj +<< +/Length 1400 +/Filter /FlateDecode +>> +stream +x��Y]s�8}���ўI}#���&3}�N_�����������{�� �`��>d0�t��Ցt|}3��D�u:������������B��̛?z>FJJ�(�ě���S������Ǡ�q ��n����j�>Y�q��E�I��:�0����=��T +)ʽe<��{+h��b����g�q���>o�ϓ�abD��h.hAZ��)��4�|��-�(�v3B�iY �!�3xvDHE*��/�A���Y�0]Л#I�6%� %T��(�(�|ΐ�[ddӲ6���`(���!�zX�I�Nh�� �V8y�|��9wɌ����<�� ��=y���So�Ƞ l~���>W�2���42h�9�0p��h���� ݪ�,;�7 +�)�r��E�GD�9�Fٮ�*��P�0�v�U9��6��� ��4��*G +o�� ��0pqJx0aŹ]�$�:�7��]yU�4\m�νa����>%��r+Ŵ�������k�ė/�.����)KD�8���h��aI)Q������To�}Z�}n7��`Z��fHi}��Z��k��Z���q��4�Ez�� of��*t�E�t���Wn �(�H���D���i���F��Q�<�x���QZ�����m|�&��oND9hH��Y�Wpf�f�Z����wM +��T0��90�EE�_����%�k�g�n����p�DM ���Qءv!���{�]��E����ItͰ&®��T���#Sk��al����a_���0���&����8�t1A�R��v�'�F�v�S��χr��u +w��8���b��Σ���j|$�P�(�<&ai.�<Q�(oe�Cy�8ەW�|#?[ +��4��a�|9Nx�1z*���>)�B��t�4/�GkD)��)�0ww��#�o,>��W��C"|�CZC��q.�K�/���9&�N�$�t�j���~q���)�;[1� �* >�{���Q��w$:���0=�]�U9��)�3�`gB+ +`�}���04����:�Q��a +;��*)��;>�����<�ݹ���ͪn� +�����r{�����m����9$FC�ݮm��[%+�%ED���YK\�γ��巼�0�B2`'��$řw��<��v��}�q|�DŽ8(�1�Q'Fy�q��$�Ap�����\����0���A���r��a��k\��]�|��))�{O��@8Y�X�.��Vo +�~ �)y�]rF�*�*�~]m�[�Ve|���Z�I4�'�����6 ~�KTG)��?�8:����3�4j%7��UrUF��zG�P p,G �?Dy�7��o�y��f˟�%�Cr�y.8��A��"�w`{w`hV6�������������j��� +endstream +endobj +7910 0 obj +<< +/Type /Page +/Contents 7911 0 R +/Resources 7909 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7886 0 R +/Annots [ 7908 0 R ] +>> +endobj +7908 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 163.422 190.722 171.56] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7912 0 obj +<< +/D [7910 0 R /XYZ 69.866 801.979 null] +>> +endobj +7913 0 obj +<< +/D [7910 0 R /XYZ 70.866 771.024 null] +>> +endobj +7890 0 obj +<< +/D [7910 0 R /XYZ 70.866 629.284 null] +>> +endobj +2142 0 obj +<< +/D [7910 0 R /XYZ 70.866 602.089 null] +>> +endobj +7914 0 obj +<< +/D [7910 0 R /XYZ 70.866 482.733 null] +>> +endobj +7887 0 obj +<< +/D [7910 0 R /XYZ 70.866 285.203 null] +>> +endobj +2146 0 obj +<< +/D [7910 0 R /XYZ 70.866 258.007 null] +>> +endobj +7915 0 obj +<< +/D [7910 0 R /XYZ 70.866 128.507 null] +>> +endobj +7909 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7933 0 obj +<< +/Length 1333 +/Filter /FlateDecode +>> +stream +x��X]S�:}ϯ�/�̍Ї-�}�2th�$�:���͵h�}W��|�>0v��g���j���q&E;;��Q�qp�G��s����#���q���εK�k�h ��q����I<���+��2��H6��9� *��q��o�� �;d$�sFI��'v��oF,�S�2q<�!�cp?uz�˺�4\�<'[�� �4��8K���R_�qj"��fw��ްѩ�G� +;-ꁷڰ +�ٰ�8�y�E|7���$*�|e�(U�̒~::Ϛ��ɾQ�%k���T��M����Ǣ�,��I�ˢ4���w��c�#���.ɲ\F2ͳBV�<ĩ��X_��(Kf%�7 i]E�h�vU�&BP��:��tX�\�6T�S�����gI6���fETdәZe!*j��0�¥��@тq��Dݻ�4P�[c���0���b ��c��Z��#e����~=��#�RC�t������Ǫ-�f/�ie���-����v��( Y]3:�N_x�SD�2���+D�p��"n5V*ٳ%�-�o�����_���L�I'Vyon�H��<�m~����(���I ?�HQ1�K��K��#ց�&��a>Ld�h�5��U>��6=���QF��"m�{g�J���`� X�!�kUᅭ� ��!J�CChF�~��|��,��/n�!p*`^M�`z���Ĭ��x! +V�4%[����[�視23R���B�U��j�a��{ı�e���V�p�曕�6Fy 潇�<�"0�Ey�A�U^ 4ݢ��0�*�� ��,I���^ƪh���(�7�0��p a�B(������j��lVnQ�~�땷�:?N7�o?���[�}Ƞ �r�b�t�F|�Q�Mb��uU��&^���ml�E<"�v�E;#!"����H�rC��F�P�ڰh����%�����Ǎ���$3n���6QE��K����z��6r�ә��)rԫ��78^�%j�m� ���t4���n�?���z�$��͌!������(W�TV,�����BPǼ�ԯ��\����c�#����e!�������&q����G�sv�9=:kG�ó�vo�t����g_�2�Ձ�uh:�Q�M�Mܷ�0�.`=.�JN��$�V+��&t�j���ChQ�9:���S���S`��w��~�U��4.�����])�F�e7�)����a��<�/����M�?��{��B���Q��L�W��Gg�Z��d#���}���`bύZm�&���j�>z������ ��x��å +�#S���n����֙��~��5鲇�m�� +endstream +endobj +7932 0 obj +<< +/Type /Page +/Contents 7933 0 R +/Resources 7931 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7886 0 R +/Annots [ 7916 0 R 7917 0 R 7918 0 R 7919 0 R 7920 0 R ] +>> +endobj +7916 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 564.819 190.722 572.957] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7917 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 174.544 298.087 184.207] +/A << /S /GoTo /D (svd_8h_aa2f21266e1086a3971dfd02ee4b48ce5) >> +>> +endobj +7918 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 144.614 294.617 154.277] +/A << /S /GoTo /D (svd_8h_a70d46444b7291fdb50510447bb1ab9a4) >> +>> +endobj +7919 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 114.685 196.437 124.348] +/A << /S /GoTo /D (svd_8h_af9e7db6685a0631312bfb93cc58dd756) >> +>> +endobj +7920 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 84.755 307.054 94.418] +/A << /S /GoTo /D (svd_8h_acdb2d1d5cfdead81a1c247037b06823a) >> +>> +endobj +7934 0 obj +<< +/D [7932 0 R /XYZ 69.866 801.979 null] +>> +endobj +7889 0 obj +<< +/D [7932 0 R /XYZ 70.866 686.6 null] +>> +endobj +2150 0 obj +<< +/D [7932 0 R /XYZ 70.866 659.404 null] +>> +endobj +7935 0 obj +<< +/D [7932 0 R /XYZ 70.866 529.904 null] +>> +endobj +4303 0 obj +<< +/D [7932 0 R /XYZ 70.866 388.913 null] +>> +endobj +2154 0 obj +<< +/D [7932 0 R /XYZ 70.866 370.106 null] +>> +endobj +7936 0 obj +<< +/D [7932 0 R /XYZ 70.866 219.763 null] +>> +endobj +7937 0 obj +<< +/D [7932 0 R /XYZ 95.773 188.571 null] +>> +endobj +7938 0 obj +<< +/D [7932 0 R /XYZ 95.773 158.642 null] +>> +endobj +7939 0 obj +<< +/D [7932 0 R /XYZ 95.773 128.712 null] +>> +endobj +7940 0 obj +<< +/D [7932 0 R /XYZ 95.773 98.782 null] +>> +endobj +7931 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7957 0 obj +<< +/Length 1663 +/Filter /FlateDecode +>> +stream +x��YYo�F~ׯ�# �k�.�G��u�:@�I$롊 �-I�����w��H궝�}�{��}�������Gl,��c,�x7�m4�������1�3|�g�!A6FscbX��{��u=X(���Ub��̷E�dI^GuZ�|�����������"���5�l0�:��� 1��bff��"�Rh����Ӗ��A>���F�6���cnB%lЋ/�I�r{�|�& t��/���cb3晏af���w�\(�>�Y.q��q�_�l~q�Ӥy�jK��.� R[���/��YT�����>��j�&�t�O�e;f3�*�~����L@�~��� +&��1 +�<���A�<���'�'J�x[{�_�4_��I<[%��^�T��2�U�TZ�V̜B$�κMhB���/B�Eا���� ���^dM�6Z�T�!hlVQi�-�J�NLb�_T�؉����p�V� :�;����w�о� A$����G��8�-�zv3���.`�����/�Ej~���G��5v�<%"�B� :�}qʧ��pQ`=��RO��&B��s����-�An�Wk65y��g���r�g19<�$���L@�8�k��3�����(*��yT���T>���[�?�K�0�蓨�� [���]P +�O���=ڵ_X�0�ʪۤ܃l�N>����¯ ���0^�[&q�P�P�����R�{�!��38�;�9���n�њ��8X���5KT��^�+{�b;Z lf���~u���V�3��^ci��AAa��*hI�z��|i۞� ����鳶�.|.���'խ�D��� ��#aW �EPc�q�X�#����ҹ���A��"��X�QH�W�E����L +���c�J]g���-������,x�>�s.#��I⤪�P�M�eI�,�!f]��x�;�H�To��Eb �5����6�6 �y%��i7�MQ��s`w�a0��}]&���F>Ҫ�G;��'�X�%��4@�(r�%� ��{� ��(�b7��\_��W��#O�G���<��1�-r,�I���H_�����{ :��]� �5R�51�>��F�R����Q+-�T|)Q��v�&� O�:�۸�(�`�b��Bb�>D�(��I�W�+ a�t�NE�l}�5���dT<be-e��2�������T�~�WRǂO��L�M����B�Ֆ�Y����S% a���� �x�?xe��{ +U��"���������]��!'�*���G +M�K?DU�*i����Э��ڑزٓ����_���56�m�4G����j/5�D�栝�����*o�c���(�(�Z'z8sy �CK���w����ȏpۓ�dC|�p~=���Kr���IK0 �N_�]��m�9ϒ���?��ۤ��:��Υȡ�V��h�ᆚ�,7�-�+Cs���5�s �)������Q��`=�y���٣7�?�D����p�����N�P����D'���� �*��O���W���&�TQ_)�J~dFy�9�t�,��͢7��q�rÐU)��\��+������0] +�_c��Ǜ<�[et�X~,^�D��E�rh]��_�����g�C��� =W`�\ĘO�yj��K�j��6G+g��ۂ��f��M��� +endstream +endobj +7956 0 obj +<< +/Type /Page +/Contents 7957 0 R +/Resources 7955 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7886 0 R +/Annots [ 7921 0 R 7922 0 R 7923 0 R 7924 0 R 7925 0 R 7926 0 R 7927 0 R 7928 0 R 7929 0 R 7930 0 R 7941 0 R 7942 0 R 7943 0 R 7944 0 R 7945 0 R 7946 0 R 7947 0 R 7948 0 R 7949 0 R 7950 0 R 7951 0 R 7952 0 R 7953 0 R 7954 0 R ] +>> +endobj +7921 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.767 739.068 130.711 747.552] +/A << /S /GoTo /D (svd_8h_acdccfce5b7732e6334ca5a521c57e63e) >> +>> +endobj +7922 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [222.471 738.095 256.482 747.552] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7923 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [400.184 738.095 434.195 747.552] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7924 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 738.095 525.406 747.552] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7925 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.653 726.14 169.664 735.597] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7926 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.03 726.14 334.04 735.597] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7927 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 698.238 177.77 708.614] +/A << /S /GoTo /D (svd_8h_a8194826f85cc3105c4d8d4f342ca8df8) >> +>> +endobj +7928 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.498 699.157 315.938 708.614] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7929 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 671.255 177.277 681.837] +/A << /S /GoTo /D (svd_8h_aeb7ac3eac076a0f52c729849599808a6) >> +>> +endobj +7930 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.005 672.174 315.445 681.63] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7941 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 644.271 177.277 654.647] +/A << /S /GoTo /D (svd_8h_aa65fbd187ce13d0da98cecb40cfa3b07) >> +>> +endobj +7942 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.005 645.19 315.445 654.647] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7943 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 617.288 238.991 627.664] +/A << /S /GoTo /D (svd_8h_a91b85e542b1fc44d3500ba52aecb8e0e) >> +>> +endobj +7944 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.578 590.305 252.889 600.681] +/A << /S /GoTo /D (svd_8h_ae92d53fe415ccfd63a21bb36936294cb) >> +>> +endobj +7945 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [412.625 591.224 446.636 600.681] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7946 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 579.269 128.787 588.726] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7947 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 551.474 234.221 561.949] +/A << /S /GoTo /D (svd_8h_a55b4a07eb7dbd09f7fa1d15debd44595) >> +>> +endobj +7948 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [318.949 552.286 352.96 561.743] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7949 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 372.438 297.675 398.978] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7950 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 206.421 171.594 214.559] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7951 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 170.556 171.594 178.693] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7952 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 158.601 171.594 166.738] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7953 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 146.645 171.594 154.783] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7954 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 122.735 171.594 130.872] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7958 0 obj +<< +/D [7956 0 R /XYZ 69.866 801.979 null] +>> +endobj +7959 0 obj +<< +/D [7956 0 R /XYZ 70.866 775.009 null] +>> +endobj +2158 0 obj +<< +/D [7956 0 R /XYZ 70.866 523.36 null] +>> +endobj +2162 0 obj +<< +/D [7956 0 R /XYZ 70.866 358.623 null] +>> +endobj +7960 0 obj +<< +/D [7956 0 R /XYZ 70.866 319.919 null] +>> +endobj +2166 0 obj +<< +/D [7956 0 R /XYZ 70.866 293.153 null] +>> +endobj +7955 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F14 3888 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7970 0 obj +<< +/Length 1360 +/Filter /FlateDecode +>> +stream +xڵ��r�8��~ +�P+�G,{&�T��'q�qR��!�kdl�t��\�H �������=�^}���/�os�ao�a�j��bv~�BO�HJ�-��#%�FI�-��O�'�i����#z�N/���:�N���d�d�$xX|�8SH(e��"�������_�Gޅ�B�ro�Ζ�{���{�Hyoe���!��;����1�B��IEK*� �M.?���~�&E����:��!�38�8d\'��8AX +/����D�UI�AI��%QQ +� +��ˊl�n�*��UR6{�0�8�ڢiW���r֤QC�P|����[�l��=�?��{�T�gu�*�/�`�����z��F(�]B�R�a�&�0�Q %�_A��(;�27I;eMѬ�27M;eM�u�;����h�]@ ���0 �I1d�,b��D\AFBD��!;ˏEhn�vК�ߖЋJ���<7v�^�mVԤ�$�F{�R!H�a�&ŨH��BR��T S$�����55�qϢ�&j��):qͼ 8�{@m�È�����p6-��Lq9�3Y��8sR�r��<�=˦������Us�����@�m�a6)��b��~��)C�(�-���vؚ·�/����5=�\8a��K +Y8m���&$�t�>���>�I�B~*mn�vښ�7#hs�`���a$m7��m��.)B�D<��I1m� F_1�q�8&'��&k��)|7�67vښF�v@Uzqm�� +��jmSB�h��]�ؠ� 'ܰ�I�Ak���&~ ��u�K�M�܃��;jMF�~˦-w+��Z��@��n��vY�f&:��I1pPf�� �O]H�4��}���U��v��P�w�4��ǎއ��9��ZE�J�����0�ez��ѱ9u��o[�io~btkkb !N����=�4���<�����f�r�D�a�/�7��Ѻ�(�)��d&�m��m��`�"��ԝ�:o�N�&)��M?�qVv���{,0|����j�x��/�"�_̥Y��7�]|h���*3���nUn a��-%���?14�u痄yE!S�b�s$"Q�s�c�M+�h%���M�yՠU�9�0���U$̻��<�7I���C|��c��NUQZ;wP^ �U�];D��b��:��T!A=���YN���k���ɾ`��:d��f�P��:Bs�\DrL����Tzfq47m�"fgf�O�������)"G �h�~��a�,q��~�L�ك5s�S>[K� �?������<���x���O3����'��|ysw����M%�[!����7�%�!��1kq��4o��`��a4��IE�_�z���{�G��d�����U +endstream +endobj +7969 0 obj +<< +/Type /Page +/Contents 7970 0 R +/Resources 7968 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7973 0 R +/Annots [ 7967 0 R ] +>> +endobj +7967 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 397.998 171.594 406.135] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7971 0 obj +<< +/D [7969 0 R /XYZ 69.866 801.979 null] +>> +endobj +7972 0 obj +<< +/D [7969 0 R /XYZ 70.866 771.024 null] +>> +endobj +7966 0 obj +<< +/D [7969 0 R /XYZ 70.866 519.778 null] +>> +endobj +2170 0 obj +<< +/D [7969 0 R /XYZ 70.866 492.582 null] +>> +endobj +7968 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7979 0 obj +<< +/Length 1552 +/Filter /FlateDecode +>> +stream +x�͚�r�8��<��P�(�_z9�IW���C�&IQq���ӗ��#Y&66�,�H���GG�,�T�f߾��e;��K��ϣ�f���"���,�=G +#-e�E�D���nL9�<̾D�1.�A���r�L�T��u�ح�4��e�ڦ��g��FZ��%�F��h��=�� �}�@���k���`Hp�W���}�Qa?ڋZ�@В �}�_'���M�N�d3!d�u��������%B����#��AX�Hq�t�EZ3���EJDd %Tڔh�(%�����206��k)��@�B����:�)�������bH +Y��d"ƿ +8� ���� p߳�⚿zz�q����o'�}4N���Ǚ}^@�=ȥ���{=Qx���dJ 0���&SƵ]���A�K*!��\2x����g�j��p��3�e�s��v���`yv'�H���97�AKB����E�D!B� X��cY5���<�l�����m����V#��-Ӽ�t�`��6��� +H�v�n�i�IcѼ�+i���H)��Z?�0j5��0���T�\ŏɪ���}C, ��� Lzh4�_j �0�����c�.�6�M�8/��e�'���� �Gʍ���Z����r�O��~K�j�l�t�l'S!i�]�\��a�����d*�5��?��=�H�Q�~c!u��:p��kr��2I��v�������� a�DF1m��9G�q��#�V�thZ�� j�0� �T4%v?���sf��%�2�J|nTҧ}�]��m�F����~�P<��&�'ۼ�qp�E ��$��E�$c\�b?�!�M�X�h�A�piܭ������u��)l�� +����apL�'#[B��4�k�t�f��*��Y�+Q�����p5���4��T9V�F3��o�K1�V��)���%������y��o�G��ng��0�s�'[03���>�������(���(��c��L(���l-��OFJ �j�S���˓�]E�`���ǓX|{���u|�^�[�AI�������x[N��E���:(FT"l��ߣ�`Ő����M85�W�a�F�\^���B�붝��C��kY���}�e�4P���p��g�lJ�/���)Ddd�^6� *�0.ix.�D���������e?�0�UӴ��~�a.�������N6���v�n,ix,m���� +�E�ta �)%�,�Y����[�6����Y�=�c���ަ8H_���&8 A�0��Hx�0F��K��Z!� ����W5��η��� �#b5�����I<�M�@B���� ��E�%_�Ej�P��)5���a�����Z;��d�`�Hւ�d�SU���{� �j���h��q�JGa�.�>�J���U:�$7�*��k�� k�ׅx�.t[-T��?T#Y����'�V���3�$��-+K��To �q�/-K7.q;�t������O�|�W����%�vOg�����Qg�A([�9��3����*�]!Ip$�+�ң�9I� �"P���t������?JU�Y +endstream +endobj +7978 0 obj +<< +/Type /Page +/Contents 7979 0 R +/Resources 7977 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7973 0 R +/Annots [ 7974 0 R 7975 0 R 7976 0 R ] +>> +endobj +7974 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 447.836 171.594 455.973] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7975 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 435.881 171.594 444.018] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +7976 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 101.136 190.722 109.273] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7980 0 obj +<< +/D [7978 0 R /XYZ 69.866 801.979 null] +>> +endobj +7981 0 obj +<< +/D [7978 0 R /XYZ 70.866 771.024 null] +>> +endobj +7965 0 obj +<< +/D [7978 0 R /XYZ 70.866 581.571 null] +>> +endobj +2174 0 obj +<< +/D [7978 0 R /XYZ 70.866 554.376 null] +>> +endobj +7982 0 obj +<< +/D [7978 0 R /XYZ 70.866 374.334 null] +>> +endobj +7962 0 obj +<< +/D [7978 0 R /XYZ 70.866 216.226 null] +>> +endobj +2178 0 obj +<< +/D [7978 0 R /XYZ 70.866 189.377 null] +>> +endobj +7977 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7986 0 obj +<< +/Length 1400 +/Filter /FlateDecode +>> +stream +x�͙Ms�8����D�;���n2�S7u��v�&�g d $��߿�d�!7��؈���O�c�f~��x�l�������o���-�=�)�7�|����P$�7_y_��b�k�i��BO��v����}�8#x��d;�?y�)$��R�r����1��3!�-���H)�(�����w���'#(�,{\0$8����e���Q�o��6E���H��m�<�|��-�(�v3B�YY3'�ZC�gp��!e���kxa �������Ҁ��#a�Dxt ��KC�z>gȇQ/{d�4dž`1���Q F˺i�� �E �zBm+�<@��ꞻtF���0�hb��@P~N�5�PNj����Ij��h���ii5�lc��v4��i�H75#��� K�ˋ�GD�9� �l'�j�t�7̳����2�q�n��nF��r$x�4,x�����)\��87�yy�<�ɫ�f�jӵ� �m�����n����`��u��l�Z<3_�̻�]�&���q���h��ՒR����7�i���ݲ��u�Il�L�X����I˲���&��FYG%�R֘�0���nU�],J����t�p��E�0ƺ�Z�O�<�6�z�/3���meN���чi�C`b��&a!*�!B/H'^ѵ�Elkղ���/�kBP��5�����6**|�㫖J]�2���� �]�CO���N�j����e�]���|:���N��ca�䰪�s�Q��<1D�gao@����8 ��s� �D��B �;SALС���� ��L��uJ��P���Nao��5��ʳXY��hR����GR��FiX�yj�C�0�v�Iy�<�ɫz�S�u��nF&`ɗ�����)x�'.)��.����z4F�"�`�Rs�'^p;����3�|�z$$��&��N0TM����~��%�B�W��4LR�1ݧ�+(E�\���(|���V��S_�%el4�E�I����0;�]$+׀jq���`���нT�����!�>�q���(-�0��K9���G�O�%��$�Hw��/�fU�v���;�]ٹ���nm'����͐�۵)vs�d�eI��! b�R/}�#]����;�UH�dԔ�\�Ί�G?�N��3��͘PJgL������9N���D<.���}���:���zzP�l=9���0��6���ܮY�ہ))�{7�A(�<�X���Û�5�_�7%Q��a���U-��i��J[���H k��@N��=�C�����%NG)��q8:��S��g��ѨAn�k+rU��z״A(p,G��_�m� )��`������C�ʏ.��K��w�zw�gV�k]���S����I69N� � +endstream +endobj +7985 0 obj +<< +/Type /Page +/Contents 7986 0 R +/Resources 7984 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7973 0 R +/Annots [ 7983 0 R ] +>> +endobj +7983 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 163.422 190.722 171.56] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7987 0 obj +<< +/D [7985 0 R /XYZ 69.866 801.979 null] +>> +endobj +7988 0 obj +<< +/D [7985 0 R /XYZ 70.866 771.024 null] +>> +endobj +7964 0 obj +<< +/D [7985 0 R /XYZ 70.866 629.284 null] +>> +endobj +2182 0 obj +<< +/D [7985 0 R /XYZ 70.866 602.089 null] +>> +endobj +7989 0 obj +<< +/D [7985 0 R /XYZ 70.866 482.733 null] +>> +endobj +7961 0 obj +<< +/D [7985 0 R /XYZ 70.866 285.203 null] +>> +endobj +2186 0 obj +<< +/D [7985 0 R /XYZ 70.866 258.007 null] +>> +endobj +7990 0 obj +<< +/D [7985 0 R /XYZ 70.866 128.507 null] +>> +endobj +7984 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +7997 0 obj +<< +/Length 1430 +/Filter /FlateDecode +>> +stream +xڽXYo�8~���/2�fy����b�4ڗn��ö��ʌ-Ē�:�f�Eґl�I����9��p���>~ ޢ�`o�a�b�����9�^�"!�wu�I�B!<Q$�w5�>���闫w����{}���tFe蟕i���I��,������� I�-d��r/�'��`o����1 +��N2�x�P�ܯ���_C3i4b� ;;��g�i�uVt�%���� s-o�U�pnԛ9JQ�*�f�������2�J���p�4�tF?�ϳ<nI�U\L ���g������)<߹C�dD1@LC��b��>����; W�E �i��q��G�"BA./�J�kUTe��%�Ј������2_� �[%E�_��q���]��� 08�VI�*mZǑN�y,ncX/˼\�B�m���RNE���� +m�Ё!��Ɲ�}krf��<�"���b���M�A��Cq�敆���q�m!>a���`!��t��طbfeNB,:ĉɷja����)J4�/-�I����-�U ��F�&�����+ �����,���1�0%�LVi��d�Y�P��z��.����ż���d��h����R��!S���Jr�1��� fc�/ Q(�G*e�HW��3�����# G1@�#����§� T�h�4�^�����d#5�` !�NU)����*�Gtr�]'����IɆ:m�6��u����ʸ��TU��B��hh��0�'��� !"y�5#��a��2h���`�.��0�4���(-�0�4����֢͋F�g��O� ���{�%�� �G\a(��cēIj�̲m�0�4����k�n��w��q����KhC�����%_�6�(�l[��!`�8�8Ş�qp�A�"�>�>u!b2���H�rC��F�Dd���~�Qu�R��a6��g�H���o����~K��ʹ�W�.�Ϭ/�Ei}h���A��D���HW�ܚ@HO�N �v���`I$y��f��h9� ����u��5����4H��~��Q����u]���� @�41����4cŮ�8�F�MYYY�;���Y�������HuZ�;�ʰ� $C9��gJ����,d��La�C��R6!;��"�� �A�?���f+�`dW�n��-}���#�I p�uz��Ƀa�fJm���."6{�T�@���p�����,g?_�@G/���= k�)]��t�k��~�ˬX��X��ObPӺ�+����F�����K��L���x��S?6J�^m��w=I���'� �@����6b�$�� Tb�~��yf��Vw빻��}�`����n��߲�ݴ3�.a�Bs5j��+�y�3��٣@T +��π� �pEB� ]�BU0�[r��/s�ؑ����s�����@ +endstream +endobj +7996 0 obj +<< +/Type /Page +/Contents 7997 0 R +/Resources 7995 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7973 0 R +/Annots [ 7991 0 R 7992 0 R 7993 0 R 7994 0 R ] +>> +endobj +7991 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 564.819 190.722 572.957] +/A << /S /GoTo /D (structmatrix__dim__t) >> +>> +endobj +7992 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 206.508 151.364 215.965] +/A << /S /GoTo /D (svd__test_8c_a5b3fa4be9f289d4078fdd009719a4077) >> +>> +endobj +7993 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.77 109.479 354.127 120.062] +/A << /S /GoTo /D (svd_8h) >> +>> +endobj +7994 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +7998 0 obj +<< +/D [7996 0 R /XYZ 69.866 801.979 null] +>> +endobj +7963 0 obj +<< +/D [7996 0 R /XYZ 70.866 686.6 null] +>> +endobj +2190 0 obj +<< +/D [7996 0 R /XYZ 70.866 659.404 null] +>> +endobj +7999 0 obj +<< +/D [7996 0 R /XYZ 70.866 529.904 null] +>> +endobj +4304 0 obj +<< +/D [7996 0 R /XYZ 70.866 413.124 null] +>> +endobj +2194 0 obj +<< +/D [7996 0 R /XYZ 70.866 397.306 null] +>> +endobj +8000 0 obj +<< +/D [7996 0 R /XYZ 70.866 241.903 null] +>> +endobj +8001 0 obj +<< +/D [7996 0 R /XYZ 95.773 220.535 null] +>> +endobj +2198 0 obj +<< +/D [7996 0 R /XYZ 70.866 177.828 null] +>> +endobj +4305 0 obj +<< +/D [7996 0 R /XYZ 70.866 63.912 null] +>> +endobj +7995 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8042 0 obj +<< +/Length 1504 +/Filter /FlateDecode +>> +stream +x��Y[o�6~�� ��X�"%X�ukS�}�ڠ��b3�[�tI�=���P�mI�men�=Y�?��w.�_\~���y>"h�z;��r�������=ty����@1�St9C��,�N~7�xQ�_�K]_}�7cJ��d��W���$R�9 +�Y���=��Jݞ&%����j4�"h��!�=%їJr����\/���{P���i�O1��@ !�1��S ��z{\ՠo��z��zszS�������"Z��N\,V�6:�[dN�/,�E�L�8M��e[;�P2@.Ϙ��3c��M\�q�n̄��3���>�� |�����"�g�� [jniKl�$�\��U`�d3�!�r@8���m\���|��\Oa"�>�B�� �k]D�Y �Z��,^3��pf� T^C�����#N�,��\�݁G��1N��2�j�O��1��X<MW�4�+����^$-\�^gi4]��j̄�4?&���9��P�3����'K��@n����+�����Z��Q��-Z]Gn����F ��"�/�T��ϭ��s����ҽ��2N�Lw��]M\�M3�(���[fY�� +�EƳxzfM�̈́���ò�:�:��F�@�&H� �]%~��鲜Yu(mHB� v��+�(kVQ��:��㉪[��zp\`NM�)VB|k��b���q�e�I�F����T� U�u���)���*�w�s}��U�f:\�$Ks��u9K�8��Y���٦4��g"P�~�,��a��T���tBaf��P@'�>�I7�yF��Ri�M%-㤐!��Y��)��01;����g JM���âޢA����!W���A��A�(��� +<Y�1ɖ� 'V�4�|��F��)v.g>fA��q2fĹk�Ư����+el�1Og���y���0ʲ �J��=ʝY��O8�^i���A��d'w�l�=t�����9��^U��9���:�.�S�盡�f'Dٵ���D�h���b�nGR��V�����l� +�0�T��@;�T(z�������6�bW�!�J�N�OA�O����g74"hB�m�,��"\�i��TOͻD�q�^�L�僧��t�};������^p +�w����}>j�u�~������j�>q�������"��/q��?����w�N[�j�*+��e��v}e�S�Wx���{+ �?�7�*�8r V�R������Q &ކ�˞��<(9b0�Z���x�RL��v�{T�i�O�������ɉ������Ʀ�.��;��& ���6��YX�-������1�,�-��鰁fz����3�q�lPo�s�t����mɬ�|/ۏ���y�W�٪���)[��ي2/A ���8���F�S�ıP�[58fJ��d��L+���ʔW.��br�s��8��i�qru.�ɾsb|����i����0_J���cEMn���7��i�� ���f4y�_P������|�st���_��X' +endstream +endobj +8041 0 obj +<< +/Type /Page +/Contents 8042 0 R +/Resources 8040 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7973 0 R +/Annots [ 8002 0 R 8003 0 R 8004 0 R 8005 0 R 8006 0 R 8007 0 R 8008 0 R 8009 0 R 8010 0 R 8011 0 R 8012 0 R 8013 0 R 8014 0 R 8015 0 R 8016 0 R 8017 0 R 8018 0 R 8019 0 R 8020 0 R 8021 0 R 8022 0 R 8023 0 R 8024 0 R 8025 0 R 8026 0 R 8027 0 R ] +>> +endobj +8002 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 660.418 151.364 669.875] +/A << /S /GoTo /D (svd__test_8h_a5b3fa4be9f289d4078fdd009719a4077) >> +>> +endobj +8003 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [205.77 549.881 354.127 560.463] +/A << /S /GoTo /D (svd_8h) >> +>> +endobj +8004 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 503.497 297.675 530.037] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8005 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.157 251.911 166.526 260.395] +/A << /S /GoTo /D (trilateration_8c_a95fc45efcb10019be21704539eeedefb) >> +>> +endobj +8006 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.57 250.938 293.581 260.395] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8007 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [443.892 250.938 477.903 260.395] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8008 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [207.246 238.983 241.256 248.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8009 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.744 238.983 350.755 248.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8010 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [396.341 238.983 430.352 248.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8011 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 238.983 525.406 248.44] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8012 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.731 200.398 167.101 208.882] +/A << /S /GoTo /D (trilateration_8c_adf749802a4d86c2a97a6bac50d17bfea) >> +>> +endobj +8013 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.013 199.425 296.024 208.882] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8014 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [447.629 199.425 481.639 208.882] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8015 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 187.47 128.787 196.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8016 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [186.269 187.47 220.28 196.926] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8017 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.631 158.947 315.861 169.323] +/A << /S /GoTo /D (trilateration_8c_aadf622c7ec43dce57988a9aef1533758) >> +>> +endobj +8018 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [320.489 159.866 354.5 169.323] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8019 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [457.695 159.866 491.706 169.323] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8020 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 147.911 128.787 157.368] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8021 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.57 119.389 330.364 129.765] +/A << /S /GoTo /D (trilateration_8c_ab5f06e68df75b4708d722c268932578c) >> +>> +endobj +8022 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [425.737 120.308 459.747 129.765] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8023 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [189.002 108.352 223.013 117.809] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8024 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.151 79.83 255.078 90.206] +/A << /S /GoTo /D (trilateration_8c_a76695d4831cf7c08b468fe56f117b358) >> +>> +endobj +8025 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.25 80.749 372.261 90.206] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8026 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [466.341 80.749 500.352 90.206] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8027 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [122.349 68.794 156.36 78.251] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8043 0 obj +<< +/D [8041 0 R /XYZ 69.866 801.979 null] +>> +endobj +2202 0 obj +<< +/D [8041 0 R /XYZ 70.866 771.024 null] +>> +endobj +8044 0 obj +<< +/D [8041 0 R /XYZ 70.866 700.001 null] +>> +endobj +8045 0 obj +<< +/D [8041 0 R /XYZ 95.773 674.445 null] +>> +endobj +2206 0 obj +<< +/D [8041 0 R /XYZ 70.866 630.794 null] +>> +endobj +4306 0 obj +<< +/D [8041 0 R /XYZ 70.866 495.261 null] +>> +endobj +2210 0 obj +<< +/D [8041 0 R /XYZ 70.866 488.218 null] +>> +endobj +8046 0 obj +<< +/D [8041 0 R /XYZ 70.866 290.522 null] +>> +endobj +8040 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F11 3889 0 R /F13 3832 0 R /F10 3833 0 R /F68 4470 0 R /F67 5020 0 R /F66 5409 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8066 0 obj +<< +/Length 2176 +/Filter /FlateDecode +>> +stream +x��ZK��F�ϯ��(���w7,o�6�l2�ŎG�H�%qBR�8�����nJ|I3�Id?����z5����_X���h��h���?��^�&�$�ZD�����j��͢�ets)g��?F�� �-6�,���ߗ��6�5YS�;\z���߯��;���X.�����FK��1���>���H*A��~���A��ij��Ԡ،�$ٌf0���>� d�Y5K$��b���3��f�ҿ���b��z����j�h�m�{�[y���תD�8�g�Zս�%̦�3CE�֛H���� 2J(IS��аLw�jb=.��oF��2�D��Og�4�L�t&�&D��tR���%a�' q8h ��-O; K�5�\ 4U�\�8W�]�M���?̸��b�R�*`�W�J�5�$Sq�ɚ`��|�7���ٲZ�sxuS� x"�wTѓ��m�r{�7��,��� �Xŷ��H��gPZ_�R{��#{��%��q'��,���yK��zK�p�;/���'�����8����Oϒ~�5��ㄧ�Rxs�` +o3{Ƚ�w6�.ؾ�5������{���n�.��CYwy�loo���~3$)�m܃�;� �yY*�1����B�A(� $����[�����n��7|�&��#&!`*J����T:����k��v}!��t2�vO�/}VHE[��Ӕ��ws���Ҕ�፴:wHf��H�W:�Id�,�f�U�3�#Ф�A�;�M�d���27�?���!2�Y����]��};I�2'��M_Q�pރ�.�O�n C�UD�|���s�4a�_���y^��}�W��(u��e���W�mo�]�U�:i��R�wo�=G�NR��E�y��㶳pFRu�_��b7�4���\U�]�{�ۛ�/�_J�{�(0]�y�L�e���>D���HDJ�>�`hA�'ɰK$��`���&��r̼^T�C�Ɓ�(�cĶ���a�c;:�Ӹج�0ݬ�}���+|�T�b�Ы���f�e�oփ�x»!cKT,�Z����ς A�?e���|G�>j�~Bq�=��N�Z����{��m��'���.��@d�� 8�H����[�m�-��粪�`��JŨ L�����oWe�c��ɢ�`�qE��5��P�v�[�:��\u��x6S=R6�����0�� ����� ����Q�cmciIQ��K2��wx�;���F8L"&a���ŋ_)�o�bt����P�@uX?O�C"��J#o�}]i��\amkRc�,B�"����/@���`�[����X�ݏ��@3���Kh�.�W�ؾ.v��d�'U����y�I(s\���q���\�s��/�R�k��������o���o������)�M���͗~�#��?9��@n� +�|���-�ΠG��8�\g0Y,�N��E� �Z�c�lh {�N#"�w�ִ���&NCc�>$�L�ׯ=�L\���H���e��� ����ܡS1���� ./�;I�$4s�X�&|�I��^�����8B��ĉM�[!�p�c�����������xM!v��"sf��3�(�G��2Y��5�]���Džͺ���t��-rD<A�^�n�����9edxny7߷E��I�Ũ�&��t@���T�F�zW�]Vʐ���DH�D�~�ڙ�<�i��� D)��don=Y�,��)��=�Y?_<��#!��iR��=8���m���*�s`2|h;����'?�W�㪭k 7�(?�$�;�6���V���z`^ ���c�����P�c9�׃�.�D\NE%�ѹ<��rH�jx'2 A��ã���nD"ڊ��\�]�Y�O�T3Z�z�VZG�q�I��,`�!�$��=k�K +�ф��x9�1�%s1V> �:�KqP������suJ�%RA=(`� ��:��m�܈�u�x���LH��/K?E�H�!�R�����o۽xg�39������7vl���/b���g��J������c֜�-{�~� %�����:�˫÷�~�\��"�*�-�P����'ߑ� +*z��p�E���2�()��gPj���w��2Z*8���Kt�5���d��M�,�qi�� +/:�|7�����T +endstream +endobj +8065 0 obj +<< +/Type /Page +/Contents 8066 0 R +/Resources 8064 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 7973 0 R +/Annots [ 8028 0 R 8029 0 R 8030 0 R 8031 0 R 8032 0 R 8033 0 R 8034 0 R 8035 0 R 8036 0 R 8037 0 R 8038 0 R 8039 0 R 8052 0 R 8053 0 R 8054 0 R 8055 0 R 8056 0 R 8057 0 R 8058 0 R 8059 0 R 8060 0 R 8061 0 R 8062 0 R 8063 0 R ] +>> +endobj +8028 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.47 745.118 297.338 755.494] +/A << /S /GoTo /D (trilateration_8c_a45883b7c5af43c478bb488b536faa56e) >> +>> +endobj +8029 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [303.804 746.037 337.815 755.494] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8030 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [367.618 746.037 401.629 755.494] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8031 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [431.432 746.037 465.443 755.494] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8032 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 734.082 128.787 743.539] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8033 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 705.268 217.812 715.644] +/A << /S /GoTo /D (trilateration_8c_a3c9dfccb08c7e4cdb5533cd6bc8b5832) >> +>> +endobj +8034 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [263.161 706.187 297.172 715.644] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8035 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [401.455 706.187 435.466 715.644] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8036 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.888 677.372 222.867 687.748] +/A << /S /GoTo /D (trilateration_8c_abe0c5c3a77d41a6a94aceb8069ec2082) >> +>> +endobj +8037 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [331.289 678.291 365.299 687.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8038 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [421.722 678.291 455.732 687.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8039 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [189.002 666.336 223.013 675.793] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8052 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.168 637.629 256.527 647.898] +/A << /S /GoTo /D (trilateration_8c_a4270371ead754327c478d19d57bfafba) >> +>> +endobj +8053 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [424.616 638.441 458.627 647.898] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8054 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.352 626.486 238.363 635.943] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8055 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.191 626.486 308.202 635.943] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8056 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 488.343 297.675 514.883] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8057 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 471.023 346.876 480.939] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +8058 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 301.776 171.594 309.913] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8059 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 289.821 171.594 297.958] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8060 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 277.866 171.594 286.003] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8061 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 265.911 171.594 274.048] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8062 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 253.955 171.594 262.093] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8063 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 242 171.594 250.138] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8067 0 obj +<< +/D [8065 0 R /XYZ 69.866 801.979 null] +>> +endobj +2214 0 obj +<< +/D [8065 0 R /XYZ 70.866 596.675 null] +>> +endobj +2218 0 obj +<< +/D [8065 0 R /XYZ 70.866 456.779 null] +>> +endobj +8047 0 obj +<< +/D [8065 0 R /XYZ 70.866 411.601 null] +>> +endobj +2222 0 obj +<< +/D [8065 0 R /XYZ 70.866 384.406 null] +>> +endobj +8068 0 obj +<< +/D [8065 0 R /XYZ 70.866 95.787 null] +>> +endobj +8064 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F61 3918 0 R /F68 4470 0 R /F67 5020 0 R /F66 5409 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F11 3889 0 R /F8 5024 0 R /F7 5023 0 R /F14 3888 0 R /F1 4058 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8079 0 obj +<< +/Length 2203 +/Filter /FlateDecode +>> +stream +x��ZK���ϯ`nTe����|H��}H9���N�8W�*I��={�oO�%�"�"�v\9LQ���_7�n4�y��G�,�;�,�|������L%eR���K�0�R&*�H��~�<��M�T鴩V�)��Y�[4w�V��}�T|��U����2�)�b�x���?��~�#`'doFk�)O曻�G�,��X��_��&�!�|^'����:FT����$�$Hs�ɏ�Ӽ�7�0!$�-��2��3xހ�PAX�D�a"���i�ҩpaIa�҄U3Di�8C +xc�����P���CM��LFgY�h��?��쥬g���&S"���<�Hó�R��&C�Ѭ�2���]`�sU��jSlkH�|�Rc^��b����@�ŧԳO� +����ՍM�zΡ�/�rD���g�<$#:J�g(x$�� +C�J3x�_��a&�m}��ݢ��m�ӟ�t�8K;�����@G��/U1}��yQ���Yo�ޛ @�ڋ�\;�қ]�3T��*.�t��RX)��oX�K$%���� �q��L>��r9���,��+�8E��-{�Y8Ŷ(w�D��m4N��VH}>��Fqj��)� �1�� +��6c��̪�&�j]���:J ���1h�b۫p�����bTH<�r�tx���L�w�JD��@9��Ԟr��]s�v��Fi�1���\��a(��;r��-�����1��渰M���~�9?~k]l��s�ad��_��{@�w_��ay�!�Δ��Pv1[��ߩ�'��%��9�#7Ƕ�oP��q �8>G8E*#o�#"C\�+sd��x�� r�^�#�P�s��~4G�b^nץȟ43n�h�ՠBd��:�3�u�,ChfC�]a��vef�%��^m}��Κy# �}�=d2���P�'���֧���J�w"���d*(;�s�,�����d�MY}���o�so���ah>+��)0���y����%�,��s�"�M��g̱��-)�D��L�@g^�\D��~�W����%`���n�W1�v�BB��^s1��=!A�ũ������k�P.�� �Sn����K��W=#G'�`R�I�>�D�Ƹ{�I�"�*���C��@%ա:�\����ipcF�uXB�U�[Xv��ֳ�ـ�;�`Q�¬����n�ΟO�ܭ�>�?}�;�8��w��\0i�9�<���8z��z}8 y|`�ע�ZG�i�"�Jg�G��`�r<��D�)5b�P1���(����~�.`k��x��Z�^����y�:�t����M +QD�?"�W�ݗ������~"� N�Q1.NQ�������c~h�B��u� �_��|��/ius�J�Y���&���N�V髓�-a����Z�u���XD�U;�r�k���|�W/p����"�%=ji\'q�����/���$� h�U�e�6EER!����DJ������8b\G(~Q�a������0�fD���!t�f��2�1�0�5��}5���� +�3�A�B !��h�q.� "�������j��g��F~�94R�����k��v�'�T��SR��D3~!�y�p��^=KZ2'J�c{����z�Sd�ZN � �^�����2���#�g���c�kb�q�3���2�"�wU�~s�����i�rH�U�� :)v�� +��M�К���v��TL�L�d�J +��57ܰ :5&�>'����u���K���W��ӢO��C���@����;�$��F"�Y��� r-1��cՓ"�ػLr'q1$�� �,X�w<��֮p$�����3N�H�|_6��9����~�L�k"��a�4V���_�S"�gcv��t��%�)��.ވ1~�h�b�2}�m�0��S��ͰM�5ms�@i���yRǾ7�.4��n�f�}�`b�Ql�ñ�h�Uo��$�]4�.�m��(�:F����@`Q"v�����q�+=v��c�8���!��\��nV�k:�d��m��_����1��� +�v�}�(�2��Qn�O9��op�C$<Tv���@�qڵ �t:E�y]���@o�m�ߠ�c6.GF��9B1z�a)ů̑af�9�6|��@��?� +�Ϟ"7��Oo�!��\Fn�q�.�?�� +����г�[��)���0s�@��-8lr�?����]�}W���Ks���c���NRi +endstream +endobj +8078 0 obj +<< +/Type /Page +/Contents 8079 0 R +/Resources 8077 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8082 0 R +/Annots [ 8073 0 R 8074 0 R 8075 0 R 8076 0 R ] +>> +endobj +8073 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 415.353 171.594 423.49] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8074 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 403.398 171.594 411.535] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8075 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 391.442 171.594 399.58] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8076 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 379.487 171.594 387.625] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8080 0 obj +<< +/D [8078 0 R /XYZ 69.866 801.979 null] +>> +endobj +8048 0 obj +<< +/D [8078 0 R /XYZ 70.866 525.178 null] +>> +endobj +2226 0 obj +<< +/D [8078 0 R /XYZ 70.866 497.982 null] +>> +endobj +8081 0 obj +<< +/D [8078 0 R /XYZ 70.866 233.274 null] +>> +endobj +8077 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R /F11 3889 0 R /F8 5024 0 R /F7 5023 0 R /F14 3888 0 R /F1 4058 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8093 0 obj +<< +/Length 1640 +/Filter /FlateDecode +>> +stream +x��ZKs�6��W�H�D��;�C�4��)M|s<ZBdNE�!)7��w��DJ�(��{��&%���.v�z}��#���{k{�g���^�c��(��y7_=����SE�x7+�֧\��n>x�1.ab���xc����6[n��Qg�:��f�mF`$��N��HS�-����V����]�L<.�����<����� ���d���Mnҥ)��%�����V����|wT?ɲ܄�&ͳk3'~>��b���H;����J�� ��e¬2|v�_1�>|�S�e���iv��� B�K:#�1�g�e��n�<,���>����>'��6Z�_-C�G#$�ӿB�����$ +��T�s$�����;�$��c����\D��oP��,��&5ٶpa��a�͉5���"�&N �f���Z�r ��p��{ˡ��*.���QaVai���W�Sc7����,�u��e��ab�o7e��=� �%`� fbQĬQ1�'��������1{O�Z0��a�f��OYH�Ȏ����Ym'8/W�o�m��:,k}��cQ�Z�$�������P�����墙�SR����́:�fA������cV4K�M�n�ݥ aA����w�(�#{Ok��w$���\4\����%���F��KL��]xk|�xH��J�8�*;t����՟�Ei�_j��{=��?�\+���;c�@�ӯ.ip�(N7@Z �Yqbu��w,�#�vHPm9��5��T�'ݽ�\�ؽKZ�v��9�~�G����\�����s�'�Ҍ��g�aZ� �$`�d�hX+������vh�� ��Y� �Y���J:V�욁@���G]�ɱJJ�(G��1�2�l�{*�*f'�`��G�w��-ꬪ���c�\bă`�cz`0Q��Ql���b�]�pD��(�a����ͱ�҃c� ��p�¿k���8���]`�Cn�bC�^���MͶ%$ƫ8�v'�3R����ˊ�trE��h(�A�\ �|���P�i��Wٶ<��QZ�$��}3����8�ك�A +؆�2�.#��V�s)�����Op7[�]�1�@��}�D��e���9SH���[�c����+*�-��;*d?�)m��.���B ��]��6>F�5�_fIE�a!� +iw�&�VB]p(���.p���P�{E�����S�=1��l�=c�����+A[ԇQ�������%�q�߇�/H+���`��z��!���q� ���\џ! �}dm'��c��<DM�*F�2M�䤓o��:M#��¡�� �i$�����Bb�Fg����:y]@�����w�d=��b�z5�#�X 켄A�M���MQ�K5�3b:T�����|��M����)w� �CQ�&�Y L��Ր��6ȴ~�4 �BB�gh�I���pn�J7�J�6KFs3��?h�\��cz�&'Rt�����`��c+��r�މ��[2R���]Ż��0r7#���H�'� �k�<�L�XW�� '�^���<&����#d�l����f��%��J]�R�-��6��[r�k�K�&h�ݕ�����G�� ��U)#8�� +��-�{���k��fv��h��!��3-O� +endstream +endobj +8092 0 obj +<< +/Type /Page +/Contents 8093 0 R +/Resources 8091 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8082 0 R +/Annots [ 8083 0 R 8084 0 R 8085 0 R 8086 0 R 8087 0 R ] +>> +endobj +8083 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 589.64 171.594 597.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8084 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 577.685 171.594 585.822] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8085 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 278.263 171.594 286.4] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8086 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 266.307 171.594 274.445] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8087 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 254.352 171.594 262.49] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8094 0 obj +<< +/D [8092 0 R /XYZ 69.866 801.979 null] +>> +endobj +8070 0 obj +<< +/D [8092 0 R /XYZ 70.866 699.465 null] +>> +endobj +2230 0 obj +<< +/D [8092 0 R /XYZ 70.866 672.269 null] +>> +endobj +8095 0 obj +<< +/D [8092 0 R /XYZ 70.866 541.066 null] +>> +endobj +8071 0 obj +<< +/D [8092 0 R /XYZ 70.866 388.088 null] +>> +endobj +2234 0 obj +<< +/D [8092 0 R /XYZ 70.866 360.892 null] +>> +endobj +8096 0 obj +<< +/D [8092 0 R /XYZ 70.866 217.734 null] +>> +endobj +8051 0 obj +<< +/D [8092 0 R /XYZ 70.866 82.821 null] +>> +endobj +8091 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F55 3831 0 R /F92 4494 0 R /F11 3889 0 R /F8 5024 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8103 0 obj +<< +/Length 1788 +/Filter /FlateDecode +>> +stream +x�ŚMo�8���:�@���a���@�n��i`8����T�����}�"e�+�-�CkE���ϐñ߮n>�1�a���������Ly�R2o��)�����)��[���91�K��<O��&�M&1�ڛ�}`�n���� �-�bT�rN�Zܭ>��\;��b�e�F�ro�nﰷ�g�<����E���!�\�/���p]�k�#��bI0�����y���7)�����~���d0-�b��1x�AO!_ab�di����$�-��-a�7 ۦƼ1��\ oI�a��un�}Z�fQ����]��û�kc-��,ƅř����M����9"��Ū'�!���/�6��)I��I���o�����\�����,_o��xPj�?���\�vL$�QR6=�H� +�KB}��D9ēc��$z>�.4�'wQ�Ώ�ۛ%�o�?��퓽����A�&�7��������G��T�Np�!�]/�Aw5�������m�< }f�4'�%����V�bT! +�_i�[�2̌dԃ��h�op`���<�o;�U�~�F�&��#�6�b�\��!R�9�s���X��ie �����l9�)S�`e��D�;�V�<1�1�p�2W�W1��̷��i�;w�=�K[�M�`zݣ4p�RX��i�/d�b��D�`@���@��+f�ì���e���!������RN������t�!�̳�\t�c�S�d�>�4x�X��ؕm�=Ox���>���b�A=��f�RO0B�"����X���c%eu?��&�5)QHj5V�;���5c���� =�fuʚ��`s��|�#���6!`�I�M1�#L\�1�#U�V�����f�*�06N�����ֺȭ^�x������y���ŝi�C��7Ɇ�$�PW8"����%bX���8�n�����פEb~W~��9Ρn6���rFA�ce��M�tƐ!d�_/�K+0�����$M��p�]�tM���h���D�&Z=��8҅N[.@��������/\K��$��p�) +'>:���p@`N)HPx�ܛ��p7N�����=7N���z����.�.92�av��mD�9��i�]n�=^�-��S���+�4O��Mn?�a솎(��c�W�cZ��岢�`ˊ�<��+vS v3A�Ws�uTdR����`[�LAC�Z˼�G������9��$l�VZ���/w�Y��n]�\{���n�Ӝ��+V�j��s$|q*�pWn ��J�vI�6ˮj�������r|�$-�흝�{36?�f��L6�� A@7 +���0���ٙ{�u��ųj�b�6�#P��v��e����Fy��"��(1����ys���Lr@Nw��h�FL�g�N�x-ƾ${�n���.���+%�]��*��o�$�8-A���S�r���H��mѮzpQ��k��ʙ>��]�#�B��[maЄ��W��i6lzF��� +�a�?� 7R�35��6滶X��� Z$B#]�'l�GX7��9 �,���m�"��w��PX!����$�?pS*6|�l�?������Iv�W�۞��R7U���X�ٻ��67`�+>��I6,{��� +u�Y���k�d:N����n#�n�ݼU�xN���A3��4�φ�b�Z|��(���$�0͡;W�[�!M��k�f'^U�F��O�(:᪺� +[Y�Mʜ��.���zX[(�vQX�D��'�?J���Z7HJ��|4��p߶7���s�~��οq3������ +endstream +endobj +8102 0 obj +<< +/Type /Page +/Contents 8103 0 R +/Resources 8101 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8082 0 R +/Annots [ 8088 0 R 8089 0 R 8090 0 R 8097 0 R 8098 0 R 8099 0 R 8100 0 R ] +>> +endobj +8088 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8089 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8090 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8097 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 257.339 171.594 265.476] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8098 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 245.384 171.594 253.521] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8099 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 233.428 171.594 241.566] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8100 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 221.473 171.594 229.611] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8104 0 obj +<< +/D [8102 0 R /XYZ 69.866 801.979 null] +>> +endobj +2238 0 obj +<< +/D [8102 0 R /XYZ 70.866 771.024 null] +>> +endobj +8105 0 obj +<< +/D [8102 0 R /XYZ 70.866 560.422 null] +>> +endobj +8069 0 obj +<< +/D [8102 0 R /XYZ 70.866 355.209 null] +>> +endobj +2242 0 obj +<< +/D [8102 0 R /XYZ 70.866 328.013 null] +>> +endobj +8106 0 obj +<< +/D [8102 0 R /XYZ 70.866 159.926 null] +>> +endobj +8101 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F11 3889 0 R /F7 5023 0 R /F8 5024 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8114 0 obj +<< +/Length 1485 +/Filter /FlateDecode +>> +stream +xڽXKo�F��W�H�f���@i�ȡHS(�-��t�p�K~{g��$-Yr��M����η3������=�3�=xػ�����y�BO�(����B�dxaDQ@��ڻ�)����{��;�X����t������U�M�&i��P��ߗ�g$�Gv*�D�ro����bo ��{�1��-���`Hp�����O�MM��;?��O�"�^hǒ�\������\Ւ.���/��<i�jN��B+���ނr��������*-Vim�o�N�q��Uk��nN�����ȅ �X���va�_p(���u��}D��c�2�(~PO��������xSnK��H˶��2o�lgӘ�QbbM2�$<�&۬hd� ��F�V�"eK�.d���[���z�GD{~0��;�&�jSVq�n/4d V�ڏ׳A�ޱ�R��mU��r�0�v�:6�o���ްۗzc��қ67��0�o'Gb�t���:'qAh�$.�+��mӝ���1->aܽߧ�Dw�{�����&���"p��s��ܕ���d��y����� P&�8a�@5Y��"n�`#%{JCD�(�d~1^��]!�vXC&!��u��$�m�F\^Pp��*�aN��T�6�����ک2+(��z��2�FwU�ǪPYxC�����j��t����[2D�'��nG6�]����y�~�)�;6�ө��n��)\@9=Ͼ��B����;������=Şӊ�944v���(:��1R@C ����*np$��"�@�����0e��v��I�9F ��LK��v��x�c�Htk6U�.��z5�+� �VeY���x��zz,#x)����a!��8 �B%G���zQ����et�=�fj8óLO�Љx���jF;Jש�q���8�N�ѵw�0x!c��!���iڪpLj���n?���P$�+������ +��t�#��l<>�0�SgzR�n�%a�(���ǣ�r>��v�rE��6����̻y��a������;��K '�j�s�_^V���_f��@#<��x���&��f_�aT��~��v�%�'�8�K�b�p��@$\B�4��O�6�;OT���o�i4W�{���=��_̼ϡ�r�J?V�c�앀�:]��c�&;��Vm�Tg0�2[O�imsgϘZq��$٧��:m�e�O��?����IUu���l}ߑ����Ǩ7��?��zk����&iܗM�ژ�l�`Us5�"��O�pN����ǖa_h��aZ�m"��������h8釳�[�AnS=��a����Q���?JH�y�y����D��a/W�K���J���P=��N�*����P�s;�g����~�Y�uWŝ�{�� �]��]���t�Y@DPXuJ�z<���_SB�AN�d�}Q��Ɖ�%8\Q�u��4ٝ4��Rm��o�W֡���K�� +endstream +endobj +8113 0 obj +<< +/Type /Page +/Contents 8114 0 R +/Resources 8112 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8082 0 R +/Annots [ 8107 0 R 8108 0 R 8109 0 R 8110 0 R 8111 0 R ] +>> +endobj +8107 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 588.73 171.594 596.867] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8108 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 576.775 171.594 584.912] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8109 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 206.188 171.594 214.325] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8110 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 194.233 171.594 202.37] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8111 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 182.277 171.594 190.415] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8115 0 obj +<< +/D [8113 0 R /XYZ 69.866 801.979 null] +>> +endobj +8050 0 obj +<< +/D [8113 0 R /XYZ 70.866 698.555 null] +>> +endobj +2246 0 obj +<< +/D [8113 0 R /XYZ 70.866 671.359 null] +>> +endobj +8116 0 obj +<< +/D [8113 0 R /XYZ 70.866 540.048 null] +>> +endobj +8049 0 obj +<< +/D [8113 0 R /XYZ 70.866 304.058 null] +>> +endobj +2250 0 obj +<< +/D [8113 0 R /XYZ 70.866 276.862 null] +>> +endobj +8112 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F11 3889 0 R /F7 5023 0 R /F8 5024 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8129 0 obj +<< +/Length 1532 +/Filter /FlateDecode +>> +stream +xڽ�Mo�8���B{�������â�`{ꦾ���8Jb��RYN������#Y�lIA�Y�w�|8��gW�H����!���������H##%�f���HK)C�$��.���&S��8�V�Eg�|�&��ݼX�c��*��<��8Y�-F%'c���f�u��l�sD@Gd/�5ҔG����Gw���#ft��xrq���>�����cD��h/>A�H�4��|�P>^d�M1Lo�J�AA����C�(Ҍ�=|ga)"����ـ�2\xnHDd`H��C����O17"��97� +D%�+)��@A�����6�ݥsЦx�<�,�l2%b��} W-�7���,�:GM�9�(��8��K��=��GO�SO��to��UD3��L������Jh�]nL�X��� �;�A6<��#���P8��(��Q'P�O1LiE�v�Ȳ8�'�"_ǰ������zt~AHe�` +���!�Jx��=Y$q��'���]�*0A�F� �L��0��@!`eo84��]ނg?�0�U����8_-w�E6ߦ�݉��s)�l},���]�=̙uO�M�nQD�����&8� ��0���h���%�DZ���K�c���0�AY��^%~�%�Cz�����*���$���+˖Ř�3SX6�����f��Ͷ��i��� +����[�Ͻ�y@~`�� �{j&H(lq)Ea�����9�����㟻�ni����Q�x�V��>�+pZ�f�=h�u��jSB����r���N�Њ0�P��2�Z��d�9�8���2�L�{�#Gi��q���J�Ej��Nw��=��!���r͕jP����\{�nN��[��ݣ��s���N��K:U��s(�\P<� +j-��aHqY[m��b����5�Y�d5��ge� ���[m���)��n�Jޭ���$w]*�`�:�3(�Z�E�SX�릮v<8 N��P��:��z��2���:� �c��M��p��6rr�*#��^�0 {m;b��uO�z{����&�R��:v�@ɂ5"�����,�=��k�Y:L9&��e�]ˠ�Q�Aa��s M�`�4x ��lx +FB����:��~�a +���6v�~�a�w����G�0��� �A�#����Ȕ�J+��$�VEu�JD�9F���v�JL;��DL`��a:Ȇǔh�oq$��c�R{Q'`�O2�iUjoW��@c?�4V}h�����V��\Yx�!i˶�Y�n�ț܁ ��0v���b�У�P��)�����M��~�ax�����d|�y�����뙬����Pu�� ��� ����7�aT�aY���a��A*7�s?쭷�7������i�F(2�����A�n���f���ϳ��f�g +Ჟ���io�$?ȯa�}d���?nо=������oR���T>��������l ��S����R���π�)���7�����O�_�?�e�:~�.��v��5����w'vvC�}I-��_,�89��Vb +endstream +endobj +8128 0 obj +<< +/Type /Page +/Contents 8129 0 R +/Resources 8127 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8082 0 R +/Annots [ 8117 0 R 8118 0 R 8119 0 R ] +>> +endobj +8117 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 482.566 171.594 490.704] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8118 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 470.611 171.594 478.748] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8119 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 458.656 171.594 466.793] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8130 0 obj +<< +/D [8128 0 R /XYZ 69.866 801.979 null] +>> +endobj +8131 0 obj +<< +/D [8128 0 R /XYZ 70.866 771.024 null] +>> +endobj +8072 0 obj +<< +/D [8128 0 R /XYZ 70.866 604.346 null] +>> +endobj +2254 0 obj +<< +/D [8128 0 R /XYZ 70.866 577.151 null] +>> +endobj +8132 0 obj +<< +/D [8128 0 R /XYZ 70.866 397.109 null] +>> +endobj +4307 0 obj +<< +/D [8128 0 R /XYZ 70.866 205.191 null] +>> +endobj +2258 0 obj +<< +/D [8128 0 R /XYZ 70.866 188.081 null] +>> +endobj +8127 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8175 0 obj +<< +/Length 1619 +/Filter /FlateDecode +>> +stream +x��Zێ�6}�W�Q".I�"(�m� ��E��CP�!hm�-�%9��K���bK�di�Φ�d�"��sf��.���I�U:�������/ד�+[RB����!1r�0��H�zi�L��t~�ʰ��̛���?��t��b�Q�eA鮓߮'�'zb��!9��p2�cc �^���c�34�g6|�o'�I0�\���� \z��ڄ4��|qEUm�D �Hòm$a1��Jyc�1�8�)�f,�gz1ɪ\՛��̒�E�l��O��^6%&�Aژ�� �xD��fӼ���8q#=r>럋b�^5�'�_�m�ԭ��5'����ɉ��D���-cW?��"�!����w�Q��T<����p��@ܡU���p�Ũ@<ER��hJ����66o/��ژR��X��87�q��4^�̠��͑�=ƙ���|x��v���'2 +�9��m.q��6��烾@�P�\_i�D����p��u�(�E�.G�rtɟy�U\>��aѶK�h���&��M⅟���lʩi�.Z�~��#jۀNE +�RD�^ +G��dž +N�L���k#N��qB ȷ���8���D�i� B�b?��=�0 �|?�8�;�b�SR��2�$w�g�e�-]�נm���HS��9 +�� �F{{��5o���]�-g����,�dd�}UuY��O��v�!�k���w5����ǁl��a�_�c�2J�:��bU矻���O�-� �%/�# +xyh��X��S��)���\W��ŗ���-��" �&P�6魱FGeBd-AJ���S<�N�́P�kz�j��3�(��}u��G�M6����4׀�р�׀@D}U��T�+z���B��-q1��T ��<�%���#�f,v/q��Tc��{�%:/�H=��� +`����VbdaյG��Π�vߜq�(ƞ??��ź��������������w���S�x���|��!��PDlfX)U�$�P�@���S���U�Î�f�Ը�ZݔBj]�Էv�7,�#V������O�cu�a�U%4��N����TFaC�������c1u:�;�z�d�m�q�_�?��+���0��䋟ѽ�EK7�dƻ�W���.Lu��[�c��~������ ��cy_-[Ϗt�|\�|���T+�}��jm�t :��b�|dQ�0��َ�T����z�3²jZ�Ց�?� +�1�>T�d-Ư�'�������A�6�g�R��G�X��S�GJ���IZ��n��&�̭��*u�sH ����x��7#�v�_�u��9���������Ĝ�����&yA�v��k�l��?@Z��B�D�6>~�g^���~z$�Vdl� ��@�o�F ;��?��pҚ�!�Y�N)3wٺu�٣m�6�� +[�J���{�4����^%Z����Q}{���D�變�T{��s��>�;t��n������pS"�F�jU�K����¦?�$Y��ǚE���_~{(*���x�_�E�,kq�P��d��%k���^����^��2�C^��^��!�(��j�3�D�:v��'*`\��[�>W�M!�}���֛����b3�p +endstream +endobj +8174 0 obj +<< +/Type /Page +/Contents 8175 0 R +/Resources 8173 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8082 0 R +/Annots [ 8120 0 R 8121 0 R 8122 0 R 8123 0 R 8124 0 R 8125 0 R 8126 0 R 8133 0 R 8134 0 R 8135 0 R 8136 0 R 8137 0 R 8138 0 R 8139 0 R 8140 0 R 8141 0 R 8142 0 R 8143 0 R 8144 0 R 8145 0 R 8146 0 R 8147 0 R 8148 0 R 8149 0 R 8150 0 R 8151 0 R 8152 0 R 8153 0 R 8154 0 R 8155 0 R 8156 0 R 8157 0 R 8158 0 R 8159 0 R 8160 0 R 8161 0 R 8162 0 R 8163 0 R 8164 0 R 8165 0 R 8166 0 R ] +>> +endobj +8120 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.157 726.215 166.526 734.699] +/A << /S /GoTo /D (trilateration_8h_a95fc45efcb10019be21704539eeedefb) >> +>> +endobj +8121 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.57 725.243 293.581 734.699] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8122 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [443.892 725.243 477.903 734.699] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8123 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [207.246 713.287 241.256 722.744] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8124 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.744 713.287 350.755 722.744] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8125 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [396.341 713.287 430.352 722.744] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8126 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [491.395 713.287 525.406 722.744] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8133 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.731 670.262 167.101 678.746] +/A << /S /GoTo /D (trilateration_8h_adf749802a4d86c2a97a6bac50d17bfea) >> +>> +endobj +8134 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.013 669.29 296.024 678.746] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8135 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [447.629 669.29 481.639 678.746] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8136 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 657.334 128.787 666.791] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8137 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [186.269 657.334 220.28 666.791] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8138 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 624.373 217.812 634.749] +/A << /S /GoTo /D (trilateration_8h_a3c9dfccb08c7e4cdb5533cd6bc8b5832) >> +>> +endobj +8139 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [263.161 625.292 297.172 634.749] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8140 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [401.455 625.292 435.466 634.749] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8141 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.888 592.33 222.867 602.706] +/A << /S /GoTo /D (trilateration_8h_abe0c5c3a77d41a6a94aceb8069ec2082) >> +>> +endobj +8142 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [331.289 593.249 365.299 602.706] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8143 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [421.722 593.249 455.732 602.706] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8144 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [189.002 581.294 223.013 590.751] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8145 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.631 548.332 315.861 558.708] +/A << /S /GoTo /D (trilateration_8h_aadf622c7ec43dce57988a9aef1533758) >> +>> +endobj +8146 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [320.489 549.251 354.5 558.708] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8147 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [457.695 549.251 491.706 558.708] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8148 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 537.296 128.787 546.753] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8149 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.151 504.335 255.078 514.711] +/A << /S /GoTo /D (trilateration_8h_a76695d4831cf7c08b468fe56f117b358) >> +>> +endobj +8150 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.25 505.254 372.261 514.711] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8151 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [466.341 505.254 500.352 514.711] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8152 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [122.349 493.298 156.36 502.755] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8153 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.57 460.337 330.364 470.713] +/A << /S /GoTo /D (trilateration_8h_ab5f06e68df75b4708d722c268932578c) >> +>> +endobj +8154 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [425.737 461.256 459.747 470.713] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8155 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [189.002 449.301 223.013 458.758] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8156 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.399 416.339 294.267 426.715] +/A << /S /GoTo /D (trilateration_8h_a821d668be2cee0fa1881c05ab99e05fe) >> +>> +endobj +8157 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.662 417.258 331.673 426.715] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8158 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [418.24 417.258 452.251 426.715] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8159 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [153.247 405.303 187.257 414.76] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8160 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.739 405.303 278.75 414.76] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8161 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.168 372.449 256.527 382.717] +/A << /S /GoTo /D (trilateration_8h_a4270371ead754327c478d19d57bfafba) >> +>> +endobj +8162 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [424.616 373.26 458.627 382.717] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8163 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.352 361.305 238.363 370.762] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8164 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [274.191 361.305 308.202 370.762] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8165 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 185.345 297.675 211.885] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8166 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [189.466 165.951 346.876 175.867] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:a.norrdine@googlemail.com)>> +>> +endobj +8176 0 obj +<< +/D [8174 0 R /XYZ 69.866 801.979 null] +>> +endobj +8177 0 obj +<< +/D [8174 0 R /XYZ 70.866 775.009 null] +>> +endobj +2262 0 obj +<< +/D [8174 0 R /XYZ 70.866 324.541 null] +>> +endobj +2266 0 obj +<< +/D [8174 0 R /XYZ 70.866 146.827 null] +>> +endobj +8178 0 obj +<< +/D [8174 0 R /XYZ 70.866 82.821 null] +>> +endobj +8173 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F61 3918 0 R /F68 4470 0 R /F66 5409 0 R /F67 5020 0 R /F51 3827 0 R /F55 3831 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8193 0 obj +<< +/Length 2061 +/Filter /FlateDecode +>> +stream +x��ZKo����W07 +����{H����!�L|�-�%�!�O���~P�-٤�`�fuUu�W�~����3 �����Y���� A��,�yb�)�8�H��f܆��eD�$l�|�5�ʚ�,��6~��ʾ}RK�CU�b M�JNB*�����?o��“�$ J(և��6����#�&�WCy�`Hp���?��@uI��("ˈ`�� �`��g�{�A� Fi��f����n�|)��2�#�M��<�cD��TH���M�j���vd�Q�(C��]Y����5T�u��q1P1r��4a�2P�Ɋ;�j �3�Y:��X�+������-�{�6��Lmkuܔ����j�� +�����C�]��~�U�-`(��_Y�M^7��˩�a�G ���m�V�� +x�U&�ɶ�٣i� ЙB0�AD9K���q��h\|۩6Ё0ZW�1�����������X��v��R�cU�U]��k2��bIq�eI��ڑk�X�O�g^�_�Ø�tF���7����lT����=cP� �F$A�������2☆�bm���ջ���w�+ۖy�g���K�Wml�W0�}3&�/��gL��wL`�ˇC���uT�V7�`皰@Xb0D�M�;*ܡ�H�M�� �� �~�X� J*M�AX$-��- ���I>YڤCJb�ii���b�t"�'T�e$R�#3����/Na����"$���{���I' �41I��njCI"<�y����uSV������-�b��^[ $ݤ�_�1��n������ +��`��?]��xX" 7 +��|�]F�<��d{�A�ׄͮRj��~̠�x"-��|�cZՍ��\@M<Mh7߷E��I��(G��w@+�L!�A����(eH�!y&$J�MeehN���<'/D�@�8����l ��q}�#�B��~º��� ���i��ym?d�qPY}���f��]��/ �0���}�|������@�}3��#�{�m��vZ��[���<e:�h,��V�X,;E���zP��2���/*��'�)�l��,� �ex�=<ލHH&,��˴t2��`�q<�"=x(��3ݳz1X�8,�|)ɩ[�-b5��3K�W�VO<O8�-����!h��L8g'��|d~W�\�S"�0��A����%�aVee܈�u�x�-y�"��k��o�C//E�!���@�㎃Y��b^�I���n� ���b/�t�DٝkZ�uOf��21�0�O)��2Q~���C�ԓ�߫ʆ3����t�t�l�L�kL��m6�,�ħ4#°~�B�,m��8|y$p�+pQ(��m�H?B���D�w���)�bW�g��,�M^@������]�������!��V�W}-�z� +B9AI['\D�4�~�v��6��e"J�)�GiO�2/�6V6�o:xQ�ꡌ�L}2��x8�R�b�5��P_A)�s[�_�4�~�vd��&��q�~8v�8�� +U]�l�np�j�Ƙ���y����� +'���^�τ����k�H?��B�;�W@5M?��*@��&�Q���p_��.��������B�%��ځJ�#�@��W�y�<6��n�X/�z�G ��7Q/��_�Z��w�z� �<��5�a�v+�[42��%pny1��v-mG�|�my�0;�/�]����v�o�B��,������Ц�-|8�2y��L������i�����G����H��e�y���A=���X�t^���c<�-/�v�#���s�l�t��&n����gM��_<5Ek�������O��Oc�]���w�HP���V5���y����az�K�>�M۴^�'���=Fϊ�:r� a5N���#��N�:3�Ǭ҇�!���*��f[�|f�y�Z�)>�=Z>��K=s��3�o��r[(m��L�{V>/�V���GR�y�5���U��C�^�a1�x���y���xsE�ys�s����-"�7e^�g�>����<��ҹ�GUh���Js:�m��<T�P��Z��� +endstream +endobj +8192 0 obj +<< +/Type /Page +/Contents 8193 0 R +/Resources 8191 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8196 0 R +/Annots [ 8167 0 R 8168 0 R 8169 0 R 8170 0 R 8171 0 R 8172 0 R 8187 0 R 8188 0 R 8189 0 R 8190 0 R ] +>> +endobj +8167 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8168 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8169 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8170 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 667.386 171.594 675.524] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8171 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 655.431 171.594 663.569] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8172 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 643.476 171.594 651.613] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8187 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 131.021 171.594 139.158] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8188 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 119.066 171.594 127.203] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8189 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 107.111 171.594 115.248] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8190 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 95.155 171.594 103.293] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8194 0 obj +<< +/D [8192 0 R /XYZ 69.866 801.979 null] +>> +endobj +2270 0 obj +<< +/D [8192 0 R /XYZ 70.866 771.024 null] +>> +endobj +8195 0 obj +<< +/D [8192 0 R /XYZ 70.866 497.262 null] +>> +endobj +8179 0 obj +<< +/D [8192 0 R /XYZ 70.866 239.83 null] +>> +endobj +2274 0 obj +<< +/D [8192 0 R /XYZ 70.866 212.687 null] +>> +endobj +8191 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F13 3832 0 R /F10 3833 0 R /F11 3889 0 R /F8 5024 0 R /F7 5023 0 R /F14 3888 0 R /F1 4058 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8204 0 obj +<< +/Length 2226 +/Filter /FlateDecode +>> +stream +x��ZK��F�ϯ�7:V��M�dkGa^��FӍz:�@h[���oU��T�@k|�"��*�˪�d^?|��x��{k{��~x�{}�BO�HJ�=|�B���^Q$����}*����g��3�%���o��"�����}��uRo�\�������I�N�RHQ�-���'����h���G#�y\0$8��[�w��`vWD���/� �#J�NL��^�Ө�.�,D!̅y��&�8�we��b�VU��C��U�~U�|A���� +?-++�%u���7_�p��<��B���7�j���U�f�k��� �"�EeJF�aֺ��0��W���H��0 :me߀n��� �J"$#� +n*�bYd�}�ί��AΊ�f��u4��`�FP$�����"�2�L�������qhD�Eaآ��m�J��8��;(�Z�$�`�l@��2tu(���V֬�.��xIˬGB?1�i��_�P��0�̥(�07�������2�R�D*������9���~�6bL ��a��x)�t���%�t$��P<2d��1�eU�t������a�y�#��O�T��R2�$�B��sD��B.������ɀ1��`�[��=Υ�!����(�[��'������@�"��c�_��6����G\���#m�,M�}��gf#�mTRm�Q�@pn�f�H��T�)��֛mR����v +�[�� L����� }AI�o�$�n۰�� +e�l�4��ncf��a�k�#�!�;>��T�e=x��SDNa$�=5Iņ�ĭ\OL�b��8I���J�A�$.��u�9s1x���f��=b���2#�/���3N�N�l�|�m�&ch�� +������Q&P�:�ޢ�uA���I�6aD�j�Y�� {{[� Y�7�A��"��9 ��ĴLv58�!:)(���lrG�G�@T҉e�d��f�/_�2Λ=-ۧ��SE&�愌 �о5�h�3���k���e�I�i��K;T�ܸ2����ҏ���0��m��6X).̈́#Aw�n�"��`�4�n��lZ��*���pU�j�gX8 ���=\'��eQ��M�|���y�L��zS�E�Y:,=!�(�.NӋ�K1r?��t�ot���8)�+�8 ���� NZ���7��͈�t�ͤ�,�rBI2~~*�,/Q�dN:ʽ*��i�M4�]�p���̼�(��N�ݯ:ⵄ�J܆j)2�����Kr�V[���Mfo�Y��EW?�W�Z�}�f��J�U���+�������[�L̊�y:l�HH�i� bD�P_`ye�L3댑��^;�����#G�w�H�.���'��ͮ�T`6/BnV1^�V�n����}���.ߘ��vIb�o�ɭ�e4\3�F۽o��ao-Q�J�DE�������vw\��_T�vqQ��.�ˢJ�5��_�;�.��D��k���:~�O�ox�9>4���yg�㌎]�[�د7��6)�6L�0p�Ω��OV��2n��S4�����vBX���9G�����yۆ�=)ؠU�y p4J."��A`&�*~)�b��i��\�ҵ�ɉ9���4ִo��h�\���4+���m�?��`e�:O��OJt�K��q���q�4�%�����'3ݩ���$b�t���b`Oi\a�R������!,&V1+�]�ߋ �c�=m�yۭ���P�s��kۖD{��BTt]��mn�=�\������#��}m`Ġ1Vz_��ɪ��І;{zdOׂ��f�x۳͟K�J�H靖��8u#�P���G�}��H�,7O��ݞ���ؖ��"���Qy�;c$P�ĕ����8;�, +=�$�-�?2����Ɵ��Zz��tU��B��lXJ*&wj��Hⳉ4ST���?O�ɂ)'�.v1��S8�P\nNL4�̀Fϴg'�t�����,�ԍG��c�� +r^�e���aY�����r�CKaᅼ�6Ѥ�e}�s{������6i;��<�1�@����Qa J(�8��D���Ŋ��H]��h�MҾ��9 ���}<���v��l/d%p�Jr.- !��S�Mכ�7��|�Cf��v'�s��xr}mN��Q�3� ��$p]����l��wYdT��P�O�})�,��Su���r�����a�}��E�I���^��ACພ/���¸@R�f�{�U��~W4������1�� �� +endstream +endobj +8203 0 obj +<< +/Type /Page +/Contents 8204 0 R +/Resources 8202 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8196 0 R +/Annots [ 8197 0 R 8198 0 R ] +>> +endobj +8197 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 320.836 171.594 328.973] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8198 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 308.88 171.594 317.018] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8205 0 obj +<< +/D [8203 0 R /XYZ 69.866 801.979 null] +>> +endobj +8206 0 obj +<< +/D [8203 0 R /XYZ 70.866 673.405 null] +>> +endobj +8180 0 obj +<< +/D [8203 0 R /XYZ 70.866 430.661 null] +>> +endobj +2278 0 obj +<< +/D [8203 0 R /XYZ 70.866 403.465 null] +>> +endobj +8207 0 obj +<< +/D [8203 0 R /XYZ 70.866 272.262 null] +>> +endobj +8181 0 obj +<< +/D [8203 0 R /XYZ 70.866 82.821 null] +>> +endobj +8202 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F29 2678 0 R /F11 3889 0 R /F8 5024 0 R /F55 3831 0 R /F7 5023 0 R /F14 3888 0 R /F1 4058 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8213 0 obj +<< +/Length 1839 +/Filter /FlateDecode +>> +stream +x�Ś�o�6���W��j�����n]�aغ<Hñ�Ā-����/��w)G?ɖ��!�#�wG��������Dw� ��"���r5y���ȐX)]}�4%F�Hnj(������͙6�|��.�d��7YJ���w�m�>}L>πN�}���gJ��I>���0��j�e�Fprc1LD�����Fk|�!���&�Z��EBr"����ɟg����Z�1���>�ŝ}:M����1Y����������&��`��h)���l���U�dŚ{omZ{�%����$�ʙ9n��,r�/f�&5�-�-��}�_��ݫb2�,���t~|?i�;���7���7��4� ������zs����gJ����������u�~���k���)�����!<&J���F,�@:!͙@�=��f��c��.����q��ԡTX�b�Ĕ�d8��"ܧ蠰�O��k��m E�S�����˱���u�~ȓ�O�bI����73��0z��56�� I�E���5��z�a� q��;�.��U@Յ`�;DYø��S�nj��r��%��g��C��PSLb��]9����N9�m@�W!�'������Y(2(\C�14$��>Am�v���)6У��`N��j>�Mnϒ��1L���Q�8'B���� (�om�=�s��+�H^l������P��8�<�6*h�3=�Q6n2�h�Hn-��Qح���.��U�VO9#]r#70�0s������r����EƊ�ts�lx�#R�ds�V��憹2Wsڨm�<9��x���X,��'�|��%��Znm�,ۯ7��T��`V�|,m���#e�#�4Q����z�xm��D�Uv�;0�6�i�1��=��a1������-�<�[���H���,�N��m�~�jP���aX/f44!�M��z���t���."����M>Q���S������&�s��v= �.� +P&��VlK)���9������}�挵�;ct������W]�X��2]w5/��K|'�R�Y����m��ei�8rj��H��!���� +O�yO�$��4ܥF���'B��8�k1$k���w7���_a���ΠW�`6���n�2F#A7���<�~o~�߬���i� wI�������y�IL�L<)xxYmw�M�R͍;�`�㞈��Ҷ���7~�MH���Q< �̭��B2F5�b�hhB��@Hm�{t�k}cp+1�/�~�p�j6N��g<�9�g> ]��Y`��ae��bm9LW˭m�)�>�����jy��x�e���,4��Z��C3�B��uyRU�L�ۉ�]v{R����t'7����U' +���#���b� W���+hPd���e�^E��l��`�[s���{z�����8����К$E�C��M��0�(e�QX�Ɣ��e�#�l�� dU��� td��r��n��(�\�{+:ػ|,-n� M�(�����i��$� �������Wuڨ{�Ŧ�a�Ѭ�#Ŧ͋��� +M���(ME������AI"�9hsF��� ��qXa�!��_2wq�m^Є�#�e�3'�h�{{,��M�_X�����a^��U���po�|�q��y�=�[���.w1vi�m<��ab��xV�j�2�Η%A�cdI[�ʀ.iWH�j��uԶǫJ����y����C��C�4:̳�N�;��7�պ�W7��W*xUk��OB��Z�J+�ʰ��<� �tC�+�u�k +j��Vj+(]��`ʊ'���D)��{�"yš!2���Z��ٴ��h� +endstream +endobj +8212 0 obj +<< +/Type /Page +/Contents 8213 0 R +/Resources 8211 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8196 0 R +/Annots [ 8199 0 R 8200 0 R 8201 0 R 8208 0 R 8209 0 R 8210 0 R ] +>> +endobj +8199 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 711.389] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8200 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 699.434] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8201 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 687.479] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8208 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 365.065 171.594 373.202] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8209 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 353.11 171.594 361.247] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8210 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 341.155 171.594 349.292] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8214 0 obj +<< +/D [8212 0 R /XYZ 69.866 801.979 null] +>> +endobj +2282 0 obj +<< +/D [8212 0 R /XYZ 70.866 771.024 null] +>> +endobj +8215 0 obj +<< +/D [8212 0 R /XYZ 70.866 642.723 null] +>> +endobj +8183 0 obj +<< +/D [8212 0 R /XYZ 70.866 486.845 null] +>> +endobj +2286 0 obj +<< +/D [8212 0 R /XYZ 70.866 459.65 null] +>> +endobj +8216 0 obj +<< +/D [8212 0 R /XYZ 70.866 234.191 null] +>> +endobj +8211 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F11 3889 0 R /F8 5024 0 R /F51 3827 0 R /F61 3918 0 R /F7 5023 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8225 0 obj +<< +/Length 1526 +/Filter /FlateDecode +>> +stream +x��YMs�6��W�(�D� zh�&39���q<E�mM$�!�Թ��wI�2AB�Dz��m��-����I�?Pt�O�G������~�#��Q�����J��0�(Zl�͔I1�]�G��B�����]<��HOߤ��>N�U�M�r�������J��1��X3�����-Ax�=��F���{$$�Rpx�C�&�i2HSQL�<?�w3N�q'�xcS�:cd�Ӿ.�ٜ��v�*�lFɴʗ}!���e�� h���!P@�0�"�@D� +��/�N�b���ڔ���^V����P���,��(�&"�aq�5\��~�[x�E����0�A����Q||7A�e"�hN)65�~ O���cw��[�� � 7��?�2�?�VY�\e� <Mo_�@n=����C�O��$N�q~]6���N�� ��4��B~�Wbp3�4gP̕��t�c��ԕ�����Jjm/�̬ʪ$w�Y<��}i��Α��;W����3�r��ٹ���}+$w6PU��.L�nh��^���#�L��P��N��͂qL9��a����U����;�P��\Bd��"�`�2zl�/�l�IF1��/����BT(f`7�*wCs�D�X�;� +�bC!U��(�O�������VZ���Sb�aC�WDLLtk�mRr�3���> �tef�t��a���oT�?��Rg�D`"�9�A3�� ���7��poPBa�5�gޙ�fݵ�v ���H7*�%���{�|����I'��Zg5�^���4���ᶄH?ۆ%d���c����ȳ/��,/.����u�!�*:�c�b8�E�T��Uh��6�ll�eM���<òaY�i�����x�ֺ��]�^�"B*=�f��8i��❗x�u�l�ٕ�n��-���J�����a���!��yqw0������7�r�6կZb���o��U�m ��j�ګ�Կ��y� ����>T�7���W~�*�Gr �!�M�*Y?��29�/��������>����|��� ����� ͕WU���(���3�?��կ,E�om���^���~�E��9��z� L +,����^vn>�w����]!�ɵ���B3��2��$��t#(� TRc�o6�*aّjX�93������U���T +�d�� +Z�/"�.�����T��8���ì˳$�a����t�?�9�Bj��]M�.��Pq�a?��g0B�@ٌ�>�.U #j�F�ptSL���PPF�� �� ښNQ��G��D�X���Ċ�,���>Nr`�jgɶN�l�M`��/�Ы��K/��H����(*aK�x�}�%��e�h l��M`+�Pqx���S�w�M��������9v�!9t��Q��_YX�ЮY��J$9:��%��xV����ࠎ4&Bԝ (�:���_�S.� ���Q�{�ɨR�*�E JIai��O��ޯ�;����W|�['�0���4y�W� ��rc��lQ�%�I�n���6b���%B� +endstream +endobj +8224 0 obj +<< +/Type /Page +/Contents 8225 0 R +/Resources 8223 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8196 0 R +/Annots [ 8217 0 R 8218 0 R 8219 0 R 8220 0 R 8221 0 R 8222 0 R ] +>> +endobj +8217 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 650.326 171.594 658.463] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8218 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 638.371 171.594 646.508] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8219 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 626.415 171.594 634.553] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8220 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 614.46 171.594 622.598] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8221 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 262.284 171.594 270.421] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8222 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 250.329 171.594 258.466] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8226 0 obj +<< +/D [8224 0 R /XYZ 69.866 801.979 null] +>> +endobj +8185 0 obj +<< +/D [8224 0 R /XYZ 70.866 748.196 null] +>> +endobj +2290 0 obj +<< +/D [8224 0 R /XYZ 70.866 721 null] +>> +endobj +8227 0 obj +<< +/D [8224 0 R /XYZ 70.866 552.914 null] +>> +endobj +8184 0 obj +<< +/D [8224 0 R /XYZ 70.866 372.109 null] +>> +endobj +2294 0 obj +<< +/D [8224 0 R /XYZ 70.866 344.913 null] +>> +endobj +8228 0 obj +<< +/D [8224 0 R /XYZ 70.866 213.602 null] +>> +endobj +8223 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F7 5023 0 R /F8 5024 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8237 0 obj +<< +/Length 1460 +/Filter /FlateDecode +>> +stream +x��XKo�8��W�(5÷��{�n7zXtS�� �VSam)�䤽��wH��(�v���֊4��|�<�_} �m3��m��������K"���,�����Q�)�$���EL�U2��D�m]��6����J��{yQ����*�<%8��\�+F%'1bz=?�s>�:! Gd'F)�(�����G+��>i=X�M�C�3x^G'��S=��${ݍF�kԀ�Zś���3���[�*6i{~���iiT�nހޘy"a�n�6�����KF�v��?%��y]M���@Ls�p�7V`S���<5�;� ,�H'L�{rΑ��`�� s�p�J"����u��f\D�$�������8[o��k�����������[V�<N:X�X���soӞ}�yd�eg��|��L)��B�t� Tو"�0�!�ӻ:���� +���pmC��2 �b�]gu�T�9�Ew��� �'��wf� +�����J��Y6����o]d]]N"����X�I4V7 ug� :�д�$g3�As���U��}�^���~������]�W�&��z�O��?=0}_�,!c&�Q�a�#����nۺ�~qd|2}.��K���fp�6/]X�ó�_�g�4H�A=*�zTp�!�K���*��J��[G��ra�@Ɲܴ3�KE��"��G�ۈd0�d4����T?lN�ބ��އ�}E8�ɨ���nR�A0��<��)8Ns���0�pi�1���<v� +$S����1�.̭��3��� +���e$^fkC��lh�����u��ܽ���ԉim�iLiB�`����W>���nk +��u>ۥ9��&���-By�8�^�p;����Y���aJy���&����M൱քK�7`�@k�(��Z�W�a������lQs�X����\�!Jm'�`�Y�ה*��T����q� +�U��~#`����W�R� Ǟ�\��T��rUQttP�^��]8�� wه�H�8��p0eܣ�\�۾�L�OA�i�Qړ��8���4��8�a����k�V�H�N|Ѿ�<.��f�B�y�C�|���Q Xc�2d���C&�(��5(�l\I�7ն=���Ďó/xP����dOSi��-���*o���߳��������<~��`��\���?aL�����w]��v��]�n��g�|����앧� O�d�&'��zt����1 <��͞8^����(�p��g��BNV��8!sS����4}g��$�vA��>a�����S贑\�� �ϗ��6���>�`�aХ�����\��`i�����gM������;v"�4^�HL��6�>��a O����f����'8���M�p����lx/{s��t��4k7���29��w�',��K��O +endstream +endobj +8236 0 obj +<< +/Type /Page +/Contents 8237 0 R +/Resources 8235 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8196 0 R +/Annots [ 8229 0 R 8230 0 R 8231 0 R 8232 0 R 8233 0 R 8234 0 R ] +>> +endobj +8229 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 613.55 171.594 621.688] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8230 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 601.595 171.594 609.732] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8231 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 589.64 171.594 597.777] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8232 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 192.326 171.594 200.464] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8233 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 180.371 171.594 188.509] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8234 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 168.416 171.594 176.553] +/A << /S /GoTo /D (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) >> +>> +endobj +8238 0 obj +<< +/D [8236 0 R /XYZ 69.866 801.979 null] +>> +endobj +8182 0 obj +<< +/D [8236 0 R /XYZ 70.866 711.42 null] +>> +endobj +2298 0 obj +<< +/D [8236 0 R /XYZ 70.866 684.225 null] +>> +endobj +8239 0 obj +<< +/D [8236 0 R /XYZ 70.866 480.784 null] +>> +endobj +8186 0 obj +<< +/D [8236 0 R /XYZ 70.866 314.107 null] +>> +endobj +2302 0 obj +<< +/D [8236 0 R /XYZ 70.866 286.911 null] +>> +endobj +8235 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F13 3832 0 R /F10 3833 0 R /F55 3831 0 R /F92 4494 0 R /F11 3889 0 R /F7 5023 0 R /F8 5024 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8258 0 obj +<< +/Length 1898 +/Filter /FlateDecode +>> +stream +x��ZIo�F��W�B��\���6MМR�=9�@Ic��E:\b�����YH����� Mμ�{�PW7ן��,F�Y:��8��ft���N�B�c�ͽ�cx��yĹY8�.�������lԏ?ĉO���y��i�q�����oF_GVb�4$���;����;x���a�<�k��gp�8��l�Ĉ +u�.VhA�� +����r7ʣ�,e>&�-�d5�A �=�� ��(�F�� {��Y�0�h�j���0&N&��2I��������"�o���,���a��4�S9M���z�=�">?�=��{�;��lL��hpjŘ��ٽ��+�BV�l����6�ya߭���� m*©@B��hE6� Nș(<��E!�{A! A�i,�Q�f:ϒ@x�a��W���a�h=6�$蹙�,�#ڭ +C!�0 +����Xc���8vj;m����p�����&�0D;�eqZ֘,�>&s9yȳ�, +��L��eb�L�y0=�����ߧ ��=(�B����qi��lj|9ߏ��D�bG��P��Y�$��@Hۈ�?u�u6���s%��Й�����4������ܣ����@)9��Ѱ��D��7�/�zE>lӶ˪rrO�9�6�j���=M�a������G��;1u�<������x�v�iq�Ba��{�c��/��JsU���!��DjK=c�%��8�]=l���)3�PM��w-��CA�)����4-�n�En����.�,0��wV�t�k9��#�`L!�� +����a$��@c��8)���~���Фz �ETB�P����MB�j�3�iC����E�,��H��o����}�Ε"�B�K�;�r���������O�٢�ڨ�Y��uJ��S�f@�0��ꢚ�j9k���w1Y��_�̬��պ�����$�.T~��yR-�@��_�[D~ �#���@� +��0�c�.�e��j&'����$+�E�/e�> +(�)���y�+ +gò� �G6 m�h��m��`�[Z����"�K��5F�k������fM��O�zaK<��w0��R����N���EV�xK�}��y��i�Z�Sp�*M�lj�nL�E�}�&� +ܢ��-�r��D���������Z9]�9 8�D�v�-k� �n�Q�����ٺa�d�e���Ш��(���f�I#4o�_ҨEI�!�Яc��CUʞ�����%4j�!�MwQG�8ݴ�E��yg�� S�����G�LZ�xL����ފn�į�6����D�r�C4�2?<�f�g��vB�<S5�������+���~���#�9=�%3�����������g=mOB��n������9�t-�J5�M�-� ���8�k$�ӽc�H\ԨqzDB��Q��F-�Q���A[�ϚU�6�ԚVǚ���e����6b����.n���};���X����`kAZ�o���j����!ʼcJ��L)�t3-J}��!tpQ� +)�&�ύ��y}�ro�ӓ̺���k��ؚA[Oa$�_�룋�|��s-���vv�&ϡS�W����w���\5!�a�S���<���V���v����w�,ߦi]�o���BӨ=��d)�E��s�N�~ �0��O��Ue�1@���X����ɿ#P�إ,!h��[ �����η�tY�^#\�FC����A�9�`M��ן��]�GEU�5)�VQ.�y����<m骟�1~�՞�(����>q�^��.���C�_��1�:��5��"jd��������nB�'���)�\�/C���B�W&�M����X��=��XK�S�c~LV���S���n\GBp�"ϳ��G����/��3ڧ�:�we��_�BN +endstream +endobj +8257 0 obj +<< +/Type /Page +/Contents 8258 0 R +/Resources 8256 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8196 0 R +/Annots [ 8240 0 R 8241 0 R 8242 0 R 8243 0 R 8244 0 R 8245 0 R 8246 0 R 8247 0 R 8248 0 R 8249 0 R 8250 0 R 8251 0 R 8252 0 R 8253 0 R 8254 0 R 8255 0 R ] +>> +endobj +8240 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 378.003 184.216 387.459] +/A << /S /GoTo /D (utils_8c_a689d2d3db40d341609423404abc5a23a) >> +>> +endobj +8241 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 351.202 163.37 360.658] +/A << /S /GoTo /D (utils_8c_aad6440ba12fa7e2e1fae5ba6dc99cabf) >> +>> +endobj +8242 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 323.589 156.932 333.857] +/A << /S /GoTo /D (utils_8c_ad21f654c48115ba2419ca98644a44ae9) >> +>> +endobj +8243 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 297.599 163.863 307.056] +/A << /S /GoTo /D (utils_8c_a0ae8ea233ea6c519cd0434f8c5bde5e5) >> +>> +endobj +8244 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 270.798 161.371 280.255] +/A << /S /GoTo /D (utils_8c_ab734a543e5543adb2bd98e1bf279a23d) >> +>> +endobj +8245 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 243.997 178.998 253.454] +/A << /S /GoTo /D (utils_8c_a8163bb6a1c9742b9607fd87c6b3df5c5) >> +>> +endobj +8246 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 217.196 176.505 226.653] +/A << /S /GoTo /D (utils_8c_a81dabd4841ab656130497f0600979850) >> +>> +endobj +8247 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 189.584 156.475 200.058] +/A << /S /GoTo /D (utils_8c_a335d8d6c4b945638261228cd116cccd6) >> +>> +endobj +8248 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 163.594 169.35 173.051] +/A << /S /GoTo /D (utils_8c_acda1e3a1b76af6e0e57b507472986ad6) >> +>> +endobj +8249 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.845 163.594 272.507 172.746] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8250 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 135.874 202.059 146.25] +/A << /S /GoTo /D (utils_8c_a535a04a4bff82c88599e4648dfa7cfe1) >> +>> +endobj +8251 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [271.554 136.793 305.215 145.945] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8252 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [425.075 136.793 458.736 145.945] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8253 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 109.073 193.774 119.449] +/A << /S /GoTo /D (utils_8c_a971d455baef2d25c61e94c4bc4ac13ee) >> +>> +endobj +8254 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [197.26 109.992 230.921 119.144] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8255 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 82.272 235.736 92.648] +/A << /S /GoTo /D (utils_8c_a8cda5a6c15e99e2b76abfb04316301d8) >> +>> +endobj +8259 0 obj +<< +/D [8257 0 R /XYZ 69.866 801.979 null] +>> +endobj +8260 0 obj +<< +/D [8257 0 R /XYZ 70.866 771.024 null] +>> +endobj +4308 0 obj +<< +/D [8257 0 R /XYZ 70.866 599.847 null] +>> +endobj +2306 0 obj +<< +/D [8257 0 R /XYZ 70.866 583.949 null] +>> +endobj +8261 0 obj +<< +/D [8257 0 R /XYZ 70.866 414.132 null] +>> +endobj +8256 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F11 3889 0 R /F14 3888 0 R /F71 8262 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8279 0 obj +<< +/Length 1294 +/Filter /FlateDecode +>> +stream +xڭX�R�F��+z)W���j�� P5��g���ݶU��1����H�b�3J-���WG�ͮ>Q��'�A���f��� �S�8��PB�V +%)Ê��]G�i��M�����\�[�WWf5�$2�)fz3���Xj F��}<�c6y�PxJ}6�5�L��nr}C�~���F�n� ɱ�[�������D��¬��tSBHtn�<_z��M����&/���K{� (�k)<��~�䦆���VSN���7"���*�C�]��ʦ$�Әï��S�j������Ӆ1K�<��2=�u�1G��]�l]����}t��n�OeTV�����]l\� XJq*�֝�y`q_ֹ˓�'l�TFy��u~�-v��JD0�vi/�P-I���0U���� ��p�W�0P"�!=�?�]|ʼ��z�4ϻ;ԭ>Zw$J�9�(�u���ow��/y�«6�5��/���}���3�4��D�>�X��E`@�_�hw�h��2�@M�@=s���|m�"��wf�g�g" �Q&8M��9�-��֒G�@=���+Dl�V�C�^]N��Hd M@�bMY͛�,������KsVU���D7?�x��+m^4��Æ����ޚb�lFP9�E��%Y���1�P�L�0L~/w�mc�z�˙]���!��V�� �5�O��������^��?��BZ>��ɪlg�tJ�zP���+���dž/ f��n��`;�%La-�1��q +��!�����j1`�R��ˋ��%s�N5���$�H30�et3bJ�ӬJ���9�~_Bs�Ao�Y��t�5���i�{��8!������CP�Bs�#��.�@- +�R�WB�`�kԢ &�-�:��8��F_����4�����ov&���z?����!%�@����1���g +=��ȗ��ʸ2M[���f��eʬl�^xUxl����Mx;�Ⱥ�_���+*�Ј=�)���j�;� P����� �z�t^[�(H�trep^���Yw�獩�(�"J*:�(6.�������������ʲ9.�Xڑ�Uu�����UShD�p�9藯��)�h�7>����y]1�%C��Jg����`��0]�����;�>�ޮ�˟:^� L!��#���#|ޔm芶X��t�h*h����D�Ӥ��L���~�9q��aۼ����Am=җ�"�ͦ܂��Y@��=�J%4{�?�(K$ћ�Bb�BV.Ma�������|} +C����?��� +endstream +endobj +8278 0 obj +<< +/Type /Page +/Contents 8279 0 R +/Resources 8277 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8282 0 R +/Annots [ 8275 0 R 8276 0 R ] +>> +endobj +8275 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 665.889 297.675 692.428] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8276 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 507.217 171.594 514.701] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8280 0 obj +<< +/D [8278 0 R /XYZ 69.866 801.979 null] +>> +endobj +2310 0 obj +<< +/D [8278 0 R /XYZ 70.866 771.024 null] +>> +endobj +2314 0 obj +<< +/D [8278 0 R /XYZ 70.866 651.645 null] +>> +endobj +8273 0 obj +<< +/D [8278 0 R /XYZ 70.866 605.087 null] +>> +endobj +2318 0 obj +<< +/D [8278 0 R /XYZ 70.866 577.891 null] +>> +endobj +8281 0 obj +<< +/D [8278 0 R /XYZ 70.866 458.643 null] +>> +endobj +8274 0 obj +<< +/D [8278 0 R /XYZ 70.866 274.591 null] +>> +endobj +2322 0 obj +<< +/D [8278 0 R /XYZ 70.866 247.828 null] +>> +endobj +8266 0 obj +<< +/D [8278 0 R /XYZ 70.866 82.821 null] +>> +endobj +8277 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R /F61 3918 0 R /F13 3832 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8286 0 obj +<< +/Length 1167 +/Filter /FlateDecode +>> +stream +x��XMs�8��W舫bE_-�u7�T�i6�[&�"��ʆY������B�1�d{paD�_��������gN�ń�5a�a��|r{/ i��$�Wb �&&Ts2_��@@8}�"�I�qc�|�l�t&L�e��֦e\&Y�L'�'�L8Z2��.Ð�B��v���� +�}"�1 +�[e�% +$%����5��05�����ZH��g��2��m����B�� �F�q燑��4�]��;�>��o��* ���4��W��ā)+�:e�MO���;������(h��<��҇ R�"3��(��і�+ +AZ��^O9r�6��km��d� 6�[�Vw��S�H���WPwy��?�!$�R�X>O� +�<�Z�yPx5!����K���� P��h���>�h�Rk��@kE9���5�0B�l�� +��"*d�3����8�T�������j��=�<�:�c1[4�}���t_yQ��oS�e����ʚr�l�5��O��bXN�ԈX���.$`����5>jv F�QG�4R0�.��H_��q���:}9îq���:�ܳ���,]}�����s��0����t�vc�|������̊�ݔ�k�BP�3,,S�)�ɹח�B/S�|pNx��c2a=.�kiR ����$����nG�`�Y_�y�AXg2�N%lnӥ�G$X�ɖ�u�+����[�����&�l�8D��ܟ���ecA�(o)!�Tc�aG���qz� +��*���A��]����-����E��koj�8��Ϗ�#��w����e���z-T%)�Q���~��<��A)�`P9)w�(�:�c�ؕ���|�zL�嫸���T^�����ZIrC��\�P� +��Ɇ�>~�I������)��0�8_��`��C�e-̚Ү��tH���mO5lZvN�Gn��=�2,��ׇwL +� �+-n4��?�_��K�e�2IDՃf�H�^ju@����[��@/�Z|Ͱ�7�GW������!p�EF��]#|\���L|�P%gʱWL84��劉�+%N��2�t��Q2Q�� ��M2 npT���&�D����r�O��7�w��9�7�8-}ś�损���Y�8<(�R���`S�㟇z�e�}��S�vC��O�� +endstream +endobj +8285 0 obj +<< +/Type /Page +/Contents 8286 0 R +/Resources 8284 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8282 0 R +/Annots [ 8283 0 R ] +>> +endobj +8283 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 371.331 171.594 378.815] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8287 0 obj +<< +/D [8285 0 R /XYZ 69.866 801.979 null] +>> +endobj +2326 0 obj +<< +/D [8285 0 R /XYZ 70.866 771.024 null] +>> +endobj +8288 0 obj +<< +/D [8285 0 R /XYZ 70.866 666.526 null] +>> +endobj +8271 0 obj +<< +/D [8285 0 R /XYZ 70.866 481.157 null] +>> +endobj +2330 0 obj +<< +/D [8285 0 R /XYZ 70.866 453.961 null] +>> +endobj +8289 0 obj +<< +/D [8285 0 R /XYZ 70.866 334.713 null] +>> +endobj +8267 0 obj +<< +/D [8285 0 R /XYZ 70.866 190.131 null] +>> +endobj +2334 0 obj +<< +/D [8285 0 R /XYZ 70.866 163.713 null] +>> +endobj +8284 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8294 0 obj +<< +/Length 1448 +/Filter /FlateDecode +>> +stream +x��YM��6��W9�����G�m�rJ��%�B��^����ݦ��C��J�ֲ����M���g8����gm��6�>�~]���2id�d�r)����2I-�/1�!=_P��}�m+�r?n�m�ݥ�9�qZ��*�[~�8�Hh $ ��~_����i��F��h��}�����)�4O�".���m����|���_��;#Ȁ3� ͽ7���I���:-��UcY���\OXH�@����A�"R� L�)x�#Ap.$"2*mH4C�F�3�`ݛ�d���Lt*��� + �G�p��!S9���I9�]�9�G�ׯӲ�ݏ�9q���{u᮫b���霈�J�F� �+��&#�PH�����ꂐIEG\a�p1�.j`?C]�(���%�~B]�8����l�U��"����ca�? 1.��1.L�RID �M��z_�����@)��������U�%�-d��G�v��_��|�s�V Zx0Ƒ�́}Hm�ȳ:+r?�'�m�{)�vF��M�ly�H0Ѐth�t=g�l�Q��L��Ӫ���iP*6`J���j��z�c�Av��}���}b zN�Ė�}*N���-��Q�xx�S��>X*;��nRwǢ5�B��J�d�>�k}_;&C;L�èP�Ȑ��}����x!XA��̻��3~v��9]�E��:�B����,��/��o7�X� ��z���e�_r�_ž�:6�7�2�Co�-c�=��l_��(������M���F-{�!���Gk��Y� ��-�al��� �d ��f���#��p�A�4F��{�G�/Ӱ�X����9iNc�_�-������@:�1�l���B����[枼Za�g��9�w, +@PF]'��0���AR���S��ʚF9,�>i�cZ�<����0���O��p����u�y���h��S�U^]�����-�!6�qMb�V����6u����&1��a#���%ýB+�K�9ւ�Pr�����z�pj�l��� �KD mO@'5�sXR�6_���4�au�O究/�ި���Fy�g�r*�Lq�cG�cQ�9!�7����IwH�ݡ�u�O%he}Fȇ�@7���o���^�<� ym=0h��{���Z�.���ͻF��!�\i��X�cp�BGxs� V\X���)nk�g�桰�͂vO�x�Nxܰ���|iީo��Ѥ��wi�J���v#(h���IpPZ��ש�q����&=�����0�O3p��F��0����\��G.ô���T��������e4_0)��=�pl��g(�K����3?�5y�p��nG�潴,����<~7�^yQ�֣��f�ϑ�w7n(���5�~ ��~�4ک +e���?J��;P��L�����1��2��ṙ�F���5Q~h�I�� +endstream +endobj +8293 0 obj +<< +/Type /Page +/Contents 8294 0 R +/Resources 8292 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8282 0 R +/Annots [ 8290 0 R 8291 0 R ] +>> +endobj +8290 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 475.829 171.594 483.313] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8291 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 451.919 171.594 459.403] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8295 0 obj +<< +/D [8293 0 R /XYZ 69.866 801.979 null] +>> +endobj +8296 0 obj +<< +/D [8293 0 R /XYZ 70.866 771.024 null] +>> +endobj +8272 0 obj +<< +/D [8293 0 R /XYZ 70.866 585.655 null] +>> +endobj +2338 0 obj +<< +/D [8293 0 R /XYZ 70.866 558.459 null] +>> +endobj +8297 0 obj +<< +/D [8293 0 R /XYZ 70.866 415.193 null] +>> +endobj +8270 0 obj +<< +/D [8293 0 R /XYZ 70.866 260.625 null] +>> +endobj +2342 0 obj +<< +/D [8293 0 R /XYZ 70.866 233.43 null] +>> +endobj +8292 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8300 0 obj +<< +/Length 1244 +/Filter /FlateDecode +>> +stream +xڵX]o�H}�W�#He2��m6U+�����Vȁ �6k����{�6�����3��9s��;=R��G�A�Gg�����V)�f�Hl�B�2�(�-��1Sd�s�qxƅ������M�L��}��m\RDE�&�����?# +# �{Hc�a-6��? Z³��A��� �c)8ܯ�ߣ��4 f��-/�����F֏&�Qm\� ��bVCv2���=�X�g�cPL�D�ëӇ�d���,���2%�cƐkX�*#q��PB1�lhH*�BR��d��!�{���WL`kh��� '�41��&*�y�u0�0�ڡL��!:US��L[,��K*S*!w+|ʉ1�Qz��S����8���0����B���B$?�=f13�� ���^{�A1�=:�[G�Q�lUUC/�u�}ʹ��骳RX�6�\�q����,+�>� +�K����D��$�>�����_����x�O`�E�E?���*��U��e.Y����4ad���a#� �{^�"W��=�F� �b���w�H�C����GI�k�-�4럇}Yl�/����3��(d�`� �%��l��8Y� v��V��x>(��X���2��1��_�TY�Z�)��JX��(����P��n5��U=�AEhX�z��nC5S*�:,��)�lwE�@�n�bj�DG�B��j�k��Au�rB�8sΫ�KK���b��.�����x4��/^��_�<����Z�}�[�P�*_�c���H(Xo�V�jUߩ%7Ax�a��݄�Ԙ2vބ��4�F���h[��R���[VD��=߈��UӚ�����N�����t5ĕ�A�4���b�%�mR_[ g�IeJ &"�ݡP���C��� \@8~�;r;�;�1ԛ?�_9�����C�6 ���m/0���_i�lX�0mvk�LJ����L���!�at�?�F:hN����_ԧ��K%κ*�S��×|`�U�u��5o�kY,��kOx����Y�µ�`עe�*�݊UZ��܆�}����gK&����- +����>0d������{���R������*#Z��i\�8�-=�,/���w�Nh>����e�C)��M^�� +yζ9��Zg4H`�jq^��"vK�8�%|z_��hu+�V�s�H'�+x5����G8+��!�|%����z�O� + �V�s�šji�R�P��%.�#ZG�r�VG��U�k�]�v��,8 +endstream +endobj +8299 0 obj +<< +/Type /Page +/Contents 8300 0 R +/Resources 8298 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8282 0 R +>> +endobj +8301 0 obj +<< +/D [8299 0 R /XYZ 69.866 801.979 null] +>> +endobj +8302 0 obj +<< +/D [8299 0 R /XYZ 70.866 771.024 null] +>> +endobj +8264 0 obj +<< +/D [8299 0 R /XYZ 70.866 643.619 null] +>> +endobj +2346 0 obj +<< +/D [8299 0 R /XYZ 70.866 616.423 null] +>> +endobj +8303 0 obj +<< +/D [8299 0 R /XYZ 70.866 484.202 null] +>> +endobj +8265 0 obj +<< +/D [8299 0 R /XYZ 70.866 288.455 null] +>> +endobj +2350 0 obj +<< +/D [8299 0 R /XYZ 70.866 261.259 null] +>> +endobj +8304 0 obj +<< +/D [8299 0 R /XYZ 70.866 141.904 null] +>> +endobj +8298 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F14 3888 0 R /F61 3918 0 R /F29 2678 0 R /F92 4494 0 R /F86 4575 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8307 0 obj +<< +/Length 1026 +/Filter /FlateDecode +>> +stream +xڭXˎ�6��+�������4͠ +LS���m�+��SIn2�KQ�X��9�e�:�ux�ռ�z�)'�l#�w����K�ւ̟�a�jM��T����)�-�̸��C�mK��?>d[�>����>_����#��Re-�!��p{��|���.#�b�Zj�$����WF���#aT8K��;wD*A�x�%O���݀�(k��0����y�7����&���kx���:5�+Z�ȌK�9�E�:��L8�>���|Y}a���(��#�F���9�X2�X��_�:K�*")Eu�A�$�Z%#�zX�H�)H���0g�(2��߮�8~dE�zsSߵ�,�|����#MHU��ϝ��@rjL�צn�a�0��%\av��dӦn�?Mi�������:�Xx_6��q-��:�XΚ��r�����nU�� D��1�r���W���� �حP��ΰ�������(��F(wwKʔh ꣅut��C.����,���|d��T(>֤>N?0C�c�õ�m��2v��%m<D�G|��S������JkFxuJ���.2݊В�{N"=��*f���i�աȻ��]{��b����L�W�=t���w��Ɗ�{��=�~�f�\<�1F v�&�U�Z,�ү;J�ms�1Z=-����b���BH�r�����XI"�2Ҿ;�#�2�<�o��5{F!.�UZ^T$�(w�_v$4�BM�'EMH�2thU}O ���a��Eٗ���[K�� ��G��a��g�QT`r^�)�aD�������#`�������e�irP�:F���ش��6���m��C+ʦ�ճS�=�� ��ᆬ�M�$�p&G�z�|̍8�C�0g�uF�.�p��Bԡ�\`��+�5��0��l.�pk��an�|�V�W�V��c�͞��V����5��i�0�b��3ioVX&��ԛ�5b����.|�i�/��ӇZ�3�RQݎ�>�&b`�z�#�My�>�{�?�� +endstream +endobj +8306 0 obj +<< +/Type /Page +/Contents 8307 0 R +/Resources 8305 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8282 0 R +>> +endobj +8308 0 obj +<< +/D [8306 0 R /XYZ 69.866 801.979 null] +>> +endobj +8263 0 obj +<< +/D [8306 0 R /XYZ 70.866 723.375 null] +>> +endobj +2354 0 obj +<< +/D [8306 0 R /XYZ 70.866 696.18 null] +>> +endobj +8309 0 obj +<< +/D [8306 0 R /XYZ 70.866 588.779 null] +>> +endobj +8268 0 obj +<< +/D [8306 0 R /XYZ 70.866 393.032 null] +>> +endobj +2358 0 obj +<< +/D [8306 0 R /XYZ 70.866 365.836 null] +>> +endobj +8310 0 obj +<< +/D [8306 0 R /XYZ 70.866 246.48 null] +>> +endobj +8269 0 obj +<< +/D [8306 0 R /XYZ 70.866 82.821 null] +>> +endobj +8305 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8329 0 obj +<< +/Length 1343 +/Filter /FlateDecode +>> +stream +x��XKo�F��WɅ���@�C��H������@�$Z&@R.E%��,��H��-ۍ{$��3��|�ڳ��%�V� �V�.&�O'g�Ly)�7��FZJO�$�K�ڧ�_��<����z|��qR����6��2*�un�N��N��X�=��5Ҕ{�lr�{Kx���F{ߪ���C�3��zO�z��� ��I��F�c�o�$�̶z�%� >Ěwv.���Q�XY�AZ�Z�6�K=+�P�D�O�� +P͕�BB����RbhK ˄j��~�#tkj��4��� ɛ��S��2�酔�{�Wq�-����7���;��M�i\�ַ����`]����m6����Xgn�ý㎅*�`8������O�2�C���qP�GE��%XA���E8�Or��!Q1��!�+˰$�dI:*VsD�������RhPi��Q +�D��IB�`����U)� X!��(�t��!���a%�d���s���i�)�?_�i�nݻұp���"��ѡ���0������3��$S#�z��. +��#Ga�p���@�'��y*���V:a��t���s����:_��N6�� CV~�N��d�nb��B��P@_�Z�#�f���J�<���{a��D�q�<����Z�H �|�m�ȓ�-�w���&�ӣEW����5U@u��E��JHi��?L��@w��}�t���q����mE8Tw�@ +X7�4`Pe��"�;JW#���a]�P����|�n�N?!���)��k~����Y�Eܖt{�Y)��� +���ndz3�j��}��@w����bӜLP$����Ѣ(`ԥ_?�%�Lu1��Tt�xסf���9��6�����j�u������v������a�]�(��\ �*5bi�j,8��;��{]�}B�ڔQ^�!�B��X]1�;���m����*X !��z;�觏�U���zV3v %Q>���[R�g�x5��U7 �I0�#� dV��&H#e�JG�����"nB���(p�;*�4�YD���5A�$�� @�&���2�ߖ}Fnv���� +�LI�1'�Q> L6f�{�,��M�߬�������Vj#�!���fٞ#uy?�'���V� 2�n(|�_C �����f��0���]_�=��pd"�鑓E�O��Y��4IR��]<D��� ��� �Q���cP��� ����14�z��uws�F���m�����7A�8k�+���ܻ�\� ��g��]msG+U�W�Hp$�o$�� ������8����V��+;B�q�7�N�T +endstream +endobj +8328 0 obj +<< +/Type /Page +/Contents 8329 0 R +/Resources 8327 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8282 0 R +/Annots [ 8311 0 R 8312 0 R 8313 0 R 8314 0 R 8315 0 R 8316 0 R 8317 0 R 8318 0 R ] +>> +endobj +8311 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 329.825 152.09 339.282] +/A << /S /GoTo /D (utils_8h_ae71449b1cc6e6250b91f539153a7a0d3) >> +>> +endobj +8312 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 250.868 184.216 260.325] +/A << /S /GoTo /D (utils_8h_a689d2d3db40d341609423404abc5a23a) >> +>> +endobj +8313 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 223.271 163.37 232.728] +/A << /S /GoTo /D (utils_8h_aad6440ba12fa7e2e1fae5ba6dc99cabf) >> +>> +endobj +8314 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 194.863 156.932 205.131] +/A << /S /GoTo /D (utils_8h_ad21f654c48115ba2419ca98644a44ae9) >> +>> +endobj +8315 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 168.078 163.863 177.534] +/A << /S /GoTo /D (utils_8h_a0ae8ea233ea6c519cd0434f8c5bde5e5) >> +>> +endobj +8316 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 140.481 161.371 149.938] +/A << /S /GoTo /D (utils_8h_ab734a543e5543adb2bd98e1bf279a23d) >> +>> +endobj +8317 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 112.884 178.998 122.341] +/A << /S /GoTo /D (utils_8h_a8163bb6a1c9742b9607fd87c6b3df5c5) >> +>> +endobj +8318 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.185 85.287 176.505 94.744] +/A << /S /GoTo /D (utils_8h_a81dabd4841ab656130497f0600979850) >> +>> +endobj +8330 0 obj +<< +/D [8328 0 R /XYZ 69.866 801.979 null] +>> +endobj +2362 0 obj +<< +/D [8328 0 R /XYZ 70.866 771.024 null] +>> +endobj +8331 0 obj +<< +/D [8328 0 R /XYZ 70.866 666.633 null] +>> +endobj +4309 0 obj +<< +/D [8328 0 R /XYZ 70.866 523.427 null] +>> +endobj +2366 0 obj +<< +/D [8328 0 R /XYZ 70.866 507.155 null] +>> +endobj +8332 0 obj +<< +/D [8328 0 R /XYZ 70.866 369.38 null] +>> +endobj +8333 0 obj +<< +/D [8328 0 R /XYZ 95.773 343.853 null] +>> +endobj +8334 0 obj +<< +/D [8328 0 R /XYZ 70.866 290.423 null] +>> +endobj +8327 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F11 3889 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8347 0 obj +<< +/Length 1473 +/Filter /FlateDecode +>> +stream +x��X�r�6��+��f,o��>\g&٤�����0"$q"� �q��/I�(9v�vc� p�������=��G�GoF�ݎ.�Y�(��E��(�(�2J2�$�n��.&0��'4I�N��-�?��J�э�� �U����߾�8K�HSPbEP��������Y���4E)��l=���Q��F�,���u�C�3���Fn��A�7�I��D��(֊�-��!�/c*�,�7cZ��6��Uק�xBD\Vz�/�&I�<[��vyMx��ET�2�(�! 0fnQ�l����5�1�q +��u���n��!�Cz����5x���Yb�M�2�턀dΝ��\�>�)��|�۲Z�� K���vQ���enҘ��zy�~-6V��l�,�� +6��V�c؍zn�gB)�w(��3i-�.��]��:�hj3ڍ��V:���fږߌ����8��R�t݀�e5�w�T��ߛ�M(v2�{�~�O�^��um'�������S�ڏZ�_�z��Z�&�_�B���΅�1���X�u�Yr.�ViO�cY���s�;��Q� u��a�ω��V�Bi������=*����g<�g|� hB�3j�(C��Z�ʰL�Y2'�S}e>t돪y�Jϝ�vU��3��5m�Z�ڎ;��g`����o?��ؚ��[/�=�B5��t\��N��,���T�����?a�i4�a %[R��c_)��*��+�Κ�A�u5�0�#(ޕ�!إ.U�ߚmW�T���j�>:�X#�ʁy�]9O�yW͌f��Iۀp�R�0����8谋�:&��V~o�m��]ݺ�5$�p��궛-�+m���Cݖ6<Am���^�'�;B���y�9(��0C�c�#�^��K�e�:�����#�� `� �����'���S.)��v]zi����1G�0H)�2J����KY�Ѽ�@�C"P���}�@�D"�H����H�g���[,�n��LdO��� 0���Ć��y�]�a���h��7�[Q)n��1ԟC�z0�2t�_^gt��fY�o���/,���N�ChvyO6܊�H�l�G�r@*c`:��B��G7�eK_��OWy�|(D��ؿ7�7�Zi�0H���0t5�<�@�����'p������2��QD� �;%V3�/�7�^���, +�`�<��:�L�F�J�r7'H�fzJ����v�(1;^���O�9bX��?�Pʷ$]��t�[�̣�H��|�Dv�ՁHh�,=���E1��|��=-*���;��:����U�=ώ��u��Q��xs��X/�Ջ�;���I�c�z��a:�B_�H��|��Q�k����f��yg8�{1��y7���J���#��[7"����-�`I��V�-�5%�[���-=�n�@P��!��:����C����4KY�j�BNv<��V������+��J��c.���>ިJ5�2�6>|}�$�ڷ�_Z�H + +endstream +endobj +8346 0 obj +<< +/Type /Page +/Contents 8347 0 R +/Resources 8345 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8352 0 R +/Annots [ 8319 0 R 8320 0 R 8321 0 R 8322 0 R 8323 0 R 8324 0 R 8325 0 R 8326 0 R 8342 0 R 8343 0 R 8344 0 R ] +>> +endobj +8319 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 758.177 156.475 768.652] +/A << /S /GoTo /D (utils_8h_a335d8d6c4b945638261228cd116cccd6) >> +>> +endobj +8320 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 731.093 169.35 740.55] +/A << /S /GoTo /D (utils_8h_acda1e3a1b76af6e0e57b507472986ad6) >> +>> +endobj +8321 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.845 731.093 272.507 740.245] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8322 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 702.279 202.059 712.655] +/A << /S /GoTo /D (utils_8h_a535a04a4bff82c88599e4648dfa7cfe1) >> +>> +endobj +8323 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [271.554 703.198 305.215 712.35] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8324 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [425.075 703.198 458.736 712.35] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8325 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 674.384 193.774 684.76] +/A << /S /GoTo /D (utils_8h_a971d455baef2d25c61e94c4bc4ac13ee) >> +>> +endobj +8326 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [197.26 675.303 230.921 684.455] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8342 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.006 646.488 235.736 656.864] +/A << /S /GoTo /D (utils_8h_a8cda5a6c15e99e2b76abfb04316301d8) >> +>> +endobj +8343 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 474.381 297.675 500.921] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8344 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 315.709 171.594 323.193] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8348 0 obj +<< +/D [8346 0 R /XYZ 69.866 801.979 null] +>> +endobj +2370 0 obj +<< +/D [8346 0 R /XYZ 70.866 617.596 null] +>> +endobj +2374 0 obj +<< +/D [8346 0 R /XYZ 70.866 460.137 null] +>> +endobj +8349 0 obj +<< +/D [8346 0 R /XYZ 70.866 413.579 null] +>> +endobj +2378 0 obj +<< +/D [8346 0 R /XYZ 70.866 386.384 null] +>> +endobj +8350 0 obj +<< +/D [8346 0 R /XYZ 70.866 267.136 null] +>> +endobj +8351 0 obj +<< +/D [8346 0 R /XYZ 70.866 82.821 null] +>> +endobj +8345 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F14 3888 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8359 0 obj +<< +/Length 1104 +/Filter /FlateDecode +>> +stream +xڽXMs�8��W�UcE߂�l6����o3S.l+��l��N���$�M̀��{p!@�'u?����}�JѺ��F=N>�&w\��Jq4{B��H)�c�E��0%�/��=.<�.?l�&�2�ٲڙ�L�M�ک�?g�� ���d� ��M��$h�� @�#�w3wHH���0ޢ�']�LE1i�I�Z�f�B���l��ڞ��IHe���/U��y2dY��H?j~� %�8քZ����H +O�ʪ�ݳ:�;�L���-���Ph����X��#�� !�nr��Ok��s<�� +�/�R�f�1,>�6DP`I�29�s��v����@�\| ��GÎ���9��*]��.s��L������"v"�I�~{x��Kz� H㘰z�_C&�$Ov�4yHiPx�Z>]jT� 2=j�(8;��1�r%R\b�� `2`PU#�w2C0����8f�bx;�Ȧ�5��b.�HFu~J4����k%�0�- RPw�:�ݰ��e崔l+c��;I,Ɉ���$�7���G;7a��aP[��J,�x���ge�zNI�z�3��[>���Yf��J�\��������M5lV�z�Z�f8��G�)�<mW���.Ҍa��S�uy�������.�5�?���?��k$ǖvolEI7��8��F�nҚ����'��4Nȹ��e�6q| +9��ܤKS+oa����/�vP��l���@��_�A��3�|�+���Y @�������I>��,>��8�C*d�boKn���MbF+�����j1�d�G��Z�&/�%�SC9mjX�1�/ +Zbq�ma� ·%�c��@��������t�-���lK-Ҥ�-����<kK��ڜ����x�Ղ������r"F��\��}��� +�C��Z[P���m��0�dž�5��[[���m�����)籃vz�1Һz�����mں�JC�@���y�!n*I}H&A4��qIBB��)��-�f)�̶l��|�TE12��/��q���]��XF��yسw�)ʖ��RT�����OK +3 ��%$�pC_�js�hR�C�:�~��м��ߙ��K�U�o� +endstream +endobj +8358 0 obj +<< +/Type /Page +/Contents 8359 0 R +/Resources 8357 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8352 0 R +>> +endobj +8360 0 obj +<< +/D [8358 0 R /XYZ 69.866 801.979 null] +>> +endobj +2382 0 obj +<< +/D [8358 0 R /XYZ 70.866 771.024 null] +>> +endobj +8361 0 obj +<< +/D [8358 0 R /XYZ 70.866 666.633 null] +>> +endobj +8338 0 obj +<< +/D [8358 0 R /XYZ 70.866 457.579 null] +>> +endobj +2386 0 obj +<< +/D [8358 0 R /XYZ 70.866 430.384 null] +>> +endobj +8362 0 obj +<< +/D [8358 0 R /XYZ 70.866 311.028 null] +>> +endobj +8354 0 obj +<< +/D [8358 0 R /XYZ 70.866 82.821 null] +>> +endobj +8357 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8367 0 obj +<< +/Length 1132 +/Filter /FlateDecode +>> +stream +xڵX�r�8��Z��F�����I�zՓa�NQ�U`������+���0��H�\]�{���W��AD������kd�U�������+��s��Pxe�#�M������҅�g�6�$q��gn�:��7X$5Sҿ�1�=�� ��2&�l5xy%h�}Ask��z� + ɱ����W��(&Q��a1QBHX�d���������QJ��Մz �F�b#E����_���g�R/H��hD)�R���,�̤ +��1@���m�Ҳ���ݧ:O!A������ �Q3;pɀ��fUQ�m�XDŽۖ5�'@���:y�H�X�v�.U���|D�h��d�{����}Tߛ��4�>d2I����-\�p��Us�v���%�K������&_�L@Fӕ�\9�4YG)�R��k��;�B*4f��V�w����Hq�W�0`4�\4��=���|2nj��A�����G �\���j?��h,Ag��!���`�*��7��+~��-s$��;��`����w, +@`P�ΉB+���������Wb�_P��Py���QvK+&m˖��l�W���յ���:�� ����n�X�77�1uݎ�VҸ(���v,57`C�]�)�"�U�{M�C1��&��3��" s������F˳*+� +�e�7P�Ș�Oi]P�|����B���MoM�<L�I~�M�Tn]���f�T�i����Mv���'�Mv����:� ����SG�fL�i�ŲV�y�B���)tO��2IƺY���=�[U��N�9�K��.�o7��+���,3A{[N-�Ҝ?�sfO���a��� T[b.�1���^�,�L���ғ����s��P|��})�VⅧLD�U��$��,im����NK�S�A[1��#�cY�#d��/�3��F���*�`Z��P��em����VD:=-�����8w��͊|~q��0��W�!q���ѳ0��"�z�Ύ�x�4�zA��B��u�Ia�2}o�i4&v)*v)��}���$���2�mt�G%a�o�{�<�/E���w������to����>i���f��N��R�q~r9,��ڗυ߶~5��#��-� +endstream +endobj +8366 0 obj +<< +/Type /Page +/Contents 8367 0 R +/Resources 8365 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8352 0 R +/Annots [ 8356 0 R ] +>> +endobj +8356 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8368 0 obj +<< +/D [8366 0 R /XYZ 69.866 801.979 null] +>> +endobj +2390 0 obj +<< +/D [8366 0 R /XYZ 70.866 771.024 null] +>> +endobj +8369 0 obj +<< +/D [8366 0 R /XYZ 70.866 666.633 null] +>> +endobj +8339 0 obj +<< +/D [8366 0 R /XYZ 70.866 482.076 null] +>> +endobj +2394 0 obj +<< +/D [8366 0 R /XYZ 70.866 454.88 null] +>> +endobj +8370 0 obj +<< +/D [8366 0 R /XYZ 70.866 337.416 null] +>> +endobj +8355 0 obj +<< +/D [8366 0 R /XYZ 70.866 162.698 null] +>> +endobj +2398 0 obj +<< +/D [8366 0 R /XYZ 70.866 135.71 null] +>> +endobj +8365 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8373 0 obj +<< +/Length 1513 +/Filter /FlateDecode +>> +stream +xڽY˒�8��+��pU[�[b�3�NUV��w�.���*z������c�f!����չ�����$ؔl|��>��d*�(���u�0�R*�H�`� +�B*��y�)`��q ��c�M�3�t�!_�wIV�U�gf����� ��8 ��HS,w��g��ݧ�#�ٙ���g�{�=��q��)6��s\�@�Hab'��w`M���ߓe���:���?F���3�Y�J�E\O�Q*|~0��܂!(�7v�>�*]�9�gQ�<�[���E���<8��C;6��:�n�+�W��z������_� �$��1#�E +H0�vӥ��|�����c�O���٦�<�8�>�"L�)�a�q�`��r�ʤBu���y���O�a�0V;�yJy�.����,�QSj��CԤZ ������"�R!���f�s���Aɠ�$C3NHqO��3I�Bvv�E�N?��ˮM��!�!@�crF��x;�$J"N�"n,w����`��������))�D����.G,A���.Eqq�YB!��� �ƙ�Vר/dZԅ���9�Ϯ��9{(-5���ٽSf����\�@8n�1�.B.W-��(�Wpk��~n����ٔ��k��8/� ��#�w�b����� ��Q�.�)P�����.Q�F��F Pj��~Fum�j5@�Qv�9Բ;\������<sC^#�.��ָNy��]\��4�Kh�x���!��1�R���)���6�\ %���%�g�W鶴9\�,Zk$u��%YO�l'�2Y�K��M��Z�������XG�Z�4s�)S���@ c�@^�����4���M��<Z_� 4a\�nӲ|��^�<h����z��a��P���բ� +�BA�4"��B�'k�\�q"�����3�%�-�g3���'�͍�$��vCss$E��l� �?i�H��c�l��Ѹ��N�S����1h���E����l�x�e�d�-��Vx�ڎƝ��7M�0�c��9��|2,��lp�rk�2����tƤ��ñ)Z�B^ت�`��0uK��[�L��Ҕ��(��7��<|_Y^uzՓ�ۦ�+��w�P��!�n -=�����2��^�Dp�����zF}�38�LF��~g2EC�� &�X���L� �Tt�*VGp�ٚBsD%S�z<�PGzڕR �]O/��ۜR��j�O��1UZ�G�{ �LGE��@�`��G4R\_��q&���3�m�]qgX4�j?��VO��!������"�}Ĺ���T��20�#T �N�1v���������x��ո8�9^�=�<7?�V-�S~\w��= +cu�]��o&���� +5��|�gv�+ݫd�������b��ں���K�:Ҭ�sy�0��{���L��K�9�$�у�#}�]��v���^ˇ�8�e4�K�|�J���ER���C>�a�}ß��_�$�Jr�c�O$���c�%���x}ȭ�?7�����]��=� +endstream +endobj +8372 0 obj +<< +/Type /Page +/Contents 8373 0 R +/Resources 8371 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8352 0 R +/Annots [ 8363 0 R 8364 0 R ] +>> +endobj +8363 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 766.501] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8364 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 742.59] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8374 0 obj +<< +/D [8372 0 R /XYZ 69.866 801.979 null] +>> +endobj +8375 0 obj +<< +/D [8372 0 R /XYZ 70.866 698.38 null] +>> +endobj +8353 0 obj +<< +/D [8372 0 R /XYZ 70.866 543.813 null] +>> +endobj +2402 0 obj +<< +/D [8372 0 R /XYZ 70.866 516.617 null] +>> +endobj +8376 0 obj +<< +/D [8372 0 R /XYZ 70.866 360.486 null] +>> +endobj +8336 0 obj +<< +/D [8372 0 R /XYZ 70.866 233.081 null] +>> +endobj +2406 0 obj +<< +/D [8372 0 R /XYZ 70.866 205.885 null] +>> +endobj +8371 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F86 4575 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8379 0 obj +<< +/Length 1086 +/Filter /FlateDecode +>> +stream +xڭXMo�F��W����~�ڦ ����-Q2�tI:��}gɥ$�%�:����fg�·>,�l�#[�����هO�KC�Yl�a�jMLȩ�X�o�p~Ǎ ^�dWЧ�˧dן��X�q���?_��*k����ڸ׳?�g�o�=���rIVϳo?Y���FEh�[��H%��?��?����3ʕ���0 +z��Z�Os?�2���9.�|�e d��H/�9`!h���x[�L+bDH���%eJx��!�����C���# ѝ�?��`@��c)�q��x�&]��e�nwq�RT;����1�F�6w�[��^=���<��9��v��BSi���R�������!��1:d�����yھ%���ߜS��Xʤ�wI��s�U�^㽋ɝ� $5և�c��1�&e���De�����OG٦~�ML�UQ�j�4��f3M�*�--ᅵ]���>�9ޏ��e\�ߙb��IFEL�� h�M)�x`�y�����q��G`C9W8?�M��]w�iP��(��P�x�&ii�e�o�>j�+�dlt����hQH�fM�[��w�Pn�gշg}�! �������%N4�R��/)V���/���T�E[k�K��C��$����lxi�Y{�N/�xr �!F�, �j������43 ��Z"�Ԁ>�0�?\�$%l+�W������M�j��٪p���w��.�6��jW4b+sb�K�8{�e����NU�$����v� ��p���T`N>��� +k(�"G�+��%"|�8�zEز�W�E���� ^mmW?FN���]�5X�Ar�7;Rߦٹu�����2��I�^�¬��Gw�����݂�b�3j��J�#� ���_}���p�+I;�K�'��ј�ɳ��Ѻ(�{]��h��E�[�FL�Iun�(C�Oko�U���<��w�m�^0֎��k[ܓ����J�8+&��Z�+�Z���=����OU������4�W8��%��Z��4Σ�/��\-��}��v���Vk�g +endstream +endobj +8378 0 obj +<< +/Type /Page +/Contents 8379 0 R +/Resources 8377 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8352 0 R +>> +endobj +8380 0 obj +<< +/D [8378 0 R /XYZ 69.866 801.979 null] +>> +endobj +8381 0 obj +<< +/D [8378 0 R /XYZ 70.866 771.024 null] +>> +endobj +8337 0 obj +<< +/D [8378 0 R /XYZ 70.866 575.276 null] +>> +endobj +2410 0 obj +<< +/D [8378 0 R /XYZ 70.866 548.081 null] +>> +endobj +8382 0 obj +<< +/D [8378 0 R /XYZ 70.866 428.725 null] +>> +endobj +8335 0 obj +<< +/D [8378 0 R /XYZ 70.866 301.535 null] +>> +endobj +2414 0 obj +<< +/D [8378 0 R /XYZ 70.866 274.34 null] +>> +endobj +8383 0 obj +<< +/D [8378 0 R /XYZ 70.866 166.939 null] +>> +endobj +8377 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F29 2678 0 R /F86 4575 0 R /F92 4494 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8386 0 obj +<< +/Length 980 +/Filter /FlateDecode +>> +stream +x��XM��6��W�(1��7��6�(�M}KC����KNe�����Dic٪֖69���,�� 9�3o�v����1�%��G�,���!�:�Y<è՚ǩ�ؐ�1�v�y�|'�Ɖ��w�������n�>f>/�2������E�w8�x���Z.�:�>~fd���Dt�|�GfD*A�x�#Ft��'L ��q��O��<���K�pݥy��p�?�k5�]ƱLw����i�`F�\b���� ���kS~_>��=�7a�j�Y��d��2]/W��o��?���b�o����IX�5�Yސ_#�m���QN����h�Y�� 0JC�a�����0�4/�wQ�A�'P�zL�4���;�[�8~B",�ʴ:J���1oƌB\��:��l|_|GT�S�gN���<� �M�˿�lg���'�/��*�Vo��G^���/����>k�=}i��Vg6b��J�������h.(�{�q'E��* +�� ���w���98�`�7�A|e���*��Q����p����V����v� +�9Q�/&�H�S�����ԧ �f��uuH�N�T;��Q&T�Զ���ê�����3C�&�c�lT��g_�����2V.-L���Ra��0T3��I�����^��N��ԅ�Tq���Q���t5��q���:�|V����m/�&��C�BH��I���������D*CAړ��w�r{=����3ˤ:������.�f��,`��X��כ$��7IW�~aC�|� ���� ��%��Ϸ ���#-�+��dA�a�&���0&^��p0�p�r�I��$:�d$go��p��r{����N-���4��.p��ʽ��LP��!u���W�)��ٯ�S� ��z!� +BN���C�h@�;���?�y +����Cj������`=���5U��[S�)LSn�E�vH%�R�T�����h�z>����/>ߞ��Չ}~�<�h� +endstream +endobj +8385 0 obj +<< +/Type /Page +/Contents 8386 0 R +/Resources 8384 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8352 0 R +>> +endobj +8387 0 obj +<< +/D [8385 0 R /XYZ 69.866 801.979 null] +>> +endobj +8340 0 obj +<< +/D [8385 0 R /XYZ 70.866 698.555 null] +>> +endobj +2418 0 obj +<< +/D [8385 0 R /XYZ 70.866 671.359 null] +>> +endobj +8388 0 obj +<< +/D [8385 0 R /XYZ 70.866 552.003 null] +>> +endobj +8341 0 obj +<< +/D [8385 0 R /XYZ 70.866 391.455 null] +>> +endobj +2422 0 obj +<< +/D [8385 0 R /XYZ 70.866 364.259 null] +>> +endobj +8389 0 obj +<< +/D [8385 0 R /XYZ 70.866 245.011 null] +>> +endobj +4310 0 obj +<< +/D [8385 0 R /XYZ 70.866 70.682 null] +>> +endobj +8384 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8400 0 obj +<< +/Length 693 +/Filter /FlateDecode +>> +stream +x��VMo�0��WX�2���KBP�����B[�4��F�MJ�--����6�� +U�@Nv����{�N�?02/J愒���9��h0Rd:#����(�A22Mȅ�(��\iw]���ke� +���$]�vvng��-l[�jzJ�@��wjp�4�k�x�|s���m��4I�r.�(I��)�M�7�+��D�|I>9wj`cbX�d@��`���q8�f@%>�p���G�ۥ-������}$,�ڇ�:��4�J� Zl!�Al.;l��yj�_�Y�\']� "�e6̾ރ�@��(�$�a�(d�R��7{���������/��|�|4��⠑�v�ro蝍���b[�((az&n�]&�j��o �$(���]r.Fkȅ��н�p�4��,�ϛ��˷1�R�%���9�<戾��>��9n�E�`��8g̜����@=��֙��V�<i�l�m ���C��D�۶�<�^@�|�oi��%J�Ԗ� + R�偱>�E=��Z%������C�h�OH<�%k�Q�����&*�}�Q[�YT����7���9[O���g��M��m��`���m�L3H����A_ם +]!� �q�m��?�w���g#�����i��徭?X͟s��/X����~����˟��Qջ�����=�i��\��2���W +endstream +endobj +8399 0 obj +<< +/Type /Page +/Contents 8400 0 R +/Resources 8398 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8406 0 R +/Annots [ 8390 0 R 8391 0 R 8392 0 R 8393 0 R 8394 0 R 8395 0 R ] +>> +endobj +8390 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 584.422 153.355 593.879] +/A << /S /GoTo /D (utils__test_8c_a91c61f3d2a5985466b46f5b15ad0faf7) >> +>> +endobj +8391 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [154.798 462.202 184.191 470.686] +/A << /S /GoTo /D (utils_8h) >> +>> +endobj +8392 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 408.745 297.675 435.284] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8393 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 245.393 153.355 254.85] +/A << /S /GoTo /D (utils__test_8h_a91c61f3d2a5985466b46f5b15ad0faf7) >> +>> +endobj +8394 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [154.798 123.173 184.191 131.657] +/A << /S /GoTo /D (utils_8h) >> +>> +endobj +8395 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 69.715 297.675 96.255] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8401 0 obj +<< +/D [8399 0 R /XYZ 69.866 801.979 null] +>> +endobj +2426 0 obj +<< +/D [8399 0 R /XYZ 70.866 771.024 null] +>> +endobj +8402 0 obj +<< +/D [8399 0 R /XYZ 70.866 627.711 null] +>> +endobj +8403 0 obj +<< +/D [8399 0 R /XYZ 95.773 598.45 null] +>> +endobj +2430 0 obj +<< +/D [8399 0 R /XYZ 70.866 552.704 null] +>> +endobj +4311 0 obj +<< +/D [8399 0 R /XYZ 70.866 398.925 null] +>> +endobj +2434 0 obj +<< +/D [8399 0 R /XYZ 70.866 391.989 null] +>> +endobj +8404 0 obj +<< +/D [8399 0 R /XYZ 70.866 288.682 null] +>> +endobj +8405 0 obj +<< +/D [8399 0 R /XYZ 95.773 259.421 null] +>> +endobj +2438 0 obj +<< +/D [8399 0 R /XYZ 70.866 213.675 null] +>> +endobj +4312 0 obj +<< +/D [8399 0 R /XYZ 70.866 59.896 null] +>> +endobj +8398 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8473 0 obj +<< +/Length 1365 +/Filter /FlateDecode +>> +stream +x��ZKo�6��WۋTI�z�E�n�S��$�@K�M@G�<��)��$��A/�$�G��f> �<�^���y5��܀�����ٹ�=�1�7�A�y�b�!c��&��u=�f8b�q=����9O�ec?0?q����5/r):�2��N���Z�`���541�����o%3�% �#�S���O�D��M;=`g(� Ė� ���뢴<h�XY�����X��dy̤�g�8��4l��0�J��V �[u6]3.�e�&[Y�������Y�ܐl�<N����b�JiȦ@��y�T?�I¥���6�Z�*nݍL=@�{Gδ ˲H��V +� �IQ�X�)"BB����@@9D���!��� /Pҿt�h%ڐ��P"��������q�*����_���=�l�p��=��̫����m��`tDp�gZ��y�m��3�m!p��8oh�2Z/zMi%��%�B�hLDgE���ۖ�~�!"(�<c�� ����,>�%ڎlS�Ң�� �I�%qjtΛ<V<! �c��B�;[�0&[�1.mB<����,x��$S�sM�����V��Q�������$�C��� �� +��Woݧ��奠��3�%+m��'/�?��r�As��@���gk�Ҙ��^���K��lUꮸ�^�h�y����������r������������a��8ڀ� m������B�s�aZM?�W ;��\���f�����*F�<����"X��Ĉ��g5)���b��%��+'���WS�$�}ۡMO�궡%�x��y%�"�{�죠�d�0h?��d�e��Q��� � �QCm�Z&��@�Dr�h�S? +�?[���� 7����� �Oڗɲ�M��$��v�6)�ˑb7^tW���&ɾ˔Q�Sz(ij�5�h��xy�x"�}����ͤ�My�=����q"G���˔��dbHU�}����8�;ҁ���^u�����x�%�1�X�U1M��p2tP���7^_���z�%P2�[q���f��k�M�Ew�h�5� �ͺu��S"���� �����ɗ��>jǁ5q��vHxUS��|���G]��G_:gu�=��\��@����6��CD�D�! ��G��uP�O���MRws��j�� +B������7���� >\��Z�>�#����:!.x\;����"f�٬�2��s��ɇ��|0�c�!�<_Xg�(O���"v+�N�b݉�1R?���!�w?���!��,�ES^?�,�}�ӈ<5�#�ӺCi��綬'�kW����m|e9+i�m��dw��;6�R��\Y3Y�k�wf� +endstream +endobj +8472 0 obj +<< +/Type /Page +/Contents 8473 0 R +/Resources 8471 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8406 0 R +/Annots [ 8396 0 R 8397 0 R 8407 0 R 8408 0 R 8409 0 R 8410 0 R 8411 0 R 8412 0 R 8413 0 R 8414 0 R 8415 0 R 8416 0 R 8417 0 R 8418 0 R 8419 0 R 8420 0 R 8421 0 R 8422 0 R 8423 0 R 8424 0 R 8425 0 R 8426 0 R 8427 0 R 8428 0 R 8429 0 R 8430 0 R 8431 0 R 8432 0 R 8433 0 R 8434 0 R 8435 0 R 8436 0 R 8437 0 R 8438 0 R 8439 0 R 8440 0 R 8441 0 R 8442 0 R 8443 0 R 8444 0 R 8445 0 R 8446 0 R 8447 0 R 8448 0 R 8449 0 R 8450 0 R 8451 0 R 8452 0 R 8453 0 R 8454 0 R 8455 0 R 8456 0 R 8457 0 R 8458 0 R 8459 0 R 8460 0 R ] +>> +endobj +8396 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 534.428 164.087 543.885] +/A << /S /GoTo /D (vector_8c_ac4b023769faf53e06c2ed1f2fd928d14) >> +>> +endobj +8397 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [206.952 534.428 240.614 543.58] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8407 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 505.56 163.325 515.523] +/A << /S /GoTo /D (vector_8c_ae9d3378f23ba835c727245b434b8a7f6) >> +>> +endobj +8408 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [216.878 506.371 250.539 515.523] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8409 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [290.564 506.371 324.225 515.523] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8410 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 478.314 128.438 487.466] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8411 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 477.395 203.189 487.771] +/A << /S /GoTo /D (vector_8c_a4cfc452fdff3e32a601ccff140cd9ae6) >> +>> +endobj +8412 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [265.493 478.314 299.154 487.466] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8413 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 450.258 128.438 459.41] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8414 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 449.338 235.584 459.714] +/A << /S /GoTo /D (vector_8c_aab9d7950d4ba03b0e1a23de5b7fae6a6) >> +>> +endobj +8415 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.887 450.258 331.549 459.41] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8416 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 422.201 128.438 431.353] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8417 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 421.282 194.492 431.353] +/A << /S /GoTo /D (vector_8c_af1767c4decdd472ed81035a19cf2152b) >> +>> +endobj +8418 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.795 422.201 290.457 431.353] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8419 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 394.144 128.438 403.296] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8420 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 393.225 226.169 403.601] +/A << /S /GoTo /D (vector_8c_a4a8fae4c69677390016c116123d9eff8) >> +>> +endobj +8421 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.473 394.144 322.134 403.296] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8422 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 366.087 159.111 375.544] +/A << /S /GoTo /D (vector_8c_a3bbd999b10064c2ede2bd427aa040b63) >> +>> +endobj +8423 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [212.664 366.087 246.325 375.239] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8424 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [282.154 366.087 315.815 375.239] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8425 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.643 366.087 385.304 375.239] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8426 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 338.03 159.613 347.487] +/A << /S /GoTo /D (vector_8c_a92917951880002814392c2367896d7a0) >> +>> +endobj +8427 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [213.166 338.03 246.827 347.182] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8428 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.803 338.03 330.464 347.182] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8429 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [380.44 338.03 414.101 347.182] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8430 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 309.973 159.012 319.43] +/A << /S /GoTo /D (vector_8c_a099aa56dd0f260c77afaf8b62b56b2c5) >> +>> +endobj +8431 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [212.565 309.973 246.227 319.125] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8432 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.202 309.973 329.863 319.125] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8433 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.839 309.973 413.5 319.125] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8434 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 281.104 172.067 291.068] +/A << /S /GoTo /D (vector_8c_afc68fab0b07c974faf5a457d20b01c58) >> +>> +endobj +8435 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [214.932 281.916 248.593 291.068] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8436 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [277.776 281.916 311.437 291.068] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8437 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 253.048 226.286 263.316] +/A << /S /GoTo /D (vector_8c_a90a92f618957807f90ab1d8a8d9150d4) >> +>> +endobj +8438 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.839 253.859 313.5 263.011] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8439 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.476 253.859 397.137 263.011] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8440 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 225.802 187.911 235.259] +/A << /S /GoTo /D (vector_8c_a3c0bdd0e463fb34757a71470c55af845) >> +>> +endobj +8441 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.464 225.802 275.125 234.954] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8442 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [332.067 225.802 365.728 234.954] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8443 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [382.17 225.802 415.831 234.954] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8444 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 197.745 185.015 207.202] +/A << /S /GoTo /D (vector_8c_ae41fee7d298da0645c37ed6af7acea0b) >> +>> +endobj +8445 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.568 197.745 272.229 206.897] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8446 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [322.204 197.745 355.865 206.897] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8447 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 169.688 128.438 178.84] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8448 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 168.769 254.305 179.145] +/A << /S /GoTo /D (vector_8c_abbb6bf046e47a8634c15c43a508cacb9) >> +>> +endobj +8449 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.609 169.688 350.27 178.84] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8450 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [381.113 169.688 414.774 178.84] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8451 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 141.631 128.438 150.783] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8452 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 140.712 240.578 151.088] +/A << /S /GoTo /D (vector_8c_a982bc2f9e4755461eac46c6322b4562d) >> +>> +endobj +8453 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.882 141.631 336.543 150.783] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8454 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 113.574 128.438 122.726] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8455 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 112.655 236.355 123.031] +/A << /S /GoTo /D (vector_8c_a5f4b706c07b9b0f7a4983d80fba99e4e) >> +>> +endobj +8456 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.22 113.574 312.881 122.726] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8457 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.049 113.574 380.71 122.726] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8458 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 84.706 178.774 94.974] +/A << /S /GoTo /D (vector_8c_af98f2e3896ce7b96d598b11033ac1795) >> +>> +endobj +8459 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [246.063 85.517 279.724 94.669] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8460 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [315.552 85.517 349.214 94.669] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8474 0 obj +<< +/D [8472 0 R /XYZ 69.866 801.979 null] +>> +endobj +2442 0 obj +<< +/D [8472 0 R /XYZ 70.866 771.024 null] +>> +endobj +8475 0 obj +<< +/D [8472 0 R /XYZ 70.866 575.616 null] +>> +endobj +8471 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F11 3889 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8505 0 obj +<< +/Length 1631 +/Filter /FlateDecode +>> +stream +x��YM��8��Wp��X��m���T%�lvj;3��F3C� �����@`�0[�� ��V�Z~{��3���,l}��~={{���@�s��|��/)�ĺ��`$�3�����*OR�c����h���/��!�V��Wʹ��hy�@L�T�P���ٟ׳�3��"�=!������n�³�F�ַr�������{�W���Z�l�E��3��9A�^�-����~ͺ�3��g�2;�B�L��>���<�U��,T���P9.��[����k���"�s�ȝr�� � +���oF����|�Jg`~�a;Waˣ��n"�8.D�PkN��UQn֥�1%x�B:��߷W@��ʤ�Y$"����W�W���m�F���٫n����W�Z����[����$5���G����SۜRD�v�B �� r�p���7���bt��HU�E��s�gw4��*~�G�ѳ��5�7Μf�M�[v�}�J��T�G��y_M������W�WH�f�A��*�O��'Ы%z�xG���~��TA���$�a��,7���WQ���T�M��5b�Pl�T�A<XgZ�0���Y&���xj~\���E�B}=R`f�4���٥��,�t���rUQ�rb�vg�lU��W(���������hZ�NӚ!�$��l�t�%O�.���Ů��2��V�+�"$1--��˲�)�u�����b?�-�&�-Ʈ���y3D�n��|��{(k��/�veC=��$/yu%�{a�v-!"��.���a�^e�4��QWp�`�#H0�������U�e���#0O�����`��E���d���mMȊգ�r���a� �- ��b�Wo��Q��am VƁm���*�д�ղ¦����<Mx7y0�L_��;#� �h� +�C=��{��<�xZ3 #ϴc�O�I��"�S�m"�V��OV}�I��, ��T�gHȦ������-���}1_�t�(T������.5"�*�2�FDɪвv2�S@�|3��F��9�"5���N�ri>�>&r|�%i����e[� �g��n�/i�@�_�.���Cu���ܼٱ�<T�z=aW��?�m��{w�aБ���� OX�v]d����%ΛWv��~Јd��G�C����u9����+��&�]hjh� �t���T��yQ���f�X7�Z�RE��6�H1�aj���Q��r�N��mJ�����?v�G�9�{e}��,�GP:��a�PV*��L�S����xy�Q,#��ǚ�P��&y����]��l-#5`Z@���Rӝ ��]ӱVu�Y��+��&��l�����u)F\^���D��Sw��&a�Q(����x�@�����N��e&�e�6�w�7���|�[ۇm��Zl��� +�M���̰��vv_*����r��a��I�p,s$��� ���n�G�v��a���.ϐ�e>˭�ø�2�J����j;��}��c��&aTj�1�^Cl�C.���'E~Xm��[��n�x��.�dXrmO�%�,��`��<Ywg��'@p����!����>�������9{������@[���E���}R9�<��Vq���Vm� +endstream +endobj +8504 0 obj +<< +/Type /Page +/Contents 8505 0 R +/Resources 8503 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8406 0 R +/Annots [ 8461 0 R 8462 0 R 8463 0 R 8464 0 R 8465 0 R 8466 0 R 8467 0 R 8468 0 R 8469 0 R 8470 0 R 8493 0 R 8494 0 R 8495 0 R 8496 0 R 8497 0 R 8498 0 R 8499 0 R 8500 0 R 8501 0 R 8502 0 R ] +>> +endobj +8461 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.988 758.07 213.941 768.446] +/A << /S /GoTo /D (vector_8c_a45dfc0cdad1f1a542df4029b498766ba) >> +>> +endobj +8462 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [303.927 758.989 337.588 768.141] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8463 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [420.839 758.989 454.5 768.141] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8464 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 719.138 128.438 728.29] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8465 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 718.219 208.945 728.595] +/A << /S /GoTo /D (vector_8c_a1fcbe913017a3b6802d5f66c8ef699ac) >> +>> +endobj +8466 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [271.249 719.138 304.91 728.29] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8467 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.738 719.138 374.4 728.29] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8468 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 690.324 198.482 700.7] +/A << /S /GoTo /D (vector_8c_a1348a041e323e7b333482242b51a7674) >> +>> +endobj +8469 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [201.967 691.243 235.629 700.395] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8470 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [398.213 691.243 431.875 700.395] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8493 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 662.536 208.183 672.804] +/A << /S /GoTo /D (vector_8c_a421f989647bf55af29c0f55b7f33d35a) >> +>> +endobj +8494 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 634.641 162.231 644.909] +/A << /S /GoTo /D (vector_8c_a8f24286db94dba6ab181edcdfe296262) >> +>> +endobj +8495 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [229.52 635.452 263.181 644.604] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8496 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 606.745 202.238 617.014] +/A << /S /GoTo /D (vector_8c_a8ec75dc585746d950ab517e9929f31fe) >> +>> +endobj +8497 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 578.85 180.899 589.324] +/A << /S /GoTo /D (vector_8c_ab2827264910e858f238868695a92db4b) >> +>> +endobj +8498 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.188 579.661 281.849 588.813] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8499 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 429.671 297.675 456.211] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8500 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 259.044 171.594 266.528] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8501 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 247.089 171.594 254.573] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8502 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 235.134 171.594 242.618] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8506 0 obj +<< +/D [8504 0 R /XYZ 69.866 801.979 null] +>> +endobj +2446 0 obj +<< +/D [8504 0 R /XYZ 70.866 549.851 null] +>> +endobj +2450 0 obj +<< +/D [8504 0 R /XYZ 70.866 415.427 null] +>> +endobj +8483 0 obj +<< +/D [8504 0 R /XYZ 70.866 368.869 null] +>> +endobj +2454 0 obj +<< +/D [8504 0 R /XYZ 70.866 341.674 null] +>> +endobj +8507 0 obj +<< +/D [8504 0 R /XYZ 70.866 173.695 null] +>> +endobj +8503 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8521 0 obj +<< +/Length 1405 +/Filter /FlateDecode +>> +stream +x��Y]o�H}�����t�gx�v)Oݬ��LV\�ͦ�~�0`������*���pϙ;g�=�?,�gUΰ�r�s7���}�̔��/%s/��HK�(�"I���yt������ap�q �_N�؛S��Oy�]�YVI����?�o3#�Cv!�F�r'Z�����{�D���V�\;\0$8����k�g�&�hJ�p��S�c�%5��XX��4��s{���O�H;��nUy� ����Μr`nA��a7.�,���\��}�(v��5s��z/���ު< +�`7ܼ�y���7o.s�< +��Y��9.V�:,�m�bY�F�s��(/ + �ta�� _H;�|S]Z�i|� �M}�<LjP��.~���S ���z�@���� ���F�Lf�8,�P6��B�¤��҂�H����N���D��R�J���M�J�E�i�iD�j�B����lϬ�U������y�� �&AM��D�f~��#�E)�i`�#Pz;v�����a�랾����0M�E��l�8��>/�[hw�`����d�|�G��_pJ� ��r�X���v q�^>����>���HQ!�G��]Q��1L�`i��b�hXA"�uM�E�!T�lh����(�3��d��)t*��.�� + E��X�h�T��=���������dE��Ǫ��:� +�����Q�);7��sʢ-.P�4�aeuA����-Z'�5 }X\]�M�<n�[�O�����u!��i��'mW1B/�Q�NuQd�F��N��E�Y/s�L�*xK�_�Q���Y����~��5'B�/e�Z��'i��I�ɏ�����g�g���0 �a�}�6[� ��{s��/�-��fHhڎ��l� �~�>����dnK�9�8���7yY�zpn�-���;0w��4��[�]�y�v��n��" +:��R�&HϿ^��e�ͥ�*伹�����ev�^a+�|[D��e���I��$S +)�b�)�T!取f +�[�Sz[k(t!��u*���:P��X����֡:bJPd�T�o>�� {ж���[�� +�/�V�Q�q(k�6ʞ�S�kBP~��n�auF|8@��O����G��D�a�uA;���Mm�6���ܺ�m�b(F�v=�#�hߤ�["4:�����ݮ3�!�J_��i��:�v���M�0(��q�]�H��v5�c�@!�mz�>��I�_q@RH�t$���t�!p�L�_N��K_NC���ͫp[���C.{�lF��eb��l�_}J�e�]� >��MX�a�ʃܘ��,�j�)�u`N���a�i�l6 �o�atG9����*��y +z��r�e��y��_���$�J�z��lm��+���]��d���{1P�>U��W� �?��/��oP +endstream +endobj +8520 0 obj +<< +/Type /Page +/Contents 8521 0 R +/Resources 8519 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8406 0 R +/Annots [ 8515 0 R 8516 0 R 8517 0 R ] +>> +endobj +8515 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 601.595 171.594 609.079] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8516 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 294.025 171.594 301.509] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8517 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 282.07 171.594 289.554] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8522 0 obj +<< +/D [8520 0 R /XYZ 69.866 801.979 null] +>> +endobj +8476 0 obj +<< +/D [8520 0 R /XYZ 70.866 711.42 null] +>> +endobj +2458 0 obj +<< +/D [8520 0 R /XYZ 70.866 684.225 null] +>> +endobj +8523 0 obj +<< +/D [8520 0 R /XYZ 70.866 566.68 null] +>> +endobj +8477 0 obj +<< +/D [8520 0 R /XYZ 70.866 403.85 null] +>> +endobj +2462 0 obj +<< +/D [8520 0 R /XYZ 70.866 376.655 null] +>> +endobj +8524 0 obj +<< +/D [8520 0 R /XYZ 70.866 245.451 null] +>> +endobj +8514 0 obj +<< +/D [8520 0 R /XYZ 70.866 82.821 null] +>> +endobj +8519 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F55 3831 0 R /F92 4494 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8532 0 obj +<< +/Length 1619 +/Filter /FlateDecode +>> +stream +xڽ�͒�8��<���*(��|��&U9eg疤\�+ƞ�&3٧ߖ%�6!{��`�ݭ֧Vw��LJ/$XU�|���8y��E�B��,x\FJ� �)�$x\_C�QL�3����f*q�����,������.�z���s��BB)��ȡ3�'>N�����קR�����w,����#����`Hp���ߓ�.��$w&�(�����$�0fzJD���l�����?b}�Q� Bq�����#H n�,��t&���vB�m#�q��#�A����-c4������p�0�wN�u����5��۬��>Mz&�ܻV�p�Z�j'�:mPg��|7EQ����^-fB�;���h'�I/ˍNe����.k�1�=�yx���-lfF A��0ځ�!�^�t�p��r^?;�N��|�+��\�4���Y�F�\�uQW:����B���9s#��b^gea?�y^�w^���m�7�Vi�]7�D�� +�����:�u�^����ݻ��^����,��v��7Uό��`���N0,���\�Ik �+�.�V�˔r�1]7"$�:� �<D� +$��H�$w�a���(RrH����؉h�@�7�4�PQ�C(vq#+�C(�1�v�J�^��a���(�1ȣXH�0������جHWq��k��g��%�uL��D���-F�P�M��&�W���T���3�E). n�J?qm�p �6N���֗N�~0��&���ھc@��6�n���GJ�#�A$�%L�S�g��2\�1��8�x� �����VY�;D���6dd"4�.vOv�遺�~����az֫g{��1�<�7�p�r�U���KH?���S釵���˞�t�n?�m�w洙�M�^=�c�8�0��^ƱÝ,í�e94T���Z�~m��>}��w�����O����x���V�n��u�W�aŖ��+�x$��r)ç)m�".#�u�)<J�� +�Hj]��wә <\Ven�=~��u�*t�͓�������-3a�/�߰Ua�1�T~�#�C�DZ�[�L��ׇ3_q��-PwK����u�i�:{I��$�Web�")JW�%�W���h�Rg����x���U�Irn���O� +�X�U~��]�7w���i������M�V0,�a���nhe>�@ۮ8�� $N��V-1�F���� �n�T�yo���͏��j�b�ߎl����Sz��U�V�kň��#�P�e7P~�u�;�pQ���z{53���t1�;+�(��1Cp��<Boa�< +[�c~�*�i�`E!8�Ǫ�&y�\`�U�l[���D%,�=+�D�iE7(b��Z�z�r��_Z�2���� tX�Y�na!#1{*>;L�9� ��<�H�~��J�Fj�N?Rm�g�v�2/_��{�ŷ�u�G��Hry�F�#�t�S饫��-��l�-^�:���FCw���Ȁ>,�,u��p�I����.2������܍��箭�I�.&n�~��V���$+�CY�b�4nW�z� +� �݄��"N�:���M�hu01��a���FE?�Y����h�d��'��.�������@R�]9Q�MZ�f�l"�/W�}�i��z +endstream +endobj +8531 0 obj +<< +/Type /Page +/Contents 8532 0 R +/Resources 8530 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8406 0 R +/Annots [ 8518 0 R 8525 0 R 8526 0 R ] +>> +endobj +8518 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8525 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 314.69 171.594 322.174] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8526 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 278.824 171.594 286.308] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8533 0 obj +<< +/D [8531 0 R /XYZ 69.866 801.979 null] +>> +endobj +2466 0 obj +<< +/D [8531 0 R /XYZ 70.866 771.024 null] +>> +endobj +8534 0 obj +<< +/D [8531 0 R /XYZ 70.866 617.902 null] +>> +endobj +8510 0 obj +<< +/D [8531 0 R /XYZ 70.866 412.56 null] +>> +endobj +2470 0 obj +<< +/D [8531 0 R /XYZ 70.866 385.364 null] +>> +endobj +8535 0 obj +<< +/D [8531 0 R /XYZ 70.866 242.206 null] +>> +endobj +8489 0 obj +<< +/D [8531 0 R /XYZ 70.866 82.821 null] +>> +endobj +8530 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8540 0 obj +<< +/Length 1553 +/Filter /FlateDecode +>> +stream +xڽ��r�8��~ +��*Vt�=餪W=��].�V�m����<�$as`H�"��H��%}��!������g���<,>����s|Hɜ���a�K�xE�8���R�/��?9�1.����>:��z�{�lOG�a%q�t�q��wA�%v�9��#�rg{\<}���}r b�;?uˣ�C�3������{�MI.}��5�^������y�n��GW�u�.)v�N��feyo�,0���N����� +�x(�0)t��b��I+���ƭ�y��P]�&���Z���"B�ا(�}��>��GTx�:T��_n��_پFI��,(5�y�y�<��Xea�2-����TG�F�\��{T�Y �(4���_����[�����r���������� K���cb>�XR���eK"\dFs_���'�T\Z�J��^R�ixT�J���Ym��v�d���`Z +F��}C{Q8�R$doh�aBooX������3D)D�]���d!� &�TIY�~�=$�����[���|�p�F�����E��XҒ����[�j��d�&�k!�#"��"��Y1,U�G������P�1>��i��TUE�����{��i:��:xM�r�c�`�4���1M��J֮���&�'3Y�ð&�����P +�`M>t#ìM��d�&j���6�Bk5��ej�Ļ�P��i�"�1�ڄ��]O=��� +�N"m����S׳�K�T[8o!��G��ރ9M��@bzC*�����SřG:���B{<��&�կ��ˡ���)\����A>�*�5��D:N +��{�e�~�j���5�m�6y��`;}+���v��v�OY��Q��?�$n��]T�\�Z^l�"s__�V�N�*��f�䷵�%�<�Qyo�EQ����kc�T+���'�v�f�S�+C�c�����Og936b�gk�S�%iX��O���:��H�����C���DB����4�pn�v�2w���s>�4��o ����:��}EVrz�'iy%�8v�(�w�S-+��R�W��k+�������:+�Z7o�w��2+j�9+��6IS����:���-�&�� ��� o��͎� +A7�T�\q���=X�Xk2��%��כ�Q8$��o���b����I� +C) &r e�, f��<�Bv�D�z���u���F,�D�z�H�����@�;��ghzl�zn!���Q6+��L��{P���i�ݐU4�ƦIv3V�@l`Wn�!�T��lV�����^"|$)���n�����bsYɞ*��o��n������Y�ە���@�oy3"X�X�T�@��oy�$�٫�N&o��n���^�L'�j�mr 3���G!|y9�? +ߔ�Y�S��4�n�����:����Ưj��F�6�������̬��ў6��/�(�^���р�{ݕ�m����>���X��:��5�_j/�zk4�����/��/��\��������у�U�]����o��+nZ�yP�J +endstream +endobj +8539 0 obj +<< +/Type /Page +/Contents 8540 0 R +/Resources 8538 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8406 0 R +/Annots [ 8527 0 R 8528 0 R 8529 0 R 8536 0 R 8537 0 R ] +>> +endobj +8527 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8528 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8529 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8536 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 308.051 171.594 315.535] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8537 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 296.096 171.594 303.58] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8541 0 obj +<< +/D [8539 0 R /XYZ 69.866 801.979 null] +>> +endobj +2474 0 obj +<< +/D [8539 0 R /XYZ 70.866 771.024 null] +>> +endobj +8542 0 obj +<< +/D [8539 0 R /XYZ 70.866 654.678 null] +>> +endobj +8508 0 obj +<< +/D [8539 0 R /XYZ 70.866 429.831 null] +>> +endobj +2478 0 obj +<< +/D [8539 0 R /XYZ 70.866 402.636 null] +>> +endobj +8543 0 obj +<< +/D [8539 0 R /XYZ 70.866 212.531 null] +>> +endobj +8538 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8552 0 obj +<< +/Length 1136 +/Filter /FlateDecode +>> +stream +x��XMo�F��W���~\��rJ]�C`dZ Q)E�N}�ܥB�4EQF�Q��{��ogy������0�dM(������� +C,8�Y<C�jM��Y<���Qp<�sc���U��cM#X�;��m�����(��l�Ə�OD +�Zd�p�Q���o�ٟ3�w)aG>k�rIV���#%O��'BA8K��F�T�x�%�~��\�p��QJ�*���g��]�L���&{Jc���/TQ��*\g���!�RĀ3��t����g�E��$s�`>!}��K�*q��4���T��&+�G��u���Y���Yަٺ��a\��0�3��pJT��g<`2��?���,a������|�T�,�e��s�%�4�:"���审�9�$s.Q�~�����"��.p�6�d�B�U�l_����bS�E�&A�W�s�6��Ӥ�4�\��t�_�V�F��2�i�!}�c.�$Ovi��1cѡ�]}gL9��wCg� L��{gT+�,C���@��ǝu� ��lX�#��G?��[]e �J���(��rZ������Y5xqK�LJT�����t��S���~A7�JI=!��BQ;(�C���UAFڂ���R8�������z���Q�˨Iv�,�VE�z�A���|�c=N����I��V���8��6���^���0����R��#�5��_]mκ���I���jR��ؐ�.��+4���U���n����EºnUQ���~�/y�n�?�X+��b�@e��K�G��8Z�.$+<��-�6�f�KS���&X�~�����'Zy*�2`�Ä�&��x#ײ������]�{���I�DLZ%�?���߂���O���=�[P`T�w��0��{�7?/�0�u-�PWʼj�:�̈́�칹�`���s_����g}Go?�dUk=��&R����9�=�������{t�oi���B�a��=�:��+��Ľ�K�\�ar���Q��I�ڰ���/�&�;�����!��i�r���x2�x_�t���2K܂�u�6K�N�Jx�j�QfipRxw���?��顨���d�~~�����n����KZ�r�fi�}�~�W�?���N#�'@.S +endstream +endobj +8551 0 obj +<< +/Type /Page +/Contents 8552 0 R +/Resources 8550 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8556 0 R +/Annots [ 8544 0 R 8545 0 R 8546 0 R 8547 0 R ] +>> +endobj +8544 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 687.101 110.119 694.585] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8545 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 663.191 171.594 670.675] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8546 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 329.089 110.119 336.572] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8547 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 305.178 171.594 312.662] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8553 0 obj +<< +/D [8551 0 R /XYZ 69.866 801.979 null] +>> +endobj +8490 0 obj +<< +/D [8551 0 R /XYZ 70.866 773.016 null] +>> +endobj +2482 0 obj +<< +/D [8551 0 R /XYZ 70.866 745.821 null] +>> +endobj +8554 0 obj +<< +/D [8551 0 R /XYZ 70.866 614.617 null] +>> +endobj +8481 0 obj +<< +/D [8551 0 R /XYZ 70.866 415.003 null] +>> +endobj +2486 0 obj +<< +/D [8551 0 R /XYZ 70.866 387.808 null] +>> +endobj +8555 0 obj +<< +/D [8551 0 R /XYZ 70.866 268.452 null] +>> +endobj +8478 0 obj +<< +/D [8551 0 R /XYZ 70.866 82.821 null] +>> +endobj +8550 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8565 0 obj +<< +/Length 1387 +/Filter /FlateDecode +>> +stream +x��YMs�8��W�h�Ɗ�A��٤jN���2) +ۊC� �3;�뷅�L�ƩT��� �~��k��y��F�&��A��>?�nn��������J!_3�(zX��9����qxƅ�����xk����tuؙ���8M���χُK���e�� ����Zó�<���*-wHH����}����uF��bR�I ����[PB���Yin�Ϲ)�$�v�;�>����m�H���GJ�c�jqZp�)D屨����B5�j ��k���A�hA)�R9w�8)���V�.0�~��I6�˧�B^Tc���)8&\טQ�=B�|���k�pi�m�ϛ[����\���`���������bN�R}a�|�����>�k�.?=xTNɓd�ݬ`�vb�R&�6B�ud0=V����0ڙ�d�>�*�`�K�Ɣ�#}�ه��D +r*�?��dAW.���Ӑ �l6�O��w�{ +���dS!Us(�v�@�{��´4��"!s���y��G�Amr��G�V�6)Ԅ�O9.8��'��z�WW��xŠ�}12���c��ծ����ϫ&h�w��]o�kz?�����u�U�J's���NyAam�]�s�r�6�ޑ]��!.���*�{S����W��3��U�U�DT�����9%G�s ��ܹ�b��lm�T��6N*_��A�m?��!�֑xo�=Jf��ɻ�¢=��Z{ ���cd��}_G��Y�#��U�I�G��<M�&��*=_�y.��m�bF�5,��/iֱ/�*�u�;&�t���r��A<({(��k� HeEV +ˀ�6���BH +��ir6�!�3n��,$�%7Y�l���!��E�zmSī��䯉ɻ��ul�ߎ(�����^��}q��e�̬Rx +��D� w�:�m����T�$sXm㵉�c��?:?af�x}����ʪN֧�g�c^�Ch��Ht�}Ct�/� �" Rc ��?P!!��uȹЕ�+��M�> ��R��2S jk���@�K�:�~��K���m��!�n��T ��|��Yͩ�h�M$iP�Z��u"do��}S�@���S�۽�F��[��v�$�Q���EU��7%��`v� 4t�:��U>*Q�� +�2�4蜋3h4 ��FMP��z���Q�b�gT3�a�c{�,/Ε>5�.��*�B�+�v���n���;�jF$��l���϶���M��l����C�z�ōQ��POiB�R��v��U��L�w��ot,����娸a_'��͘?Er�P�,�]��wҖu�B�.?,�x�˒�}p�#�" +3_��}�����+4�ջ�;��\S����kc���J�$��gp +endstream +endobj +8564 0 obj +<< +/Type /Page +/Contents 8565 0 R +/Resources 8563 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8556 0 R +/Annots [ 8548 0 R 8549 0 R 8557 0 R 8558 0 R 8559 0 R ] +>> +endobj +8548 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8549 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8557 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 334.556 110.119 342.04] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8558 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 310.646 171.594 318.129] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8559 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 298.69 171.594 306.174] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8566 0 obj +<< +/D [8564 0 R /XYZ 69.866 801.979 null] +>> +endobj +2490 0 obj +<< +/D [8564 0 R /XYZ 70.866 771.024 null] +>> +endobj +8567 0 obj +<< +/D [8564 0 R /XYZ 70.866 666.633 null] +>> +endobj +8509 0 obj +<< +/D [8564 0 R /XYZ 70.866 420.471 null] +>> +endobj +2494 0 obj +<< +/D [8564 0 R /XYZ 70.866 393.275 null] +>> +endobj +8568 0 obj +<< +/D [8564 0 R /XYZ 70.866 262.072 null] +>> +endobj +8491 0 obj +<< +/D [8564 0 R /XYZ 70.866 82.821 null] +>> +endobj +8563 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8575 0 obj +<< +/Length 1204 +/Filter /FlateDecode +>> +stream +xڽXMo�8��W�(5��k���=u�����ʊk��RY�n���P��V$Yz"�伙���,�P���Z#��f��[���V)�OHl�B�2�(Z��CD �,�3m���*�X������6�O��SLI��Y�f���3�`i �v����ٟ�ُ�O �/x�`�Jw��G�V��gD0���WK��y����5"E1i�� %��P�k�e�r�&ۤ\>�1#Q�:��W" ���i�m�n����Hc� u��9�F +��Wa�w=�U��Z#������/�DsJ����=l��x�7��5�d3����?�s{�y��� ���p{���!6_����P��뎇xs�l�&s*�:�=��b�|�����aUT����K���t�/B��LFu$����h���W'�6���0���3%e�˪��)����t�����������y_��$R�!����H� +&�ʅs���23�4l'���/ J(�M�T��S��^�@�0��0�T��6�~�#Lv#;y�r�)p�L��`B��'Ey���E,T�P(S��FA�J}�Q� �� �G��=�l��kz�\@�+��8��WBX��N�K�ǵ�]=� � �J�]e�sMZ�-e�ec����+.��6��k-�p|l�k]��Z˃~�����W�Q�rO�h�L�~�T�`�ع�"�����V)��<�gա�� +�U���1��k�k�y�����s��po�S�n�|Sm��oM���&�Ԓ6�۲�:?�P����X��c��t߲j��Ӿ9a�+�W�Kp�xS���\/wI�㐔�j�e �!���!D�\Mۘ�~Ye��!{�ښc (A����5�8'�e^�;�[���;�.�,_W�������-��:� �)��Ԇ�f�<���@x���p�z,��f��&9y�`JA2x�-������]�I�%���I;Х�3��]z"dg�n�z�w�f�i�x�Io�� +o��4���pU@����9'����*X�m���x�r��;�?&6����4�n^5A�U���䚆�M�&z��ϭ��;�w8��[�۸P�Q�ҍ�J�S���^����cXC���{RLQ{Kn/�{om�{}������i�%?J�V�i��^��$�����L�.O?.�M��z�?|�l +endstream +endobj +8574 0 obj +<< +/Type /Page +/Contents 8575 0 R +/Resources 8573 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8556 0 R +/Annots [ 8560 0 R 8561 0 R 8562 0 R 8569 0 R 8570 0 R ] +>> +endobj +8560 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8561 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8562 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8569 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 345.159 110.119 352.643] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8570 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 321.249 171.594 328.733] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8576 0 obj +<< +/D [8574 0 R /XYZ 69.866 801.979 null] +>> +endobj +2498 0 obj +<< +/D [8574 0 R /XYZ 70.866 771.024 null] +>> +endobj +8577 0 obj +<< +/D [8574 0 R /XYZ 70.866 654.678 null] +>> +endobj +8479 0 obj +<< +/D [8574 0 R /XYZ 70.866 431.074 null] +>> +endobj +2502 0 obj +<< +/D [8574 0 R /XYZ 70.866 403.879 null] +>> +endobj +8578 0 obj +<< +/D [8574 0 R /XYZ 70.866 284.63 null] +>> +endobj +8480 0 obj +<< +/D [8574 0 R /XYZ 70.866 82.821 null] +>> +endobj +8573 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8585 0 obj +<< +/Length 1287 +/Filter /FlateDecode +>> +stream +xڽXMo�8��W�h5�oJ��lX���- �fR���m���H�іe[z����������w_(z.g=#�ng,gW7\�GJq�|B��P)�#�E� ��3�ψ� +�?�$� 08�����dU\%y�L����}�Q�I}3�8d�����60���(D?ۙ[$$�RpxOѿ�NpSQL:?)��5�TJ��0�*/V�ͿsS��z��H��ҺW<;?�nEJ�q� mPZp�C),��W���7t�P=,��5`m��K�%ZP�#���:ɪ�ں��X���I݅95�s���i/�Z�$G���u�qQ�Cд�?X�<N0%���E��E�ZP.�A!Z0�n���o_�ʱ���^�x5/��ΈIMë����G���Z ����� 6�68���&�m2�/��xk*S��K/@CV��A�P��S��(��6�K� ���10[@"g�� 8���T��c��R9�mD��䥄b.�TH�?�J4����{��L�ɓ�=2R!0'�.�� +:��!zy2( R� �sLpȕ1N(���^]d��Ajkqd+GB�U���:�W� �y�u5,��� �4�ar��_r(�PV,����:ۿ}^P8�qǹu������҅�_��\bޙ�.2��_[^�� ��1��O�V�Nn�I�Cn���WBX�����L�}�I�l)�4+�a��E"ލyg��0�ڔ��V���,��E�#��}��:M��5��,���r�+��/��l���k�*�q�m�V�}�uDZ��&��=�u��� +j��͒jk�܇S�����u:~Hh�£��� �R�z]j��?��� +��-@���G�K�r�]�URq�K2�S��܂:�r���/�{�.vBU��M�ߢQ��X����¨<\�/�a�ڄ�,���q-���]��Lb��TD_J@Q�<}�7���� �d4ٗƹ�{����'{'/���6;^�y>,:�TX�)��'�����(�8�#��e6 lI~ �P0 ?�u5B�i��D���bkˈ��9ͅaF�\e^ks�Q�d�.:�wߨw����\^H��l8�,���N��*q}B��8̹>��h6s�d}̳�ՙ.�6h�taη� +g�j�f��-�ڄZ&F���G͍I�x��H��Q�}�WP;�B�2���Hs����]��y��́31������������w���J�F +����x�0�J��R@���J����d�����_����zu߱�]���v" +endstream +endobj +8584 0 obj +<< +/Type /Page +/Contents 8585 0 R +/Resources 8583 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8556 0 R +/Annots [ 8571 0 R 8572 0 R 8579 0 R 8580 0 R ] +>> +endobj +8571 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8572 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8579 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 346.511 171.594 353.995] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8580 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 334.556 171.594 342.04] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8586 0 obj +<< +/D [8584 0 R /XYZ 69.866 801.979 null] +>> +endobj +2506 0 obj +<< +/D [8584 0 R /XYZ 70.866 771.024 null] +>> +endobj +8587 0 obj +<< +/D [8584 0 R /XYZ 70.866 666.633 null] +>> +endobj +8486 0 obj +<< +/D [8584 0 R /XYZ 70.866 456.336 null] +>> +endobj +2510 0 obj +<< +/D [8584 0 R /XYZ 70.866 429.141 null] +>> +endobj +8588 0 obj +<< +/D [8584 0 R /XYZ 70.866 273.117 null] +>> +endobj +8492 0 obj +<< +/D [8584 0 R /XYZ 70.866 153.758 null] +>> +endobj +2514 0 obj +<< +/D [8584 0 R /XYZ 70.866 127.232 null] +>> +endobj +8583 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8595 0 obj +<< +/Length 1395 +/Filter /FlateDecode +>> +stream +x�ř�n�8���������p��m�t��K�v�T�,���n��whR�NQ,��^ٖ����O�?����W<8xp�y�����S�FFJ�< +#-e�E�7���`dh��J/F�"�C��h�|��Ƚ��B��Q��(���p����Nq�2��⏛ŏ��8 ���HS����;��w_�����ӝ���g�> �^�U����}�k?+!����Ί0�5I.��&�.NI�Ѯ>Z��̔3�kr��R˻~\[�%��!V� �̐���֒aIY����DMmqW�sD4 V�C�}>FE����>N�b�����q��ų��=��٥�<!=M��DnR� +;/�r� ��!����R����)B��F]�x����b�� +F+^.Â$�4bT ŀ�9T��%��A���f��@��U$N�O +�1A�J�����4�I�>�{���T��D�0��!�ׂ�+|�+���H�J�<&-F� A�d��-Fp5+��J2���S!�\���sW�$������s;�n�z�i9�#V��)�S��Y��a�0������d��@�f�6+�Ǎ�{c*.��M� �3p�&ُ[]�č��۴�q��0��!�e��X�F��%BP���6>Fe���D��Sb����:*�yڴ/v���By��hXY� +,��+�Ȟ.\�����9]��utZ�^��:;�����&9�Yᆬ|v���`����Nq�z1�%� ��6E;$�?wUvusg]9+]�gnR�|nYѡ�㈭yD�=6Z�,!����"�������m�cRF��������,��d-�1q�m�Ӥ��s%����v�圡��B�^�Et�W�#�����7ksku߹I��_��f�|Ϫk��Rov(�!bw�����X�;��}n�I?%�n���ݣ��?]�赭`�/����m^��h�E�Ik|Q���wj������� � ��!�~��m����ZT$���O���᫇ƬΡP�5���*�0t( +�3U��P�DX6E�~�+�b��N�n-� �)����oKoR>,�Cӱ��gx��O��OI�� ��fisBx�E�_�4���6M����h�g x��i9�#W�ᒭW��d��@1s[�����_���pJ�@m�`?hu��ЦdЏY=��\e#3�b�$��9�� �����^�2��R�<;�M����Zs@#���M?t�l�����*Nk��|�F'�l�j{�Ct��CY[O ?��%�O�|�|չs��W���:_��|�r�a�異��h��=�?��e���m�e��wn�|�o*���&p���/���?�?5%�J��\ )}W�9J�|S��1�����hWw���Ә$ +endstream +endobj +8594 0 obj +<< +/Type /Page +/Contents 8595 0 R +/Resources 8593 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8556 0 R +/Annots [ 8581 0 R 8582 0 R 8589 0 R 8590 0 R 8591 0 R 8592 0 R ] +>> +endobj +8581 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 766.501] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8582 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 754.545] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8589 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 384.651 171.594 392.135] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8590 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 372.696 171.594 380.18] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8591 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 360.741 171.594 368.225] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8592 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 68.822 171.594 76.306] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8596 0 obj +<< +/D [8594 0 R /XYZ 69.866 801.979 null] +>> +endobj +8597 0 obj +<< +/D [8594 0 R /XYZ 70.866 710.443 null] +>> +endobj +8484 0 obj +<< +/D [8594 0 R /XYZ 70.866 494.476 null] +>> +endobj +2518 0 obj +<< +/D [8594 0 R /XYZ 70.866 467.281 null] +>> +endobj +8598 0 obj +<< +/D [8594 0 R /XYZ 70.866 299.302 null] +>> +endobj +8512 0 obj +<< +/D [8594 0 R /XYZ 70.866 165.24 null] +>> +endobj +2522 0 obj +<< +/D [8594 0 R /XYZ 70.866 138.739 null] +>> +endobj +8593 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8606 0 obj +<< +/Length 1307 +/Filter /FlateDecode +>> +stream +xڵY�r�8��+X�X����W�z���]�rѶ�� +���d�~. �`�`p�H�t���ѽ�v�� �� ��M>�'�ߘ +42R�`�(����2I�W�}H5�>ο�1.abu�[���*~�,�k�Qo�r���|�τ�H�=��HS,ד�G�������T#� ��s�=��&5�0%Ax�8I�)��[W���:�"������7O�vYl�̔e[�*��jYQQ�T^� $A!�`F���ǔ�0ʢ�-l6%$�k�$o��AVӑ!""��3��e6\"�va�hY0�� !٠�̆f�R@�;���=� � &�XJ������ib���iD����[b$�#�e�8��+�c{�l��!b��^+t �F�~�xl0�T[Ce���p��)�{).���\��q�~�5I�,��8V�ܚ�/�8-MKL>��nM ��T�!�u�q�CH����u��1M�OU�����ĩK�}d�)�?��*�G���H�6�`QD�t�����K����%�R8�X`�#5&h[!�0q�� -\oy�ī�L�{��pU߆ɕf� �C��xFE�eh��Ccf����y�i���j/,�*�⼇|(>z����vc9im���F!��=@{�ۋ���;�����k�$��\Q�j.%"�=�/��`$��T�H���Hbo�n�9��X�@F_g��p�P��{�.d�W�7��/�g�5I�[�������N����_P�1�z�5�z�7��C��mo�/�$���� +Op���\ҷ�p�ש�]ɞ������7���b+ZͮӀD�s_�>^J�3&É�e��:����� �>K�5q��y�~��������^s;aE�F�'�v���(�?������=��s4��k�:���K�k��[�jS�-�0="�l�Mܩ�Ӟ��M��fw��"�r2�]#�����2����uu�#Ъa�u���+���@Tұ��f����iP�-�)1XL#�X�v�S&�č���t[�Ku8���o������� ���T(N�C{Wa8��2���48{=�SP���j�l�E�����$��Q��]S��]����c3�n��o���ޮl^�it���l���q�* ��R}Wa8� �h�{)�^�ee�^P�F1�u��t���F����$T���p�� �����p��^�` +X�r/b���B����߶v?�ID˃S�O�a �HJW=�lj����Z���(���Vz�ߞ�w�Ц�!��gH5 +endstream +endobj +8605 0 obj +<< +/Type /Page +/Contents 8606 0 R +/Resources 8604 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8556 0 R +/Annots [ 8599 0 R 8600 0 R ] +>> +endobj +8599 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 285.996 171.594 293.48] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8600 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 274.041 171.594 281.525] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8607 0 obj +<< +/D [8605 0 R /XYZ 69.866 801.979 null] +>> +endobj +8608 0 obj +<< +/D [8605 0 R /XYZ 70.866 747.218 null] +>> +endobj +8513 0 obj +<< +/D [8605 0 R /XYZ 70.866 644.742 null] +>> +endobj +2526 0 obj +<< +/D [8605 0 R /XYZ 70.866 617.546 null] +>> +endobj +8609 0 obj +<< +/D [8605 0 R /XYZ 70.866 498.298 null] +>> +endobj +8488 0 obj +<< +/D [8605 0 R /XYZ 70.866 395.822 null] +>> +endobj +2530 0 obj +<< +/D [8605 0 R /XYZ 70.866 368.626 null] +>> +endobj +8610 0 obj +<< +/D [8605 0 R /XYZ 70.866 214.386 null] +>> +endobj +8487 0 obj +<< +/D [8605 0 R /XYZ 70.866 82.821 null] +>> +endobj +8604 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8618 0 obj +<< +/Length 1347 +/Filter /FlateDecode +>> +stream +xڽY�n�H}�+������uv6�FZi6�[&B8 l�ؓ����v�� �`����s��NW� w�ǯ$X�G8X8x}���� +42R�`�(����2I̖�Ә`d�dJ���Y�N$���s��D��1z�<��(^D��ٗ�3����T�PM���_�я��8 >���<XlGO�8X�{_����{��m�C�3���F�\�I�-��L ��/e�_��0�o'���w,0�q��(d&SF����L���T��w�BY�(���d�tO��8����Z���Q�ʔ���EIs�JW>m������I�#|�.��C��1r�03�t1���,���b(�b�{ ��>+�Pj��Pu�&�|�C�T�6%�Nu0�T��g����ٛ�إ�2_d��ս�~wM��V�����jH�p�b����K�Nl�Bh��;���M��m���M���l�/�'r+^�Qe��' �:Y�! +w��o&�nzBW.b�AĶv���;�$ڮ*H}ſN(�i��2�$d��վ����D���>CG��C��1��I"Z mZ�|�#�wE�m��6�!Ja0tj�W �'�`��'�����X�I�UL��ZHd�K]�dD2DT���jr��<K���t�+~������j@�g5'����0/Cx��J`�K*TQE�Pa/�fV9�s���εp���{�(�j���R����p���":�����5�S��%�� /58#��B����`�2P��R���,�*'�)-��E�(�*g���5��z�Q{�fax���f��E��r2K�E5�8�eSeuӦ��-��G�(�*{{o����0['q��9�S�������9+�`��\��}��cL��GZB?�nֱ��>{�G6�m~�4�[��J��'��F�����h9>���%�<�sL�{�'q�W�s%54hJ���G�G���[���^���ƿ��Z������-r6w� 9����h;�Mr��ʩ�u�5j�|g����|䱁,���X��Aup���K���n��)�#J��=i�;�(I�[�D*(�� +�ؓ�����6q*�8��䬟yJ#I�1g�7 X٦�6�=L��z��Pl��axu1(�-�+ +���+�_?�fmU9/�Ri�hZ5�[:�Rh]C=� 0C��l��1�z�A_7R_1���l�Z��~]��~�4K����Rw�> @�v����qv�'�Q�W ����!b��uS}-��|Q��,��k2��.����zv4��/�=�Hirn��_n8�W��:?r e��_��_����I^��5�җ�!���P�ω-п�V6s�(>����% +endstream +endobj +8617 0 obj +<< +/Type /Page +/Contents 8618 0 R +/Resources 8616 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8622 0 R +/Annots [ 8601 0 R 8602 0 R 8603 0 R 8611 0 R 8612 0 R ] +>> +endobj +8601 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8602 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8603 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 686.825] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8611 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 353.336 171.594 360.82] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8612 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 341.381 171.594 348.865] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8619 0 obj +<< +/D [8617 0 R /XYZ 69.866 801.979 null] +>> +endobj +2534 0 obj +<< +/D [8617 0 R /XYZ 70.866 771.024 null] +>> +endobj +8620 0 obj +<< +/D [8617 0 R /XYZ 70.866 617.902 null] +>> +endobj +8485 0 obj +<< +/D [8617 0 R /XYZ 70.866 463.161 null] +>> +endobj +2538 0 obj +<< +/D [8617 0 R /XYZ 70.866 435.966 null] +>> +endobj +8621 0 obj +<< +/D [8617 0 R /XYZ 70.866 279.942 null] +>> +endobj +8482 0 obj +<< +/D [8617 0 R /XYZ 70.866 155.989 null] +>> +endobj +2542 0 obj +<< +/D [8617 0 R /XYZ 70.866 129.348 null] +>> +endobj +8616 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8626 0 obj +<< +/Length 1694 +/Filter /FlateDecode +>> +stream +x��Y]o�6}����Y~��}غ�S�{iA�[�-��.���)[�ٖ��!���]�璯�>}$����`���췻��wL1RB���!��BRQ$Hp� +��4��ow�X$�c��w�V�T���bY�tnR��m:��n�}F�%�2�QL�`��}����������M�]q�x��y|�����pʵ��sH�$&�8a�A4An���KS��iH�h��)��1��j�*M�ϗ��H~{��G? +��B��7C����d��u�ܷ�mףP<FR�G�+��5��#�1,h��G��b�X/��U}o�9�a�lt���x�~�7���ǜ���jNx�5bÅ�\�W�\Ȥ���|(��{J�/�|�Jm�y��,uUo=l��(�-��fla�h��6��W3P��K�"J"���FaZ�;m4$��Uo����I����,F�#7^�N,���bZ�����dU� *l6b�($���#� �K�@_C���x���������!cX���{��H���Gv����/|��v)���ӹ�N�2�t�S��D4q^e7ax�Q�0?�)"0�Ψ�1$e|�ʦ�VY7�~ձ�k�����ܦq�[��c���Z���"�cZV�x���viV��\O�B�py��n��j��гGE��ڈB�.P۴��j���Bm�8��Ka\m�^��{�خ�z*����&��0��0t�%Ć9��wYEmF�6-�ںQ{^��M�1��.�qŭte�<=���ew5�S���8/��1N��8��C���[m��<;�&���6�}�TԷ(�G[�%r9��?�9á.u��0�#}Nq��WYe���ҫd�Mb�L�eb�~o�j l�WО�p[,�uZWU�)�&�t�k�-`+�u�Lc� ��z(��������o�;���U��b���8APA��L���;�K��e��l2-�翇�(<�H� |�TG��*�b ��d���d��ʭ�S�9jz�&7�^n��N��?ˌ/U�Q���˪�EX����Q��tIL��r4z� MҌ��A0RP�! +'�v�a9a4ɪD�(��0 ��[��B<���Y�f��"��j�=�6R�ou�6�W��.�� �D�8<9h` + �=h�Y�\w�y�����~��oM�3�t�AC��ӣGi��>���%?S��葙�X9��o�a8��`�%��ӧ\�q,v_UL��c��SC� ���u�f 0� Gjj�C���^��YC_Y}�%��I�q� !�GK&�b?#�� ��*ދ�Tq���y]M9��^P?~n�|�{�M�0(�����[�]O�D*����v���-Ƌ�/�o`��M9,�n�Vn��M�0,�.�,��j���R��C�W������%p"�U�0�l+$S�y��mzA)�����������v{��8;�^�}NZvMҾ�#��`�45\������C����Lrvy�I#ve���zB�"�{�%�|=�Y�����x����)ik��i=�B��O�kcO��ln�������ъ��ъ���d�r[�|0B:-9CR��X�h�a�Y_Z���BR�o��`-�5����9z�Y�bh�]��Y#̥��W�����̯�A8��P�E�?�u�K���*�J�;m�����VD�Ώ)���-� +endstream +endobj +8625 0 obj +<< +/Type /Page +/Contents 8626 0 R +/Resources 8624 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8622 0 R +/Annots [ 8613 0 R 8614 0 R 8615 0 R ] +>> +endobj +8613 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 766.501] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8614 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 754.545] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8615 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 742.59] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8627 0 obj +<< +/D [8625 0 R /XYZ 69.866 801.979 null] +>> +endobj +8628 0 obj +<< +/D [8625 0 R /XYZ 70.866 674.479 null] +>> +endobj +8511 0 obj +<< +/D [8625 0 R /XYZ 70.866 495.621 null] +>> +endobj +2546 0 obj +<< +/D [8625 0 R /XYZ 70.866 468.425 null] +>> +endobj +8629 0 obj +<< +/D [8625 0 R /XYZ 70.866 337.222 null] +>> +endobj +4313 0 obj +<< +/D [8625 0 R /XYZ 70.866 182.502 null] +>> +endobj +2550 0 obj +<< +/D [8625 0 R /XYZ 70.866 166.783 null] +>> +endobj +8624 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R /F11 3889 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8704 0 obj +<< +/Length 1384 +/Filter /FlateDecode +>> +stream +x��Z[o�8~ϯ��/D�P����L�#���n7om�pS4\2`����k�K�Ф@zٗ6c�9�w>�/��X����o����ŕ�����m��=p�Nl8.�m����]c:��~1���Ԇ��P�\�+]��)��X����;0 �[��7�q01d���|�s�D+�y!:�&�������@�p xT=c`Z�n����&�� �t,��t�F:������C-͕��W��pٺC0ænZՓ�[[π�1L폀�B�Vݔ�d�ʯk�M�l�-M����a��hAZ,�aۺ�6Px@��# �XǮf��]XxYۡ����jzZUm�}��ں�E,f ϧ��tiP;�3��!3�i�\���4$��e�V�aptd���l7�D��,�d�4ND�U[�+�c�ϧ>��f��t���݉7���e�(����QɳZ������X���A��P{ꀁ�0��m@�gF��{}�����I��i��2���<� � ؓ�F�dÑ}�<&�K�%嘥Ÿ�85k"�,��@ik�7^���xָT6�.k��H�;*Z�ςf��V��EP]���ˋ���V�t����(�1����iT���%oiA&� tYW�UI�7�R��E>_Z�䢌��F 9J�U=�}��'�e� �"�c +���<��uP# +��N���z��/�_J�1ci����b����$_vA�� �2CkL�2)zU�y˴��3sps���p�>}7*+݃�٬$����8$}��&��ƚ��b|)za"�����}*���Q��>!���A]eiP�����c��:d�V�qe /ث��>��t��6�=GPv�u�(5�k3��IA��t�����N��|���裮8��@.;a�i��w�U��>��x��p=�� ϒ�u�j�TA+�\V��%g��]:,5���cX�E�d0.�Q<)��L�g b����d�1Q�v��#������C��]2ΪU�pg/]E*�O�1�; U���=9�;��:IE���b���:z�!�Ç�b�Ws������iZ-M�� ���F5�\>�%���@�$���إ��sWB��$�Ō 5 ��������!GXD�e�Q����� *.���Sҽyߩ�f�/��|8͚����0Y���&�ۣI����+�=*C�.�� \-�N"�ґe���n!4�^[1�T�i�:�93L��� +@�.�낿�i%BZ1�&����ʌ�a�̧f�Io�--Fr�g=� ��Eb�i��&�U�vh���x'-$5;�[ �.~�F癯�@{�A�e�4 �1���|%/�6�S�!{��K*������S��lm;��q�ִt[��<MXFy}�f���TY����m����� +endstream +endobj +8703 0 obj +<< +/Type /Page +/Contents 8704 0 R +/Resources 8702 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8622 0 R +/Annots [ 8623 0 R 8630 0 R 8631 0 R 8632 0 R 8633 0 R 8634 0 R 8635 0 R 8636 0 R 8637 0 R 8638 0 R 8639 0 R 8640 0 R 8641 0 R 8642 0 R 8643 0 R 8644 0 R 8645 0 R 8646 0 R 8647 0 R 8648 0 R 8649 0 R 8650 0 R 8651 0 R 8652 0 R 8653 0 R 8654 0 R 8655 0 R 8656 0 R 8657 0 R 8658 0 R 8659 0 R 8660 0 R 8661 0 R 8662 0 R 8663 0 R 8664 0 R 8665 0 R 8666 0 R 8667 0 R 8668 0 R 8669 0 R 8670 0 R 8671 0 R 8672 0 R 8673 0 R 8674 0 R 8675 0 R 8676 0 R 8677 0 R 8678 0 R 8679 0 R 8680 0 R 8681 0 R 8682 0 R 8683 0 R 8684 0 R 8685 0 R 8686 0 R 8687 0 R 8688 0 R 8689 0 R 8690 0 R 8691 0 R 8692 0 R 8693 0 R 8694 0 R 8695 0 R 8696 0 R ] +>> +endobj +8623 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.171 734.538 162.832 743.69] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8630 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 653.541 164.087 662.998] +/A << /S /GoTo /D (vector_8h_a758d38ad9623aa8c385bce765a3b7d17) >> +>> +endobj +8631 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [217.64 653.541 251.302 662.693] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8632 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 624.92 163.325 634.884] +/A << /S /GoTo /D (vector_8h_ae9d3378f23ba835c727245b434b8a7f6) >> +>> +endobj +8633 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [216.878 625.732 250.539 634.884] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8634 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [290.564 625.732 324.225 634.884] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8635 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 597.922 128.438 607.074] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8636 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 597.003 203.189 607.379] +/A << /S /GoTo /D (vector_8h_a4cfc452fdff3e32a601ccff140cd9ae6) >> +>> +endobj +8637 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [265.493 597.922 299.154 607.074] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8638 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 570.112 128.438 579.264] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8639 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 569.193 235.584 579.569] +/A << /S /GoTo /D (vector_8h_aab9d7950d4ba03b0e1a23de5b7fae6a6) >> +>> +endobj +8640 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [297.887 570.112 331.549 579.264] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8641 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 542.303 128.438 551.455] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8642 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 541.384 194.492 551.455] +/A << /S /GoTo /D (vector_8h_af1767c4decdd472ed81035a19cf2152b) >> +>> +endobj +8643 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [256.795 542.303 290.457 551.455] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8644 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 514.493 128.438 523.645] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8645 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 513.574 226.169 523.95] +/A << /S /GoTo /D (vector_8h_a4a8fae4c69677390016c116123d9eff8) >> +>> +endobj +8646 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [288.473 514.493 322.134 523.645] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8647 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 486.684 159.111 496.14] +/A << /S /GoTo /D (vector_8h_a3bbd999b10064c2ede2bd427aa040b63) >> +>> +endobj +8648 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [212.664 486.684 246.325 495.836] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8649 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [282.154 486.684 315.815 495.836] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8650 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.643 486.684 385.304 495.836] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8651 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 458.874 159.613 468.331] +/A << /S /GoTo /D (vector_8h_a92917951880002814392c2367896d7a0) >> +>> +endobj +8652 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [213.166 458.874 246.827 468.026] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8653 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.803 458.874 330.464 468.026] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8654 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [380.44 458.874 414.101 468.026] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8655 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 431.064 159.012 440.521] +/A << /S /GoTo /D (vector_8h_a099aa56dd0f260c77afaf8b62b56b2c5) >> +>> +endobj +8656 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [212.565 431.064 246.227 440.216] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8657 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.202 431.064 329.863 440.216] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8658 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [379.839 431.064 413.5 440.216] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8659 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 402.443 172.067 412.407] +/A << /S /GoTo /D (vector_8h_afc68fab0b07c974faf5a457d20b01c58) >> +>> +endobj +8660 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [214.932 403.255 248.593 412.407] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8661 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [277.776 403.255 311.437 412.407] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8662 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 374.634 226.286 384.902] +/A << /S /GoTo /D (vector_8h_a90a92f618957807f90ab1d8a8d9150d4) >> +>> +endobj +8663 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.839 375.445 313.5 384.597] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8664 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.476 375.445 397.137 384.597] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8665 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 347.635 187.911 357.092] +/A << /S /GoTo /D (vector_8h_a3c0bdd0e463fb34757a71470c55af845) >> +>> +endobj +8666 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [241.464 347.635 275.125 356.787] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8667 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [332.067 347.635 365.728 356.787] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8668 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [382.17 347.635 415.831 356.787] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8669 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 319.826 185.015 329.283] +/A << /S /GoTo /D (vector_8h_ae41fee7d298da0645c37ed6af7acea0b) >> +>> +endobj +8670 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.568 319.826 272.229 328.978] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8671 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [322.204 319.826 355.865 328.978] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8672 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 292.016 128.438 301.168] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8673 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 291.097 254.305 301.473] +/A << /S /GoTo /D (vector_8h_abbb6bf046e47a8634c15c43a508cacb9) >> +>> +endobj +8674 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [316.609 292.016 350.27 301.168] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8675 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [381.113 292.016 414.774 301.168] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8676 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 264.207 128.438 273.359] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8677 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 263.288 236.355 273.663] +/A << /S /GoTo /D (vector_8h_a5f4b706c07b9b0f7a4983d80fba99e4e) >> +>> +endobj +8678 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.22 264.207 312.881 273.359] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8679 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.049 264.207 380.71 273.359] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8680 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 235.586 178.774 245.854] +/A << /S /GoTo /D (vector_8h_af98f2e3896ce7b96d598b11033ac1795) >> +>> +endobj +8681 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [246.063 236.397 279.724 245.549] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8682 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [315.552 236.397 349.214 245.549] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8683 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.215 207.776 208.183 218.044] +/A << /S /GoTo /D (vector_8h_a421f989647bf55af29c0f55b7f33d35a) >> +>> +endobj +8684 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.988 179.859 213.941 190.235] +/A << /S /GoTo /D (vector_8h_a45dfc0cdad1f1a542df4029b498766ba) >> +>> +endobj +8685 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [303.927 180.778 337.588 189.93] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8686 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [420.839 180.778 454.5 189.93] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8687 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 141.013 128.438 150.165] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8688 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 140.094 240.578 150.47] +/A << /S /GoTo /D (vector_8h_a982bc2f9e4755461eac46c6322b4562d) >> +>> +endobj +8689 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [302.882 141.013 336.543 150.165] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8690 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.777 113.203 128.438 122.355] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8691 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.938 112.284 208.945 122.66] +/A << /S /GoTo /D (vector_8h_a1fcbe913017a3b6802d5f66c8ef699ac) >> +>> +endobj +8692 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [271.249 113.203 304.91 122.355] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8693 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.738 113.203 374.4 122.355] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8694 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 84.475 198.482 94.851] +/A << /S /GoTo /D (vector_8h_a1348a041e323e7b333482242b51a7674) >> +>> +endobj +8695 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [201.967 85.394 235.629 94.546] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8696 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [398.213 85.394 431.875 94.546] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8705 0 obj +<< +/D [8703 0 R /XYZ 69.866 801.979 null] +>> +endobj +8706 0 obj +<< +/D [8703 0 R /XYZ 70.866 775.009 null] +>> +endobj +4560 0 obj +<< +/D [8703 0 R /XYZ 95.773 748.565 null] +>> +endobj +8707 0 obj +<< +/D [8703 0 R /XYZ 70.866 694.013 null] +>> +endobj +8702 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F14 3888 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8736 0 obj +<< +/Length 1461 +/Filter /FlateDecode +>> +stream +x��YKs�8�ϯ�UE�@�ͮשJ.Y�kk�(d� +�&�>-�ƀ�x�JN0������uK����q��v��_�~�x{�N���sy��B8��H�2u�\2����Ø�L�>�g��4ݳ2iתh�&+-���r�eA@;d�2QH���W7�Ia�e�<v�k�qq��{����k���]*��wA��^S�;/�4�jɹp<��2K͘v��3>^tRz1��J���6��$�͊f���{�9na̧Q��!W�]s�fo�3jC7��+0 +��#�I���sXn������J�Y�$c}βz�Ǟ�ݯ�ͽIX�C������s������ʕ�r�AL�ȩIR�[o(����Jj�"�욕΄��Lu?�PhGl��{�K�~<��F��p@Z�N�5ƾ�����H�\^W�V;WV*J�f6��/��:�&\�.��D8t��"D�9��G��1v�TU���U�T��2�"�r�+��q�R?9)כ���'��$ʀ����}Ɋ$oS��r���;������|��4�o����g%��q�Z�2�7U���ɰF�w4��=�5Q�_�C眓I� Ң_�;�2�m�a��x��4\�A.�Ɵc�Y�ޭ�q�Ό���~v��G� w$h�]�G!�OS��}�sˊ[t�.W�ʳA�ǔ0�e�Z��!~���y[tQ~��O�P@�$|�jƇ~ǩ�^�bw[������$>h*Z���[��`-�8���iv�w�%��C�o`CWg��K�3qlif��<���"����G0�J۽�װQp����2G��������K��v�6ƅ�H���7�c�?:�QV��1!�G��rJ�/�ڻ�Px�K=FE<��e�J5�f"��*U�yc��j�#�1l�W��B����'MFq�U�)���(7s-9P=v��c0!�-�֡�v>bPJw��iX+FEwqa4CAS��a�l�,Bp�|'��(��'0Ρm�5�Ԍ����c-�6����,��ze+����s��VP��Y�b$�1�>��������t�o�6m�R"��^��b�grdC�[������<܆>lJ��lV[z�����fJ���6���}P��v�7���}# lT��`;��<Ԇ&W@��6�`7�j����=}�P��c9 e'�0(#�5�!8ӧ��Ԓ�mv��8��PZ}j�F�q��cn��n̥�n�"~j+���?� ��p�8 z��x8��p8֚�p�4���;�W<Ya�G07(zJ�f�l{qzq"{+�U��T��k .���hw�¥��z��·Ǧ,������ea��o���n^&Q�][����u\}i�*mF��5�()�Ju�姉fóS�i�4�ߐ4�B�Wg�]+�^=@{ '�.��� �@������ux� +Uō������+įw����:u�;m,�r +endstream +endobj +8735 0 obj +<< +/Type /Page +/Contents 8736 0 R +/Resources 8734 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8622 0 R +/Annots [ 8697 0 R 8698 0 R 8699 0 R 8700 0 R 8701 0 R 8729 0 R 8730 0 R 8731 0 R 8732 0 R ] +>> +endobj +8697 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 758.177 162.231 768.446] +/A << /S /GoTo /D (vector_8h_a8f24286db94dba6ab181edcdfe296262) >> +>> +endobj +8698 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [229.52 758.989 263.181 768.141] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8699 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 730.282 202.238 740.55] +/A << /S /GoTo /D (vector_8h_a8ec75dc585746d950ab517e9929f31fe) >> +>> +endobj +8700 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.489 702.387 180.899 712.861] +/A << /S /GoTo /D (vector_8h_ab2827264910e858f238868695a92db4b) >> +>> +endobj +8701 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [248.188 703.198 281.849 712.35] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8729 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 540.343 297.675 566.883] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8730 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 369.716 171.594 377.2] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8731 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 357.761 171.594 365.245] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8732 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 345.806 171.594 353.289] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8737 0 obj +<< +/D [8735 0 R /XYZ 69.866 801.979 null] +>> +endobj +2554 0 obj +<< +/D [8735 0 R /XYZ 70.866 673.387 null] +>> +endobj +2558 0 obj +<< +/D [8735 0 R /XYZ 70.866 526.099 null] +>> +endobj +8715 0 obj +<< +/D [8735 0 R /XYZ 70.866 479.541 null] +>> +endobj +2562 0 obj +<< +/D [8735 0 R /XYZ 70.866 452.345 null] +>> +endobj +8738 0 obj +<< +/D [8735 0 R /XYZ 70.866 284.366 null] +>> +endobj +8708 0 obj +<< +/D [8735 0 R /XYZ 70.866 82.821 null] +>> +endobj +8734 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R /F55 3831 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8747 0 obj +<< +/Length 1416 +/Filter /FlateDecode +>> +stream +xڽYMo�8��W�(1�oR�n7r�v}kA�GYr%�m��w(J�d+�-9VDrf��8������M9#h���}\�>\s���hy�4�F)�C�E�5�P�C>_0m��vU��\��?�7�Ij��{?�$���Vv�}y�7X�j;�H�z��r�cF�-A�ٟ1�0�V�����a��C�~�3�HH����g���E1�m3��Jiv�����oD��.��R"�CM�3GЂSl��~��z�Pn���[�BK���R���IV���B���81�[��䏽�����/7����J�G6���ƄGiϣ�����W�E�����9���v�H,�`��\�cZ0'����q���?T _lj�6�J�_~�7�s�d��&�n~3�Y��QcA;�11�9k|�3����ŜҠ��1DB% V:#!�!��=���m8�J���B�^� 'HUc��ph!���C���R,6�H���G &�T���?%K�D�'PyN�<Õ��L���u6��|:�z�1����t~|���l��"�#���FC+�1eGw +y�ULc#� ���q�U]�M�2��W�5��0���w9�qۤ�*�L�s�;�c8d�2^�o��ƖԎ(�G��F˒*ɳ�T�3M�+���ӭH�q\�H�9ޕ���;��[�Q�/�����5Pș���SO�y��Ut�v���$�����}���Lܗy�E�-���|W%��O����s�{�gP�8��q]�,�HA)�.�B`ʗZ,H3�tf)P]���*�BR徯OJ�� �K8�Ũ�b��e}�ѱ�q�><��4�#�I;8Kgi�T�Su��%��KD]�{�t�4�����butݩ�# +�5c4�*]V��U�����J8]���z����ar��.�$�_��$5 +�09Y�rbH�#����ue���~� /8���RS���f�4�<A3Lr8(z.G�(��������A�����kCK�>][�ZnC:TЗKr~��Ԁ����u���_�` Y�rUʉ��lN`�4���:���W�iK�i����6}%�q���!O����v�.��ƌ��p����� ��D��\�9�V�q�Ma�l���vR d���ř`T\ĸ 6^m���K�ʩ�Z#=�5�3~nk�_�3�Ͻ�{^���E$��U��/\u�we�u�=`��*�ďeٙ>0%�[#YErm���c\�����|�8 �o����������u�O�dWQ�n�(wb�We�Ĕ�6r}eq�qEӹ�^�D���®r�m�ʾ7NQ�7j�(�-KۦO��>����Ѯ��t�����d���Omc��������6�TWG��Ԯ�9㗐��WZ�Nځ��T�A�������<��S^=�q���#��=&q +endstream +endobj +8746 0 obj +<< +/Type /Page +/Contents 8747 0 R +/Resources 8745 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8622 0 R +/Annots [ 8733 0 R 8742 0 R 8743 0 R ] +>> +endobj +8733 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8742 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 395.682 171.594 403.166] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8743 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 383.727 171.594 391.211] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8748 0 obj +<< +/D [8746 0 R /XYZ 69.866 801.979 null] +>> +endobj +2566 0 obj +<< +/D [8746 0 R /XYZ 70.866 771.024 null] +>> +endobj +8749 0 obj +<< +/D [8746 0 R /XYZ 70.866 668.337 null] +>> +endobj +8709 0 obj +<< +/D [8746 0 R /XYZ 70.866 505.507 null] +>> +endobj +2570 0 obj +<< +/D [8746 0 R /XYZ 70.866 478.312 null] +>> +endobj +8750 0 obj +<< +/D [8746 0 R /XYZ 70.866 347.108 null] +>> +endobj +8741 0 obj +<< +/D [8746 0 R /XYZ 70.866 163.532 null] +>> +endobj +2574 0 obj +<< +/D [8746 0 R /XYZ 70.866 136.5 null] +>> +endobj +8745 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8758 0 obj +<< +/Length 1616 +/Filter /FlateDecode +>> +stream +xڽ�M��8�����X�7pMe����Y�&) +�C�,�L�_�-6`l���c��[�GR��]}�L�]1������ٻ����:�d�j�yR:�O�$�*r��ԓ�o�O�w�K�X=�'j���7�m{��ag�n:�k5�wF�%v�Ѥ�!�rg��=}�N�>9`���ת���!���8���>�Y��w�����|8a�o� ܄�Cm�,�*����>mu�a�7� +��i�$�;��F��yY��KB�o�>�8-��I�6�nc{��Y��(+��M�I��m�rm�b������W,H݆��i_h%u��Ck���q����.�͔�XP1��*����֠��W�\�J%JsR,����)l��Vϱi�=�����[�$���Z�� +��GY���z$��8U��/����ɬ1�� bK�O��^����(S��_��������Ôi���P���T�\�����@c��Dȼ�@l[aRH��?���� ��lC/=�HN�%2dZsȂoL4�هlP���1D)X��y��ز�Lt�Kٞ��a ���8MT���?wyb�Ou�Y|DR��a�q��ȫ��u x��9ƈxSrvN��qw�0�QQ��!��1��� +�y��� ���lӜ�ak9}�����6��0P7�w���&Ɓ�ˆ�PX����k� +�&9���r %��L�1@�$�v�Z�-ew?��]\�����BL�5�Q�M���}h���!Lo�9a`� ���e��T�P��"~���"��qN'����vک`�N�m������VC����z��6!}~�l�'��%8ry�+�W�i�*���L�E;�xwt��~$mlb�K�Y�\��F��8)�ӌmAa-�����-�r�^�J q��Z��U�^� * +JU���7�� |�-����-���]��x���;U�Gz�*��{�Z�0G����.�=Α��I�qlZ�V+��I.m��CZ@wio���}�h�2~ �� LvYP��4H3�������a3)�}���;,�_���$kx��:�AK3�?������]��D��E�F}�;�PS���p##�*�����̍�N�m�$oLZ��"Ԋ^3�YQɖ�����6f�j���=�]�����4E� ��������8��ϳ�-t*�&,*ʶs�5��(�'�q��i?��wڝp�J�6�j�|���wߟ�E��N��ud���!W^>A�2Q�xTJD�#�-�A�C%�0�=vK<x/�����l=�CO�������D��s��v�NV�[d�|s��e�!N� ��!��E�=&a�>:L�a�P�W6ͣ�����<Msi��r��]���ន!��w�u� _�<b���0z\�<����4Sy�&6);s�P���&3wk���Z�����DŽAJ,�G0G=�6'Gv(����N]�kU�]�۴(����.I��Iͷ��L�ͱ���7|��v���7�s�n��`b�F�\������UY�0H��R^R����#�#�AsO�֘��G�E�I��L�6=�]Ij՟�j����7��AT�������a�2v%�Ԙ�p�r�DR�Fg�*K�T�Ϫ��������ګ +endstream +endobj +8757 0 obj +<< +/Type /Page +/Contents 8758 0 R +/Resources 8756 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8622 0 R +/Annots [ 8744 0 R 8751 0 R 8752 0 R 8753 0 R ] +>> +endobj +8744 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 766.501] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8751 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 370.455 171.594 377.939] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8752 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 334.589 171.594 342.073] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8753 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 80.777 110.119 88.261] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8759 0 obj +<< +/D [8757 0 R /XYZ 69.866 801.979 null] +>> +endobj +8760 0 obj +<< +/D [8757 0 R /XYZ 70.866 673.667 null] +>> +endobj +8728 0 obj +<< +/D [8757 0 R /XYZ 70.866 468.325 null] +>> +endobj +2578 0 obj +<< +/D [8757 0 R /XYZ 70.866 441.129 null] +>> +endobj +8761 0 obj +<< +/D [8757 0 R /XYZ 70.866 297.971 null] +>> +endobj +8721 0 obj +<< +/D [8757 0 R /XYZ 70.866 157.813 null] +>> +endobj +2582 0 obj +<< +/D [8757 0 R /XYZ 70.866 131.078 null] +>> +endobj +8756 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8768 0 obj +<< +/Length 1534 +/Filter /FlateDecode +>> +stream +xڽ�ɒ�6��z +�*�Bl��K�O�D��K%K �9!���ӧI�7s��I���� |���ۇ��;�+�<�}\��]�������y�'Ob���Ho{�}��f� �����8Y�g�ˇ�l��&�7��f�u���B\)P*�P%�W�V~���)� ��e��{Gh��aĴ�~=/^����g��������>��8�$��<*�(b� �p� f�N���~д20`3]F�#��zC����qÚ� 即�!ih��LK�|TC�H)Qv��9����,�0�oC�3us�{|y�fn�g����p�f��c�f�|Q��o&�Q,�q��1v��)����5�>�!"��(�b�H�-A�����5 �}����$kB��6K]��U*�����<�l#��{B*Ĩ����L��j� *��PQ� � \� ��kC0A�ӹ����Kā����D��C�"�+\��;_�M�snk�S��;^k�]5��`�*�p�M� T��a��j� GD$�p(ު��B��#��'�MUU�-_��*n��_�5υN����a�o,�����i�fY��j�0��B��p�pB06 +C:�C��<`>��y�ݬUE�����s��������Glj�M��� ��,X��t�l�� +XzH;�8O:�4>��D�4��4�V�R�Ht[�����R ��!���i�3���Y�q{�;���&��O�|ȹ��:X)첰2��5+3�9nw2�.�s������<�{��^�5�m�vY����mM����6>�N�k�� j��GG �K|���q��a�����9mu��ݤY� ��V�@P"τ����v��q�v��G&5������ٖ�tG� �A궷�!x'*6��Ҕm� � eG y����l �H��l�\����7�l\�Y���K������q�v�c�?�N��c���gu��~�y)/6����Qطjo�;c�x�o;�mO+����p�\<����(K�J�x��<��n��0:u�S-W�pRZ�\��W���J��~ܔ��z7� ���>��ɂZh�Jx8�Ib�{���⨽k8��bOm{�7q���\� �sZ�\����`�K`��욗r��M:)l��x ~q�/�a3F�$ + ��H0#�¸�:�P�鹒���9u���# K7S��"j�4�5́zw$l5�����&��&LPʖQ�Ȇ�v!��kPF�T����IvSV�z(���MYUs���M�����^�E�-��� �B�K��gJ�`l�d7cU�ڶ���fO-\"8ϥn�.�Ë���.�����\d�2H40�k04�0�3%����%p�C�V�����t�[��&H�Q=��2�?%��U��`��(/]�k��<�N�k���d~���į�N?~�Jn<|��m�&d���0|�m�����0,f0�Ι9p)��]%��v������Z]�Y��ϞkR�5�y)=�/���y����>Ep%����D&�g]n����q7^Q�����L� +endstream +endobj +8767 0 obj +<< +/Type /Page +/Contents 8768 0 R +/Resources 8766 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8772 0 R +/Annots [ 8754 0 R 8755 0 R 8762 0 R 8763 0 R ] +>> +endobj +8754 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 766.501] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8755 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 754.545] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8762 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 363.816 171.594 371.3] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8763 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 351.861 171.594 359.344] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8769 0 obj +<< +/D [8767 0 R /XYZ 69.866 801.979 null] +>> +endobj +8770 0 obj +<< +/D [8767 0 R /XYZ 70.866 710.443 null] +>> +endobj +8725 0 obj +<< +/D [8767 0 R /XYZ 70.866 485.596 null] +>> +endobj +2586 0 obj +<< +/D [8767 0 R /XYZ 70.866 458.4 null] +>> +endobj +8771 0 obj +<< +/D [8767 0 R /XYZ 70.866 268.295 null] +>> +endobj +8726 0 obj +<< +/D [8767 0 R /XYZ 70.866 82.821 null] +>> +endobj +8766 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8779 0 obj +<< +/Length 1134 +/Filter /FlateDecode +>> +stream +x��XMo�F��W���~\[�rJ]�C`eZ Q�D�N}�ܥB�4)QF����{��og�x3{���r?�dI(���6��� C,8���C�jM���=�Lj[?�>���8����j��Snlt�]6i�'�j�C'�&�L���!��%Yl&�O�<㻏�%��#7D*J +�_��&��f@�8'�����R}K�v7_�Q��7��<ɞ��9���^?SE�!�Xw���=R*E8CYAI�T0�Jz�����>P�8�5��|[Ж ��Qd�8�=�a��֣��9^��2U��i�̿|8/�i��T�N8��*\ʼn31��DO|�M�0���X��o��3��c�(;*��M�-h�uD�;zs�]M1S&HI�\���߷���<�8�np�V�d���\E����V��U�7���^���%�M/+��5��Hwq)����D�qL#r�s%�d���.f,�7���i\'�}nj L��1{_��D*�9�m��@��!�}u��b�/��i�d@� �v}a��P|,����Q$C�4H�Y� F �r�(�<�� �n��S�i���(\e��v<듒zD<m �ҮW�ף��0�����)�TC2�QL�3d4��[FuҰ�E �*z��Ӹ��T����qĔoO�^W������bX_Wax})����w�Z�T�k$e��NH�N���Frw*��ݯ�cd=��<�� �?k�U��Q5�f_�:amϪ�eB�H��.k6�^��w��h��v���\�eY*G�w��txt!�ذ��)�2��JW�MM��U��QM�bʺ�h�h�`���K!�t�f�t:q���r ��!��wo�4��Iˬ��_2�=��-��U���x +��a�-�=�y'���G��۵�4*K��^�_g���m7wxU�*�}��h�h�`�Wn��q��;�H�Ύ� 2�#�;�Y��h�Ϯ��M���ۚ@�1�Ԯ��Ҽ��p�S�Z�1�]����U�4T�~>��[\u�wr���օ���*m]�q�a��_#��/ ���� +E��͒�c����^�wR�z�w�h���}^�#�x�@�Q>��[}�ՀI�fCIP(��Z��{�f�.ɻB�ݖ�"�g����?2�)� +endstream +endobj +8778 0 obj +<< +/Type /Page +/Contents 8779 0 R +/Resources 8777 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8772 0 R +/Annots [ 8764 0 R 8765 0 R 8773 0 R 8774 0 R ] +>> +endobj +8764 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8765 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8773 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 369.149 110.119 376.633] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8774 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 345.239 171.594 352.723] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8780 0 obj +<< +/D [8778 0 R /XYZ 69.866 801.979 null] +>> +endobj +2590 0 obj +<< +/D [8778 0 R /XYZ 70.866 771.024 null] +>> +endobj +8781 0 obj +<< +/D [8778 0 R /XYZ 70.866 654.678 null] +>> +endobj +8713 0 obj +<< +/D [8778 0 R /XYZ 70.866 455.064 null] +>> +endobj +2594 0 obj +<< +/D [8778 0 R /XYZ 70.866 427.869 null] +>> +endobj +8782 0 obj +<< +/D [8778 0 R /XYZ 70.866 308.513 null] +>> +endobj +8710 0 obj +<< +/D [8778 0 R /XYZ 70.866 82.821 null] +>> +endobj +8777 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F86 4575 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8791 0 obj +<< +/Length 1387 +/Filter /FlateDecode +>> +stream +x��YKo�H��W��H�N������4�٬o�a��H6x�ov��o5�8� �qi���W�U�n����u1!h�z��6���sX+����J!_3�(���Ӕ��7c~0�;^�Y�)2���>����1~�(��y�.c�y� `�T�a�6�'�'?'�D�xA�&�r7yz&h�!���k%�CBr,��-�k��>(�I� �0%ތB�+�����e�f��� �����kg���H�|�}B A3Nq ��pK��Z��f��Vy�SWE +,�D3J��ʪ;$iXmw��5p!�L�uX�q�.7_.3y��Z$9`xSpL��1�<����������,j�:�w�L7�4�\��4cRoe�v�C�Un� �A��VNw�A�g�b��#��,Q%�z^�̥ + +m�yd�s���1F���s��i� +L}��m���R�1��H��a�.���J���iQ�NEU=�= �`�D#�2a�Ic.|�$=-\J(撍�T�P�c �h�Z^���i%< +�EB*�D����_����:���^-l +R��rTp��!N(����n��xŠ�}q�����xe�]�x5��WMP�w��]�kz?������8w��Fs�j�NyA!7�*�s�z�6�ޑ-]��!.����c\��W��3��U�,c"ܶ��qrI��aUB5��*��?aiR&Yꎠ�^�I�t �1+��8K�DZG�i�x�V�ua�^C{����Sl�12�e�W�n�B����Y�w���"K�&��*=]%E.��M�b~F�5,���,��WBN��6[��%�)`� +Fj��8�HCJAO�j�Y_g!$���49��P �&��_�i���ঋ8_��(�y��Uّ�E�4.�eO\����U�*1�7+*k>;���C�//�^P6��eo��먌Ý��a[&���t7�j���dG�1\���0��du�� ���NW��Ǹ`��B�"TdН?�;�G��D^5��XCS��L!!���K����M�Hc���#��Q[{w����։�jj/뒳0��><t��Q94�ܦ�6��̜������gT���|�:��Am��;�@���c�۽�F��-�F;R�8���EU���S +0�>H ��ht�G#*���]�PFgh :�����QvG�ρi�f�8�մax�1�P^���>5ݮ6��*�B��v�G7����c5#����C�g[sq�ƙ�O�� �\+�g=���Q�jSOiBL��mT�^ǕS�ҙ�:f�ӱԯ϶.lj�uB����nj�0(y������іuf��\qX\2H�]����+�7R�ODa�+�H���S�OQq�0�9�����kf��痛NҮ��HS +endstream +endobj +8790 0 obj +<< +/Type /Page +/Contents 8791 0 R +/Resources 8789 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8772 0 R +/Annots [ 8775 0 R 8776 0 R 8783 0 R 8784 0 R 8785 0 R ] +>> +endobj +8775 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8776 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8783 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 334.556 110.119 342.04] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8784 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 310.646 171.594 318.129] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8785 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 298.69 171.594 306.174] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8792 0 obj +<< +/D [8790 0 R /XYZ 69.866 801.979 null] +>> +endobj +2598 0 obj +<< +/D [8790 0 R /XYZ 70.866 771.024 null] +>> +endobj +8793 0 obj +<< +/D [8790 0 R /XYZ 70.866 666.633 null] +>> +endobj +8727 0 obj +<< +/D [8790 0 R /XYZ 70.866 420.471 null] +>> +endobj +2602 0 obj +<< +/D [8790 0 R /XYZ 70.866 393.275 null] +>> +endobj +8794 0 obj +<< +/D [8790 0 R /XYZ 70.866 262.072 null] +>> +endobj +8722 0 obj +<< +/D [8790 0 R /XYZ 70.866 82.821 null] +>> +endobj +8789 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8801 0 obj +<< +/Length 1206 +/Filter /FlateDecode +>> +stream +xڽXMo�8��W�(5����n6z�f}KC�׀-���n���P��V$[z"ٜy3�����?Y�&��#'�&7w"!�Z��=��Q�5I,��lI"nY�8�D~'�F����&��<1�m��o��J�u�����f�������Kc��,���GF���'��!?�["��J +|ސ&���q�VPN��S`�E?�EU��{��j�[����?�1gQ��/�/L1��:hm� +a�DP�HBm���22@��/�����<Lu��Z#�����S�_&�L�U��ݯ��x�7w�7�r� �p^��`�ATO�GpRP&�-�!<4_���E�Nꅌ�C���A�)HNL�K�_�g�}�W��շ�,*��rN�x +�~�H�¿�����Lv1���l0���Wo4�@�pL���s�e�ͪ���]kC��G���jp���v�ׅ+3E4fa���1S��E]�xn�¥�D�(GO ��Yw\�� +��B���K�B^�@�0��4�X��@*�er���&;�ց���j�5fF�wJt���e��LA��*�Q�b��")`= 0 +�X�Ì�ͨ&h8?x�~cT��C�q!t��s���ϫ�__��:&[�X�.��'肩+�v��5e%����J5�5e-�Bsm$d'�Z����0�F��ŵV�\�e�"_^F��#=��s���������=p�Z��T2���>��e�V��Ҩu�S�x��ɠ�^7�V��H�(�����o3wk��Z�צi�Y�p>hA9�M�y��Z��>{�*�2����n^�m��(0����B|�b�A��*�����6-���rY�EY���0|Y<W��S�ϫl�2dP/P[s&�1)s<�FD6ϋr�����{��e�����_Ҳt�e�D������8�����1O����S�@|T��p�z(���f��&5z��Z�f��k[ +����]�+N�A������*�]z$dg�n�z�w�fC�^< +��7K*P���Ϟ4���xU`��)'Ѕ�^ �&��WW��r{��;�?.95V���q�ݼj����-��5��\M�~�w>�.���]��:n]��B��Sn���<�{��圂�{�&X�g�=%Ǩ=A���ʽ��:�^����{xm~ɏ҇�5� �WNg(I ++���J�c�geZu�z[�L��D]~��3�f5 +endstream +endobj +8800 0 obj +<< +/Type /Page +/Contents 8801 0 R +/Resources 8799 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8772 0 R +/Annots [ 8786 0 R 8787 0 R 8788 0 R 8795 0 R 8796 0 R ] +>> +endobj +8786 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8787 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8788 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8795 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 345.159 110.119 352.643] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8796 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 321.249 171.594 328.733] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8802 0 obj +<< +/D [8800 0 R /XYZ 69.866 801.979 null] +>> +endobj +2606 0 obj +<< +/D [8800 0 R /XYZ 70.866 771.024 null] +>> +endobj +8803 0 obj +<< +/D [8800 0 R /XYZ 70.866 654.678 null] +>> +endobj +8711 0 obj +<< +/D [8800 0 R /XYZ 70.866 431.074 null] +>> +endobj +2610 0 obj +<< +/D [8800 0 R /XYZ 70.866 403.879 null] +>> +endobj +8804 0 obj +<< +/D [8800 0 R /XYZ 70.866 284.63 null] +>> +endobj +8712 0 obj +<< +/D [8800 0 R /XYZ 70.866 82.821 null] +>> +endobj +8799 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8811 0 obj +<< +/Length 1288 +/Filter /FlateDecode +>> +stream +xڽXMo�8��W�h5�oQ�n7 +,�����c3��YJ��m���H�і%[zBK����������(z*f=!�nf����k"�#�8Z>��`� +#�E�-��S�#,X����M��"s�l�\lj��[�P27�I7&�_~E�k,����h�x��r�cF�)A� Ok��@���-����F?��;$$�Rp'���'�AQL�M`���ⶲz��M�*��w" �Y/�{�����P�D!�BBk��b-�p�J�������ea��Y �D ��DJq$�5V�i�����uP!�L�mH�>�ϟNsx��Z$9�������\��-���?�L�h�Ѽ�fQ����F&����?��KU:2��n�īd�{oLbv&-���5`rn�*��vw��z���&8���&�m2�o���Δ&(�^��(�X���0����Q��m�t�HAl% �l�lQ���&��#�Su44� +K�"����䥄b.�TH�=�JB,�%��w0P�6�'{d�B`N�\��t�{}��dP�P<����+C�P05�xu� �+����p 9ƫ:�#u��A���j����!�4�~ru�_2(�PV,����:ۿC^P8�a��:�F[F��l�B/r T.1oMY�_�߯-/��a�pʘW�'_+C�7�E�$5�H_�wBX�q�������8u���A�I?��"�ƬoW��nU�khϢ�]�02=4`���D�^��� +,�}�%}����d�1�b�N��jW�UIWm�H�,�]!u`�J>PTA�7�YR�`�]�{*�3p!p�Iz� M��p���`'h��<�V�rL�5���7!7�ĎҺ��v��z{���J��%1�b��d�Q�m݂:C9O��rS�v��ˇ�P&i�hT&% 5j5�0*����lX-��6A��" +��LH���^)�$f�ME��%���|��� +2JFS�}�{�<�N:x����ʋ]3�Ɏ�a���.���H�EA� �%��@�t� GB[�BB LG�OYUqj?;�p���2 l[FNs����um�U��\mAT���]���7���!m��R�"�z ˹� �z�xT�� +O(S��9ׅt��ͦ`����yV�:Ӆ��5�."��6C�l���>�ŀS��c@ˤttZ�P�ܚ�\�~�� +�"j���� +j�W(V�G�i��!s��C�%~s�Lu�#���%�u�������a-�����~�V��Jt.z�\�rcR��˾�������>c�����{� +endstream +endobj +8810 0 obj +<< +/Type /Page +/Contents 8811 0 R +/Resources 8809 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8772 0 R +/Annots [ 8797 0 R 8798 0 R 8805 0 R 8806 0 R ] +>> +endobj +8797 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [69.87 727.162 110.119 734.646] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8798 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8805 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 346.511 171.594 353.995] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8806 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 334.556 171.594 342.04] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8812 0 obj +<< +/D [8810 0 R /XYZ 69.866 801.979 null] +>> +endobj +2614 0 obj +<< +/D [8810 0 R /XYZ 70.866 771.024 null] +>> +endobj +8813 0 obj +<< +/D [8810 0 R /XYZ 70.866 666.633 null] +>> +endobj +8718 0 obj +<< +/D [8810 0 R /XYZ 70.866 456.336 null] +>> +endobj +2618 0 obj +<< +/D [8810 0 R /XYZ 70.866 429.141 null] +>> +endobj +8814 0 obj +<< +/D [8810 0 R /XYZ 70.866 273.117 null] +>> +endobj +8723 0 obj +<< +/D [8810 0 R /XYZ 70.866 153.758 null] +>> +endobj +2622 0 obj +<< +/D [8810 0 R /XYZ 70.866 127.232 null] +>> +endobj +8809 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8821 0 obj +<< +/Length 1389 +/Filter /FlateDecode +>> +stream +x�řKo�6���:�����qm�,�@�m�[60lG� +���,�6����"ɊbIFz�C��p���?����+ �3<8�<�m5��a*��Hɂ�c�0�R�P$I�z�������K���&_�Dq�XR������|�Gib���X�~����Lj�4��n?����<��E��_��}�C�3x����tv�'o��.D��Q��� �x��2���.O�u^UZ��1�6�3��)W3��n�$J��?�ym�-�KobI2�d�kZ���Zn�AR�r�7,�DMm���sD4 ��C�}��<�`��|%~����M�㸉���}J��_����sS�D̑[�®˾9!�80���>_��7�f_B����K/TZ��B`�`����6,H"�J#FU� �!ƛ(�4� *m64C�^��.#Q�I!� &�X���+$����8L������X� ��"`� LJ�_N�b�D��F�TB���L� Bu/����$�+ɐR�/���z�+H7��ƹ�����Z���b�b�F��s%��Y��a�0��!���`OQBM�m� �7�3��R2\����g�6�e7nu�%n����Ѝ[=�~��.M��68�SR�e|m�mTB�! @�T]J��a.��a~̒�x�K�}�� +G���]�a�^9��v����o�7�L��&��b{�z!��<.�o�C��$�ݔ���qP��]��$Q���3_��J�QL����wߋ�*���� ���,Lv�gn��x��6���C�[�zl��,������&DQ�e�q)j���1.-uhU0���g�gA`�f����F�(��\���>��NB��3Ӏ�*�0���\��g:?r�V߬aΝ���M���r��{�����u-V��ŀ�6�C����y�3��s{���9�v��Stv��>*:c�[�`���� +�m~ơmwOOZ�A5;��h���������RV��_�z���cZ-� ����S�l=|�Ҙd�)*��]@SE&� +EAaƺl*���M�U�s�ZĠ�t�&Z Ax�uR�ߖڤ<,�CS�Ԏ����'n\�DŽ|� ��fiSLx�E�_�4���6�e7iu�U����%r�b�F��%[� +�����&�IJ6ń� �@�E�>&�����ݠ�]n�6&�n��\��(�) VO������19��(�)�]��cރ�8�ݠս�����E� ]=�~������4=������O5���&N��MYYO ?��%���|!}սs��W���:_��|�3���異��h��-���2���6�2�����Y��7F�v�����Fp�����Q%y��H�HJ���0��]d\��^����ä����J +endstream +endobj +8820 0 obj +<< +/Type /Page +/Contents 8821 0 R +/Resources 8819 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8772 0 R +/Annots [ 8807 0 R 8808 0 R 8815 0 R 8816 0 R 8817 0 R 8818 0 R ] +>> +endobj +8807 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 766.501] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8808 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 754.545] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8815 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 384.651 171.594 392.135] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8816 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 372.696 171.594 380.18] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8817 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 360.741 171.594 368.225] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8818 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 68.822 171.594 76.306] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8822 0 obj +<< +/D [8820 0 R /XYZ 69.866 801.979 null] +>> +endobj +8823 0 obj +<< +/D [8820 0 R /XYZ 70.866 710.443 null] +>> +endobj +8716 0 obj +<< +/D [8820 0 R /XYZ 70.866 494.476 null] +>> +endobj +2626 0 obj +<< +/D [8820 0 R /XYZ 70.866 467.281 null] +>> +endobj +8824 0 obj +<< +/D [8820 0 R /XYZ 70.866 299.302 null] +>> +endobj +8739 0 obj +<< +/D [8820 0 R /XYZ 70.866 165.24 null] +>> +endobj +2630 0 obj +<< +/D [8820 0 R /XYZ 70.866 138.739 null] +>> +endobj +8819 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8832 0 obj +<< +/Length 1316 +/Filter /FlateDecode +>> +stream +xڵYMs�8��Wp��X���uvvR5��Yߒ�����*���3�����[��C +�V���og?�๘��9�����lr���@##%fO��HK(C�$�l܇#â)U:|��r�G�襾�-Im}��>E�6���F���g ��i�C.O��M�������iʃ�jr���%��`Č~oG�.��y�=��=j<s���$�&�kG��u�勋�-�"�Ӎ-���O�ۉ?`��(�ڕ��"""D�iaDERu���i���)eím4?"��8�W��yDHX�nJ�Q�̦#CD*D��g�1�l +8D0���`�v��d��*�!J �0Zg$�N�A0ALб����+$@%-��f�勇�K��G��H8G�6q��W ��*��X��eC�c'�V� +���T-p�`֩ض��S�HA��Sa�pѧ8,��ō��+�I�y��Ʊ���d}]'YUhZb�Mtkjp|�z�!���`��B +�$V�C��i���:���1M2�**D{�V���<.��<j��$GZ7[+���h +�;�a��=�������?Rc��2 +�������u�����{}����h�\�`J2;� �gt^�\�6�841fv���7���n� �����B�`!�{ȇR��a(ll7����Oa?!�`b�M?���yu���r�=�#ɯrWAԥ�K���s�+Dr�9I�-�-�>s0��[�[ğo��~*)��י��0���>��Y��~��c����i F���� � g0<�S1�����p��ހc��� ��o@q��8���2y��@.���m(\��u�jU�g�<?�&���=��q���f�i@�9<s_�>^J�3&É�E��:����� �>K�5q���z��)����I���v���wR���6N볬�2�Y������Mo��,����R�Zc�R���Tn�k"̎�r[lR������%eaӧ��]����vW�H�hga�L"����tF���*AXo��D�t;���u4;*�t,a��A%�u�{�sJ�3����G��&qc#�4�V��R6�9y�#�)<&��F:}9U�����UN{��,�5��^��@��Z7�M١�q�~6��w�E�z�Ԣ~�<#�q1��،��~�M���K[�I�G�-۫opܧ�%�T�UN}B Z� +E�W|`Y���Q�~�59�u8��Q�~�5Iլ�1�.8 ��ot���q��L�\��aC���A(���}����w9�h�qo%I�ǝ�l��9�_�����ue��}�^B�G�?ʲN +endstream +endobj +8831 0 obj +<< +/Type /Page +/Contents 8832 0 R +/Resources 8830 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8837 0 R +/Annots [ 8825 0 R 8826 0 R ] +>> +endobj +8825 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 285.996 171.594 293.48] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8826 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 274.041 171.594 281.525] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8833 0 obj +<< +/D [8831 0 R /XYZ 69.866 801.979 null] +>> +endobj +8834 0 obj +<< +/D [8831 0 R /XYZ 70.866 747.218 null] +>> +endobj +8740 0 obj +<< +/D [8831 0 R /XYZ 70.866 644.742 null] +>> +endobj +2634 0 obj +<< +/D [8831 0 R /XYZ 70.866 617.546 null] +>> +endobj +8835 0 obj +<< +/D [8831 0 R /XYZ 70.866 498.298 null] +>> +endobj +8720 0 obj +<< +/D [8831 0 R /XYZ 70.866 395.822 null] +>> +endobj +2638 0 obj +<< +/D [8831 0 R /XYZ 70.866 368.626 null] +>> +endobj +8836 0 obj +<< +/D [8831 0 R /XYZ 70.866 214.386 null] +>> +endobj +8719 0 obj +<< +/D [8831 0 R /XYZ 70.866 82.821 null] +>> +endobj +8830 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F29 2678 0 R /F51 3827 0 R /F55 3831 0 R /F61 3918 0 R /F92 4494 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8845 0 obj +<< +/Length 1347 +/Filter /FlateDecode +>> +stream +xڽ�Ko�H���mi����:�M��V�����,b �C���~�iH��5̣��տ���o߈��O���w?�����1�id�d���Si)=e(��[���)5|����1�Ǹ���wa��T��m�ʷA��Y�����_��� �'�G>Lj�4��j;y|���}�����{����!��G���?�) �#�E���c<}VY�.�+?���vF�4�~`��C��7wBx +��5��9#H��%�z6�dž��]���Ȁ\ oN2B���0��2s2��d�FT�*�����"h.Z�������y�����η�4�v����|(��%��h��.�.M��^E�Wp�b���Rӧ�Ya«>Ѡ��ۜ��ޜr��$��d�˳rd���.M��*s_�w���mFŴ���f������Y<#���9HgOQ.����y����P?����p����u�U��k�j����p�ay3���\5� ����C1�h;B�AZ����S?��A& ��sߖg`e"�EW���#Sd2�g�l��$� -�6��������"���A����|F=a0$�2��-�`��:PR�'���X6E!U�Ld����6T��Ȉd���rm4pnB�%�-�.Vůn�?hl��q�CFs��5!�8��(1��gF���8G���*z���!�k���'6�k��� 9ъc݇]�z�bE�G2�'y� +Ng�v��zz� X`@�(�F�(Q�=�qzf(� +*sq�A����5�N�@k�h+Zu�^����� �ڣ�e�d�5c�5��HU�Y�g��lǦ��M��;�&� +P]�;7Y��صh=To�Izk}-Ǭ�������6��1��ϰ�e1�q9�I����D�i~�V�?/3��Aī����m7Z�(k��KЃk�Y/S[����}W�*r]I� 2��GL����c��@W�+�5����xmku��V����I��\B2��l� i��y��������D'����>�ݘ����3գK���D*a��� +�rآ?����p���F�HER\�%�l���m��"vj6�<����P�OX.he��;X�v3���1`B��t��Q��`��Q\QHČ\�� Slg��y��H�@;hu���U��u������(%g� ���A^7R_P��lG���܍. n�#����zA_q���ch��6q��6N��U9pQQO���<V\^Vէ�*�,����ς��O�~�z����(}PԳ��>��DJ�S}�|�r����K([o���������&yQbCd�`;SY��})D�e +n;C�����M������T�U +endstream +endobj +8844 0 obj +<< +/Type /Page +/Contents 8845 0 R +/Resources 8843 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8837 0 R +/Annots [ 8827 0 R 8828 0 R 8829 0 R 8838 0 R 8839 0 R ] +>> +endobj +8827 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 703.252 171.594 710.736] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8828 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 691.297 171.594 698.781] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8829 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 679.342 171.594 686.825] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8838 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 353.336 171.594 360.82] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8839 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 341.381 171.594 348.865] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8846 0 obj +<< +/D [8844 0 R /XYZ 69.866 801.979 null] +>> +endobj +2642 0 obj +<< +/D [8844 0 R /XYZ 70.866 771.024 null] +>> +endobj +8847 0 obj +<< +/D [8844 0 R /XYZ 70.866 617.902 null] +>> +endobj +8717 0 obj +<< +/D [8844 0 R /XYZ 70.866 463.161 null] +>> +endobj +2646 0 obj +<< +/D [8844 0 R /XYZ 70.866 435.966 null] +>> +endobj +8848 0 obj +<< +/D [8844 0 R /XYZ 70.866 279.942 null] +>> +endobj +8714 0 obj +<< +/D [8844 0 R /XYZ 70.866 155.989 null] +>> +endobj +2650 0 obj +<< +/D [8844 0 R /XYZ 70.866 129.348 null] +>> +endobj +8843 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8851 0 obj +<< +/Length 1611 +/Filter /FlateDecode +>> +stream +x��Y˒�8��+X�X���ɣ*�Lһ$EѶ�M� �'����B�Lc��f]�A�{uu$�#��}�L�m���6����w��X�HIɂ�� �(�2�E�w��[H0R|��Q��צ(�+���ևl�����$8ԥ��z���S�Y�DC��*ao/��-~.��9�cS���o?p��g�����_u�}�C�3��_;�pʭ��%D!ab�EE�C4In:���N�A{�A��!�TӃ4�w�-W$��o�{���+�")x23���:M�Y~���&�}�J�(R�y�;�5��E��1�(�����g�:�!��/�ý)-�ҵɊ��,|�_�I�9��"��T-�Q�<�c�_�� �Tҽ�~>���]��i�q�6�.E���,uu�y�,oP�Z6?[�%�.�FT�b��@�Val�Q�]�����i���PV���?RȺ�#��l������vb�@u$�c��E��h&��jPi�3D) E�(?�Pѳ���1��̐�=������,��@h�Vln�Τ �D4�Fv����K|��{���Ӱ8�+�<Y�b��H��!���!.��&�2�����Yv�e��(�'�l^�a���W����/�m^�tk��Td�i�ְ��}ǘ��鯶K�,m�l�:�s�P�"��m7ax�A��'���ۈB�� l�r�m���W�m^�lk�0ζJ��f�N��S=' +@�n#�M�l^��5Ȇ��WY����m^�a���v�����c�q�4��7���IfN�����S �8�e�]�q^7�%D:4ru{��ڟg�Ҥ~�e��^c �b�ha���!mn]#k\#�{N@�/)���&�Lr�Vz�l�I��Z&�H��cQ����o������b�l�CU%�!��2E�k�O��6�z��\g\`Kp7,��������p�[�V+ f�6mVC����AyC&]Kߏ���P�e��l1m�/�G(�$N>=V�F�ʺ��t4�65:�׳rg���<�������>�w�F�y�U�[�fTZ�uiU�&,��]�Uz���M3���~�5%P3n�|�R�(p�`��|���$���x� # @�ݷ(v˕|�=�x�L��Ht���0.؈k��|k�$5x,02OH� �����ASH���AВ���+�;����q�˟�� �V�O���D��r��g ��=2��`���6�Xl�_V�T����1yLtnȮ`�#�5��n�>a���*��nw���z�% ��sf �9'0G +�Z&�b#�� ��* ޫ�|�h��2�f��U'�?�p� �=�f�0H�N����]��U,���6O7k���D�Ec����9L�vІnt���0L�v�h�l�:�s����̶�1�ߪ:�����0(&"�5�ʼ�N�m:A)��OC�%��������q��^�uNZ�E���ȑ�k�(y��P��æ��IN����+=f-� E����a��/�mI?�f��Vރ��v���t���=u�J�����w�� �V�B,yL��2�|ֵ'! �N��ijWu�K��~6��^�+�p�~���:�g�/X��� +endstream +endobj +8850 0 obj +<< +/Type /Page +/Contents 8851 0 R +/Resources 8849 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8837 0 R +/Annots [ 8840 0 R 8841 0 R 8842 0 R ] +>> +endobj +8840 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 759.017 171.594 766.501] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8841 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 747.062 171.594 754.545] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8842 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.345 735.106 171.594 742.59] +/A << /S /GoTo /D (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) >> +>> +endobj +8852 0 obj +<< +/D [8850 0 R /XYZ 69.866 801.979 null] +>> +endobj +8853 0 obj +<< +/D [8850 0 R /XYZ 70.866 674.479 null] +>> +endobj +8724 0 obj +<< +/D [8850 0 R /XYZ 70.866 495.621 null] +>> +endobj +2654 0 obj +<< +/D [8850 0 R /XYZ 70.866 468.425 null] +>> +endobj +8854 0 obj +<< +/D [8850 0 R /XYZ 70.866 337.222 null] +>> +endobj +4314 0 obj +<< +/D [8850 0 R /XYZ 70.866 155.808 null] +>> +endobj +2658 0 obj +<< +/D [8850 0 R /XYZ 70.866 138.92 null] +>> +endobj +8849 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F92 4494 0 R /F29 2678 0 R /F51 3827 0 R /F61 3918 0 R /F13 3832 0 R /F10 3833 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8863 0 obj +<< +/Length 788 +/Filter /FlateDecode +>> +stream +x��V]o�0}ϯ��%y��o�B��N�^`T<�M(K�6Z��&�_ϵ��m���mⅧX�����{0:�HѴ�"����`0�%�(��h�4��RH�E�1:�Q���q��B�B�{��m3���l��E�V��p���(�P�$�ަL�0��EpvA��d4 ��#HH���0�����}�R"0�څ�(&-��y��7c����C^ �4���� �� (�q�ij�D����qo{Ŕp8|)60�Њ�����?`3������fe�^x�`����Ŝ��znx����B�ҳ�>hFcA���!�k�U�5���׃�(�Z���X +LH҈gSdN-��K�����-R�u�Q̄o�_xΘ�[��ℋ�:b2\��f��n=mxR}�����e�MĴω$m2ӽ�-P]�3�e3�#��z�3]�涬-b9�:���+��( ӺT���z17J����0m���`�i�8�-�u�j��SW��G!͖�զ��t�v��%J���6�$�ݯ�ه�.�$�y�$��ҪE�mf� ��5P�NE\iM}��ᦚ�V���+'t_��D����U +%�yZ�$-y����P;:麻=nu��ʭ}�<�ėv=�<��8�0l(��0p�p��1�t����z�(�����N�đҮm��;$�"��걉]����g� �$���g��ܥ}�C�� �]���Tk���oߛT�'�c^��Ya���.��%\%A5E:��]�UK�ˈ��}+���L!C[�A����{ +endstream +endobj +8862 0 obj +<< +/Type /Page +/Contents 8863 0 R +/Resources 8861 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 8837 0 R +/Annots [ 8855 0 R 8856 0 R 8857 0 R 8858 0 R 8859 0 R 8860 0 R ] +>> +endobj +8855 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 632.339 161.604 641.491] +/A << /S /GoTo /D (vector__test_8c_ab0aed13072bc11b97766634c625d6f21) >> +>> +endobj +8856 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [214.405 519.64 247.618 528.124] +/A << /S /GoTo /D (vector_8h) >> +>> +endobj +8857 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 469.484 297.675 496.024] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8858 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.981 318.872 161.604 328.024] +/A << /S /GoTo /D (vector__test_8h_ab0aed13072bc11b97766634c625d6f21) >> +>> +endobj +8859 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [209.411 206.173 235.594 214.352] +/A << /S /GoTo /D (vector_8h) >> +>> +endobj +8860 0 obj +<< +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [152.22 156.017 297.675 182.557] +/Subtype/Link/A<</Type/Action/S/URI/URI(mailto:zkasmi@inf.fu-berlin.de)>> +>> +endobj +8864 0 obj +<< +/D [8862 0 R /XYZ 69.866 801.979 null] +>> +endobj +8865 0 obj +<< +/D [8862 0 R /XYZ 70.866 673.179 null] +>> +endobj +8866 0 obj +<< +/D [8862 0 R /XYZ 95.773 646.367 null] +>> +endobj +2662 0 obj +<< +/D [8862 0 R /XYZ 70.866 602.528 null] +>> +endobj +3896 0 obj +<< +/D [8862 0 R /XYZ 70.866 460.518 null] +>> +endobj +2666 0 obj +<< +/D [8862 0 R /XYZ 70.866 454.068 null] +>> +endobj +8867 0 obj +<< +/D [8862 0 R /XYZ 70.866 359.712 null] +>> +endobj +3898 0 obj +<< +/D [8862 0 R /XYZ 95.773 332.899 null] +>> +endobj +2670 0 obj +<< +/D [8862 0 R /XYZ 70.866 289.061 null] +>> +endobj +8861 0 obj +<< +/ExtGState<</TRP1<</ca 1/CA 1>>>> +/Font << /F37 2725 0 R /F55 3831 0 R /F11 3889 0 R /F29 2678 0 R /F61 3918 0 R /F51 3827 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +8868 0 obj +[833.3] +endobj +8869 0 obj +[880.8] +endobj +8870 0 obj +[680.6 680.6] +endobj +8871 0 obj +[399.7 513.9 799.4 285.5 342.6 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 285.5 799.4] +endobj +8872 0 obj +[388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8] +endobj +8873 0 obj +[446.4 446.4 569.5 877 323.4 384.9 323.4 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5] +endobj +8874 0 obj +[481.5 481.5 611.1 935.2 351.8 416.7 351.8 611.1 611.1 611.1 611.1 611.1] +endobj +8875 0 obj +[531.3] +endobj +8877 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +endobj +8878 0 obj +[619.2 506.9 450.6 588.2 529.4 587.7 452.4 556.3 611.7 640.8 670.5 639.4 477.1 609.5 852.5 529.4 374.4 671.1 1027.8 1027.8 1027.8 1027.8 285.5 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 799.4 513.9 799.4 513.9 543.7 770.7 777.7 733.6 847.5 756.3 656.2 804.8 850.1 449.3 566.3 870.4 699.4 992.9 821.6 782.1 656.2 810.6 777.6 627.8 599.6 699.1 599.4 970.5 849 596.5 699.2 399.7 399.7 399.7 1027.8 1027.8 424.4 544.5 440.4 444.9 532.5 477.8 498.8 490.1 592.2 351.7 420.1 535.1 306.7 905.5 620 497.5 515.9 459.2 463.7 478.8 371.1 591.4 499.2 736.6 582.6 506.2 478 334.5 391.6 653.3 513.9] +endobj +8879 0 obj +[731.1 838.1 729.6 1150.9 1001.4 726.4 837.7 509.3 509.3 509.3 1222.2 1222.2 518.5 674.9 547.7 559.1 642.5 589 600.7 607.7 725.7 445.6 511.6 660.9 401.6 1093.7 769.7] +endobj +8880 0 obj +[471.1 471.1] +endobj +8881 0 obj +[799.4] +endobj +8882 0 obj +[458.3 458.3 416.7 416.7 472.2 472.2 472.2 472.2 583.3 583.3 472.2 472.2 333.3 555.6 577.8 577.8 597.2 597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7] +endobj +8883 0 obj +[500 500 167 333 556 222 333 333 0 333 584 0 611 500 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 191 278 278 355 556 556 889 667 222 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 0 0 0 222 556 333 1000 556 556 333 1000 667 333 1000 0 0 0 0 0 0 333 333 350 556] +endobj +8884 0 obj +[565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.6 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3 465.1 322.5 384 636.5 500] +endobj +8885 0 obj +[777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3] +endobj +8886 0 obj +[694.6 572.8 519.8 668 592.7 662 526.8 632.9 686.9 713.8 756 719.7 539.7 689.9 950 592.7 439.2 751.4 1138.9 1138.9 1138.9 1138.9 339.3 339.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 339.3 339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6 506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 530.4 539.2 431.6 675.4 571.4 826.4 647.8] +endobj +8887 0 obj +[1138.9 1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9 1138.9 1138.9 892.9 329.4 1138.9 769.8 769.8 1015.9 1015.9 0 0 646.8 646.8 769.8 585.3 831.4 831.4 892.9 892.9 708.3 917.6 753.4 620.2 889.5 616.1 818.4 688.5 978.7 646.5 782.2 871.7 791.7 1342.7 935.6 905.8 809.2 935.9 981 702.2 647.8 717.8 719.9 1135.1 818.9 764.4 823.1 769.8 769.8 769.8 769.8 769.8 708.3 708.3 523.8 523.8 523.8 523.8 585.3 585.3 462.3 462.3 339.3 585.3 585.3 708.3 585.3] +endobj +8888 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +endobj +8889 0 obj +[456 456 456 456 456 456 456 456 456 456 273 273 479 479 479 501 800 592 592 592 592 547 501 638 592 228 456 592 501 683 592 638 547 638 592 547 501 592 547 774 547 547 501 273 228 273 479 456 228 456 501 456 501 456 273 501 501 228 228 456 228 729 501 501 501 501 319 456 273 501 456 638 456] +endobj +8890 0 obj +[611 611 167 333 611 278 333 333 0 333 584 0 611 500 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 238 278 333 474 556 556 889 722 278 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611 975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778 667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556 278 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 500] +endobj +8891 0 obj +[500 500 167 333 556 222 333 333 0 333 584 0 611 500 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 191 278 278 355 556 556 889 667 222 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 0 0 0 222 556 333 1000 556 556 333 1000 667 333 1000 0 0 0 0 0 0 333 333 350 556 1000 333 1000 500 333 944 0 0 667 0 333 556 556 556 556 260 556 333 737 370 556 584 333 737 333 400 584 333 333 333 556 537 278 333 333 365 556 834 834 834 611 667 667 667 667 667 667 1000 722 667 667 667 667 278 278 278 278 722 722 778 778 778 778 778 584 778 722 722 722 722 667 667 611 556 556 556 556 556] +endobj +8892 0 obj +<< +/Length1 1676 +/Length2 6852 +/Length3 0 +/Length 7874 +/Filter /FlateDecode +>> +stream +xڍtTn�>]ҍ�a0��C�;d����%��HI��-�-��J���� �џ����|��9����x�{���0j����!Jp���k(���||@>>~<}(�����p��a���G@��[�y��T=� �HX$"��������(�=��� @�����]}P{�m�?��m8� 11�_��Yj�4�H��mE�3@n� }���]��t������]܁p��7��t��B�!O�-�g��M��wk@<����@n��# �[�3�s� ��B����=u��+����܀ߗ�A���3�+lcwq�|�0{���RR"����0���#��~�C��ַ���J�:��m���s�A@]��@w���y���fE��<��C�����E@ln�݇��p�`p/�ߟ';(���g���0��DE�ϭ �o�= ��@��oޟ�}\!�@�O�m~�pW��m�������� ����>�@�[� ` ������~k���q��?� 0㻕�����?�[���a�>��1������>��������?~A���0�$($��;�6���?�U`vp��|o/�OΞ�E��{C8��Υ ��.��������ln�@�g�� +����g��U��e�����g����`���o�[�z o�@~����A��] �-��忨 +|��0{�.����jC�6(����]s�� �pw�������v�`6N�/���,A����wIE� ���� ���v̷'!��v#m!�������m{�;8��L��������CZC�� |���Ƅ����r[�/�����!���/�������AC���?y�'�?��2t�}a�� +�o����k6�[�kUng������xCl��g�6a�uam�5���x6G�g�4J���G�{|'�N�� +YF�ʦ�/�+���|`���܀��L������S݉�V��q�7cE{���t��<�2[�?�� ��ЛQ;UY��<D ��ν������>�����٪V�sU6�gk�b�%�:{�� �C��Iz�M4ur��4w�A�)^�~�@��� +�Ŵ�b�>�{�}Sj:��w�~r۩�T�~/�� +���\o���N���NYlB�Z�����3`�ܠ\ʾ�/y���!�HY"��W�� +y [5lZ�Vs}?f� +�A@���H�r�r>>W��Yqx�H�@6�8��f����*��N���e;�Z��*� +��/��)�<Z�S�3���"���^}�/�#��Ygb*�ɹ*�d��W�����6����% +Y,�$2E+��7�$���)U+�6��� +���]�y&+i���51eV|�L����X�����5�]�����;��u'���Q(��E-Q�16��:�[�|���� +Y�4��e�@������I �#�W����3t��R6����>M���KV*�$�)���}�X�f3�5��vu?e�k����-�`��S���hC�ͦ(�M��k$9Z��h�"OL�63�Ϸ���vY<m��fڸ�Eݏ�`<����;ѱ�6��(+Eh��5s<��{�0����~Z�}&~ýy o��㈨@&1����U�P_��[�Dbg�Y�<�z�p\��*pҵ���r��Y{���{V��0�=��uG|t�4��� �xSSC�n�ⳘJ��f ���c?N ���x�6uG$�~�݉�H&dz#��_Z�vOZ�qDJ�ށ�c_��W�Sʰ�%"C�u��N� �5*.�?WG�����Hr~��Z[�T7��e�uB��W۽�J��K�(�z��y�0�Ƨw�~�6Qv>�q�|U�={�Z��_cLIǞi2�V����-x ^��kW��&|��l��m�V�c�o�kbҠ��|���mzj&�4�b�& -轈�G�~� G�e�� +��B���2`������K����{þ�;~yw��3�U�&�l����0��+�+�.�6P]x�*������-�Z´ȋ�*�w�-���zm�=�H�;��lO�M9'�(a8s{ ���p%��}$�z����;Ϝ�lӳ��A��j���F�&D���~���Aڶ��4�t�� �qyNE�B�?�N����\S�Ru��Y�c뒉���Xh�#<�P[L|�����|�2xQ�S�u(z������FQ>���f;��ijՆ�%@D�=ΓQ� +��U��لD��9�n}b��5���\f��r�8QhS:q�%D���B��F�hzg���)/'����o\��Y���^is�k̗���Z��_�M��C$ȼY�}����=��_�V$ �k��5��R����h�;ǝ��po +5���Wn=�:?�Ȝũ�pK���|>Cs�=�*���!_�Pc��awߥ��R��i}�d�'e��o�!V1��A3F�qSB�̇����*Xwy�B����^�9��a���V�.x��.�=���6 +z���4ϝ�E4)ŏ +�ȋ���z���dž�UQ���)�����Y�Rh��}�єPh�����@f����`3�ᐜU�M`���,$�T���9��* +s�o��� +�~>UP����ӹ?���^�tX'���ͧ�@�#&��N��� +%| +��K�[U�ԂIv{�]�,����ݚ�����'��vT��$����!�/�X�ޱ}��6/�ʬ�<��$g��Ggܲ_�G�s&��`q�m&`����g� y��Q��C6Ix&B�/(�-KK�E��e��Ė��^[�V�M�W�Y��z����t����=U�3��8\ �'���h�`����I�-����l�]��j�sϹ���k�Վw4��,B�ɏ�>��'F���B~Q�o�3��I�ۙ5��(���c����]�՚�������T��q{V/���.���Y��&&�8��;?�N91>` _���p��r��GmH�c�ı��Vxsԇ +W�A~���f�L��ʰ����s�)/[����h����RM0 +��PQ��AQ��������$����z�5�"�x��9�:iDX,�4��b���-*Կڊ~hL��2��Ei��kn���f��� ���:��g�z?I��OPiL����y�uv���7T��?�ό�Å����('�x �z@ή��Ϋ�������� +�(s|9��&�Q�a�ߣIV��;�$�-��=��nⳁ��u��s:��xw��_7#Ɲ��S����`��x\s�S/�0N���oe�`��^���fgh��m��gT�8�od˒ H��h�1*�7�`��?W�G}jd�cF��' *��+����Xt�k��ѕ����<̟K�q6!PJ}�tH�}��nt�x�2��������(O��LQ�@f}�p��^����h�.n����Ҭ�2{P=T�������4�Ӝd�q"�/��·]C������Z�P���s}ʖ�z�F\Ť���;����F]��l��D��۠R�l���K�����[��' ��-`J�5Zw�n�/�%�ӥ��1�����0�0xԽ��Կ��>nOWЇ�:��,�?�ls�ͰO��ȅr��ح�:�*���7���1l��{f�r?u���Ҏ��P&2MYK��$���VW3�^��Q��d7��]���k��̪�|(j �g�Aڰ���g3�/��7��h�Pl;".��R�,>A��fh�DhA��?j�m�5m?4wIW������]��~��j���x+�߯`!�r�7xd�����g�f�I�5TÕ,"�!��,��˜�����B�����������������ף��ј�]�N����yE�[����D��3+~�s `4�Yx��?);�G]����z��٪]h蠍G�Z��^+ߑk�� ��ʀt�1��)q�/���G�|l��})� �9�!����?��N��!m�M1H� $w�y�BK��QB�p +PyV�b#h/9��J��Qn���tϼM���<\�!$�*��F�0/��֒�߫�'m���(��>�ǧf���ų�zTKYj +��զG5�=�J��� c�#���i�'4Ec'˵��>h�Ru��Gt1�M���cw�3��{5��q)?�V��H����cz(rW��?�0 �4�o�O��ٚ]�DtD���r�` ����G��Rg�R��.��Z���`�,*P/�`�N*�u�^�&_8�w�Sgro?���*��jQ$���(3����&^�ȝ�.�F"Z���qK]O:DÎ4f������ļ/����2[[vgt�f9�b�<G-����w���4tEY^?�^`�a��j�,�DM���l!�)���|�fu�����Yd���PSˍ�I"���8��d���J��S�'4M�/؋��?�w�|�D?^gP�����y�>�d�q%�S8�4��rE5>��Hn.�t�ɯ���uW��1j=α�k¿�'U��o�����Q�V��/��������(�2���ҍ[�' ��}�\m�x*͙�� �;�ǽ��&d��u5� �k�1����xǏ��F7Z;�l�ˮ2��V&�Rn�����m¶���:L��:�P�B�6�"opB�O�|��o>/<��(2���2�gk��V��2-�ڸ��6�O.z��!�+�����c�H�}D�ɳ2����c����a��U=�I�/�2x� $��:>0x0Z��U�V��Ě�!�s�1�9� )�h��!YU�n +�}� +�ٸ�d��mQ>�D�������}|�*]�'"�����^������Y_bB�a^ĕAl �tɡ G��VS���m�q�VR���H����I�;�����C�|��q��x��*�9]N�(:�+�=�Xc�)�#��/�k�0����=�����Sl�V,q���6E�'nDB��i�毾����L3R&�(�\��CgW��HH`��3���!z�vzGl�)�*z+���鉼�)�f\���wZ�+e�܌MI?����s~p0S�aA��֊8�`�*�y�*�4.���C"�<h���i�CQ�8��Ķ���l 몢�*R�@7�(8�~��&d���]��.6�b�wVyt����)v��^4��#/n(��Oa ��t��?U�q�[�(fs/���R�Rnp��.�"E��q�:� !�f�>��X�/l1��V���b�W(�s��(9('���R��ug����KOwl�^iu'x]Q�VU��5t@)�I�w���_���mh�wQ/l\`��#��LY5,j8�P��^�ny�3:�OhT���H���ާ���o#��cF��*�N)3@��l�2�1�����.�0�)4"��*��}���D��6��6�Z��oߋ<S -rJ;�Xy�|�#y��f*��^[��4Ҡn�Q+�x#Z��D6�}�������%��S��p +NB�;�vB�F�� V�������=OeE[Gt�����t��� (�� ��nI��2h3c�c�mUg�72���-�okfe����h�q~>t@w�H��Xe���9�4�#Ti�Iw�����M��+�U��tk���Z�C��-�&��8rA��fߤD/��e>���3��Na�E��K�D��Z����GO\��7w�je��*�a���E� 0#k�>R���-Z�L���GP��T�~ɸ���Y//9R����H��v�Q=��MR&`�C'u��"f�hL��B�*ī�oiæ�~�N6�&y!ddA��&�U,�^�/��ӳ� |�Q��0涪OD{�G�!Vd�����l+��Z^s�ϠQ��l; +J����i�^j�n�z �J$H��[���&�<����/g���~�4�_�ރ���.Ȍa���Jܘ\�,�u���{psa�(����a�� q���ʱ��̅kbǫ��1�g}=��t�G< �/����J�1���o�AOc�� IGwOq)�D����/�D\�O�� ����LB�ˏ3���-֭�ĝ�eG��$�q!#�C(��`��D������Csuy�O*��N��@��h��}BMX����?�:�'u�6�M��OK�6$9w�tZ�1Q����|y��e&sI��j�h�{���o���#br���3��;(�67<���64N������ۂD�n�!:(,9o__�oX͍��J�t���b�$Cy��\�d�!i��:�ViH�8O���p8����\v�8�[��A$\�$��ʳY�Np^���>7�$"ئ~��9m��)����(��!��$���O���r~9O�O�ސ�����^Ǭ-7�p�k!Y�UZ{q{�=&PN ���W_�S�>��ܰB�7��ݫ��l +�ߥp>�����L�,v��:EQ�ފ����X����4^���e#��+��������/��C�5��2N�|/��h�~��1a�{gʊ.u +���>{��~��|h-�}��� �nO`�o�*��W��:D?�!�A&gx&���L����'��`�7�sF��0���i�߲*��Zz�*U��60�z���4�����ի���:�?�l�c�v-�c�-Ũvt�)���G�^��B��U�5"�G#����q��Ǵ�%�3� �F{K���1�<��@e}-Ƨ /h[����A�Q{�nL�}�]��J,���1|b/.��Vq^�ϵ�Z�sk�h#v*���������Qq����Զ�%�/ɺw�x����5�Y����3�:Ɣ� �x�W8y"��E|Dܓ̢Q�ͬ�L��i��z1��}u�R&>P�W�� �N����<En�_�0xA7�/�&���hs2�x��^�z���$i� <���`t{�`6�Y��;7:����Ac�Hv8���[������G����O��.�<���\�w�N%���F�������W�^*HL���4_`��Ć��>�[��ADm,&���ʒ���'��6нu�Kl�J���S���AW���v��ʜ%v��}�B?8���m�g +]�����y1j:��!�P !���v�YY �א����>v��H�ށl +E�itH�Vpͧ�����z:��9�WTC�2V1��u�Fisn��MU�*��QU/�&IŅׅ�K���F�pw@��,�i�ڸ[Sż_��%e"����7ܺZwD�DX����廛�E_�7gג�Y�/�V���b�A IZm���e�&�,MJ �5^��KTR��I�;j���+jݝ��#�ѵ�K�����bm���6��샾2�]>a]���X�M/!�����i��;#^,o6^��p!��L�\G�VI�sk�%�M�3yC���Z~���w/'�����!�mє���n+QsC`2��;-��E6��֙�z�x���d���Ց���9횊��k�L筃�@���g=Xbu� b��ß�c3E�^W?���q�qi�/��%��[&b<c��d4H��Yh���F��TD�ةD�5���s��v*z��<�c"ᱫ+4���;�Җ(l�op�(��Jyk6�P�j�LF1�fV��P[��Y���S�o���!����lI��es97��t,��3������S͘�GZ��CӔʀ�w�}2}����T���0��{U�� FF���5�T�i�F�"��&�O�*�ngH��;F!�w�z�����_3ǐw�4{�2EǝsC�FQ�wx�)�N;,�6���M����=3ͬ#ύ����b�|���H2k��N�q:��)�Ͳ�:.���S��h�������9c3�r�o��r�t!9Sȳ +�:V=-�]K��ټw�&XS����.�Diq�6�S�X�߁�E�KS��BPc更�v����k[kȶd䍷����?|� +endstream +endobj +8893 0 obj +<< +/Type /FontDescriptor +/FontName /LZNXLT+CMEX10 +/Flags 4 +/FontBBox [-24 -2960 1454 772] +/Ascent 40 +/CapHeight 0 +/Descent -600 +/ItalicAngle 0 +/StemV 47 +/XHeight 431 +/CharSet (/bracketleftbig/bracketleftbigg/bracketleftbt/bracketleftex/bracketlefttp/bracketrightbig/bracketrightbigg/bracketrightbt/bracketrightex/bracketrighttp/parenleftbig/parenrightbig) +/FontFile 8892 0 R +>> +endobj +8894 0 obj +<< +/Length1 1399 +/Length2 6039 +/Length3 0 +/Length 6997 +/Filter /FlateDecode +>> +stream +xڍu8�o۶��jQ�H�Y#b��{��E$A��$J��Z�fͪ]{�]�RT�M�R{U�7���������G������<�m`,�E��Ԑ��� P���j.�E�@9'� � +�&�C��H���"(�``.���x�H@�� ,��� P�_D$J�~�tZHMΩ�tǢ��N�6�z�@x�RR����n0F�t�'�nG�`���a�?J��:a0��BB^^^�`7� �x����8�`h�! +�50@��3� 9'�� ��7F:`��(�p�C`4.������ƚ:�}w�Y����l���.�7�W!8�w2A���X8���w���t1�~��E����|�C0�l�#��PS4�q� A��1hA4��B���NYUF���4���T�(w�X�?7�@z!|�.��ï!���B���'LS�/"�O����@�b���� q�U��� +� +�&��uG�pC���0��/���<a�����\X��C0�{�#A���0���w�(�7� +�Ӟ0�����8yA�W���WH__KOU���))!�� 1��HJL ,*%�����Y�����?ɚ$@�O��s�W��*��;x���������ʭ�b@�K��[�S�o�U�����nH����7���?`�����S�'��]$��������V�{��7��㜠�pt��1��jpo����8��˟��/���0$����y�{w�q�� �p��疪��c 1q��cɁ8)������83BaUD 1��n<�E��F��!w��� +s�������㿯�_�?v�x�p8�6pm�k���0�7B>5��Ȅ:W���T*2{ |��R~8xrx�lY���a���o"�Q��oGW�~,Po� +/�]��.6�~�Q�tS�-��K�~��r��hOЊv[����H��`��u�0�K���u,c]]����{��.)��-���O�H$%E���*f��+U)���Ѽ�>P��N`Q[������a����ʼ�A�}��q/e�]�I�n0¹ܮJF�P�i�Ԙ)��r��Y��(���g���s�L�g 9�kӜ����������vo?��8�}�Q�$Qg���"I�0$���!�%�b���l1)�~����ө�O�f�M'#���n�����K�Z�5��u'���a����6�S�ܣhI�&���Q��u���F��ک��֗�z7XĦ]L����qPH�Wp�e����8�����g��DR���C��s��b�T_���w���H�����"w���ir� �w6<�H�����%�J�,[Oc�(�v�g +��j��G��j�$͌q,�6�4���"�J$�^�D-����ux4tSGVD�����N,��x�9�Y��6`V��c2bgQ��G�n�3k�8&�F��W'�)���\*hz�椝.�q��ڀjh�������d�W�?*O1���}�,}�VZ��.��Xg_g�p;��z�ض��f�ޮ��eخh�!j3�f�:�9���f.��`0�f�h8�'e58#t�;d�D%a_�s��(�������tDăx��SA�ո��0�b��}!4��rX����CL�|�F�O�w�9�_��tif��R,85(]3���n��y!T�4-�����?/1S���ٝt�/�HC ++!��_��k|RꢯB#k9dH����m�ޑr ܨs�06�T����xuV4����9=ݤQ?��*v2���V�����OM�SS;�r��O���Q�kլ`��h�d�o2:�Qv��$9_��+�Z0=G� s �m���7���L�G��k��Χ7�_2v�n��<�>Qp�n���[�D҅q�Sճ,��?yf8T{8E*D=�C����Z7�#�P�q��p�Apn���vRmO�:���jl�^���&4L�3��Wy��=��Q��L��cTX���b������,�r+H��|�� U���L5�]�Q�HnY9��W\�ִ��b�/,.�P5��FN�&�Qg��g���9�kyVUF=A>�OVwl�d0Y�)R�'�ʤ�N��t�DΣ�V������݉/��ⷢN<���L��_��nI���,${�Hl�J,'w��<� ��c�*����J�|V)��a��b턢x}T;��^h���q�bu�/���yn>�Kf���,���.Ю ��&�M?Ԭ�lu�����\J���a"i��<�dn�2�B�bp����~���fPB�JY�@`9�S-���}i6k��p^��3�@B�1*B�4���X�E_P$���jt�SA���S6t�h羂Ѕxp���8_��i��5j���Y�����DS �����]1O��tl_�l�C�ao�k�H�w�u���V�o!7\/�w�1g�]��5{��m�N�� +���HWÙ@\��*�.YK?B�LZ�> �=�_F��J��X�w�՝USO� ��}A�7iiDzn?�Y�J/���Z|��ō�J�Q�'�r�E�yƒP�]�6�+t�Ɣ?�I�&U�uX��#-��&o���Y�M߸��3\_Pde���"�?Gt��,� +0^���7Dn�F\�ؖ���4|���s�9�6���gO-��jA��_F��yq prBcQ �k9�)�bVL~{D�^D@�!�OC�>���I�yG!{��cS/�'b{(g-z���굡���k��[?�]%, Q��V�z��ʹ���5l��ْ����Ww}+��� e�X�%�jw����� �{ ��g���b�e�<����5�j)��\�LFm��&ab���� ���r����'�K��D���}���� +��Z�˅�\z�|)����7̂$=�uO+��{tz،�>t,tΩi+�"C|Ng�d��ق��I�I��H�L~�!��iB��x���#��M�<����M\�o֧��x؝���4f�4O��c4Hbc�� Z�)�,��jݺ��ϕ�Fy������w�}��>Yz��S�� +gvJ�����k�"$'%��f���@�e���Ƈ^C9���{�c�."Aai�h�좜;x��-c/�-J9���o��2Я�������@�<�2�z�ؖOo�W��/����$��l���|�Zܚ?a���ź��dqM�t�Do>i��أ =90�V�Keq�����l_�D�=�M_����`9��͔�J>��t����I��wN �92ɜ�}����n7;���HݞA�F��е����3�&���Х>m�)m@p�^p2�iL<�[)��1��LZ�z��`�|�|���*[��.4,?���:~�'F��� )s�VcX�� ����3������ƞ�u*{�����"C����g��WMڧi�ϳ��rٔF][��� +�_5�8�s|X5��mSz +J��;n��&�o������,O�m|����@��p�;⬻����;�����O�E�xTr?���v<��8���Y�\��3�j��J��i4��;AW���d�Y#*S�~tѿ��c}�o'5�D�M'��M0h +f9I��ĭ֨p��ͺ�C�3�NP��.xóF|�@��4�|GY?+Y9ܬ����4+!:�[�j����E���U���k�my����������!�}�Z��Q�2"����)���o�O����hU"s;���Y+e'�ӱ}�b�Y���t�e�&D}ߘ�O�z��RdBQ�6u����o������՜~���?�,}x���ڟU�K��a��^h��imoA(о�s�,�ŭ��[Fdlg�Wc<���h9^5Iޓ�y$�CAO�'wp>]��M��Þ쪷���6��?�}w�7KyܼKb��}O�37��W��nTfXD�ٝ2�D��u���U��_ +H��2R��_��W�)�o�%��Vg����X���t���:������Z֒hz�(�I��x�o_��w�s��IB-h(������p�� �7I�3c�>��<�q|�Y +ĺi4�����ţ/x%U]P���t�m�9�6�h��pC5���XlzGH��S��w��6�[���$��e��o ���a$(Hr3��\m��"���6v:�a�:�����TYM����t���~�wM2���6��"Um6O#<��y�zX߬n��<�O�BN�$Ck�=/+�ί4pS�w�%pĝ�����<��^\ xx�~|6T�.Lí�|��^6�mV���}j�I5�Ǿ�2�y�H���9�<��H=��G��V��y��Lyߡ���5�����a��D�[*�m�'��8N��ZG���g#t������6^�A��s��Q��w��ۄ��/n���_�d��b�F|g�����]W�(H�v��\.�|�J�S�<c��/t�+�W���� O�����$�G|�F��*�DFv��i�`����Mz�|R����J���'|�U7m�] +�����҆�~a�- +�d�����������w����w�k��1 s}�L��$N��P��UZ�V[�@�� +����2&:*�Hn�J%���V�Y����K��MO�@NQ�XE����[�+b��`�ڔe��0F~�(�����������p�7&&VBw�P���M4��Dxخ~��ӕ���ͤk�Kn���_ +�����ڥo�}9eJr��<O������ѽ��#C@ �!�h�s�O7;12ͩ�%��~�� +ҥs��3�D^�����t�7���<F�ֶ ��l}�ȥiF@�f5��Ġ��Y�p:�yF�9��?5���!:�u����Ƅ�����?�~I�a�D;I���?Q���U}�t=|���p*�}�C| xt�)�v�0���=��"�'�Z���^�<OJ���{^�UfL�Ui��禮�|GP�b�������K��=G�ה=\��;�v�KՏbzv���$9zm� +EF���[y�Ml��i�3`�,�!%��"!1��槵0�6��cx�!�N���]�3��ta��H����vkT�E�?>�(��fme����ɩ���\+�����X�L�7�X��[��{�&�h��h��n4�g����u��0��� �M�a���e�'��t�zY�]s� I�4��>��n�ݹI.�:)��w~l%��,��+��^C%�q��ps�:]:qԒ������q(�����X�P�r��\n�f{%� y�5'�Ҫ����������"}�́`7{�����hz*�Ot�K����[}W5�ҎѦ�u���O-H�'��=�%=��o}k.2��~�_Ͳg��ʤO�"MV'4�R7�x���D ���0���"��k���v���M������Q��x$z��=�]ʁ��uRt/'���ϻ��7N��BJH��� X����+Is�u�9K����{���FX�C}�y��$98��23��dv��TAn����d���s�]P��h�.�h��ߙ�a�����E�iߖ������;�X����*��}���r'���[z�Υ�:�ₔ�]���7�� +�3�x��k��G�C��^�)��)�px^����"#7��<#�ċ P1�����`�{���C���~��B�%�`L?Fk�-2�����mv��}S�^�����n�ا�B��H�ؗL�m~PqaW]�ZO�8H��Zˏ.���S�F�}fe�g�C��<�#Ա�UȄ�@��1$������LY�8:��J�+�!%U&���`��yY��|��xa/`�2��(p����ϝ�cI~�.����p�!�,��VS�ixZUA:j�0�:�y�gw�%�+@0Nl,�ui�뼈3J#����Me��g�����î`�pQ�P�7��d��͟��� +1�/�+}k&�{��)�.hT�����Fh��+�9St��^{��6](t�W��ർ��6��ݱk�a������y��;���T�ߟ�@Fiik�����@�y�ETc����b-��H%���Է��{��ku9�*��KMwa�O!��mU�܁�I�;��R�{��:�-=�hѺ���F��|�ɂ�cml� +�f����H�J��x��E��7���� ?�̄��A���R�A��E9Z���%����9���1�P�o�ճD>��S�q�P2�S|rU�x�{I�J:��Pe�y���G��U�d �Bl�V�bP�S-���@��#[;z�-����q��Wv^Oۈ���9^H��5�>Ql���`�z3��+�' c�7Zֶ���5��-I��<�|#�c[��M��h8�G�F^��a�E��s��ӴN�������b��7��b�Y3�l��ש�x{軪���;}Ԓ���d4^��z�5v�O�V�b�6g���ZbԶ���ñ%��r�99�q���z㘹�Z�dJ���;bQ��~��\�� ������6%9*���u��W�R�-��bs=��4R�jlMgFO����X?�FO�,;�;�g�#������x��O�Io�7���}%|���Y!խ3�u�ۣ[.:s�<����g��d�E�w��@��G(���?����Y#�&2�C��]"�2�� V> `] +>2'�0T�*m���r~͛z-�|��i���Y��Z�d{'z�M���X�ST_U�]�P̩���8h�=�����ߢys�R�+VI�l5G�џV�D�;�qe�v��t�8|gy�����a��s����DWx���j{�$��v���Τ���o��]jq��d}vT��w����{b0�$�n�*\���h��n,7K"�V$��EB١!�d�1~A^�q���g�b����VVt6㭒�n� +wv&o����9��Qz/%�����彯zX*h� ���G�w[���VE����W��)0 A��8T�u3��7�P� *#%ZU��19+�MX\;�I���7�X~[�'�h��T���A�y��6���v�'�~�����|��%�z6)MA��_�� +endstream +endobj +8895 0 obj +<< +/Type /FontDescriptor +/FontName /OOJNEE+CMEX9 +/Flags 4 +/FontBBox [-25 -2958 1495 772] +/Ascent 42 +/CapHeight 0 +/Descent -600 +/ItalicAngle 0 +/StemV 74 +/XHeight 431 +/CharSet (/parenleftbig/parenrightbig) +/FontFile 8894 0 R +>> +endobj +8896 0 obj +<< +/Length1 1849 +/Length2 11119 +/Length3 0 +/Length 12293 +/Filter /FlateDecode +>> +stream +xڍ�T��-�$w�F��wwn 4�@7.A���B��A� ��䑙�3s�����굺�]��N�9�����RM�E�l�;BY8X��������vv.VvvNdZZ-��;2��; +��!�4�>̠ۤ�De�#@��������`gp�����"��2sY�Y +`G �V������>��G�����>�?��@���#@�jtx^���� �������^� +u`cswwg5s���]�E�� � @��-�[��9��j���e����[A��\��g�=��yqu����Wh�+T������$0���+���������G���������h ���2J�P(3����7��~�7s3ٛ�?�(� #�0{��� . '(����#��4��,�h) vp�:B!ȿ���-��ݓ��õs�;z�Y�-�~�a��Ħ�rv�K��y6!�c�B<��|\�<��3��aa��{-O'�N����|���N���6�� +���7�� ���}����o����Y@�@k�#�?ٟ�@�?�����<�����������d��0K����?�?��MVVGAM�鯖�vJH�=��,\��Nv�;7?���������_��V`��d��}ި���������'S?K��G��<��_��z�#��O濳�_���ɸ���������9��=�b<K��<���ap�_�.���UZ�\��+5{qG�gI�pp��s�iAd@@K5���O��i��=p� G��}�<G�����y�,잯ȳ6�t�A�G��A������:�-�������`��b��|�ψ���<��@�?� `cuC�C��=���.ȿ���&����������l +�7|�6�?���o����������,�F<�������:�� � �/����_�,�!������|r�P����Cy�n�{��?���7�|N�����Y�l����Հ����U�g�����y5��������������;Y��}���?���f��������}f��q����\�ǿ�sɞ�������˳~���g���qS�@����{���m7��$�,��B/�Sn�8YF����&�q���2s=2ƶ*�7YK���u���W,2;��g��`�⽯I�f0�aru�$��]za��"0;�D-�{5i1|^�v��w��-��SnSi�.�P�'}�s��m1��� |����i���F�(�~��^���?8���C�5"@�-p�&�%-8@*���Jg1�>��m? ��\Gl߲�l�!�V��f�l߈�>����4�*�����iW"�%'+�r!+���_$��ӝ +��Z�X#�S V����_�wUL�7�{OϬ'�X�q��@�%��*��uuֆ4~Þ�UP^�}��}�.��M��H�����zX\\hn��Jmt����W�o��������%�杫"��#�V�}� +r�9ؾ�[��DJz�;�^�Ty�)�;�}+��xWf��#����O{��Y[è*�{>\���}��)Q�)������p!��D��{=�åT���^��� �LtX��������1?���&��+p;��?hp5δ0�x�3��n`��Z �n�)'l��a����,�G�����D���\�dG0LL��� �������eMB|�!�Na�nB�d�6�;� �)X��z�x�KEqH�ј�bv�֗���2�O(�=��<kq�T�\1)'r)�{y�����6������V�2Ⱥ��ü�%C���Ǵ�&����W��A�t� '�z0|�7��8)6D�M�yt/��b;=�L�Y��~͘ ���s{���8j��t��DŪ��|�buA�Mo���S�%B4��!\c11v9�Ƒ�qi'^C-�f(C��&�{8/����q3��cM�b�6�r:�3�~e����{�Z����PiI_}�M��cc������HK��iϿ�T{���)G�s�`�H��/hɝ��U�1�#��~�Km�ø8#��5��J/� +��@P�>���+b��gλ�%�2��I, +�>}+�aϪ�Q��V�>z�Ʈ��j����3��:KOP�&�����;����15��8ĸ�9a��Y2���Z_�۬B�s*�Ô&��>tv"�e�Y,Z��>jX ��ߨ���1�>�pO�\@%O�#��!��~%���u،��>'�5���J���}�bu�ۉ�5��P��BScR/ѓ�[(R�i��jܶԊIۉ�����-2ŖS^�I����>J[��@`��m��-����]��D�~a���g�|;n�"�� �� +�$� ��m'��E�q� +?NU�h��e��|!r��^<.\�H���m�γ��� �&U{�Ԭȿ�?�G�S�K�0��d@��7�͓��<Q5</���2�M4���?�g��~���l����I��l�%����B��1�W9ŹËo��q����z��x|YK�TgS��c����~������~d�S�?�9���0[1o��P���D܇�G�#��%�=�5��Q�}/<ܰ����oȰФS���R�7x�I�k�C���wm�{2�P6T���+&�oS/���l��M�'B�Kkj�苶���Ѵ)�K:� �tK¼����G ���~�-%�r� ?Lik5��~�5a�����n�$������ul�[\%]�%귉�ۆ�H5,�Jou�K������]�m�E���j�k)�z;�>�7����j'W_���C���H'=�{��}}O��`����`.�Q# +@�Q���WK�O�J�D��im��V�7p����{c2^ 4E���?����g�x=�WrȐ<�k�}k����i�������x�=�7�V%{��j~I�7�l`p$m��� Th$"�E`� �3�1��Z�J���N���g�i`E$����5�@�v��3��Q��e�!�>e$y־B7������2u���wZ��J�l"�<v������y��|�<��Ig��M��Dc� T$+�4���A��h�"��X}c�6Q7O�gm�u�3���w"h�&}β(�d�Û�w��M�![�')��4�&u���A��ἃs��`@�g5� ��9���n����.����y��&�KQ�� D����eO{��u%ؖ1�� +�c��G;H�Deb���>j��� �W��j�2�4�5�Zn�i��L�� +�Ы��mb������K�L��s�� ��D�� O]E/�������F�[ ��`�J�9��N���-�����i.���G'G� mTe���+�m��,НԔ��ZN�������0��B��P�������Ӷ�a�[a�����L2�SϧL����P�Bm���U��@p/f����H�xJx㻇^�"��������>�-N)���aǜ�����bT����HZ�\[T����b5<����'�K������/I�1.�/1�V&h +%JQ����?n4K�_f�f��eI�&F9\yٍ ��q�>i���5�������'�,Xvm�[���� +W/~}V$�t��)�dR �zk�S�u���F��0%e�_���7tRy����/��� �5w���²]E�j#Տa<���i��*��HR��?^�{vutϲ� @��/f����T���F��� +�~]��ӣv-�/���F�����X���M�H'x� +�ξ]�nh0�d TY�P:��t?��]�;t�yۚi웇l����{u<xK�ʆ,�� �<�� �����V���=�t�z'[T��߰G��/Ɵ'���t4B�L:����D�;�4+ƨ��.����r�aX&X*�zY]����Ӱ�z�Q>H� +����6e��k�4.�}Xޅ6$+�c\f�c���*���o>{#1&��}b� A��'T�Iӏ8��Z���Zl���LcvD��P}�J��/�a��oa��a�z�:�������^��q�d��y7]ȃξ|~z�T��/��]�ߞ�~i���nq��.�N�cS�UVӒ�x5�fZt_^9�L��!����P`��)o�ba a�^-~4��VM���9��S����؋G:2�ȋ�1p��p�}�N3�)�� �M�%��ӗ +#�vm-ò�6St;�xA��|��J���u�7�)`C1�x3�d# (��WG�kbƯ�ڂ!,��ě����Z�k?;x6��:�p&���(z8su�|3��U��~��3�;K��=XxK:V��5����xť�P ��LN��3�6��nJ���G�l�{_]���U�Q/�)���cV��C7�Y�$�����.��=�j�tWY��QĒ����9�9AZ ��ـ�6N�sZ�������K��'����K�G,�(є��!q�ɦ-��@�Q?��ge�ZQ���Z\�G���J b���#�1[��PHb���/�M�e���p�h����>���B~YZ�0�Ѷo�}Mʧ��w�]4���$<��qY���k�b��I�~RH������r���!/Ȳ�����%O�b�~�����z��21�os�{��._��G�>����'kݒr��D��VB� ����}B�t�&��˻�K� $ +`������n/k��ߵ�#�t��(L���Fca��:\��5v���,�s�iۺ@���hy�0c���p�(����P���J���R��;3�3�+�X%�x +s��n��r�㫼��pP�B�8#�V\�/Z�|��tΟD��h��/R�z ������,\<[�5�V�?>��4����t���i�S�����K��4�����%�[ʘ=|�f� #�Z3L�b"��ZbI���&�-.n|)Sr{�J�z��^\5��2�ͪ��~�ӨԂ'���p�c��0��.JaW�s�݄dD�})!�:������9��[N.Y^��/�z�����p�>Ω��Yl��|Ӓ�ƒ9�;ո�?]>��&��f�;W�s��HU�d*�$�ב�O8q$]��G�����a���i>Q+�|���R$IO��c:�w1��D�1��d�q�j��_{��[�����4���Z�"^������� �Jz�&]xeoWl.��t>,����9R��~�ї����E� �2~��ȬD'i�v��̬q|il�����na��ݰb�~ӓo z�Kq��{<�x�Y�mJ�[�������,����+���4 +8�����T�Y�(#(��)�{�_��YY�2�΅�K�CEձx��^[~�� �rZ{��43?�v���� +��a�ϳ-Qi�S lj�D��U;��qb�9w> +(Or�/Hp}�&ܴE������� +� +�?�ĕ�-��~�����)M�fG^�j�3&���M�̧���:[ؔ���%��X(�(�� 9(oA��61#�y=����0Z�مw��1�4]��Bji��.7F���R"̔�?t%�R�}~�\�W�����B�B��kؓ?��M�3,;�ĔI�"%�f��{������G�Qd��+�����\5��f3D�w�0�e���Y��$�k����1�˹������������7�^~���%5���J��x�[dBga����%o��Q� 23�1�|aaU��r������r��6Ȇ�יf�����x�$�_2 �3�5ˍ�ܨ]r�AT�[��`��y�-� wIr�5A�v�N|�ΞB��(�,n^�ˎ��V�m9�H���ca���:��,ӗ+�%��ZG|�}tf������6:m��].֤%�Sn���+Y��d~��\ń$��|�@Z���/ͻAf��*���x�<hBl��!��u�[�/QuOdە��Y� ᄁ���T[(a�xQ��+���o�.�D�8�o��B�I�s(["�f9�cO���n8@�����]�Gꔉ����.~ +�F���/�6 +��������F=�o2��@#I�-&�ٱ{�훎��G B:��0�� �12DAg�,%�u�X��<A��eu������ �u��@�+.�y���*�^��ez}^�T&����V�_,d^����mZ���j骚��N�p��z�x�ylc�F��5�Y�+����Q̀/��t�N��@��mLg/���:�g�^�o�8�j������)�� � �iK��[�4(Y�D���)�JG��5mx��"��������n�2����Ɣ�9���ypd�ʎH8/�zO�C +�jr٧~=w�6��U��z �BY�,J�J<y���,Rv�K0��Ӹ�.m��&,�F�H!���D���'�����VyVׯ��j��3��������w��_]s��&�-��U^� C�e4ѐQ.A[����^��s괚_�s��i�����,/h�=T���6PB�lvF���l��{M�a�w�Rwy��4^c�|�1� �/y��4�Q����s�G�rIN���'�,#B{���\��-]���4�ሔR%0X0��p�p��ӕ=���L���DI�,��Bg؏9��<�Z��P*���IY_��eA�̅.�댔�C؏og���D��,���ɘ�GI�J"�I�}�����}�~DLx4n��$���y�e�Gπ۽�3���x���j�O��Ln}l�"�xj��Ԡԯ�B6�[�Xae�5�t��K�U��_词�߮�S~6�Pe�=�Lt�ܜ1传1~��Z��h|���$��j�7"�h���X�9|�-X|e4H��tn�Z�P�S�<;�<�����MD%�\��? x�}���s� $9�,�u��x�i�����Q����a�2B��X �+����� ,����?��<�$zJ,��Ǖ�N���@�e��[�G[��(5؟D%�o�Z6+6D�6&�f�J��\�����X����_Bu���O��.M�� <f���_��k�P��1�U��eX~��c�'�!0��`Ś��έ�Ќ��j��!������a5�:����X7,YI@B�+]tu6�����"F��2��� �u�y{��V�}2@�����5��B���4#�6�'�cK#9Oz(� ��Q�:f��]Z.��QjQ���o��d'1CP��2��Q��S +p�,JX�̽倄�5�2�g}pm�W��2P�|^�"qs·���(����_٨f��u\�:]o�Lj�b`��$>v��9�e'��b�;�@kJ�N���AF�y�k4Li42E�~�� +���7:-�U9� ��ҙV��{�#�C%��X�!�yf�w�s�Q�B*�d��oM1�q��m�J`ǂ��ܽ�Q�h +�V?#}F`��*9�P��U�o�P��I��FS�m٪�QƋ��k�{�}�H���r�h�L�Iz�[[lj >����S�>:C�)g!�R�@J>"�h��X��� +]7���2}���wF ©qZ@V��jU%ņ���?�P^L��gӞ���qW��a$��9��Q}��(�w��>�B���xbO����s��C#s�YL0��.^^s�E���j��0ۈ�����6a� eN�vF&���|�\6�k���f���)%����C3�ώC��+#��NI�t\e�,2Q��N�䒳�dP,�,?k�9k���9X_������C(8�� ����(-��6D/��j�4L(6��:0��a�F���F�6��ʼ3�A(�9Y��'5�����_媧��6�DA�j/<dӥ��+^��ZpT��G+�����C��I��ۂ-ϑUzz�P���]9t�1��B�jVX͟��vt�h�L��u=���M�u�����r�^��(r?#{������G%F��+;_ �%Jp!ٱJO�a�䌨>�k� ���;w�w��#,�[ە�5�ܻ���6����r��,��� o�[ӱ�U����BX,����� �$y#���q�T��Yd��Ñ��dž�/��t#�"��Ю��|��R8@@�J���@�s�љ0l��iޭ����,+�ܤ|q�,�R����:�fG��v�"�-�Y���{w�"�D�/!�W�w���K͛�JAOf���֔�м4�oS �öYK�OT���1Z�� +���櫾�)���H}���?�B�zr���L�~��[A,k�z��_t���PRA�W]Ϋ�Gl$g�h��5�g����Ȫ1U�A�`ʬ��^ԭ ��n!ޠ9"��Fߥ�T�*�\�D�5U�}w����Ճ4.��w؎�A��2�+�|�/�OEƈ��9�9*��+�l}QV�����}��8� e����(���̢l���H<��B������q��Lw&�\f[_�dwL��L+�)�` �[�$�;3�� +!s�p��2g/U��&�UDh��nO(Q�x���ͷ�D6B�`����ͮ-��Ho�B�I��'���Qg�O�_�t��jJ!�Wi.��~N�G6ha�֩g)waԨ��X<J�X�?EJy��M2rm�������;<%e�auq/b-�e�+�3��f�V��ĎhM+��H�[i�N������Ԩ_�f�qxN���쪼�{���h���@�F���.F���dh9�!tD&��z"��F�Dh���i�������p6{(� �H0���l�����*_y/6M.�.�[�8�0��-#�:����^W���pνB)�!��v�@��Xޘ�s�6��bC霵�~m�`1�I%J&^�l���AK��#Ԭ쑱j�����\%�ʴn�v���iB殺w�Ū�>� +\�yD�{��3BI���x5c�R�vxt���t�Б�X��V�g�Ț�G�&'�r�ɽ++�[B)�owE5`��;�Y�Pz��@���8���C�\��nxb�`�A��O/#�T��W�x=���l6>���['"��۬sŝ�j�QG��C���1O����5�Vy�f�o��H�K�)���]�w��}�}Xz�n���-��}D-Vj���)�S��.y����I�{�\z�0>��n�cf���:[�6A�5�34 +`�X�l���,D�1@y�����U83�Q{��e}.SF�Q������T�3!�Lj��Z}-x"��_���/�D���/����҃� �i���J��f'�'tAT���Q��T�_��n{Sh�)k����?Wa��P��؝�2��u^X9��<RU8 j�6.���t�NM�����)td|t�C�VI��Ъ��B�z�b���p�a|;���|`�?�����^��M�ʔ���@0sŮ�SBܔ�<�H�I�Y�O�A�PS7�*� �ּ�������Sl'yZ�]�� �O�9Mf/(}��g����/�{�����M�!��9C�a������X,5�kk����8Mx쐿}����"�o��l���e!G�|�?� r9��C�1h��1>�{��fn�6q2�[���ch���F�ҋ�!<�yu畆?��c������|�s(���*����m�U--N�%��ȫ�`5�����,.a?�LW��Y`��ƾ�}|��k�_w�xs�$�8đ+��u�;�U�����f��궬(����)��@Ҍ��2O�5|�����,KZ>z�\ƕ�%��c�=a�]�F��qn��q��5�>w�@����o�ia],`~V0�}���X�:�h�f�I~��Y�aPI-�wM9��6�F!��Ki^r���]*�G���2��2����a�vY���D��XihP�Dw�'���V�Ό8��#E3͟��8�?��E9.&��3�����u�1�B�1�0�[>��o�{(���7�~�T�#�)I��N��0k���?d�ݤ����\�bK�^}����1���ߖC�[����jKy�é�H��Bs"�"#IB�bRx���$c}u~�HUT��Z�2���BY�H��J�I�'��Wd*x����$��گu�e���^��#�i8�ף�yA�L��ҋ8�.ںR�U��� ];[�ki{��B��ۚdK�E3arV�$���̍W�fl%]j2�-�A:y#qߍ.:���&������"�@�x*i6�os��Xt*�J��)��e��MmۘL _�����4�0F��G+�H)uB�$�����!2�%g��g�s��3I]���yn�O6�OM�"Y3���}Q�����CƁ��@�Kj;�5�Ŭ���{ ����7���n����4�U�@�h_[�+��/��b��"}�D5�t~�p�˝��S�_%��r7�ʓD���ˍh˸7��Mق���.�_&��?b��K��2_|�4fb�q����u�g��6�5lk�c����$W1̱�����>��ԃ�I�c + �`Bi�E$,��*�K���!�[�}i��fTXƀ%f���*�Ϻ^�ʭ���X� �.�2z�&�>���Ӌ}! %�ב�=������kҧa�X��&0��]�f���^mf�C$%&L f��n��)��緱��du��̧�̲6r��k��� �(ZPD��,�S��I������b;;j�A���x@�4"A&RRj���$G��\V��%I�]��J|<�H (Z�;�6_��j�HG'kf>#�n������`=�1Ħ����t!���+m�5֞~�zv�6/1�j���TQ�gY���D���7��RI�H���ҟ���RM��Z"8��4�'�?�{X��&��Q�ݪ�LJQrT� o�ET +��ZL��ݡo��D&�(-���ⵖX-8GJ���~����pa ��(�(�C#��L��1�F�#ސ�K��'�R~[�ά+����*�ޅX�l����1BL@����Vc[t��en���i Nj�-���^ʻ �����x�`A�~:�H��t!6�R��0~oǙ�kN�7,n^��c_E��ҍ��2ﲫ�l��P���y�/����.�_}E*�NALL8x��A���nu9~ǵ���k��j*��� �* �_o��N�bE�7&��Sˋ��̺��jҸne�?)ު��j[��0�9��U:��Ee~��r�!��- +�I����ƣH�ۃ��X�}��2��%�rX번 q������5l�"�z(��h��f�6�,g�Bo�j������3�t�h�:!�Y��pB��kd�l�e$���U�\�ۣ��~e�I�Q��@�nr1��� a����[�tRΨJ�Y�#��ѩ�����7���Lޑۉ�%�a�&+�F��M0< {v>i�u����jꖈ��H�YV�D,�l�D�PzH�� �6��}>%����G8m#��� #Т�"���P|%�C={�; 'Dž��q�9[r]C&�q�d#��<���-�y 1%���E�3���I���#ə� �D��?��$�~��F�,ܸ�'aq(��Q��y-ﮥ�K5��>�Ӯ��s���%/|�w]�M��U���0Vq���q6� /�$����40��I�B��=R�1ک��V��� ��٩��)"�I1>�T��Ҏ�ff/N:d��a�7r�g��ڝ����0,a)-)��8m��z�X^��f�Nc��������P��nVK��<tħk�r�%�����V]��:-�y�t6}�6G9*z9�ŷ����Yc[����9ݾ��-��8������{+���L��_z?j�3qt��D��1�)��r�y�c�Op�q��{7�4�������ـ��]Y��R��'7���1I�J�M�{��<���?Z����m��4�=����ޞ2�f{��+ b#2��^�G+�A��"��Rc�V�~�T��}�i�ņ[vI#]L���R�"�5F����/�-�n� {�6��l���wv��m�S�T +_bao +cVo���A�ᾔ���;�˓�[��sd?;/�����J�+1&>b:PN������w�1w�y�*��j�x!��z(Fy�.3&m�uKD?�?��'F�xpXXj}_jpl�7���FR�L�J!�z�@�>�1�%���,��j�)7릇o��ơ�MڬT��(��~T`5� B�q2R�&)E�'Y�Vb]&�%Lq�5ÎovNMcȹ�(��s��[���n�,��̟�|:a����V�;��u-p&h��K/�rSriu!���hF��7�\�#ZW8' G��˪�V����B� v���E�.���{�ַm�N3���0 +endstream +endobj +8897 0 obj +<< +/Type /FontDescriptor +/FontName /GGVJPX+CMMI10 +/Flags 4 +/FontBBox [-32 -250 1048 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 72 +/XHeight 431 +/CharSet (/A/I/J/a/b/beta/c/comma/d/e/f/g/greater/i/less/m/mu/n/o/period/pi/rho/s/sigma/t/tau/v/vector/x/y) +/FontFile 8896 0 R +>> +endobj +8898 0 obj +<< +/Length1 1385 +/Length2 6046 +/Length3 0 +/Length 6996 +/Filter /FlateDecode +>> +stream +xڍtT���.ݩ��H���� �20��14ҝ" �� *� �� +������{w�Z�|{�g�w�w?��¤g�#��BT�0?/P����.�y�@#(���M�bq���a���!P>%�ӆ�����~A����������K��@^P0@���A<Xᮾ�PG����8����ܿ��.w��!!.��@��C����G v)G�U����ۛ���ww���xC�������r������`����7��#�A�������<P�00��:`���u��������������r���~'����.� �/����:C��*Z�7����=�|���E~w���@����a�uEx�z@�����ꖕa`E���� �՟�b��v_�?�u���a� {(l�k��+�1�� QW�A���s� ��@1QA1 �����9��*o�� +����FM�� +wأ��B�!�?��p������?-~~�j���B�0��TG�!�l��ݡ>� �{���߿߬P��aξ����/������ן��SP����E<�@]������V�A�v�O�:����uM����/������b:pk!�����(�C=�����;����_U�_$��T<�������0�����"�'%�m8J����B��V�z��wTB A�"3�/P�������;�?���7�%5g(��������������e��~x�x�'�@� �{��lJN��Cf�ҝ������%@�e ��QC|~3���#P)��́�{�;��5�v���#�G];Oww����:�_�oqC >;��i��dؓ����yZo��)�L�#��"k<D������ܜy��*s]�*�O>�(�!_.�|�_�gl�:�aT�v`�M��=G�L���{0M�-�4]�A�ԽM�>���,ءې�4���s6՛�^���F�{��j�r�(��M�� �m��6��S��}uI]������z�)�� Ż�l�w�o����=���W������d��n��B�u^��^�[ջr{��e�td�Ω����[��&�.��b-Ք�Y� )r��5ߒ-�+#aK�|�G>����Ư�$�7�1������:�h���?��9=�xm�8������z��2H�����L�����)yL�[v�D$dg� ��|������n�B�c����x� ����=��1��o���i9�WD���]-M%tW�������q��� ����� +,Ԭ�FEA�tO�b\�bƉ7�r��_��[b���L�~���|>��� +��4�������O��-�y�>n��f�b��O�� +FG�@L���Z>��'��?�g�ŞZ�9�{��jjv㕤|Jv�ۢ�IJ`%�8qc��}2��<R��qګ�;}��v�NN0|�yD� ̜J��n�ܑ�����Ҭ!#��l�2^��*��0q�-}�k4[ؙ�U���K]ɮgi�D��x�a�ѧ�e���F#�����H%H(?+8ӌ�T��'Nj X9:�K��-��ٿp[C�RW^ˈ�ꎳ�x���F����f�{�2�<��O��p����֒}mW��X�ۤ$�6!�^l8���wF���37�#���uƄ��v �x��g��=A7����b~Xq�ۮEC�4)oQݾf�7�]�U~A�\�5���}/@KE�$�Q� +���^���?��;2��,���8�ә3B�qY?rb����֎�Jz��0�*-�"�6�Jve{���.є{�C;+3%w�kj-y�-lL�h�:Ib�G�A��]�:Z.���\'f�2���W���Ê?�[�pHx�[�F8��"F����t���P�:8�����N�u��:��������-j��kF,n����.ɖ�����;t�z�Z��j�;���X��11E��ղ�RY���8JC��n�� �ax��gT���lj�(��}��`�;��SA�jz� �)F̆��ń7Q���q ��n_��B�gH��{ebDճ����h���� �i/�����*i����5Y��(�KF���� �~%�]�����7D���8m6�-Kb���n��i}q^��d��AY֘`���S����Z1Eum�͜�����͆XfO]�uH��Wr�}��/��s�:FN�3��f�3=E��l�{�\����,zL�u�m-���9��I~O0�RK@K�3�0�S�%~�U�)�ۃ�B����b�E�>�b��FMٜ�!F�R�0�z�l�nO��Z�usUNWho�J�-���:�1�@;���$�ٔ�$�m���g�v�T~@���Qp�᧠GN�۶��\(�{#����p�Qn��,��B�Ï�k�|����G�$:-�������9��)����Ӯ�L�̼�j��ΈԲ٧�Gφ���`x��6���ޗ�m�%�ʺ�Z�e������;���l���d������g�@�GXp�-���e��)��$7�%#�ٌ���p:�ᢻz�*Y6e/�xX�;�@]1�E}_��M���GІ���E����!/�� +r�������Q��k�螆�D��o��D�W��}�����"؟�C��{*�7^2��L���X�M��v���!m��9lj�35�ҞzH7�{��$��Sl���)��(��S@愗�* +��N�v��mP��h>�&W���f6��1}���P�u��#v�fx�`���D�6�t^���9���1a�eF�ɜƉ�H�D H���pzI�M��=����}�9�����W!�=�7�mUE����Ž�J����j(�V����f4r�k͆zA�S���[�!oI~��!�$e3ʝdh֏�ƌ�t-�W�5�i\������w��h8w�sl���Dŋ� IfA��e����<O̪r�m�U��5���PPr�a���,����xL�X���(�= 4T���i�ǜ�p[�nG������(/:�ǟt��o���,"�6*-B*�!���~�S hN243=]yuf+���m��VP,y �mӒT��f�_c�}�� |cx&_:��ŭ)��_oX�)����i�&|וp<��M��]��U%�:5���z6p�e+����lSӠݛ���bcB*�U�����><����\�!����؏s6��7�G �A +��~���F>�D�C��К�s3霌9���ՉP��ڜ�'5s?&,dP�yĶ9E(H0P�\��M�-y��b*�X��m�ӡ�1��?3�w7�đ@�8V1��hݦJͮ05&��m��VeZڢ��͘F���Kk���X���擐`J:�<�|�2�)�c�!s��=�G��4���v���8�,YHCQPu�9o�`~J`�W0oѫ�=Sۀ�֒8fؗ����Cp��q�1�bR�M�LBbin@�r垙U����CrUr�בg�|��;�K<S�)L,�DQ��CSM��P�d ���O�7ؖ��ox����1�� ��\�R8�|cBU*>~$�Z����~p�%L�S�Q�a�wV�� +�}-�q�vߡ�Ѵ_�"�M{Cf���VI�#��] +� �Ve�&<I)��e!�N���n��4 *pof�Y]�y��`���*��Xm�<�U�àVL��\B\ab:M&a�}49:�W�P�_*�����������˲�e��I ��� =��1��*(3R��~��V~�nF!k\źޘ}������]DD���rye�їs��˛���κq&*�S<�C��Ts�U�n:���n���j$R2'r��Ltc�E���A�/��"4�$�o�����f����78aҡ�{kM�I�~�π�)Yx�)"2j�0������"/bY|�̞vZWR�{��s�e?�,�M��. s���mp��c|A����O��1+�j�W=��};�p��~�:�ص���G�q�X�k>l�d��͠Wi����j��myuxI>�:�b�W.��w4�m�>�J:�"5�1_��O��w���%�p57eDcs��Z�'�-�����7�639�IA:};���(�s{�����J����OC y��������g��l�1��bN2O}tAzh����\���ʹ��آ�7e{��� zb0��e���&��I��=��Hu��d�CM�<D���7�P�����s[��7��CBOy��g�kZ��w#�RJ=�@��ɉN�4����qIz�Mb�js�� +�ݸ9jخ�|�H:�`� ��qb���TQ�x2�h\�/��R� ��"��@��vCcly��U�?K�%��v�oD��,���{w��v� ������/��~D�ݕv�?8��#�v�Q�������l�a=璙�� �T��r��/9��'��{����`u+����^^Ԅ�3q��a=1vw��<�-�r���?(�c�{Yu{,}��픏`@6���X6��)Z�`�~t[I�m����K �� ��Bm9�4d�j�G6n�pͺۢ��sT[O�� +8�3J��6 K���߲���D��_9� �}�d嶷�;��H�m�1�6��ϯ�XT�g�5X)_�P��L<ax���4�ɏ� +����i�a���~%W��m�?VA�H=��2��� +���M��咂3�;kT{�'v�O�J�sm���o��?9�f1ab��b8>u:<7)Ib�:�a����Ĺ +o��!��� ."̶�8y��ZA|k +� +�>����XŌ�fw�鴶"�"�A��5�D���4�>�¾��S�J��E�ȸ}J&��TUI n�f؋���^ڈ��\WZb^�4_�vR���i [n��H z�t��ZYD�tL�2F��quX���#4�o&��|R���:��=_č#���GN���K�%�Wq�x���� +UU|O�U�%�Iwt +��� 4'b/��MS��.�2H�B�ʵ�tI*!'�d��RT�paJ��\�1�}u��X�n�k����l^p������y_�˭�6=vm�I�PM����歞�������IE~����֏�ɟ��&�@|}����� �� +�b��i_z�Arx�N��o��'���� �w�����T�yM��5�<t�@f+I߀y9�!�����/�5a�n�����Bv�K/���W �Zb֛��Җӻw.�)YJ� �ܾ<b��i�X/��^# 7�yE_�>�������Z��vtY�ZXcUW�k��a���Z�*�����x�_Mi��[��a�z�8�?k�f)Z>-�um~��I<��Y혬�����r����lӇv)vpBV1�� ��м���(���R54;��;ּ�W��%�L����b�(j�nsWK�o�������)\S +z�|��C5��� �u�]c�`G��o4�JZ�vV��gz��`�_��b(>��B�_�9�U�%�-�.CZL�f���}�<6|`���0�)0?�W>�?2Y|��fq/L�=���\XYpڡ&��F`�Tp�Sp�g�~n,����{E��u�z=���ǘuϒl�<&|��P�*��g@���7)�T��y�h��#_q9]������}C����?�n�wν��+�[��?,2�$�w��Hw��S��3Y�2D��Q^xv�C�/B"�l�|�${��-U#U��"�b{��iN$���}���J��5&��ϴ�l�>�iڎ��rL0KL�rk�+츀kwO�N���x�`L��_�@�=��P��2��Ag������Vrl�$�x�ꡯ�P�41h���I.���3~��x�ھ˖uj���^(�U_��Ә�2���07_�.�TV!ÙDL}�{��Ė}U��_�Y�M�~2�J%Ū�-Ũ�~�m��p��Us��V�M�(3C�������z�"�v:�ڱtI���T��R��ݫ=�y��Cv}=��]��}�F�)�*H��RS��/�9U��~�7&L w��� +����!��Ǵ3�N��Y$m�����+�J�;�@)�p|� �p.C�oV�]�ׅ��9SkK�1�J��� ^n�<�Ttw��p#���`�։��\��yna��������5��D&�_���+�I穢�gC"�%�C#.����Xz��PR��G����^/E0 G��/��sI�f��6�ԉX��ʗ{` -��б��ɔ*�M�6��HE�l+���#͂�I��4������4�ϋ�4S�l�4�f�V1xJI�5H�8쵈X,�]�4�0>n�j[������G'���н)��%�~ms��P����E�}2�W�ɍ��o����yѶ|D������KW��ħ�b���G4Տ�c�]�&l&���Oz�j���EGΑ����4�|���'n�E������������-��I�h�S\͇�2�j�z�c��P>Jm���M�Z���* +G9T�r�����~[�i��8����$ɉ�a�w�;�,ŋ�_D�qn(��oF7f��Sz��gƐ~��0���w�pb�IC��e�:A|}[_%��>�eX�����p��F�KkL��ЙXt��j��1H2\���Ù���t�]ƽ-9��n��b�<Ò�<������F��b�2��D<���ǀ*na7�S��A{�G+g�^��|n���j�I_��T,�i����Y�aH�p����3�H�o���F0�U[��*��n�CҏD�$v�8��5�*��S%��_p9�Ժ���:��4V���7�e�Lo��\_�P�%�cNJ��>!�L��+8z��tnq�&�"��3cU�]�I.�~2̧et�~����Q���=��o�1�Ԡ{�s��R���bθ +U��Y"���&� �O%��1�n�n��g�����g^����-K���l�XU���+��z}��i�W]��}M�R��������B�m�?5��� +endstream +endobj +8899 0 obj +<< +/Type /FontDescriptor +/FontName /RAFNRP+CMMI5 +/Flags 4 +/FontBBox [37 -250 1349 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 90 +/XHeight 431 +/CharSet (/n) +/FontFile 8898 0 R +>> +endobj +8900 0 obj +<< +/Length1 1444 +/Length2 7135 +/Length3 0 +/Length 8118 +/Filter /FlateDecode +>> +stream +xڍtT���6���"�0�����0t���0�30 *%�� ҥ� %%!]�RR���|����=�����Y�{�}�}���άgȫ`����p��H����. +���@ A�;�� +�K `7�"=a�����P[Z�l�B�p���+P@( *) & A �HI���7����@����v%����B_�#�������Tp�"a[8P��uC��u" 0(��!8��P(wI~~>[7O>�Q���C9 ��P�7���`����Oe|�v�������EB�h�+�{�=���P$}9�P]����k����� P�O��������l� ��m�~0�#�� +ꂵ�P�(�-�������������ڡ�3�����*�����<�<a��J���e���� +Gy~�CB!��������Kp���~a���o�yxAՕ���U��u�PP$.&$.��z���'�_��ܡ����� +���@t� �����QH/hP��)��0 +hu��GG��d��0_��= ���ߧ�hz�#�~�ϗ�PMW]U��O���)*"|��;yE@@Aa����(z��������w@�@�E��_{�E�ο����`:4k�@οIn A���3�����+��F��N�����������m�`�~Ф�B�@�^�CM��Vj�r�o�:�� +pG4�y��@��0O0�j�CA��P���ת���P=�'��ۂ���ˆ�/����D�����l��c�%C����<T������"��~���ђ� �����f6���@�]�蚃�$�טŅ��F�T�%� ���?D ?�?D1 ���"�.����?R�x!��3 ����������0����� +t>�cҷ3��yǞ[��U��W� ss5+�}`+�.E���|n`j�>�eo;2�%�ݜbΤ�ѳ��`��)2J�!�1�b����w�7d'��O�G^�o��|�<G��^�do���j7h�!rL͑���k���Ţ)�yH����20<�D��������)�DEj�^Y��d���U~��ni��*���v!�5`P��Y�!��+��sN�S +`����(k�� �$�BH�'T<=�%�1:�^zl��}������Ϯo&�8sX��ˏ?z�`�Q1��3-�Α�������ZUҥ}���et�K;qX��W2���v����{�#ߋ$����Y�t�I�P���9<ےk�;a^G-�.���TR5�G�߅�o����'����� �y� �ۡ�Z?|kG�h�����7ꃒ��'��@g]"5���p B������)���VnFc(ǰ�����F��Dƻ� +�(�J��d�bO\��z�̾��VPa2l��W +����k���0�Ř{����E�����&)E�k��(mm��r���Cv�� �P������L���v�(�\�xF����S+v.��Q ��5%��� k�*i7���i����9[�Fb=�У����Ͽm��N����aO��'S,��C�n����8�?�����3�<��FB֬[���C�t���BGv�G>=ӻ��ss���v��c"i���r.H{}Λ�����j�n�N�@��g�oΚ�h�/��p"���_û��?�y��$��-�*b��_H��)��3����'���է�E̎��j�w� +�>9��9�:�T�YLK�1��rXˤ�m�7� +�<�b�%��s�u+.[�'���˟~����i[廻�2Jm�B���5�����A�V�`�� ����Q�&�*u������3OQ�gM�j��b&9EƕD�A?i�w��2��p�S��O��O1lK3�ϒ�[X�%Kc�Ͻ�ȳ��G�I��P���k/(^�+���n"}�|� +��c�v��c���r��%o�;OV���!hR~L1q� =( +��37�9��a�u�n�����7y���}�S[������~9�@�s����gma<��u��W{W��|ס���tU0��ly!���]-����u��a��D[�|���M�p�5j�Y�cF�'�e��@���NEr��n��Bh\�4�Pܫ��������K��kL��S�C�<�ښ��X#J>�Nv8^�g�]<;T���A�����;+�&�����~Zt�:�b�?�6��i�Rm��1O�73�ިNrͬ�Ѻ��eQ��V::��P���\�g+'kIvj�ι�x&�<L��J�ն����K���i���Q�M K1gt7�|FI�<z�8<;��w��'�w�5Ԕ%�� +�3�j�<�4D;]P>u;_ls%,�'���T��Iv�=a�s�}k�ْj�Z�lU��4����� �p6k$7����ƞK)[Yvk�)S+��v����q#DpӋt���.M����,h���72m����S&��X%a���i쬈�9�|<����x��d.��呶y��%{��|�3�G���C9��_;��ў�x���@d�4D6W�:2���r�Z�D�uy-��2�L��&(?��r��cN���4_Z��Y�5<x��W:yϾ`:���2����_6W�M�����-� N^�h����pR s�~���Fc|����~��xؑ.�!<���ɉ�d�e���'��;Ң ��w�U���,B���Z�gw��������{J�*�U������8�4�-%�fM�E��q�! `�at(�k��@3S��,VY=��Z҆�m���?���<6�}�&�m{̳� +�ZGn��M8��f;j#[���+����6�p�][@�x�L5��)c�{�ʆ�f�0�Wr�aH����z�HC{��c�P̋�`�+��6Y��c��7V���臑�� �#�s���b�����ʲ�(R�Þ�{��'����#Xk���ק������a����MU�kݰ溕���^bg8-v���$�|'���y�����~:�<����l�BO��J�L�㓱�� ,�u�v��TUf$��o)�Ud�Rt��%�ӣ�2S`ԑ���p�dj�?�7i��M~��+��1_�#��^l'� R(MQN|���P��악�_��T�M ���v=۠x��VB����Q*v�)ӹ�uJ��b�i�1w˰���@!�q�^�YK���o�#�sY�n�k\ \�&1�S�o2�A^.��)�D�_l�S-��N�염bz�/�g�{%���W?ȶ�5�z�sK:�;ʸ�|o�=C���ɷ� � +]䓫�gLy\}D��/W�����������=:'u��344�����{�G�m� v��)\&W�?sɗs��������Ý%��u.e�Z�$����^.�T���ب��|7��ѻ%\�Fc-Z�j�P�|�ɎF�����=a�HF\c<‒�&��S[�V�nPU3�IJ��G�~4t��y�EC��G1E�1�b��Ԃ��[�� �d+_���E&�[�$�ss�?��|��}A�m�wu� ���������ٽ�AI��]����-�KQY�Iyc��Tl,?z�'�J�MG�o���.���:�in�6��\F_�O%� Xɑ���KhM���J��؋Ό�oV(e�]���Ho��qQ�����7)��l�G <ۣU!��JH&r�-|�/��"Q�*v�6���^��+��=ֻ淦N&�925��.b�@&6�oW��������ɻ: {���1A�5nb0~�ȋ�i���2���>|��jWI����:jC��;ƕ�6I�m�����+�]��O���ZWn��h1d͖����+�D���ז�.0c�,u���i + +l|��[��zXm������xz�$�0�^��VÞ� /�_�]J@�d��6�$|��s*G����|���6%yG��߇�Go4T�={R�cW��y(���In��|�Ow+S�ꅇ�pk�C�R�i%Ky��º�H����,i2e�tT���Vl��+I��f-�w��ݘ;aA�����|*��Uvg�U�M��q7���+��ܬ?�}�m���\�m6z�+�%KN�4�2�`�D����B{A���Z��7���T�M��W���A�V�B��v�T�Jά�*W�a��krx��o�k#��p��V�Ψ� 7 ��}�}C_j�㷹���6�|ڔ +��U�������9ɷ�yX'ʁ�9��~�ܭ�8�U��ܪT���H��Q�Pl�} �ZɃ�PB��d�5�Y�l&~v�ؤe��`�<o7m��fwK��S���?{�}4ʐ +3O�M��ZJ|w#���������v�'���$� ��h��������y�e�)-c���y����_������`o�>a��=��Ġx�4��B���_�Lk�#�c�h�����J�@W~P�th6�[����)xViA�:���("u���!c�kڿ.LiCǑ&7'��y���X�}�^|5����)��S >���0�L bZ�>��[��U���0��������Y+�"\#_�����F�&df8U����><6l�f�����<;Xp���^0�g�U���Ux�4�q�g\�F��d���,��oҷ���ݸ��b��2������u(9J3F�z�`�.$#O!�kA2��h���[ +��WH��g�]g�/N3B�xI��������ى�m(��H�xaUО�F����=�CY���/%����)G��V_F��?#������)�D�wZ������i��v�1��˘�uj��tI��f� F�\��h� �a�ݍ~�qF�w��� +��T}�oG|#��OK\]��?Z~��Frn�>�z�Ъ��|FV�)B�#�h��(E�n���x��v\�/�E�&IQ��JpW�37��#�����zM�;� �ޔ:=�H*;L�{Q#�߱(��+�F��m�jĴ�{�'CX��i�}}mp�#��R�;`�ާb�"t�)wjA�'��~*S�a��ĥf�{�3�����C��jSf���ԭ���n���-ɐ�L�`�}'�u�̓�������+p/8�foM�}W��c����U|���BTqy`E����-N`@�*ρ�u[w����2Q���ʍ +��~�M�]��a�D^`�������({9�y��ߊ�J"9r�7r�.*��vj�'�\T���N�]����� p������=�_��8�ׯ9��I5'��Ī� FQjGyơ� Ǥ�bBe"������\K�4a��n�9u�X�g���n=%�8�k�0%��T�ĸz@4*�q�����3;���B՟A�#P�,"��Y;��;"Ƶ�g��� +?�^�9:0z����]�ZT��� ���/�'D �N�'�]���V�W�2G笯��X�W���-`XҎH�j���{2��6.�b)�U?��#4�䮗��A���P���;e�*�r1>:~������Y�*Dl�h�ʌ~�7a�~�Ry��uZJ�hw�bCR�QV�?��+-Ђ:�t.�1"�B������*6&M������J��즊�MT���ϣF� sx���D�(�k)��zH�'l!ZW��G��op�X/�M܉��&���&�a�迺��oB��������4o��F����v�A�]Ӻ��Fi`K|o��duv���ջ4܇����ī���$.�2���x��)����J�]�N�\N��.��S��bg�;�Ϋ�ܶ��悠���=�wWB?2����%%����dg���>�Qi{�#�î<�dԿܗ������������O!ð�V<*~�=ڇ���g�8��9y�Jٱ�ӗF�� @�xu�E�w�|l�+L�@Q/��%�_���X1���&H +�7���}��G�K�}�<i�b�˝�^!�s4�%�1!����[��j���A�j���]�\�`v�t�Q���9�� +뒜�L��K�>�h��ușk��@������i��|_��(�{��,@�}���+�B�QeLwvh�Sy�k�W#���4�3?'�:�mi��&��c�g�6�g9�$�s2��7Ӓ�_cbq��䗌F��3��I��Zԏh�� � �b����ꑀѰ}u��z����&���px��|�.>RӢ �4N\L�ya9���%������&DH!��p�c+Wz����il��� �;]x6���{8���լ��1��6��҆�m<dYr�P�L`=H���{�,�UV.ȿ�:�kk���j$ɨ(W� �B���*�1�{/���s��6�0��!�"�8�Hő���ݒ�9�Wn�fuF��{A֬q��Q[�����ϋ�v� +tt�ۃ^K�9�J�7�5*x�>�.�o�u|ˇY{�ȍ��4��3I�f�Y��7����]�0�e�7��w�+����jqԤݤ<��ϾK ��y��I9{g�����2Wj�S�\��uv{W7`[��ND���Ld�C�Za�5�pH(Ŀ�Q[5o�fi*�8x^����6:xz.�R���ΓJ��G٢���9'��+$��{�:�.~4�N��)�ם���0������U�l��C�n+��p��D���8��b��"۩���7Jg�\�;�����:�����Ȟo;��j����{<�����s������u�����O�'�[W�2��V�������:)�ӊ����m�G��{i�h���|�XG'G�d�5�^����XǛ7�Q´O;;��:\ؔaB۔��%cW�yt��iToBy�P6�����5��6Joț&.~.Ƣ�O��Ȍ��z��h�o���I�g u�����l��(3XUU�����p� F����?&��Ɔ���c�-��#4�Iy� \�<h���`�Vv`}�ޒf�Q����G���T�X�f���~�Gn�R���5�d���\�]��cTX��7��L���|gJuݳ�Â�++[Ð�����L_���v�B�2��wWI�iR����{?��MJ41�"�?�Uۚ~�=�5�D�-ɹ��,���y8}8E�ܘ.��qf�3���d��܅ε���s��Ş�����0e�����Ј���"[�v�m�V/"P�"�<t�v���1Ź��k݂��WuŨӬ���x�=�R�43��Y���6E+H%HćI kÅ3�话����Z��NEQ9x�i�xX�f$�$g�ۢ�H���8�#������)�����,ry��[����)�����C%G>��ɕ8��3e�M�"�Hc��כ�Z~�e�kL'D�շLԑ������`;M�wSfy9֑>�7f����[��� +��p�;�#,,D�p ��]mҦ ���;62;Vg2kRod"��R������`��庚��q` � +p� a�;#��:�)f$TW_#<W�*�Ͻ�8�=�&9Y����v#�v*���A�ԝKB�BE��+��r,2AV�(��Q� z͓K�V?'��z�oJ�Jc�V���ї�d�$�S��j�4:�ϋ�ӿv�(V���{,B�S��IC��ߜ��b���~��N��i�O��a+!+�����#�)=Z�֬U|�]�ڲ�#X�w�7�+��$�D�6<�o<�cy<�~���ޘ��&�~|������fD+~Z�%Or5��^��`hy�p�pUy�"��#x�\���Q��9�|��W������q/��pO$�u�l���{��^�uЉ�+���g*�2���u$��G��x+2�wWff�e=77�����̄�!����p��Ъ�uy*����Qz?�{/�#�����[�[11����i7B����-��N���3'-��L�ކD{C�iW<0w�B�n�`��wJM.u�z�*vQ �GJѥ�gB���`zp��e���7�@��YCUן��pN��$�?lr�\َU)���B)P�Bo��(Y��e�*������uB����d����bH�V��1�{���|��H�MB�yG������*o$��%�k2�uE��=�G���Pzt�zO�)}fP�,�.�_d�J�e��������;jj>�8W��z� +ܶS�W�D�~�����r�� +endstream +endobj +8901 0 obj +<< +/Type /FontDescriptor +/FontName /SHOIGG+CMMI6 +/Flags 4 +/FontBBox [11 -250 1241 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 85 +/XHeight 431 +/CharSet (/T/f/i/k/n) +/FontFile 8900 0 R +>> +endobj +8902 0 obj +<< +/Length1 1586 +/Length2 8706 +/Length3 0 +/Length 9770 +/Filter /FlateDecode +>> +stream +xڍ�T�[6H�t� �C�4� �0�C�twHHH�t�t�H+ �)�y�y���k}ߚ����]����tT*��fP��� +d�H**��88��888���4 0�_b4:-��j'�_��`�Q&�=�)B����m�@.��W�'�������!�Q r������v`'4:I���#���x���FS&�P@���;@��1�A0K��㍦ �:����+��%f/�������ub�:Z�0��\!0K�� ��6�*����� ��a q�#W���\A�`���b +�sz�p�3;/��)����v������ ���;�_A�~;�LM��� ;w���b(�(���`,����/C������L ~gȈ�@��U���#������U"��0�]��3���ڂ�`Nh��8�M����g��vPW;Ͽ�9����Wf���vg���_&�"�d`��������v���L-���p��V�+��������{C���h�N 0������oſ0����&`��?��`�?�q��7��#����_��O��2��ٸ�c�{��:j*���*�['!ux���<� ��{<x�;� +�W���ٙC@�?�>��?��E�ƿ�� ��`J�Gւ���\���������o��?����#��&$�lc�[��[��Q�l!6�<��������5��_Sm�U�A�m�W+=.����#�Y��l��'��L3��C�?r�_�f��@� �ޖG/���=�������?*����~��?�ӿ�3����;N^�����8�G��>.���7��lvPأ�fo�9��ט���슿D�?7�]�����q����C]-�P�?����G�������98����!�#[� 9mm���>Ґ��o����=�٘A��+&���O@�G/���_ 2uvt|��o^?v�?��+��M�榡�B�VU�-��d����H�)�:��������I��x���y�b��n���U������3���Ք5��笔2?,(Mb���</ȩ��ವ�$�8���PD`~*jfѣN���P�5��J�_(��:�E��sEa�!���ު�Ѥ_c�猘!s�6&`-R?,Y�=��p�Z�k9�r�`�"N7EG��k��#�`��P?�7J��b�mf���{\O�Wx�Lz�L ��i=ڻ�>!僶�Q���:}�v�o�ſ�P�b٧��nTW��-�>�|$~����H������r��L��*�K�k;�����3����T�3��hÍ}�y{8�����:Tf�z�o#�,�UL^�'[쾹�0#��~A&qk����N�wBr�4h�5T<GQq�)��( +��]@@)C���ͱ��J�33̧�wKeҚ=dw�FDoͿQf쾸���/���� +{k��h�$���}��lݏ���6��"��NS������/ƒU�:s #��Ն1��n<q��A�tJ�D]PJ(�Xۆ�U��7WA�[�@8�+�yy���H�WOя>J�\A�/�x{�K�a�/��1eL�1WJ�3QӔ�<�n�LZz��j���D����#�+�0���@�U5zhiC��Yi�~j@풧T����c�wӜ��?��[�rNZs�? �n>�e2���v�}s*P��K��RG@J�p�9�B~y�n����yC�5�[�?��>,����8�2������$|���U�u"�(Ƚ�uS��J������dZ߹��R�I']XbA��u�����Buz��D��E����$bk������Qri�S�Wě���ᗨĿ̟׀���4�]y,ɇ�5���Ho��c��;xή�^��D���'��� �⿓�����vܙ����̾ʜ��n^��5�'G_�'�k�VHxI�}~��w��LGK�v�X�~(��b�JɞTmَ�-�r�}�Mn��F��Q�畭RD��}�F�A@����~�OR���?���u�I0<�T�6\����܍fuc��y]KS��H�����'5�#��ڱ��0�W�F9��MO��ix�m�i1[�;Bh�o�Cv��fz>�h��#M7d}#ki{u��e6F_�j X�}Sm�Z��S���T+a�2��a�_�/�%O}���ȓ�j�M^M7�g�-�s����ε��d;�ѯӉ�� +�:����[������ڔd��J��l ������;��2����.r�1�yL���8��i�ɉ�;qОH8~1����U�fĺ菸�l��3��}4~d���պ�te����.BAp�m����.���N�G�0� +S��ҕ���M�O����\��[V�`ܬn���^l���e��FRy٬.�d!��wG�"6��s����AS^�<��dL9���y~�'�#3��.�g��ܜ�"�=��ç�t�oׄ���F��š]��6����f��g2�H~�v��1vб�''7�keL:bFek�0C�+��-[�$%�� +.S<Ik�u�'^(|i�QY�j7ΆS�������6��zjQ��e��m9F��\�{���~I�0vZ�J�#k�V�1��n:2�����C�}� +����+�17IJWJB`Ϙ����J�b�rc4���RҤ�Qն���p�k��}Qɏ�w�xI9�HZO�K��+��xk�!�K���o0@ʼ#I_Sp�(')���d��h�8<0�`�}Cp�$�s�_RfC0�k��2S$�j���y�MU�6}����z.�K�&DTߧ������@gU.�b�d�Fʒ2#D~$��r0����8�w�0.�7��xO�^��Z4#ry2����d�1ķ��0 +/\�쯸�Js�S�۹>u��\b�)X����^S��Ik_9[c|�ׂ�a�a<�]u�P�S�,hI�7͍c[qL>w2�g�^�oȨ~�h>z��ȟ����~�-�Ҝz�`�6�pה`8� �:��>���ua�����kΎ�b�\k�B�P��eB<a�j����{k&�\�/}���[5�F��H$J1����o����p�X�����x������O��j_D����88?����i�h�Sڔ���! 3�/�9�k�Gx��~k<@��U�`�T>�2F��y�̣8k]��}�Ӟ�Y�:R<^/|�`��9���$�ߜ����e}�hƬ$���Yڰ� +�T��i@��ŝ�ڱ��b��� KoYX��g�I*�/?w�M�8/|kJ����fo���$5�ھґĂ+��R�s?|�v�$��������:��;�i�Ƞ6�y4ѧC9z����̬*�(o~n�),�l>�}�j��-�"���w�����[�T=~̌b��84G<4W�"�vś1^3�mL�;N�pr@��s���2f �ctm��%�[�/�XH+F��U:?���k����� 8,�B��nk��c9 @�1W�F8ʲ��;�J�9�U���+�D,5-��8óSģOO�χ���X�g�^��>)���@�e@ي�h��%��*L�<�a�� ��i��(^')S���k�!��ٞX$^���tS��9����k���/�د�*������FO�Kƴ|�v�#\��X���� Ñ�}��:��E�Z�����#�zڽH���bCs��{��,���2!Cv�M��/��Ad&���:�64����Nbnp��#r �`�a�w]� �����:����)�=b�����:�dz��m�ǔ�����'? Li��!�i��?������8u��qe��������f�uw +O�LO�0JRW�S�������k��q1�An��y`[�-�5 ��Q>AGZ�h�1��$����<.�^囪c�d'�4����A�-%}^�~觻���*���M<��;�y�L����!c�7��H�N�9�?��(5T�����n�ɫҵ���ez��]���^��/S�I�?%V7}?~F�|�ۇG�o�VJ3��rj[���d�{4�ʤr�J��n���EjH�7m�!�IX�@7���dY e}��GQ2 Y[i8[A�8ZSj���c+\tC���\����x8gu��oG|� x��/����|ѱD�[�3C6fu�^��3�Fԟ�`���o�Z���:�j^�/�0m>ԽX��W]�J��Lg2!F���o�R�+>��LY�����"���*`^��ko�����Qf-s����yz>ꮧ�?�ԋ*5��u:֒�O8j�ߧ}��rT<zT��7�����`��6�-�*}���(�2���nN1���;q-)+X�j�xE����(��(*F���tcІ��'$�h�4N%�^��i�� ��^���p����n)*ue�YƝ�Nh�a��Z�6<�0�x�Cr����-'�A���Yմ+�j�< =���;u\���_�^=w������{w�`R�w�ij�H��+�OJ��yD7vH�������4;m%Wg�F�x���+��V�qp��[��Ո[2U��~ҟ&� ���H?����t~OG&���������S�rG�-E��5�@Uj�C�ݒ�qpK�XO(�0��b�v +g˝Ez��j���M�x�k�0̑��S��ue�Ef� 2�9C;[5z���8�p�%�{�Jx�Zol�֝�/s��9��1�́C���v����L+�,,����B��dW�K(��rm��y���c6C$צ|��ӄ�w�/Tt��h�*��`�U��K��[�>��HJAc����v����&x�ų���s����'W��p�d�|��#��g�$���.y\�7��!Zߩ���k*��a�?�B݄��*��i{$�&�[���<Դ�uh ��ߊ�V� O�Y:��6��Qn��ӑ�V8��(� ˠ�vT&�惜 +0��F������''���I���.v�i��';$٣~y�����Et��d8�ö�=~Ad�N��(��v"l�4|�t���'���f�ۛ�T��W6n���þ�:�����O�4�.X���"'^�t��Ǖ� 4�Y�¸�\�Y��:n�����O���.��{�<�5k�nNK�檥����b�Bd1=M ��-���t$�\c�;(M����B��̔i�m��N�\�,:klw������05��Cx&���F�w[�l��)hW��gSb1ߙ!&�դ����0�O{&N:�X�AF�������c��S���"�{]?w�q��~"<qfe��D"�!�V�2��Ԝ�*-�;�����N�}�P㩪�ǁ��?8�WW�{P�_�2�͆��\`c��Tr�Ͳ�Cx�m�+�A3y���4�}�+�}'E\/ +;��)iQ��Z~Ϙ�߂��u0�2��7I��,K�;O�B���jJO���ZJ9�q�O�1�O1۲�ƹ��V�Z\k�u���4�4�� +Ƌ�����"g`A4�q��An���"��#�&kSe��H�p~�z&���x��Ҭ�<4[Ɨ�z���>o�;np������S;'4�յ� +�E���G��nf�'�Q��2*E?x�i�C��VH�^���da���(Ҋ����� �v�4�?#]�G����o��f=,<}�LM�8lyś²~�O����=OU���L ��'�Fǁ��~O�<f ޔ'�&eB�Uc�fQIQ'��!G�?I�1��S���|�l�W��0&A�a��ڄ*�I8)0�J�����:w�% ���Z��3����-#�@F�~Kx_� ������A_����_B)� �����ʑ}� �l�Q����PM�=>��M��ɫOó@���ŗ4��[����8�^u#m7`���>^�-x����;�Ƅ�{�D�1�_)$D�q����u_��f�[�y�<�����9���!O�2��,(#�*$��W�?�"oI�Mֈ��p��ѼxѢ����x5#�S�����Ŭ�H��%��^Y�N��pFp$*���P9�y�3�4i�==�~� �z���Sr��Ԣ�X��2-����Hm$��&��)�2�r<���n�C)U��ݦwMuh�̡M��0��lb�P{���XUʀ8���[�D��7�w�<���'y�4�O� �)Τ�T�62,VG��>:Ī�n�k-�t����}��}7��0�0w?�g����F����:6k�6�s�E!�jj�$��NI�{�z G�M���c�w%o��T���Wa���d��?��@���Mұϳ`�s©�X q���y-��W��3�<D�PTE����~VW�^m\^����P[�ZH*LŠ}���.KȊy>f�O����"@� �hժ���g�k�l���|�N����XcשP��od>s��J�|�k2�j�M���s�3Ne��QI晕�z�Ma�T�`���h�;�֯+Ip7���>!~�;�n��A��>�}��ˣg��r���ྡྷ��:y�&�'r� ߂�'{���뗝��aW��b�=��`��.�0��N��F��Q�֏BkU�I%<��=���H�Ơ ?��bC�ko{ +{�>��]ff�<"ȶ�z��յ��t��7�S���סׇ"�D�E���`���bSg+k���<f��8�g�*#�ڧ�<�.�;8�Y��"�xе%���O�,qb��KD��ݖ�u�ߔ�������Q��W8x=Zk����������)��VS��h�rF���K5\�� +�ucS�(·���~c�ԾAm\��(�ԕ0UU�3+�BL��9�9E��72.�h��XZ��k��ٯWιO�CͺnS3q������ �e*F��H1̑Yc$�::�D�O�7��?=�,v[��:���Go�e�q0�~uչ�7t��lz�M3�GC=a�:l���>V�7Mk̚� +N�Q9�D�3�ؑk>yl3���U��s��u��Ң�-4�%���X�fxVm�z\�}�}���&��t�ݛ6�&7�[��e�Tv��?��zA�W��YK�f��@�?�w��K4fgjO`��@��2��c �7��G�������ۚ8�V��=|Rê?O�6�w�'oy�^U����΄#5_ž%�e� RDCc�$?}��YY��C5����ax�������g%��4�P\q���9;w�$t<���)��F U�-�,�9�������;P�� �����3�-f_���R�`}�ߨP��f#M,�ž�!PPl���������Fض�V��;�8��a�)��u�.kLAm#V���1�Mh���s�� eR��J�������������L������{�=�,�W9�,�*�a>W��/M��w�46�1�UV,YQQW�@n$�6��j�T)� �O�U��^�]y뇧�����>k���=|��Mļ��4��I�:ދ�.�?�PV�D����љ6�:�w�M��nǙ0�ZQ>�JAqIB,����A��~�$��G�o��� 1O7`�\Ԇ9�8�9j��\�y)f{)�V��"%�ʍ��,�:�G��"��w|܌�Ud��٤O/��7�#�/���H�Z���^�͈l���� ]L.*=�W����q�y9d���$jS��v���+�g3���&�CS����U�~@����geNhCT����z]p�cğ�Ԛ^+(Ҷ�ڰ�� @ E|YĊ�W�UW��x���\�|��=��B&����^���/�%�>k�y�|���;@�4>@� �����|���1\�v�,N�4��q$:��#������� �!��+;Y����V�H���҄&��,�Ȣ7H�Y�:��7T,�)�5����qFQ�:G7��^����4�v +\9���ej'� �>�DRMe8��j���c�c;&�6�|�v��&���Ƴb�� +�����I�4>�Hʃ�b���x��f9��Al�D�y�\���H���'���%��I�j��Hܼ��lD�*Ft���8�. �nl���g�h��H�8��yS���JKi�����̗���{Ԭ<�x35:��c�X��#+x��V#=�Z��i��4U嗢a���)ŝL)����3h��l�'�;�B%sn��G�����tʟs�E�t#��<UF��Ҩ5�1 �� i$��qڸ��7�i�~�bUU~�-S,R���_��q��ŊX!�ѣw����;>���'�7w�Ȩ{���jqïz�Ծ��|������H���54Xߴz�F�� z/lװ��u�-��Q�k��_#:���5�J�>���!k���CF�K������Rs�+o�!��|����)�(���x��*����wZ�Z9�J ��o}�t'�t�|�0l��H����~ ��t��ށ�c�x*M�}w�}gMك�|����ZnJ����#��n��X�L�$q���,��/X&Ύ���j�&��N ��1c�56��lH?�0Bt�(�f��(�Ս�d�4E#!SIQ̑O�̚�@e�����1A�o��~���w��6K��1��y��m��}'F}V,,|&Xk����j��^���E���!�f-Ĺ�?��M���w��I���]v���z/���@��Rn��9�seQ�m ��LQ"g6���_؉�hMiu�W~�B���j���s��}��^B�͌��dX�s�P��5/n�P�������뼭w�������LO: +��0��e*ǟ�;Q$�譺$u��]v\����f��9 �тb��GVJ$P���0���2;ߪ8���1W|u��{ +�h�mm���|H�0=X%>�Ǔ�&�����+��5�*��[�`k"87�e^����'��a�ay�������$�R�̌���s*:T�b�s�2F]t���ؘʆ��0%��w��hgrF���7�U��W�[�����������Z��1�*�l�3���������<?��C|�zt{�v���J[K�q�]l=SY��}��ݛˊ���Wn�Hd�)w���d��63g&���T� ���S��c�Y}2/4�/}�y��G�9Ɇp�T3Ў ��U�Ԧ��_�v��;"(w�0L��#b���r��j��W����E𭠟��}��2+w��J74t��?lЩ���Y4���%e�@�������: +��5->�\4���\��Ǜ�����w��x�A��)�8�'T%u���E+�i-"ք� �GX��8ox!�lb�I��S��츏y'�~�@��pipcXiY|K��� + �k���wE����!�i�v�'�߮�H�7�.���հ"���ԏ�l��v͐�Wz����g�b=��y[�w4�[+C�7[ma(Ů��%87�喇�[�6/c�B�t^��� ��xK/o��F���N��LW�M] ��e�4�wg��{]'��L�ٺ�s�������ˎ�6��C>~�q~q���`�R1� �8� �_<zu������bd��F+���x)_Vp�鈱�e{�O���4֠�.c��HQ�T�x�-'9����딠�$Y:� sq�tBΉ�k�v��0��Pa�V�1ʱ��������oW�~�\�Q?�p߁z�p�E��,P���E��'����m�b��� ��c���,#E-�w�Y�o1¿M��J:�-A +{XKZ��[N����Ҷv3S�$l/�n�,�Q��"����w"���8AO�`�[�qF+Gګ�T�рNV�eL�i?��|Pw��)���<�S@�������k�x��ne����a����g�y4����� +endstream +endobj +8903 0 obj +<< +/Type /FontDescriptor +/FontName /XRPSBE+CMMI7 +/Flags 4 +/FontBBox [-1 -250 1171 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 81 +/XHeight 431 +/CharSet (/M/T/W/arrowhookright/comma/f/i/k/mu/n/partialdiff/t/x) +/FontFile 8902 0 R +>> +endobj +8904 0 obj +<< +/Length1 1610 +/Length2 9070 +/Length3 0 +/Length 10131 +/Filter /FlateDecode +>> +stream +xڍ�T�[-���[�k\���KH�4�H7�4�%$8wwwMp �Gr�̝��_��Zͷ�vթ���0�jh�KZ��!rp�;P ���(�y8�@n,���o3��� +� �A� ry�ɀ\y�p@��������@�п�p'a�� jP��(�ag,i��������}��,�.!!�?��I{��TA.���� ;�6��x�W +fkaNNwww��3��J�� �u�hA�!Nn��j {�_�q`1�t���ٵ�.� '��`C`Ώ�0���p��� +@������ ��l�\\�N�w��DP؟`�w��<�0+�%�P�S�p�pa�`�� ;g�c<� ��?�T�Ij@� �ݞ3� ��������"��4�S��YH���!0g����@� �DZ{r�u��0�;��o` �YX�n��ՁSut�(��My4a�c�������<����#������^�����������`���j y����r��\�\!�����o������]��+(��f��_����c��������2}��f�����r�(�*(����}RRp�7;����� +�?|�;��w�ba��Lj��}�ӿJv�[�o࿓��e0��r �������?!��������-H���������C�<�&<����qT�{��_�>䯭U�X@]���z�I�գ�ٹx9��١�rP���l��f�����5;(�w��~\�����=.���q~�_.��㶹�����O�]�,���x�|�����������qC- � ���]C��=�,�NX�����)��� ��8�A��N�#!�'�$�4� 8��F\@n�����3������\{������p��>�r���t�r?B�?O���y���57�����`���q���^/���6���n�,��tg�A=J�4�f�y���#;i����>�\$���K�M����e���/�ͪg՞�����v�����>�#N'x_P����#d�'J��;� hPG>i�����f��a������HT '�Ҭ��^^��BB%�w����`ޯ��wJƔ�n�e���J�,�z��^�d�o�����#2@�-p�'�[ٗ�T2��ez���n����S ���J�[���$^V��Xo��Ҿp�ά#��8�U����=/1W�+�d�$�L��5�&n���QF>�}�6w0D�G��yxSNB�����Й/-Ŏ���ģ�7������:���JۄE�c߫{�Wڪ,,l#'E1�/2�4��Jg�wU03Ш"c5$����K,ѦIe�ON6�^���ޠ�Z8���V%�_8-�G�x}_�=r���T��B�}����; {�ji�~j�����4�`<�*�.4�y��W�$q[ѫ=�)?�-hRm-�v��C�L�^g�>��G�x>�4�û)TD�34E-Z�XPx&�I��ĩ�#�f��-k���Gٞ��'�1��+�t�L)�ذ��33��B�=���7�qi"W��6�j<Ôːh">�J�P�J�t~��g��U��`P5j�H� �\6�lƝ/�G�?g�S$��+�4��H�b�C;J�V�!��1-s�)܋ʤ�2��"+f҉�@Y����ɓ�]�(�ak5z�Y��A3���$�\o1��t�ơrQ�9z�_�y���Z���ǰ�2����a�T��Ў�S�AR���=C �;�s�����#�����t�aOi��W!� K���?$f���+N�bx�D�f�jF+6ܞ�<�����M�ل��s��{���V��h�p�d4U�TM��3������Y��&%���:���sYi��w�}QBo��V0��h�(l� Brԅ��-���s��� �)B^h0�d���y�i�I�x⳾�/�JT��ot_�5}���2]+d���s���2 x���{Ow��� ;a����jL�S� ��>�B�Y�w�(n�$�BTU�F��OA���CA�^䦥����H�r�Jm��K�Q40�uE�>�渴@"������G>�wظ���[�i���@yY�,��O�M�|<\��ѓG�JA���CZB{Ow��Z���g��Ye�4�[�;_Y��#�6b�br��&�ฏ�I�^����kc2�(��c&1�Σ�� ���l9��M������'�9�l#�lO�ò�{��V֝��ض>��{��5�ƴ��.J��!S:�{�̫�?3is8%�T��L�z�9�l��bxo��I� �����b���.���_��F�)��z���c}��yK-����M����8,23/�U�k��]%�,�+m+A�^�C��%�a�e��lW W��8D��/�{�r�}M�l���H�[Q;qT�p.����G��`��(H�����*C�xlr1�q��U��XD����3���S1TO�8�� +l������o��B��C���w�7GY�>?�!���C>���¨�Fr`5����oEE���0�he���W���GkM5��_#�)\/��3ڑ�V��6�k�����t��ڙB�P��b��m�aw�/qk��s5����jn� � �N��=��� +�Y#���<B�a�R��O�g%J�:��_��[{g]��Y"`^��h���`������' ��T!:�00����!$蛻ñ>����Y�9����@���1�N��BP�U�s�u�-�柖� �ٻ���9�I=�0�&75dLRr֠ G��e>���y�e�q�"��Č͎.s;[I�l� c�g,,1r*s����v�5��璬�D�v�������P���W�� �����og�x��r����x.J�9��_ ++���|d�����_��~�]6�bl�xQ�X�W-O��Nκڎ]�������ȿ5 +���Fe�T�g�/^z�q6[���G��{[9՛{���)$R���Z�V$�]n�����alG�#��q��w3|���"Mu�M���%e�\K�zVȅD#)��RP���*Y8��N =ھ�͏W~��->�ɵ×�(bT(䓷^�pL;�v{��8�.��BZ¬f�]�Y��k�.ʢE�����C��5L�E�Idv��+"Z�,�j~�!`${t�d�B8������$�87�\�]^�P +�#ݳV+~1n�L�a���_�tӞ�i£YC?ԡ��#oA��cUs��N,��|�r�q���}H��Ǻ�q����v�u��5 +���������u�ǯƳ��Yx��"ms�V���oDG�9x�I��{uKqp���d3�L�^[�@W�\�w�|ʌ�������5��O)��M�v�7JN� ����KY}����� �^�r�>����ce���M�@�f�`�_�`�6a��Ƅ���V�^����H��g�Μmjj3S�y,i��E���e�W��ﮉ��G�ix�'�䫗�F���I���%���Gj�Y�/3��0�F��.��LKl_���S +s��DeUH8#�!7�f�[ſҬ`��C��s�V�6���R��I�=��K;Qt���!"�_s�U�%oIÈ��E���7;4���5�`�cR_㚊"o�t��z",��9Lg�>Uq09Ǡt�d�#p`ӊ`b�ĸ�/�uCl�2ű]n�u +�0�F��U��N3g>��K��>i.��ց�o���褉�u|�ʖ�2�z����(LJAh9�>�� +�eL'�M�nEt'-U��[�ԯz\fQ�~���^�Ŋl\ڮg�L���w<1��� I��\�3�b9�(� +�g:ۯ��F1�����t빹\�Ỹ�k�5w����[xaI���~���f@�[���_ �5-�?JUxdnV��tt^���ksN� ѝ?�8糹�9Sd�}�n�=��t���-P��%̰hK��wM��)]g�Q���w��d�NhD(G��p9",�4�~T���z��@��:eV�V"�+R&���`��)��'���[�������\��Rh*�T�y������j���e +�ݱB�*v<��[���-��E��ؑ�;/�����?D����_�h�9�x���>H%��oʿBVs���z�Z�m��(.�D�"k��F$|�|<��������Z! +ȱe�������&���6�G��0�آO�P�+@�����$P�Ym�eX�&U����f��O��8M�(q�D�w��QB#�d?�� + �����g�����L͂��Ǩ+E{ z_r� +���Q�d��c�MX)j~ߟ! ��>�^+Q���5�䦲�bΛ~q��ĭTe�*ND����G1��>�����+r������� "�{7��1X�օ}�lN�i���Ͳ>���� +JD�ܔ��4�����H�T���/�P@h|�g�`a/{��9�c��u�<`�;�m�#P���>DU�x_x��;�:�rCD�Z�U����¹�E#��"/߱T����r���ia���0�F�t >.Ҡ]�'�l���+�⾨���H�A�����λ�I����*>��#�7��$�p�S�b� \ȧ�R�Z�d��M�X�� ϫ�"���r��p�/ SK-J�.xM�����.�垯bPF�V1��uz���w��?Pr��nk�� +�z��wR(�ʥ^���v�n+&��9�.���Ne�ZR�ILN+r���`�x���������43J�i�����g�o�"�7/���4�X�y%.�cu�i� +|���%2��p�����'�S����#muHM�\�/������# +:��d�0�K���O�Ӿ|S�4it���;�<s��� �UN�)J{�x��s�6*���S������ͺ�:P��q��=,�Ĥ�5���Ց0g癵��� +��v,QJ�� �\���IVHܫ��P$�b��B��O����)��~���-�����#��*�w6 3pَ`��,�w���;�4����ë�ZvC�������pJ��M&���,3f�+���hZ�����+�i)!`��Vup��(\�o�7`��=E$��Oy*$���:��&�C����;n ��,{�He��0$�x^'"U~إ����1ԅ��co��T��S�'��h��)F���Fc������N�����2��ˎ16�Y.3�� ��H�ʥŖS�S\���!�Tqx�>��fq}������A���:���]���BMax'v5�1����R�tRVY�;Gj(�<(v!�pӑ�k�m������ܷѧ +��rR�3�p#,�۫������CA.�V��ҍ��B�/Ȋ�� +��.��Q��d���L�-2�ڒ�8]��Oȋ�Qj�"�e�E� +H9���[p�;o��'m_)���"��f��9c����f�d�����\�c���(ȟ3�����L%�����Lo:R�˭��x�H�V�A�|�i Z\0(h��nCI���ٔ?�r, +T�����(�4�m��m'5 �����L�@��R�o���>*���Wv*�&�U���<`�@��R�f�k��w��#��a��O�6��L�����ŭ��z�o�lF{H���#i83��j�߄��ӑ&�Z�^���U�)m�Nd8:���� +*��>֙1챜��J�����|Cۘ�q3;?��X$/��Y͚ۿx�<��ʝ?�W36�ʘ�O��Z�Zz�y��d��\���V�4V��N�z'&�&V��K��cGze�D�8h�Ũ����̤u����@C�8�W��|;�D)�m�>h�Ho����g��Z��5��Ne������Jq�}�O���E� +Y�S�%�|�,/�^�9ͬ֒�xa�&�t������d�LA�}ȃ��y�Rؙ�ش)>��-HL��V��#��ߠ�?���{ %S�s*s͗��9�3!Ə�ȅ-�2�C�UV�����57�?g�:���#O����.��K��h���̽\�1S�$��W�S��'c���C�w74'�������Y;Q����<"QF���ilў�8Q�@}���}a��!�t����Q ��&V|uM��uV�{��.��� ��/I,�DK�9��Bs9�`�Sl���a=��������5c��"����n�oۼb���pl��o�'�-N�k�_�=k�����|���W�[~��A}�]w��ΏM*�3D����B�+��Lz'����ׂ3� jB�>K�v/BKۯ�E��J���<Sޘ=�����/1����DG�@����3Z�y�S��s��Ks֔[��,�ڱ��ŎO�x�Є~њ��]w�A����!�I(�T���|�[)7��}[�"g=��m� �*����(���.9�' +�*H/ѩ��������y����o�{�!�S�[��rQ�X +�sٝ����6��6i���=��$�q{�J���T��o݀�'@ģ0�y���j�(�|���i��f�7�Uu�w못��}r;�?�}������Q�Jb�s�����!]�9�9.+��TRw�6����G$��o��Z/�����䣸:�æ͞9 �\:��.:��|��%q|��Qq��ݴ�>.����`t�~�OW��ٗ�� �E�S$������t��0���C_��k���Ƀ��RLIMnz43����{V I��xQ7X+�l�{tv^"mv>[��I�-��L��\?�D�pKhb��](�NS���g�����d9\A���=~(L ��d�RXKy�#�;�ڱ& +�����em�k�o��d�ߖ�>�ЏM�[x�6{����~����<pzQ���y���ꁖ�[gU6�(�����MI��#7����lRY�,n p��O40f�_2m���[py.R"����w��$�C�_-T<���br�UO<��9�g��3\�dS:r$�8llB-c����&�6M}�Η�G��x1V=t�wn��S�V�8��El���GG�nAJ��'��Bw�t�z��3 xc�6���j�`�.���4ӎ�ŕS��R�5��͛o6i�~N��N�:�����MB)F�����{h_~$D~�@��:p4�4<���e�;^6���)�#"��K*|���2��r ���gěgo�y� ��F��X� +��yeyϊ�H.;�%tP_����P!ZiH0�/m���~B�6�o�����Rp���S��^\�W$�:b��92E%H}z+�e,���E���U�&O��۵�0�"��|Q�C��P�����U;����ϥ\��PJQ���㻐&c��/�<^����i-������V�{O��K��c���`&�����l*�\1������y�|��[�g�0���Y������`���خ�v�T�|v>?�t/�_���U��;L��C)����&4Bi��I{����Z�4PD�_$�-��ݲoPe��vx6�2���.bu�)�[7��G�o�ioJݙ�*�&�#)�� T �S���<�j�P�N,��"��!�А���:>�4���˶�|�]��z���Y��f�n���YE�<k��8t}I������u�6dH�JHɟ[�b��RE^������=�F�j�!�t��W���� ���r���\=�z&i�s)��R�ܦr����p���ұ�~'�WyO�G?����o)�P�|xg�F��JJ,�v��NA�E$��+me�y��J�Bn�F2E4�H}X�y���i�4{iN��(�}���$r����ӝq!̥ˈSO�����Fܛ�0�}CE��Ϋ��>"9&o��b��������¼��tK��M�[��}���m\��V������ D�]� +ۊ�i4����?�)�gU^އ+��u�NS��/QP|d�IT�b��y�vx�a5��2��o:��T�6���3��W�z6jއ�I�퍠�u�ܪ��a�2<��/U��KQM@�M�F�Լ��ū������fC�>YjK���2jS +ia�z���'�d�P��sn}N"�p{#�Q�E�K�{�0��z�P��~�}�����'���h�4�)W���7+���٭A=S��*öb?WX>_`S�f�Z��y�fk��n��I��~��I,c�%��k�7���+i��c]�ڋ(���ݻ��>�+$_��UFE��%I��W������=����7�1��5��}���{�%X4�W���q$���e>B��W�7T֔�<Um�������E Wͳ�I�}-7tN�W�g�7�-�����ZJd�����w��v> ��¼����?!랰�ةY���^[�W�9��o¨��\���~} ��Fa#�U�&��y�;?$�9n�v��U�u���ul��k���<�� +���ɢnĩaJLPU~In�@�����X�*��[���r�Zi%�hǴ�jj������'-f�CGr1�����f�a�j�s�kq�/��H�����xsn$>��躽g1�Ea#� ���)+g�/���eL\��1�O�2x��U]�E�-�ERk�'�f�����I5��G�k_��R f��ex�"{bH���վ�HaG�XXS`�o}6̹֨���D6� !������]�3�˱������k�F�Ȟ���ݤ�L�y2�Ǟ=��w�0T��қ��aey��M�'�K�C/�,�. �4h��X��U#��H�v`\K�1��I�����b\��Zx�#0�� UHT�5h�j���%� N��!3�+�:�d���&\[k�q�@ϴ��u�{Y&�����ʵm�IH1}��H���q�"\z�$T� +���['��_P���*M�ǜx:�������sA����犃s���5tk���V?�{?�Up�bYWlQ����@��"�� ��MM��]�9����#�˷�g����YH�V& +���1Lr��+:c��瓪�L�Ŝ��=�F���ު�<d�z�9�� +|+�#�2�wl=� +B��(O}�Mp9�q����z��e�%�y�O�C���dK���`����6�)���f1ܭ�v���M1�ؤV.��aÍyb\�{ ��7묳6����ZK f�^�6�X�eA�j�������V��i*m�UԔ��tc��S�v��5UYGT�j��X�t�o�����W���m1�U�5s'��y7�Qf1^�O��z�4A�}�`�� Z.�N}�Z��َ�x��63:���"<�� n��mb��O�I�}v���To�����{�������+I��Tle�: �#��8�d�pX�pI�a����]�\�4h�J/n�8�}�zoRm���u= +�;���h!u��-� +Ts5X�/f��8Ԕp!��yzλm�S���aF��Д�sؐ`�����}SA�UW�� +l�C��盨�1�X���?�K�l_'�+ZM��Վ�ˡ/� ^�s�)��UB9�.K4�谩���0�. ��� (k���n���٩�� +*��Z�d)v�e{d�#WN���3)W/w��O8*i�@������X?Y΄)�R-n�U�mu�͉�1P���ź�G%�� ���Ĵ&'&��풻&V��c��&�t��|��E�X��+J��2؋s`��j˟�*��$d��@{�{.N����(BSe����QUp���/�����Kؖ.];]�ef��X�o�Tu�=O�D�%���cܟm��!��\�8����������-]�MnHn˼6��H��g������`�R;F��,�v�k��x��Χ�[����&��W�P��uမ�{�n/�ٮpqP��V��@ՈP��}�ثPk���6a�`ʶ]�y5gp^�����}ߗ��y����(��b��ж����&LtM� �|�*+��&�Xso8fQ��2�D����;��,����iL(���Ѱ��j�����t��D�8)�ky����|�U�z���|�i�2���n�Q�ʋ�k�_�әX�*$�����NP��YL:��O�:e"��O� +�v�R�>�4�Y�o�Wg �f��v�6�t +endstream +endobj +8905 0 obj +<< +/Type /FontDescriptor +/FontName /DHMHKZ+CMMI9 +/Flags 4 +/FontBBox [-29 -250 1075 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 74 +/XHeight 431 +/CharSet (/A/I/J/a/b/c/f/i/m/mu/n/o/s/t/vector/x) +/FontFile 8904 0 R +>> +endobj +8906 0 obj +<< +/Length1 1797 +/Length2 12376 +/Length3 0 +/Length 13524 +/Filter /FlateDecode +>> +stream +xڍ�P�[�-���3����w`68$xw ��<���Npwy�s����z����{u���{����JS�M��� +(���q�s +d�^qq89y�99�Q��t@G�_n:=��;�,���7�%��'k y�Ss�=\<�.~a.aNN�7'���:� d-=A6�5v��3�B'���������?��Fk&��������)'���P����^N��th;[����P0��C .�^^^�N���nv�L��/�� +�t���~7P�t��; +@����_���e��8A�@��K���x9��� +�p��V�3���l�\�\������#���������lA�@���*;�� +����ttw~ɷ��9ZZ��Q�%@^J`���_��[��\ ��� ��-r��y���F��� �����O��~�ǟ7�����˰�ml7a��¡�z��d� +yq���B�|���B<��+��mm��^��������A������� `����������y��� ��B���!�+�����h���r�n o�1��������2}���3����?�CKJJ�Ј�ώ�Ƥ���~l���6n>N��o� �|��F��W��U�:����eL�S��_`�k9����Rw~Q-����M8�8�_~q�?K����?��f����$���������-�@�>�����j�/k��ߡ��?�V h�p�ߨ��e��v���.��h� ����O���-s������� +���j���Z֯_��I�_6�Gʁ��m~�7?�������_,>���.����1���yI����uvC�}�B\�+7K��������������pX�mq�h����R�?���qW��{�;�����$����ۿH_B��e�8@�2��q�h������2��/8�m�����t��2����a�r����(x_�tq�p��K���|�-�'�_��x^��o��b���0^ +�x�S/���ޗ�}�n������K��?V�E%�c�����@k��igk�P��Ж�/R�^l[?�&��Ә����Z=�0�����Wܮ���;�7�/%�)��k�5%j5��?�ǿ�jF�%�)ؗ��M�LƦ#���������2]��� �f�W�����҅���-��*~ԇ�q�h�&A�'�r�>NQ#@�ȑ�qN�1'/�&p>�<S*dz�D���r��N�.��p�����^����I�(��.��z7�R~BgM]d�b��ά�����k���I�2���n&V�|�3w����j6� T����J/�\���uH%����D7��l��w_��?��v��t��m`�G��g�n 2;/.f9{����L�T�R�0L�>P �u�3Y��2L�/�T���k����H�z��/��4&���D�mu{���4�9�_���{��I�=��EV8cn���˱Z"5��ɐR��� +v�JՄu���^�B^%�έ���H�`�[�|�#� +��8�|-�̓(��ݺ�>鐰.�+�����2i3�_�z�'^��1k:����^~jw�HW���)�ޘ�D��9ԑ��r����#v�1�^���Z�$K�P8�֭�K�����la'�@I�����kZ5n�в��b貶`i�[���>�H�j������BuΌoP �m��9V�|��j���}H�u������8_c��dٰ��%U;OV�9�\9����Al����y�((a�ZV-d�{�N�vX��(yG� V�nR��w)V&f�nM�"+���<�����i�[!W�[F�I� ���Nʦ�CQ�"�6�����(|�D��6� �z; + jCt���&6���&�\.U(�p56��Ө�2f;�\W���O(eH)}���B5 +M��h�h��Դ�i�yG�������<_R�שv��s����ϝ����co�E?Rpq��#�?�6�r:��v;���o���R�+���˗L�~b�s��}T�x��sAoMQ^�)�s1�ȍ"�<&�zcC����/��](xPA�"��fl"�ʇ�b��5�Ɋ�q�IS�6��'�q���RSޗ�U�=��Q$�+�egjʷj�9ˇb=��W���Mn:0n�\�3�y�Ůa�>���/���3�`%TP1�V�nE� �Y`ĈTa������K��WҤ�u��uW���H�j�N�? �%A"V��禳K���}w�<D�����F�����w�#!=��$?sF3szwz�س����+]�*I�LD�#�k&'v� �%1#]�`�}�����u��̂��W�#����ޔ���T�6����o6��8>�I�IV_�Rq&�0�u���=��� ���>֏ﵶ��m�\ڹ�4�P����͕v:�G ���@�M�A*���n�_�ˣ�����ϼ�K��'�Te+�����1$l2=�(=ث��N�mj��0Ҹ`U=�����AuE��}�j{N]�����+� +*���8�����,2��rW9l/;?:��i�q� +S�I1iK�rl�����dK�\t��lGe�i�5��#$P#EA�A� +���uN��ѥCȸi�c%��V��Y �wz"U{�,��gSm��?�,�ڬ���M�$������J��2��LJ�&}�SMmfT���q�֩���w��[d���2�e�J ܬ�t��4Y��Sܢv���5�8h���+����f��^��V͏컭�pc��7pED��? �"� {�/�r��u4�/=CrnQ�� .O�$!no��=N�B?X�8�� ]�����%m �yHW4-=�|�u��Ϳ|��1*�`.��Ʃ�Uc�r �[*B���!�����m���@ǩ�`��^�� +�MS�t���}3[���_�S���ɵ�O�o��qdt����q�j�"z��a�t*ej�d��֒W�����@�к�^a��B@�����<w��L0�o�$Ċ���i2�l_b��R7��¼�Ouٶ(5!Z%U�}�Ԭ�ؑ���2r��Fݙ� +�־�p�F��рgx���q�<���í�Z���P��[!��y�A*�'b�2hn��*��CE���WJ�p�4���q�w���Kʣ��#����1o��,��W�5�RRp�$!�'��YB��N��x�Y&�"�bR��M�c���b��'W9�����C��|�1E��z��W #���7ܱ#.�EA�s���9�sq�ַ���ct(��U+9ް}�i����}�8�\��#G���+��'���:o=�˺y챏Ԧ4�o�R?�x��@�H�~5�]��&-���`(S!�u�)����.�}��n2J�t΄H~��d�c��#�����"h�յB����C� +���Hў���n�P�RX��"!�:�Xt9�0�_y����]t�Z�?��5[��ǰC�ҖƵR���\k +�E���f�ب�@?p�VO*<�s���M�F)�`��eF��F���S�苺M;ɭ�[��s�!d���E�Q� w`X��Y�t���§�V5rD��Vr�<s�"H��4z�Lpec��fR�M��U�IE � +��U��[a�C��e7+0��z��0�z�����Oyh]����'*!�S��j�ġ��$b*ͭB��7�S�ڍ�����r��?�U�2d�\����<e0p{;���6'�*���"1�H�����f�Tԩ����,���δZ���!8�P��7EZ�,�ͅn��{���\?V]Yl���M��J�}���$�|䞌��s~6Z�eNo+�p�<q�ij����FE������#�Fb�kTpL��IF]�r �s�L��e3���9�I�*����Ϳ�Mf���{WJ=���^_�b��5�i�ʁw��/�%<'[�`��[.g�u@[�S O8��,�#��BDA�ؒG6���6}s� &����Yz�Wy"2e�GO*���o��I�hK+wG%r+����7���a9��{���" +�xX���<�|s��7k�&�e�7\)?����o�J]Ĺ������9`�"��/J��X1 �ƕ�É +�� A�h�L���#�|*�@uđ���:��T�^I�����t�����<g��p ���*������HDܘ� +�:ҷ��a��s�T�IG����d�}���Z���+�w0� J-�o�����N%g��en)X��Š$�6�� ��:<�*:8%*U�|���<l�/��M6AO�H�ŗ��b�w�'������U� (�I��ߵ\��I���N0�����+<�A�&f@3k�ބ�)W;H��y�} �c�T�ل��� +Sқ�Z���$K$[4Ε<��qT��J4�� ������t��IlF��r�h����kru�����hs��)����&;2�N��"Q4���8�\��T�����L��˖��)�F�U�Ѻ�v:/��tcT�)��{P�T��JH��[���U�v��(�3Ť熔LI���4�M��C�Z����l[�o�ݞ|,��j�� +%S�"Bp�d�p%c��PQa�|� K+c�$(7Y��;C���*:����p�w��^LA�f������y�Z9��%B�RE#�3����d;�)�i���Dކ�5���"}��3|K��%��Q>��dC�����ܲB��ǧeC�t�/ۚ*��>%�jD�i���m��JJ��`Q��BI +v������$����c��Uݷî�h3���:��^*Ŷ�( �g���J���(��w5?��Ư+7x�b��.Ҡ��!�b.0��Kj=�7~�q*�XA�9ò�6� /]�ud�/Gg}�Z5ƳX7�o�i,fF��~<��0��MJ�9�oW���jr/'4;����Ҏ�~�X���k������(s����B��g���,e�<��6�ڵ������%ө�w�7����m��m���YN�FX�c�9P#���^ۓ�(�x���j��p��i�oHvX��� ]���l;�����t�]���zC=�Q����D��r� �O�59hcFQr1.�v$��u�+����GO��^'v�a���9G�J"�D�<4��i���N����<��2o�渊�1!&Q�V���OPVy�WsU�#��e�\X�mK��i��M%��n-f��T�D�� +�z���6��\���yl��W�A�K��g�c��8�nX��e/��c��m(_�.� �h�l�q�xL�M���M��#BƓ�=���w��T�C��tTJ, h7����5B��a��H]{C�}��S�[��T?�*�[���S����ʮ��t�y5F��>� �<��)����~V��v�N�m�q# C�W~@�?��[��c6�Ozđ�3voay��Sԇi\�3�b�mH.;�Ë���%)Z��6�L�2�'�a��N��}~�V@�[o��c�zx��-�;��4N03�F���Q��yT��N�xÎ�!���}_�=챊�8������"%�h�{�{�D��`s����{���G���bu+�0������lgj��Ϻ�-�c�v{vÖ�1q��9c额�w>K ��0w�-0}vWϼܦq�Ŋ�y�3gf?F]U��5Yi���oЮF��z +���q�0M�RԿ�d�_�rpCպ{/nݷ��_)\$��d���?�<���|N��c�[�j��fV^��h�7��B"ۅ?vX@'����UFc)ێ��،�3�#v����E��Y�M�c���f��R5������L������۷�6z +�Ӭ,;��� +O�f %���p�W���1�oo�(�}CeK �h<�@���O�j���L����j-��3y��oր��z��S��MM�c�e�"�{t���vQm�a���4D�#�'ZT�&h~���|Ð��3�!y�6�L�%'�EIGn��{�5� +FW�����~Mc����g%�M�C�sN�=$\�`�}�@��Q�G���x>�"w�[� �6�҈�"δ~��G�i���[X>�6,��Qy,Vu�b\PI�I����3���Q�v �C�Y�c��gTDm�K�բ�L�����A�������c�g���0�iÏ�Q���YQ#����Ge�/��Q Q�_��|;&�NxZ�MP�g!�OO�k|���o�3�D���f�G1$���U��ԝ��WB5�L�Y���3����*bV� ��3����G:�ѝ��9��ؔϲ��+��\)`����~�-̺�b�<�Í�w�^�q�)l�Zď�Gt�E-�jqwFgk�L@Q�U�ݠ���}�]z�0:�u���R���ƍ,�-�rj��!�s;}����%F?m����l�r���W� +�3�y���[L�AH��XO�Ԏ�S$~e�X��g� +�?4�Ym�H��r\\J�C�Vh��Ⲩ�a2��� k�+��j�C��Eim>��_��K��;��������jY�4�*��FBX`�a�|�B(��e���f��N�V�i�[(ZNO�*"e�$Cj��������5t<�z��R�%aRa#�Y�/��Ҍ��*U`�"�Z�#�::>$w�=;��)������pS���F�GN-~�4�O���'Z(�Sn:Q����7۰�fk�����陵���)r�%�݁�(�����u�����ڦ�b���A��t�-Z:.Z�ꯌ?G^k8<�k����U�HR�̤�J��TV.�|��,M�5s�ok�4��X�|�~K㤿�a����>��X�} (�ZG۾��x�@�-a�9�NZVs����ihؗ��a�od��إ���#e��=�(�d�!�W��9V�Yѓ� ӝCw�����,N��r�n��ӃL`���KѰ�ds*ܔ�`⛉Eq�s�y���DV��"pC��1D#�k��a7�Ĺ>�Y+Ϙ2cgoQ%���8��p�ԭG��`�) )v>��>�����M�~��m��*L�%��.23vIy��!/�-�E^}xD�З�¢R���c�Ӓ��^��`��|���W�Z���A�X�rfu����`i}�q�Qq-%d�:� Â� +Z����7�y��̮�Q�]3�w%����͞��7�\��k�ͺT����D���l���u�#|���HN��D�,�<�� ���k{�d�lD�y��h��<�O��#��{ݓD�Cy����Sـ�{n�+]�W�,�����,K�忌ޅ������y�]@��23�T�\7^�]������$�-�y ��r����t���߭��V�J)S�z������3�o8�e<�����G�]({m>Ө�e�#�.�嗸2��Ѳ��f����1%�J��J}Zdf�MZ�I��;�2ٱ�י�|�� +#��hc{\�;�v0۱>���|�={��& 3pH���?iYH{ +�>��Nv���7ƤQi,�ZQ|��:�B���|=��d��}b� %T ���w�uil.�p��z�U)b�z ++ͪ<c��M{�����N��N&��Tq��"�u���X�*U�G����ccQ��sj����m��l��<�bD����آ��e��RJp�<��UH��CJf���7�^�bP�闙���5�'W�HN�Jd +A�g���%B ��(V��kg�T� _��;��,l��2Ya-�9*��$��_��n��{۳��@Ǫ�S +� N�x�QOܻ� ZF���1_DB�#��F�أ���H��<�\�Ϗ��J�ʫi���P#*��$��>�zl}g�[��Rb�h⬕xݧ�+��������5�'D���j?�^��������(�A�/��Ms�LR���s|�$d��m�5�I2R �E�C����[���nS4�[?���W��!*�ew�W�#��8i;�jzl�aM��vy#5��B��{�bP����X��Y�L]P� h�D:�Z�A���%��G�@��RU���y��T���R�?vm9�k��1�?L�,L����d��X���I�J1�>m: ��ˡ��jW��m�Ŀ5X���M��.+JM}��:�E�ꄩ�ڭ���ؼ��oORT �N���6��#�v��U�4=�T�#�߰�� �;�v1olR��.��e?Z<��E�?_��(�����O���%�����OJ��3�1āw���Z����B���}�ک��Ѓة�+��C!�U��~3�����<�m����6��w���j�҇Q��t���P�3�����<֫�P��.���<��{�S!I��2�"7��j����{ɕ�p���n�N���}���O ��V���<W��7�N|�(��D����� +K�R³G��D����3{��?��>։5{�U��[�S��/�pd��?�Y��n��lZ�P!�N�B��]lTf��|����[���<�6#fO{>q&����"���@�������������x��M��So5r,pj�6A��d����dk�^Y��]�8��䵖�������5|���5b��a2]Tƚ[o�b5�LI�V���O�m��2�it��Fj�_�c�� Ķ�N�k�ɡj��氜�N��Y&�Ĵ}���t�t�5�y�l$_?���~YȅE%ʢCś�Z�(��&a�bi�x�m��Z���F������bJS�%Ϧ�Yf弩��5�_�Ѻ?���%З���Ku���q��=����<�g>mU"o�>��B�A���U�1�*��M��*�( � U��IRӴ";�ӚO�-Wo&��P��/�������~u[[�Y��@�� �77���<wEy����od��M����mmt�F� �!�,t}�����F7�vv?*눗+(GY+�{ӦUm*�_�VxƠ�Qܼ۰��:�U����x'F�g9 Lڴ�7(�;��1��d2}�l�-�]H"Z:};C��}e&Z� cd +�b t�+�Yq� z�y}�� wd�\(U��i�-���&��}3:=2}U�'<3p��~�H�x�ؐ{��l����3���1���Pz�nߍD��f�r��V�P�˳�sE�<I��{��Ϻ��pp�]��S�Qh��]��QDž~u&���9&�`��?Z6d�wyO����l��S���Lc6=_���J�G�I�,R���^�DžƯ}�P�T_�0�,�ѧ�Ѭ��T��3K����@T;��� +m����M&��JQ�(.�!�n¤���T�9�����%��%�c3������g��_�h��4�D����d89u�'v�]�[.`b$��:~�K0���s����f�v�GȋTr2�EŨ��7��4��W�B��m,(G��J�o�3��9�'����x߅ڶ�T�W���54��]��L�G�����Ox6�?�7�l,�^g�n�|��AlݛkG�n�^�X�;,���i9U~j[W.������_����?٘z�$⑧��~�IJQ��,��!ʈD;I[����k�0�����&s�S����R���p�T�4�H�4'[�&�T�k*��W�V�ߤk����j�F���A6�w��_����o�e���Q f �\0U�6�F�w���X%LLc幫%q���́~v#�JA-�T.k�M��'(p�9�W��_��Έ KA)�k�x�� �8��U��u���3�F��Ϊ�KџZAf]f�aԉ��H�Z� +Zp�f�"jk����D +��[����B��`us��2��<3����r�����4���$nD4��������A����O0�T�^T�4jVք��tXI�gK����؇OE�;�=�6��)O-�65���T�y�mL�F]��=[&���i12���Wa��˭*��s_'e��#��!ȯ��ڱp��fͶs�6D�p��?j��Y#6#����+���2�N �m�qۺb;V3���[���7 �3Ҳ�`iqN,�x�O�/�^��{���r��k{��B8�T��'x��Gr��Џ����Xqo�&y-�}��o�2��q>c?*�L���D !G���#��Y'�� �L�� /�ݚ��V��7 +�We��(���+1J�O�[���﹕3<3������B��~1Sވ��!�9_zw��Φmڵf:��d��ә�^�+��J;�� �b�Q���Sh���EVB�2rL��KRݲ?Cp5�n�������3<�?��`�=zi-`dG<����4�6�t3���"kz��f0�P0,y�(\�T>��M���K +��5�n����o�We`O"aZ���/8s� 4��������E,(�P,�?'�`-|�D0Pq�gf��_pE,�IqZ8�n�$ҕ���K Ͱ3�GxDK����"�u9�F=����|ބ,���,�.<����i�c �V-Xަ��,����<1��텏�ȹ�{�]�ܤd{���w�|9nv49�6M��y�fx�~~�Lw+w�l�<')����̜ +���)��/�}���H6��[^ykV}�F: /y������v�x��h����v���f]�.��ܺ���;�;�����y�ĉ-���Z�������5�A�Q=.� �@@l��Y�;�7W����$��Ӷ�n����H��p��}RͿ����C>Z�6r�bMўO?�dv��I������S�of���yV-3v�W~��46�`R��{%�QA��A��!���T"<�Y��[�0t23�Z�^W:�����{O��S��B$ֳL����*���1�,����B(���d b~-\g��ozy�����[)�F)�*�]$�r��ʉ�ǯ���)C�����כ�v�Ҿ�nvк��+`�L�;W +��A)YD��6���/S'�#Ek�lfQ�m�2Y�Y֙��v��D(c>-�c:z��c-���L�$��� +�p�0�����:���S��\�<tM;���Ox��OUY��s��i$�|��n�ف�k�2�7�E�����q:� 8���7���]9�]*�v K#tӜ� <�jf<�J�5��_���ڝ��6�@Ĉd�"����;��g������L9Q�J.�o{��$�����A��g�#��O�(\Y;2�)��MNbPvk�%��d�B�Q��t}���>�h���f|�� �k���O�<�vYy��K@͌��K���Le��\ISi~�۲��Ys��L�m�+F�����e�]���V��:�p�L[Ҿ�i`� +rW�g/3�����Z�8~v�\����`6�y��ZCb\�[��"�ܲ�� �+�fw�]ϟ%�,A��(}� +�p~�ҫ��s9�+���m���Ց�~!�A{�!�+�Cw!4���jJ�������XbHʺn�h�k��,E�<��勵8 r��z4 sbh��D��z��������Ex3?.8�>�~k4{��]4t�$�I���1�r�Q�u=����_b���s��q�����&˷a���j���U?C��������^Xi������� +��d@��W؎ڵ +�;�� /xIĘ��+x��������Mץ�p��|_��%�ۺL����b|@/��)��qCt �w�n����@��^&Z�p:�/�g��V�&i]t1���ʃ� +�2U�Ye/ɲ���|�H����+ +$̦��,D�ڒ?���~1 �ľ�Y��[%� +��F�N3#���7� ��hΤW�a�\{\�PG�3��HW���OY�vg������i�Bd�0&��p�4E���Lj-Bw����7��\�l1#��b;������<��0��s���0\��)Η����mS-e�y6���v��G1>ݵ��PFЕ=]�����h7i_s� +�.>������W���g��7�4�b��VlK�z��2��W��V����7U������:4�.�&`���=Sl�K�GGH_g����Y���RbT@OV��ko2U�%D�-z����e����AXb�ۭC��� w{#J��xۚ�-�;���'� �Q";#��>7�9�Z��y,2V1����"���[p9 ���{���Y[�(BKc+>XGӛm��'��%֥�h��7�0V�r�l\S�' �jR���->)�߅bT�dֿ�\���C�0��6�$^�[�p�X� \&�����rc�8%ֲ�:=��=���P��^ߚk��]��!����;�X¾�2ExV3�I�.����c�J�U��b�L�kA�\VT�*ó�]��;5�k��ؚw����({�����nL�ͣ|gvm�O?��{h��q=��f��x�nUF�ً�Ԛi�_`)�y��_�4����>I�!dq_ӌ�����)g`0����/���J!U�}-�T�Y�i�͌\��_h�Qx�3Z�I����kK��l��=�����a���D4.� ���CHM��>�%�l�磋������T���ƳY��� �[��N:G����A�Q���p#�T������c��1M0u����0�Il�r��?�τ��)�È�u|ZUنEF��;�U�eqBws*G�(�| +=ݟ/��c +Ǻ������g�8������u�K{}ݰ�0I���T�y��J���N?-�D&�j�_��38�V���F�e>"}+���&���P+xpa}�������{�{a���]9�J�����������u���6"�d��Xb��aH����4��b�J�g n�M��f�_� ����y���A���]F���ƅ+�/Z��W��8S�=0DKm��# Ro�5�k�!B�y�6D<�Q���^�AT��ι��+�+=D���"���_�%S#R4�p\J�Q�If�WJ�V�Rv��3�hX�����l*��CuH_)�e�7����4�N�^�;�z9�Aw����fT��oE���a-��{�L���i��VI)���2�,�����k �T�)��C����d�}��7�j�R���sx�O���Š�P�9�*��ԏ�0��!���dC�s _�M��VO��� �Ws0 �~�����M�����ぱ_���S9��GYӹ�ȷ.廄�^�kLL�|���t��JZ ?����xI���H���(A,=�,��=�:;�g��]h�"M�y�:��G�kH��Q3����H�JW+��5�ơeC������"^��N���Q =�uG��+i�BT� Nf:̢�W�v�Q��{S���p,4����p�'�z�g֓3Z�_���6��f�ۛ��>&ra)'&(����4�\b�u�7BR�N���UpO7���l'�\�����\����i�j�B-�%������7�TA|3 �����o��C�b2.�r��� �+�+Δ+w��T����M�7�:�8�_����iA�4(�TǸ�6�P]lM��|5U����C�aw⨗Ⱥ�LzL+$�U�$����B�R� +endstream +endobj +8907 0 obj +<< +/Type /FontDescriptor +/FontName /QAATYZ+CMR10 +/Flags 4 +/FontBBox [-40 -250 1009 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 69 +/XHeight 431 +/CharSet (/bracketleft/bracketright/c/e/eight/equal/five/four/g/i/l/n/nine/o/one/p/parenleft/parenright/plus/s/seven/six/three/two/x/zero) +/FontFile 8906 0 R +>> +endobj +8908 0 obj +<< +/Length1 1373 +/Length2 6101 +/Length3 0 +/Length 7047 +/Filter /FlateDecode +>> +stream +xڍvT��.!R��C���ҍtH#���3�� ��t��H�4ҍt +�!%J+]����s��ֽܻk֚yw����yװ3��)�!l�*8�O�( x��/����@!BvvC(������솄"������ B�uJ �Mh�;�����b�@ @���#�M�����8I�����u���U�up�r%$�x��``7�-�� `��-�`����Q��H�% A�\$<==�A0$?��A��� EA��`$��l�=.� �3?!;�E��6@أ<An`�Z��Ñ��w�� �� 0P�踀�9k�����j�����N�w��DP��`��-��{C��{�3���ŏ�B�@p�ߎ g$��A�A6h�?���* +z�z���CںA]PH~$�����Ӡ/Yn����($�����n`[��{�Y�� ���l�������E�uu�+��V�G��FD�@���8�� +�{�B~'7�v�1 +�V����uA����#����`��/����������O�PP`�El�P8����`��d��ݠ^�3 x����ϿOhl�!����q��\}5#5u�?�ۤ����� |B"@4V���b��?�肠w�O�:����Y�-��a�����71�����F,����E���/��o�� ����w�����wg�?V����� +�A�������Bc_�f���]�����6���o�: +�����ߗE�@��v�P�-�/���7�M0g(��@B?(���eC��� �h �x�c�I�ϒ�p[��ov ��@nn oB�ђ�WMC;����:��`�p#���G����[�GF�@y"���(d��憦� �������`�ؖpna+�X�r^���ɷ1*�}�i7��[��%)^2wEf�۩B�@��2���kߝ�xaM�z�W~�����7� g?Q����(��0��3���w��g�݈ٮ����.N��Cy�٭�U�S�0�rzC�[��&ѯ� �h�(��I�w6o�hYpQ|��)~zݝ<9�L�v���F<��n�p���P�Ŕ�R������Δ���bx��Wq3E�fƷ(�w֫Q:��[��E>2�M��P�W���U�sm�_������_��멬�Xt�U4[��DU ;�7��������N��w��Qb�����E ����� �|�����)�Z���+/��{���0 +ן�@�Oܽ�0�������yݣ�4F�BA�伛����8���磣�Q�C��Q�%�0u_��� ���"z���Y�<lu��&g�G:pk����5Q?:���FQQa�nTxu��+��J������b⤑�DI��Fte�wh�a���y- +kH�R�CN��9��?x;9ڏ�(g �~%�~ׂ���+H�{.ev��b?(�:�zy���L�W�l]�@:c�sU�Y?��]r�o��/���pp +4����O��6Ȳ��/V|�g�9�7"{mF^�}}���9!D���S:�X7���6����O���D�I3F�SY�)�g)U���IL�<ߙ��$���ZWSw8�˼oTУ?=~7�d�p�|��zv���6���U�_�����o�<N;],-x�ɝ�ӎk5� +Z���S������,6o�����ț��������tR'��,��ɡ)�;CRB �Sx*�V����N�2����ڸ�.��>��\�Kg쮭�9��"�/!x�x�Z2%�:R +��4V�ME���=�Smi-��K�dc��`��0��C̑R5�|JO��Ndr}��s/�)߀4c�F�q�LMB��� ��`�roҡ��[� +�T������k5!��w�FNxV�fy8��ZUI<x�Wp[���%M����8���J�[t���_�kf��uيe���e��7$���l�����!��u����(G�����=:� =�2�$ֳK-}6-,�$���yd�/�K�i�5�d8}�e�/h������{2���{ڢF��/"�/Y��xgY�cb2��D��0���F`�d��,������2��yUiS][J%���]�{E�j3i��d��m�Do-ݜ2df�Zq��%vr�`�R��J!�t�mMx-p���1����&��=m2��O.� +�_�ɯ�W�TD��~�Iq,��!���M�{6-8R�j�ޖR��\���ܐ��<��\C��3�4�t�oHy��@)ܘu�>p��N5���b[%|�W5�4��� ����C�:λ��� +�O�\��%�F�મ��0b}'�]c�;�+[�?=)�y��ji�o�[�/�n��!�]�7��n�=��b;I�� ,��wiY�ޘ����vzD�a�jrW�19��Òi�=v>��P>���D����{y��;�z;�S��Y� �9�.X�=��z��ܢ�2 ��_h) �����˸��H=a$�>N����3+a +��e#���Q��X1w�_4�����X�Z���ƹ�F�j�D�?�{����t�yR����������v��nk#A�m��#+bcu���'�^gM(iT������UH�i��p�T�* +��7��^���E@]rS���rݵ��7��CYe��*0n�K�;�%d?]��y�S2����G�彚'4����Y>ء2!QGbɼ �.�H�Di쯡>���e8K��=�)����s�XW�2\��-�70b�Ծ��uWM����������Ҳ�Y�1OE�Ȋ̘���P�b �����i�7�,[i�n���2�I�l3�(�=���va��P�@�`R�ܕ�4V�Uz�{M������a��_V�����<[��IB�x]e#��h�:��@<!��ֆ&q��5�����+�����s-�Xr�/�p +M��ת��_��"�`L�RkF��Ϩ�u�N����^ܸ��~��W���,�Ӽv`u� fXuOݠ� �G�K]]b^M����\�1��-��%�����qw��s!w��ʼ�t{��Qo"��� ����w(I&wRc��e����� +B�_��1��+���[�Od��3i�P ��>f̞y6�V��I�%�ݡ���پ�5\�:��qB>^ބ�Sh<����:�Me*/hH��&��75uG��d�#��v|�T(�l�ŋ�I�Q�����b��i��L�Q�r�Lڟ��<�Գ�:�{�Qx��9y�n���� }_=�A����������'�i���~����sH���X�=�#���yU�ľ��� �/�� +���Ԧ�7ꫝ~E%9,�ܻA Ӊ���`X�����#��I/e�#�<�a��rwr��P �qc� �*��*6"�<��uo���e_;!�ͱQV���Ğ��O�}͛X��_���{O*��`��Ҥ�6wb%L��p#&�l�����P�iXYϫ]�"X��j�W�a_�p�>qF\�_�:�y���]�X�)Q��$9I��|��j�X���/J}0+?�3����(9���k�����0 +"�~�'+e�2-�O�~cS�����S�4�)��ג�,<�F�5���5+��l+<f湲ݔ��0�|�)8(��9P�O:X�+.N��4Z6N�lK�m&44��ٱP��Ŵh��l���Ӱ���s�I(��N�q���������/ࣺ����)JW,< ��l��m�4��m�V���'���jN�����qjT��9���k���Ǯ�TM�����!ܧȱ<|t܄�0��&��pg ǟ�M�.��L����V��Rl+��>M��d�'����V� +?,*F������-�>W����٢��~Qt;���*0te�� +W�.p֟��.��\�V +�*���h<X���DEF\�Pʏr��sT�Z�k����q�#�n)�fI ǻ����zм�3��� �4�e5߁���i���m���m��|.UAz�����Ɩ�{2r���>)D���{�S5Z8&h������"G̉էBd3��|lI��Ϟ�O-Ѽ��[���'�R��?��5�AX&���4M���Z�<�5���tp�ʺ�lD��4�ʂ�ލo��q����2V?̐.j��o��XZ5mدN�(�8�eu~)<�fx�$ݥ�\���z?Y���8�rT�\�������NrEq����X���6���]@�M_���k"�̧z9嬯0�K4���yx�?��8{�H��sJ:�]��&����$mP�/�=?�����C,cbڭ'�v�1�'䎎�;F_-3 �h�.��E�]��rR�k.l龝]�����yi��O)������X��J� (�_ح +Z�9L�ó����U@�"���� �5:�r�b�jM�'#�7��tk���E*�}ڪ�M���Ű���Ir�d�R�+�FGvwJ���ާjج�Rw�϶�@J?{j��fE�o�>C/��p B�t�v�s���P�p�EK�b��f>fb�0D�U7�g� +�?���e�1�B��D��yw�����a˟l_� ��kĦUM+I�p����_D!%�\Pq�V��OqT���{���t��o�]S{s��Q�^�����,0x=V�ezsw�=���E������CMr�����:��a5d8Ě�����;lu�Μ����pR��o�N���]�q��Kj�r�ג�t|��R%Cul8c�ڹ�~�m8�i"�d��Q�ݧR�G���2���x��M�٤nf�x~�_�lt������w�{G�}����t��<��P�I�5eq���+�@��\�r�b-�Y٬$P�&���]�V���Z���%�s�������:tW�����8]��i +;-S���[C#�o��t��t��V����.�v�؋*��°�֘<�&�s�JΨ���J�T/�l��#>=�9\�S�8m�.V597�n��?�5��9�w�� �rvfN�̠��,��w+]]�[�̫*(G c�wiM�=��2۾�L\�ʢk��]�:�ɋ�<w�M�pp�3��J� \�x��� AW�I�}�ݻ��D��� ���0�0{U���:�m�e-���aD� +���}Gӻ���P�d!�/h7p:�!z���P{t�������Z�����Ԯ�O%{��u�#��l�>����I�n�Zx�~i��G�� ���rʔ�d˵?edPj��PN�W�y�L�1�C���65q�?R�Y噵��"K�!��"��j<����p)��gvjHK�S��Q��`�l�K8n��G��ѯE �+7�?+B3��t�a'@���O� �}X�!eG�8MaE�����=%-���^fW�O��J@{�Ż���G�e�w$-�-�Ch⅏���:,�\�(T�a��vI��vJ�����# N�<nSg�yX��h�,��x)l��Q��\��w���U�<�t���x����U�ob�q"=�"�nj�V����(��W@q:-�D��Z�ØM�5��9S��>���n��;��b�(ۗ;aN��otA��p��Gn�&ב�EU%���g�納���O���z�.�ܪ�BN@ -�)��g�jq��rh;7�T���°b�er��&k��+ �{��϶Bu���D߂f�Ӂ@5+��?Y��{�p�������_���x蔩s�v�D���d�1�;*�T���1_��z���Ɂf,7���~]���-g��v�����=9n9Zs�b��yU��r�2u�mb �?Ύ13ŋ@���3*���ľ��I�ޫgd�Q=�]���8� �#�|��)�5�qp��.��_㫍/%�CxqW�u��:@�e��ɸ�[t�kY�|�m�h���e�nAM�\�<8~��6�s�e'�&w6��r���td����J�T��9>�Q/��tq����?&��;]lj�hS��7������xFy�wT�����\����q8F�����D��ȥC�N�X�X��= +@կ��6�ѵIco���M���`R��J�e�a�復�L��f�)�R7���^��������鍕�iR�]Jczc{q��S4��qZ��k>ͦ* �����Mv}7�yp�c���jS���]�gq��)���loקD��]�m��'�T��-vf��_ƭL +�c����0=�꾚��� Mg-cI'���C���QL��k�/L��Vz�����>�/d�M���~��صߗÚ�~���l��E�OY�-�mww���2�� +����'Υټ���W(� +`1L�q�|~姰���y+�t�-z����M��/�'�I�$R:��6}Qu8�kŵ����+��)��� +�3��2�kc�:�b��rm/��¡��S�I��R��ӽIWh����*w��g�~�\+NG��T���k��*�D����c3��{�'P�G�1KTq���;�� g��{��+;4�b��W�ܕ���AV����4���/g�H)K6 +����bne�(��'F�_�N����y��'�^LQ1�:���X�a:�ŀL �y��3A���,IRl�i]��Q~I�2?O���]QjzR��H�Wüuj4Y"����1�і�g����8��Ob��ċ���r%�TT��\>�L�d ,6��TیPȲ4:V�d?��50>�dN��� +��C�X�z���Z�D���!{��횣���a�䷧|���jپ��f�]q��1��]���ј�E��!�Z�K�xL��e��f(��D������c��'�s� �X��-��|#�e�f%-4273fk�a�>i|Κ�����{¼%k�(J�8Z[���#$:�g���}�A���K�}���U�KN����SK�S^��UT�Uc��'�q�.f�H~��Řcؚ-�r���S^R�m�I��5���ޭ +�����0���F)~m��L�W!=8U��om��>�r+���Z���I2'i<��̅ܙf&iVZH�d�^��.l┼~�6V�k})�s.�$�p�z���/��%y�[��#�KI�Q6J���T�o�� �bb��|� +endstream +endobj +8909 0 obj +<< +/Type /FontDescriptor +/FontName /RHUHOI+CMR5 +/Flags 4 +/FontBBox [-10 -250 1304 750] +/Ascent 694 +/CapHeight 680 +/Descent -194 +/ItalicAngle 0 +/StemV 89 +/XHeight 431 +/CharSet (/one/two) +/FontFile 8908 0 R +>> +endobj +8910 0 obj +<< +/Length1 1453 +/Length2 6638 +/Length3 0 +/Length 7630 +/Filter /FlateDecode +>> +stream +xڍwTTm�.�ҡ�C���%94J�0���0�- Ғ"�HI*�HII4"H�������w�Z笽���s���q��Z�ib.��t�� hqQ�@��L�I��@@����R��`(8���(�ô h�������K�e�e@ �$��"��Ђ���F��}$�C�DzaQpW74��~��@\^^V��9@���C!���ĝ�x�̑P8���~%74�KAL���_��#�D����h7����9~�0�x�~'&JX��}���H�?��8����"�a(��l���!��C�Q6�� ��4�qQ�������#8�1 +EzzAX8�����:��hZ�A8�R�x� q�?��S�8��n +����+;( +����{��P�\��ΚHOO�C�+>-8 +�U+�����?"����pv�������%�����KQ������i$+'�y`���/�X/�o��/p����Kw��>�>?����o��w���g8 p����x��0�?{\�Qp��#�8�������-g$�����抙ik���~'�����D$�A�qqyI�,n�o/&�_Q����C� ���U�����>�_�!���/c$��0��?�I������7�����������������o)�/��!�x�=��q|�E�o��M��U�a������o���u�����сc`�&p4��U�������� }�.��8�_2�TA�q�����E0����Hm��k�$�e� +�������������`��(�ƙ�p�\�(�_����ᮥ_��= 慻0�?��_�^� �)�vC��1Dž)��G�c(����� +���C�&.������R�N!���wk#[T�_�Yy�<\�~, 8�j�=�&M��_B}WO�}u��6��������z�-���~�9$������e�)�R�{{������jйw��=w�f�}`����I��n]L�۲������*ʳ�q��x�{%��N9�,\$h�d�t{��G�'�rG.9���(��$�m�%O&^XH�t��ڰ� <�� �X��<��h 5�1��6��3M�c�?`���j��^��?+�!�^\�R�������y�%��7�f'ap +��![K�b��sՉ��ӝ��ձ�w"��*Ԓ%hE]�x�E�}�7�?����W>��U�ȷ�,�~\�8�����1v]����R����+����m�T�v���j/P������ua����4��(���6Z��-�`w]��O���X��#ç��iYQI�lr��O�%LI�6�^] :����˭b���?���Xjw��ނ�cgX�������+&�w�d�4������mc�+>��#,Y�Y<o�_��p��Y?ܫʜ_m��x|�?�ƴ��ꮋ�(l�#B�x���MWw�gk�R��UJ��|_�%G\ޅ/�ΝM���"����n� D黚㤨S&�o�s� h�A���U��rEp�y�`����20�yt��Պ�I7��� ��G�Vl���]s�m:η������H�rsCC'sýӣ�BH���j�/�_��w�3�K;�FzN���+V�J���o4�'=��ugdp��|q�i�6�1�yO�u$ �� �݁����.�7%>b��){'U�E���D��vh� y�N�o���X{4{"�j�r.KVրJ<=�AphrU��n�M�IT�=�54w���Pr�̇�imũ��Q�ւ*��c�t�B�[3օ�Ƈ��Q�{#�ҕ�P8�.���+h������lZmVŞ����,���Z䜬�C]�����«!�����6I��;�Q��!���\Oi��~�������5��Ğ[��A�8`�:L�*Jn�ڳ9�L.%�12�%Ie:��x�Cao��L1 +]�5Ò�*d�\�Io����9�ǿ,u���@v�\\e$���H�� +�'�{�fx�b`6�^f\0�.��|h�9:k@7'V�ŕq�V�h�v�� +ͧ3p�.����jx�T�#�������/u��<7�I�,�hܚ�&js�Xy�����I�:��K:o�\"���s��US���R�o�F澎?$IތPJx)� ��L�z��ǐ�"o��$��6@�b���oG(���7�if�����m=�ɘxG��1l�}���}��9�GhY0��R$��c�Ʈ���z��������"�v�H���lJ��l���1�sq�� +���n���U�m6}��y���8�����;C��|0��.�7���81����\>�'S�Ͻfj�����2�r�!߁YO�ebp���^K��)�Q�_��o����yR�-SC�rE�U�����M��V������bfi͡A0坹a�2��'|�����z��#�����3���U�GW&׃sNi�;�oq�~���#Jt<��#r����4�\�+��$D��ė�ߕ%m���v���֊[�O�� @Wd^�L���%U����ƾ�^FK�o�W"����7�⭬���c~Ԥ�<�UC�rЯ.n*�.��$�PQsP��h�����j�h/j��J^ȗ^��L��N���f���L^T�誛a�������U�O�\|�`����\��%��y�NW+M/�J�6`�������~�Ze���l���7�"�{�ni�hgߓ>ձ���>B�]r&c&%���X�4�.Ґ�y� ���8Y�$d�x,,�K�O;&3؞�j��x���:�M�x������ׅe�����z�Pn�J���B2����_ʯ��u$�0�J�U��(����f�4[OzM��~J/9� 9�b���S���a�6��,�$j")8����1��Oz���Z���P� ����>�i��9�_���.p־�F&��4�8�Ӯ�h�p��ڻy˵o��[����=Y�$�0�)7�9m��̵h�J7--Y&M��x���T��BD"�&�ػ�Lݺ'螤��m�� 'ZN���1�#a�A�V;�����,J�l/.����滟j�}ݕ�WS1 fw���oK�IPp���kކ'hY��^7��^b8��lLOy��W�4�;�9��c�喣�6醒����%�o��� ��{���_UA}�u�����2���/UFٙ��p�%V���Q������x���&1����$B�?����C� ƃ��鼭(��E�&�ק�-�~9���W9kԟ�7_^��&�ٞ�2�_Y�R7\սG���]�ѱ� �`�i;\��t5���>��M3����Z���5P�u�*ed��Yݏ^���re{x-��5�ӯ +K4�ʌ�7_\x�-?ކq����4�a�_Oߖ�]�V^����9��`u>1���f1���x�E���Vb7�K��-[��ˍ��H|~�|��}�ϭz���{R��`����];���f`����S�r���j�o�m�C���� �-^��X�,﹪�'/��uz� �S����)&X��э������^]2�Kc�ԆF��=����)�(�o�~Zߚ]>�3��]�uHt�'�X�93�c%3���C��F�nw�k�`5t� o_�k�/d�E��J\�[>�&���U������U���>+�&�Ƥ�g%���(xtlT��_Q�ɒ}O$&$wP�a���e%Z��i�~���ߚ���H��Y�0���F\�������Fg�+��e?�����Z��� h�.�F�&�[����/��3�T85��'��8�y.̢�(�a�"�=5��s}��5a�w�P?���5�s���-�O���J������S�f;�sa +��<��V��n��Qmw��(Ƕ��b�(!�>�̨��`i����p`�x�@�@���}�j8.̨em�0t�ӄǪ����ِ.sc�Nus��������V�` �H�d# +`v��V�66����A��ϯ�Ȗ�c��c����K,>M[� ���휑q��s��|`q�Q�Cp�]\��1錓P5�58�?_�gl�{TX�����w��/SlS�6.5n�p�`[�Y�&�b�_��^��r�JE �Yx�$Y�|�1�P����>�ɓ�<|U��_,~44^,�p5�=tz,"e�z�e5����c�Jy����O6 ���˕g��|lr��!Mm����)c�>�/�ˡ����U�ܐ<��r���9�¬�vh� +$`�m-�p9�g�אۙ��^un4�g��t�#��M��*�<��V�2�F߷���Yy��nܷ�E#����K~M�B՛��wї!xZ��,��Ӊ���Xm��> ^��XBmd�Dc�@��r}c&M.��@M?���TR�q)u���M�j��߃�D���n;��!�7(�֙�u�A���U�Ţ�o�����<������ax�+V��<n�A����^RJ��w�1T��G^q֮"�INE�^�?Y�vs$��f%2d˰��w�/^^�2+�[J,��~�`�k֬>/f?H��I��镈�;�@�c��/De��?8���]=+e���,��~~�w� +�ؑZ?�,�*X��Ot��HEЇ��{��s�s�&�*l\�ܽ�=��T�����l?BW�O̙�J�Ve��x��E�KN�����OORǥ�u#k,'��GZ���Q�g|�ƫ1�eozJ2&�x:�lӖ�����t���[l�G���]5S�d��F�Q�B�;���)�ތr��������Q�3�6p��~ +�1�;:ʞ���T��`�6m66ܜW`�PP^:mOG�Wf��w8a�f�IM~_W�w`&o��P�r�" I���c�����f�SR̵חV|�)E��>է�˃AK$`��ɧ������u�#���X��n�F�ύ)�h���X����<��K���?63Fվ�*"�|`�&D��c�r��'�Q8<4j!����<+�m�Ν�)���`Ͼ��`o��3�ϴ�D�in��O|��0j$ϻ����q��9���*��X��1� +���A~a��b�= � %�|4O�sE�9��ըٵS�n��W�3�B�Hf���s +4K��v'�~I�W �a�Ҍi�=�]��ثޕ���<)��q?�.�s�P�ȉˊ��Ih���Nj;�T~ś�XDŽ���/T�Ge��S��:� g�3.>�Y��{Z8�ާA�.�K�Z��od�q��눨�(������G���M9 +_[Egv�m���T��.�oE���I�:ߛ�z������Z�U�,#�ia7m�ٺI�B#%�n�uB�N����iI�[��v�O� o��N�aga$$S~�.=�!���w��F��V����!.��J�YA�d�p��r�n�FT6�ftYv6�Q�6��`���C�T�b�)�!)M_m��k4p:����lU�[];�+y߲sJ��.U��%���� ݡ�5�TK��y��ƪ"��ۼ����b��BCA�� *M��U��\=��X�r�>a�a���16��V�����c�/�O�GӰ�~a��2zz\�<��ݓb�O^ʵ!S�M +�f�]������i�8N8Ycst�G�`�B�����u��կ��XG=�-����(�ߝR~��E�?��*�CS +8xP���QB�e��2�T� �ؕ���!�$X��O�Zh�%/4�m�n��O�>����|�;�T�J(#���}ͱ�'k4al�Č��4�ŽI�uR�i*~�BF���k�^^1���+@{p�������������\��mģ*��Y��x��~Vv���T������=�ȧ�(0�h/ű'�%�싁�Ϊ�@"f�p�R��Ƥp��2=�x�?;D�hDsT2Ҷ *.w�?W���<cJEaq���4 ;�_��(��S���҃��h*v7��H���G��#?��ōD�����6IFp���n�CCB��ֻ� �m!�K�E7�E��ZIv��pz��+p��=��l +��xZ�$���5�+�W�O� _����ѕt*�����u(yI�J���֭ӲJ%P�lT�������Gyt�#O8��+Đ�Քx��8ϬÀ����,ڰC`�ˬ����_P�~{ν+����g`����3a�): ��<���� ~�WI!V�@)�VۤL�cz�w5�m�Mc�V�~��h���(+�V���'���K��w�5�K�oݲ~��*�[��j���,�q�#V�l��(n-������j�n��,=��H�U���eH��#��+C`����1��ll���X��4�K�;�}�`碇�J���y�U+��._�6�j.�$"��߸=�r+�)�l�����wj�T��[I�M��l]���ȧЈ�/�2��+���}���;�i6^�F��F +�O +��o��:�]�d�Gb�JPɓ%��Ry�����QC_��S7g�lZ����s��oD;�ʎ�|�h�-j���IKd�z����P�8�'�<؉�:l;JLG�J����7gʯ��^y��Bj���҈���E!��qe�f[��t����+$X���@�4 }��yA��9^��ܞJ� �[R�J��8#�~5��A}�I�d]Du��b��������E�]Q�m�YG6����,W�]\�k>K5{~;i��"���n�?$K0ם�:?{� ��̡_s[��XN���ꮨ�2Ar�JTl�/��}������JM�q���sՌ��7�r-J/�3/{�uRG)����t��z˗�X���o%vld ��4?���*KN������ +J;D:+�2��Lii4����/b��0�$�'�BR�_�.?<2�Mo5M�HJO*�I����֕'q�-Ϳ��xW���5]_���F%˨�cylD����=�<pc���'6�X��x�bv�iK``��[����,WXGv�{��x���$#�O>+:0Lٜ�/K0�]9%��F�<��u�Z�o����7�L�v�m%��f��7Ŏǝ��<�)���G�c��W��C;]C>�I����ʸ�k�?;�m��n�QJ�|�J��BJ�j�ϧ-�R�9eorz��I}�we h{ni���s����:���z��f�~j5}�ƑW]0�{��v�!��̥��h��"�&mYMm�o����L~��(��ʅjWZ"!���V���W��_ +l��f����~v}�6���ȘjX5��\v��I�?� ��~h��j˚ �j+3ܭ� ���D�~�RnE��K��;P���찤��?�ܕ`���4�_���O�����0S�[��W���#x��{�՟�u�T"����Z+�M5a����q���ܹ�xP!���Hj)`m~�P���f��ߺ�z�tM*�÷@Yv-��l��c�N#`�N����vnw �-(1����A��+z�:��iJ��Tq.ŏ�e�Ȫ��:"���IRo0����.�u�'�������:gF�8��N�%M�-��H[�ɑ�wfuk��,F�:N���8Q�*���ᛌ�li��r}ȟt9�!��"W�ِ��dp>����WN�'�/Ҡl�^}�zITZ�s6��?�t�}��=-4�gTD�J�7��J +endstream +endobj +8911 0 obj +<< +/Type /FontDescriptor +/FontName /RENBRO+CMR6 +/Flags 4 +/FontBBox [-20 -250 1193 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 83 +/XHeight 431 +/CharSet (/one/parenleft/parenright/three/two/zero) +/FontFile 8910 0 R +>> +endobj +8912 0 obj +<< +/Length1 1488 +/Length2 6995 +/Length3 0 +/Length 7992 +/Filter /FlateDecode +>> +stream +xڍvPZ�-RB/J�Ф���{�ޤ� ��P��4Q@z�*]�� �K����T��G�߽��ޛyo2���v9{�����q�������Z($V"������` 10X��g��z����>K8�@!���] �b��w3D!�z~^@�"-�����`��Qhy���4ꡐp�O��F��c��g � !rr2"�Á��p4E �Xw�7�D�h��!�ؠ�Pp�b}�A����1�7F�vS ��@S8������A�Έ�������� ���@<�����|��������o���� �8���� D�w���%B Ca0���@�]^p�M-1l VE��r�zaP�x�?�u�;�. +�R5B���b���>X����!�W�%k"]�Q��p$�U� ��o=����HT��g�@��������@"|��y�!�?����2r` ����~%7��6B~���Cq>(�+�<� +���p�?�E��Cq������ `X�3� ����]���G#���x�A��_��W�xm���^A���n.H�Z[G�@�7�Mjj�@ NT\(*.B ��@�"��Y���������tE��������W��A�s������X +�A��e�;����_Y���z����~[~��+�����W?,^��(� ��� +�g\ �.?����b��PE�y�}��"�b�����H�n�k��H�1 +�����E!`���S��?���������H���t�KI�h44�o1~'�A�c���` H���C�xz�@W�� �Jx�"�����r@���g�|�����O�$�/��lx뎆��g��� �����?�������|��������3��a��I��=����W����)��Z�����~?�IS_dߝG���u�~\�8T��<�m��%�jL2i: 9sL4]mL�\};�tS�����]�\e-��7��'��K�z|y�~����]ځ5�����&k/��)��ߋ>����S2Η��d���+�A&D�H3~x4F�;|���(�z(Q��]t2�陹8����Ŗ���~`�:Nm#U����h�p�ί8F�c��v����B"Q�Z���k�m��V+EC?RD;�r&��ڹH��JB���3�an�m��$G9}�K�ֳ�2�ǵW��c��x�X��9��f�9�f8�XR+�"AT�&TZԆ�aݮ �klB��9�\���\�~��ew��K���CE�}6b��a����u&&��Bl��ꄣ=���=nl4��"$��.����1�/v�; �|T<4a�$���:�u������gg�Zl���C�篒;A�f�T�B��)u$�a!�+ɫV�n��ĝ�� �w�/����p�qK� �ǽ�FIA�����wG��Ɣ�;��W��|�� N�{+NmYu��(��/uV{jF��g�"����H��Cyw?�>����pa���xdBv���bk��'I��SرPܸ8?jt��372��~)�z�3E�iL7���F��m���yƅ`Y�^]��߅�ƺ<5���I����C���[*so�g�l�����w�/�(���T� ��Ӷ�$��'�����s����K��ा�ˇ0�j��n�W���zH�Oڙ��Nȇ6�!�� ktK�F�MۄR�>�ᄏ��I|�� q˶&���'_�w����m{�6��6��^�g7}$fv��yen�}��t�b�����;��T��S��՜�E�E�{gS���&�Uk��P��?�9��ٷ��_����[��>%��1�8��Q)5J�|���?��9��q��h�?Y��`TRD��.��뛱�B2e�i��V��#�_�o{jݓ��d5��y�d���;@�Ï��&I��,V�ߵㄍ�~�ׅw+ GG�+��yգ�w�� p��R��� �V�߅��$~(j��xTnJ����8� +�Ө����է;<��y��r�7��Ī�3���)d�C?:�y��i�dO�����O~V�-�A�`��E�9l���)�f�,�6�q�Z�J��h�f��7��f�N v4����E�9��nk~cu��mRU�0@Ά��������HJ�.5M�Mv�5��g4��tA�w�����I�RdX���N�U���oQk�,앒{�Y��)�����q�k�0�t��9���Sp�)�ѳ�C쬎C{����۬EYw��1�C)�J+4���ɴ���Ev!�Y�������b�ď��j��q���lN���v@V�W�3y0Ώ��p��`D��G(�W��A�����'�sf�"�^w$xҪ�t#�lQ�����`���p+Ͷ���>%:���]�x�8��0�ד.����üP��{�nJ������Q/������{Z�*������i�jb��Qw�酾����wK�*��n"[U�^�s�28E�2 Ѹ,ͣ�-�I�@o#I�F��5F�����^`��r���ٵE;M�X�4�b��v�,���|{��u�M�t��+� uL{��쨭�pK#�B,u;�K�ά9ּs��"���C���_*'�*�<d,��о��CnQ���6�Z ��W�G����7�fo}���y��t\՚pFs�)��仅[��g�o �Kg�Z���;!�gc�t�ԓ�q����[Tf���"A�i|�>^@�p����U?=ص�fj��սL�����ބ�R���B����W�q7�dw���vVo�s +k������6�����ތ�M�fISŪ� �l �z� ++V�[v1�X��,H|9%�����s7�X�Ȭ�ha�ei���"V�m~���%=Q��&,����u��yd��Jo�q0��}m���q�G����^+t�>=6o}���(Y�as&O�w� <�>/���O��U����n��I��Y[�=b M���x�w �|�wmJ���3���ccy�DO6v��sb�6_z��,���eL��o����؏4��<.f� Є?�!�<�? �9ӵ�uy�� ��C���X��T��>���G!����%+(`��9-�~.�0� jp�Ʀ�1��?q��V�#��jj�V��)+� B��8+��1���)�k�%%�}�" +�ظs���u���>r�(a�H�I.��lTJO{K�~�mо��6?�"Tb��~�%jD���V���b�ډ�N�vn�h�*@��c�HX��w_1� 50�f.}�l�< �� �������p|���0$l�z����`�x��~�ئdɣ��&�A�������!���5��d�=���]zN)D��`����?�Y��ka8N��D���WF �\ecNj]�*p_?6%� �V{����p��#�|T�ofF3%�v�'qS<!��(o�Z�e +!Z�)x��t��SQA�!����ވ�w[N~���`����"hjM���P|R W� ��j����y�&����#�� +7zN@��AƟ�6.�$v<����D���2lGl�"x���-%�ܱ���|B�O�a��Z��䲬P�� �� ��A�g 3��g\�i�1s�oȅ��?ER�� ��?kȼq�tR�ϳ��p� �yjh��!�h��隮<��I}�H�d�,8´+�j���R{������%w�bٙ�b�y�[�h�緗��ھVF�'�yk��3@���+3ͫMRU�)7s�Fv-��+���R��Z���|w��*g�o,a1��<�;����K�u=���"�/d�h:��^k��bTd=T��:I#����f<.���nFo�Z��$�5GAvsBً��wN�fT���ȨC?�C"I�P�ٞ�2J�"'���`� +һ�M��Ϧ��+�6�oRC@?��\�\Q�INz��?�ȉE����AH=H��z!�j�;�p=�^~���d�`�_S�^�G��03Dn�W��J���@��VO� Yt�m�-uP��G���G��(��EB�:ݜ���;�\�J^�d�2�X��Y �7�U���z�v(>�Y����'�p��醐B�7Iw(�ŵИ +�mk_A�����ԧ-#7��R+�J�m�®�8='F:5�.�<�V�e�u/�>4�p��TK �Q^J��$Lj�Oʦn�x��<�(��~��\��х�M& ���N c�f��ʔZ"_�Tf_%d�tz�.�R3�Y-���5 l3O�K���� JVGYz�8+.��G]m(�=̎�����m|�_q0t��]ɝ����H{<&��݉᪣J,��^�1�����?��AV9�FeD�3݅�r�n�̥���V��4�6� pT�WC��ik��#apq&9嬑}d�Ϗ�$��f{>Γ�c��v�ø�nfq�|��u=�]u���� ��<U𖡤����kz��>/����0g��1OU�_C���~��r +�gq�+�2!���_C���Hn\Z|ZFOzϩ$j�@��J�S�w�q���m�M���uJ��w��f��(��?n\|������<ge{�2��nB[p:a���8a��)$��)��.z#�(+u;6���5�ɒ���-�/�� +]�l]��F��9�,-��3CȢ�1�b#^g����>�,��<}�e:Z�{'5�=/�0ſ�)��/���n�y1�lS�O�S &�DpG�K�D��X�l�R��D*W�3y�׳��0�}���(8u�·�:�e���9��r���`�����9����a���Kǂ� �H��UQ+ ܽ��Ųz���ɀ#��8Lw��h*Gt�m�jB����K)g�\k�I�t��ޭ���i��Ą�q܍\�sw�&b��4lns�Y��m1��"�Q� +�#ཎqr|t�Qz�>k���./��u[w�;�7Hk�yjU��Ք�9�{@�p.���Dg�1�e[�i�Ӫ͗�u��w�o�|�vi�8}�ۘR���a���P�VZ�- "�z�:�`�#`pvM��tzPj�b��X�=8��տ�gQ +�2�v����դ0�"�C�ڰ��q6ԛN�U��s)�Q��`f�*�E����$H/��Ѯ���s��@k~|@z�(|L��`=���X�I�}4ihΕ%��/�����-�E�aPH������ +��>!�'�L��A�X���:n���6�vto/{�m�x���\3xF���P�b?(x:j�M��%�?�E���Y��dR��N��k�g���gL�N�NPWr��:&%�l���u��$�� gu��������d�'^��]3o�aj����D $N���<���,ͬ�F��2@V<��������&�� /ҹ��U��kp�d��a����m����٫���J�:l��2����2y�71�[9�ˡ�!ǫ�FM=�mr��S��o�Q�J��m�[C�}�����.��C�=!�rٍ��rOI��� uΗ���@�tޣ$�"�x�3W9�Ro�Q�`Z��^f7�/��b��.��9YU�֯�I�+̎��z�M28��o'[�y�7���l�\!�]5�����upw6�S+x_*�K�����9�R��\M��p����E�gֲ���>Xm����?ۚd�;#�6-ܖt��=/�`p��!�R��©Q�!�2\����[Z�.s�G����η}+�]����#ߴ��"\�X�V[6U3���*A�4�iyˤ_/y�%����I���ٗy �*�z/���$��҃��k�^2P�dz�h*����h��v�9˪��Y�%���_l��$�G.G̈CZ�)r���4K��h5z��� SzR.Yk��l�����w+S_�s.��5g�o��1��Q�k�#zK Ww�R�d�>���}k�w�Q�"sM���5z�&7��G���6'@�HՂ��>g09�d�}�\�X�#�,<��X�����~��A���$�l��A��f�}��h�v�To�ٲ��# ��i���Ҷ|_OGt�a�g�X��o���3vW�Bɴ5 p#{��)ǭ�����g�����D���5�)%�w��XUx� ]�xe61I��Y��m.���SF���#�(�~���(����x�SO��x�EM!�_Q&ݷ�����]UY�BeLG�r��g%�^GGX�/��6���CeK2�n "# +��cw��F.��nqSr7ա������6��qS�?%8Ye��ݲ��Ԥ��4%v2ї��;�ۙI w��U�*/d��SEL��E�۽1�?�҈|��b0�gw����J�E�yw����R�C1�����=��U� �����C�|39E7�[>&f�)��an��5�����i�c��,���-�P~�� �23�1hT3v�uWNJX�����u ����FW�h�V��,Q<��0�g�蟇�hP� +f |G?ճ�7����բ���0� ��L+r�[(���y�}�D\��A�fx���Qނu���ww]=s�34��*�+�()�g&�i��G���I�p�4��C=�ښ�"�W��+�(��oq����;Gg�<���T��#��?^��w_���=J^���b�Wf��7a���r�Rw����h���A]13������]&o +Tr ���Ϸ���yɷ����Zٱ����Q���ON�K����ӿ��>�1�bD�G���Z�j`;H/Lƺb�d{�j'5�z ���3L���јP�v�m�h����z�S��#�oe����G�t�:3̒�-��<��Wp"j�p���Gf�*��Jwr�%�4�Zg�,�W<VK��3k9!W�=�0'�>t? 3�����#��]h��Y���'�#tօp- +�RF\����/��0�����ܰ�QH��0P:���I��K�Y��t�\#Ӟ��A﹒mb�C� m�xȹd�'!����7�̉b�%|��L�竲��6Տ���6���Ζa�}��B�G��#��F���/g̡l�]�X`�M}U����ޣ���%�Y��Nw��s��c���g���؇��O��|XVp�����zx����C�|>'�i�����O���ܨL��o��Cυ���>� Φ8�U����5��9Q~�y[K6���g�K����Z �}a��d���notr��תЦ��z�tud�<�����|���t����-�����p�Q<f=�j���*��D/Zmÿ�aB��\a��[Q��ҕ<Ӎcb�����2?^����g@+��P���M\�"�?��Y�n(<��$�fS�d�HͤT��2"͛b?Ը��6�H��z��s��UQ�� +���z�Ϋ��D������ +��5[��б\lD`��r��t���N����^g�W�7ޚ�'3(&G���y������y�a*��ϹBm�=�����ؿ뎻�����XK$#���W^Μ�&D�D_�F[��j%Xk�c*Kΰp���{�2-�9Ϧ�fe�k��"Ϗv#���l�{B�?o1���߯a����m��ADt�{3gûv[.�~lm"��j�1������Q��~$�z)�<JO��y�v� +�؎�y��ϛ� _����3)�;��CO��Jq��6Ջ��6�1�!��4����3�k�s�l�fĤT��p]��b�D@xa���@K˨d��ѕ�/��W������/y��p���8��p���(��Vۮݽ�L����2yk��y�9����"���,X㺬�x.�^�̀�� ����h���1�Y*<��L�U{t;L�� =�љ��-D���ӕ.) G�v������n�f���A"��ʎ�ǹ���Af��FSi�{��g~ �^L��[MҦ����]�K"��"Z2��mGf� �;��ޘ$��"��H�V�}{�N�O��q�ڬbQ77Xl_���/�K�i�v��Ο5k>ѕ���L<9��E������s z$k�Y�-Ka�<�����{�i4���ܕ}����p +endstream +endobj +8913 0 obj +<< +/Type /FontDescriptor +/FontName /EXGHEL+CMR7 +/Flags 4 +/FontBBox [-27 -250 1122 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 79 +/XHeight 431 +/CharSet (/eight/four/one/parenleft/parenright/three/two/zero) +/FontFile 8912 0 R +>> +endobj +8914 0 obj +<< +/Length1 1416 +/Length2 6307 +/Length3 0 +/Length 7279 +/Filter /FlateDecode +>> +stream +xڍtT�[����tJ 8�]��]J0�30�Ј��H+���� - �]J + +R�Q�{���߷���Y�7�<����}��'����������� )����$�����89�a(7������!�R��WBB!(�Aa�tp�&� ��Ť��R @���!)P�x��:�M�Eĩ���C�Q�S�����`IIq����w(f�t (g�;�D{��a����(�ByH +���@ܽH'Yn>��0�zA��P��r�w����8��0�?���AB� f�{a�p(�9`�� ����k�1��u5�����py� +��v���#�= p?� �s��T�P�(>��������C�!07���w����������0�����W����`.Ypw��Q^D��S�!���[���VW8��g��;8�*��!h�y���Y` �0'( + +��%��PO����Y�Wpc?�o�������8bJ����?��/�7�B��A�����8��Q�;�N�Otu���t ��a��~��^Ya�倀���c���� +�Z&F����RTD���%�B� �$,�,��E�+�?�pG@�O��[�O��u��`p�K�Q,��G�@� {���-��.�7u�����磊vs����q�����c�Fa����L���M͠�U��C��7���`f@����%¼Ta�P}����T��&�� ��#�`��?�/3U���G����34�>Rn�p�5]B�b� �#´��1c�����`����¸�0�H�_���h̭c�߈��<�?}���nh�� ��?�� �+'{4���L����(�jO4;���w� o>�R`����7ιa���?`ق�IJ��]��������A���<��c��i�%x�.٠�<��&�pt��hf���pюnfB&~c���K�@�W�F�VM�<O��~թO�������S��bZ�ec�q&�BJ&8���'���Q��7y(|�&N��S�_�j&��� X�şM�/�y�1�a��g�9�� +P���I7PZ��aƷQ��5�_�?����J�a����{`�=x=/~���zr��zj$�Me�M�Z���彣�b�w�vG�t�9ɱ7׀Iq���[9Q>���Rm$���E�>_���ihѺ��;2�]�]j��p�V�0�Y��+q�7�<I7��w�p��M�ݷ��g&j��՜(��S��9�̦�!�St�h]8�HzWF�}�]�z��k|�l\Y�F��MH˧�����];B��Q+A�)�8h��{l&nؐ��P�oY��Rg�k<��bE?\����Ё�* �$N�ғ��� ,>_x�ʝ]_��s���DXi,:%�$��� _٧��`+Y�ig�htRy�8:�H��ػiq(d��a��{���� G6���9���==��'��u��n���Yy�*&��-UCk^��q�.��-�:9@T5ҋ�&�4^3���8�<�2�}+!�}6��͏��[��[w�j7���뜗�=���2jSG�~z�qӟ3w�E�m���)3����<z��q���b�[�����M���I]�B�}s�o<��.�+_��,=A��6�z"X��[h��5�n@|�ԹG�"oA��ܣ��S���k^Y�ӎ���=�<Q=٪"���]C_�������ex�"u�|kxٌ"pT���@��"wsmp�5(���T���; �R���Qw?�/�r�~�}��Nv���34�ש{���o�nQ0}P�ď%��TM������u�9��3sﴮ��ȸd�S.����[6���ݥ�D�O!������l��7�I�ښ���I�P�k)o��#�F����e\��Z���V����O���7.�]���ͼ w +O)�p�'��N�p���f{nɕo�OAcd�eЏ�Rl��N�~!���\Vg�I� +n�t>�[�Ѵ��$�V�*��_$5�;���qq�U�,1��i���`��R�~��Y����;���T�l���XC;{����Hӽ�z�7�O>u���6V�����~A[Z���&�6�0���\�|Z���Ezc��� + +\��`ب <�&�[d��4��U(ӹ���暃��LWJOq�y��T�=� .�� +��a�?r<_~�֜��Bg��Gӛp���{������W)���8�m;@}U�'���դ�t;��Y�=j�k,{�+��W��T�6Z�Zo��g.�5�����;����+��l8�J|��~x���1��JO��#e'��F`�\��O\��������+�Y��\���n �� ��6�&�j�cnTS~˭D���-�ͩ��H�֍��7]����z<8�T�"v�߾KHCp�`W�-�L7;��8��f�5��Ѳ&n$c/��A_s�r?���nL��o~q��_��!S����|*��=NB���1V|��%�+Jg��*���������mXV�m�\<����ٯ�������Fh���g��ll�7 �p*t�;e���i�S+uq�UR5.�*4co{3es�'���)J������C��I:�tr�����F�5M����Μ@�{���M�R�iQ!�l��u��XF�{�E8��,9����y$�j���N�e�R��&���f0N�/��}]���r�G�wT���I�]ad� a�{;��Kt�n �8�D��,ŭofH�V0AK� b���Y)�*����#^������)�����;���eJQs3��]�$9��A�SY������V��<��|u�@ӷ#M��X�_��yv����NLYZ�8ß�:8+�RJ,z�t�)�5 +�jӡ�oO7�_�5�D���� �3�|���v�-�N,[Mcbx�FC�D��>":_�j$Y��kn��>��Y�a�3���s��Y�I�� Ei�AF�z�Ъ��r�)�ݒ�d����5�E-�E h��ܱ�Y�����as,�B��k9��ϡ��SӖn����+ ���2"��&̝?�$��'t ��J���g�g��`��R��ñy��1�&$ t6�/���N�滙M9�ћ6<`�dG�c����N�������|Z��'2�3��G�8o���(��A�C�����A'�kD�n�-��5�9�(���I�*7wF�jɸ=,�?^�?a �5�_:�D����T�t��ɽ�kW�͋ͧ�iC��숎�� �-����h�[��%D��~F^f��73�ӯ覥q^��*YS�zN\�n�����Zg1��Z#T����_�[�������Y �+�4gJ�},t{���ջ��4�I�z�em��-��σ_E����q��X�������Mc�����V�*��Ь_��������Ze*s0~$����!��6ɢOW#o�P*�$��m��M�dCu��L_^_�4�(a� +�(-`��.o� �}k�p�����g�D-D�.Fkh�E���%�NP {6����U�wj�}H�~��B��qGꁅ��x���l��]�y�K5�s�U�k�s��?�V1�<�y��[ߐ�� �GUD6N5N�5�QQ�����1���]��P����6&\�`ac���.n���g�Ǵbݓͳ���7WX9L +P���ݍ7W��%�(��A�Z�M^��B7|ҟ�yd�w��I~���o��W����z��5��7�J�����`RC�_B[;xp�AdU��z5��t�"wM.u$�8 [�Q��ċ��e[���YET�s�g�8WIE +"mpŏ��~��Z����*+����|z�/$���~�o���ԫA8��|�|RZv�Ki� �g��q!ܚ�AI�m�U�l!�sȴI��3~��a���K�=i߯�W]��3?v�mp�ϲ��j�f5�"�7O> +,pÐ�8 �4�,��^������tʀ��U����-�5��+o��� ��7��}DH[�%!��-7䧸�^u�P汽'�q�+I8Y#N�� X��㞔J�W�'l���e{<���^��w��;z��&&��nꢀ�Dd�e�$�n�]���TH�AP���}U�u<���Ԍ_l8�A�����8C���aG;X>�F��o�2�r�-x;���7��S)O:��qd��JkX-��5�7��^>�>9��"b�8YD�Sv=�mwC<��0I��c��#��i���:g����J2p�M�,}�)ѓ�����^�(/;�&"c�hgs�Y��{;��?G�+��.�+��z7�R�/(ر����4�>u�+g�E�z��H���^�5Y��6I�v�],�nV!%�|�^�����܄���x%�E�����e8C���Sl�O��˩�B�I�=_VN^L���?C 6cn6/�&�]B��C�x���Q���dv4S�cn��\�S���n�[���5G��l��}�g.-�r��]1?��'��8=Ź�C):tǙ lXz������K�����/< y,T�Sթ�ڼHo���~~�}�/�����k�����\����?h���Ɉ}�x�U��D��"�E�3�tb&#�}[�,���7E^�1�<�O�e�?���)��L[U�}�� �h�V�Q����`�e.E�I���s�R�u+��J! ���_nV�(s��0�\o��\g�i�}�9n>o5�Y�����P�n��%�B~�`���/�Cm�&��x K)'o����ϫ�3����R�_��v�d\ n����'�%��B,�j��ޏzi��GD�c�Iphu5��L%�����Y.��������ԗ��ч�|�rr|p,���{|MU6W� +���IJmH����'5��i�{^m���#�ѫ ��@�u�����Fy:���� +�q ��擷2��ʌVde��1���&�,��a~?�q5�v\W�S�^�WN3fx��U�2���PJOp��4V�X +k����# �ӗ��w�0w���y�O�jr�D��l=�W�����<�JUi����5��u%���(5n� y��$�Gj�z�`\~C�H�О����]�|���o�L�3_t2�a�S7O�a��~I�[|�li�W�Qdj����)�U�Pև%L�)6�eb������E�y�L��g[d� #]Λ䚏�ZB�� 2:��9y�&�Rb���,~�c�\���0��1|��$q-�U�,U�Džզ*c���x���惌�\+Js�:�TW���@� NҶ�q�u�Ё��k����R���q�x�v�n���ț�\�d57Ї�Åҕ���'�:��Y�a&�U#{�u/g���Q]���~��7��[A��΄MT�[T�Z`o�ȕE,x6+w�A���(���ֶ7C�w|S����/V�i"5���E�V����G67��۟���9x�l6�F2�F����`%U��8� �a<`U.�����g�t/�/ю��%��������Kϰ�St��ynjx!��=�/��iQ�����{�V�{%Ht��c�y�ѥ{�T[�@�1S]郃h�a�\Ʒ\��\-���h�٣#���g0�[F#[��J��U"Sw�E&eUh�APz�J��r�ڰ���D�(�҇y�Lz��Ӻ��{-b�:����yMn+��,|dp,�<�2W����Fe ��iRV����X˚J�h��ɧ&䏋&��n*Ʀ�����NV�&J����s��5��p�ֱ'�<������?��W��ޘ�M��@��ћ{���"f��0���$H��U8T~��*=ֽ��T�������i��ʅ!����Bq��~� ����H���(�U�қ�<O)�PII_�=���x��R5Γwr~z6yW�9l/4yjCyJ+����R�`��f59���]3�гn=U^��~�u�1�� $��Z���Fqu�e�h�@ܹ|d��{=��ud�u����I�2����QO�p够�lȃ�enh��*B���7ʏ�Xq�2��}�ȡ%Ú=���K��Kb���B��S�u��C��{�Q[iܧN. +��w}��)�;�T�[��u�{On��k�%V��TT�`�v`���2g�?o(��SA�W7�a���� U1B����_���-uuC���:>�:����Rh}��j�����%x�+��7)_J���?�8�߂��9儰�����"65*%�p0����?�剡�R����KW>�۹�^��9l���jK&��?� ����6�p���G硆�+�8�g���KzU�W���}:|��<�=���7|����_�N�K��wxJT � S}�6<�y\&b����K'�E����kԪ-��l9��@w��c�ҹJrLhvKX�7��(Ǒ�z|QBJV1SlL����+\������@�Y#�D�K����L�t��q-�~E��r%�ˇ��@��M%K���>b}��#�;��I�� +�����SD�'5�c٦��+�$�1k�W|�2�����;!c�|z�н���䤭D\���"�*�D�E;����V���Sdy�J�a�W+�f*��=��q�������#���CCari�h �萛7Z�oݠ/5��`2��ٝ�}�~6�=�؎�a��0'FƼ]|kY��~K�|{G�籦� +�����P��6�<�G��\�n��ܻ����S��X>�:8Z)�[?7L����ޑi����s��1Q�R�02���|D4i�(�k7�����hF�I���|i���܍�?§!δaMd3�i�� �C��$��;2]�gbgH4CL�}_��!��wY���CX�5Bl���œ0�L ����y�����E�ف������.b�ɝ�= �iP�Q��PY��eg� +�=�Y��n+���Rd��M��-ᦴ��1eIF��\y=<S��ߵ�QW媘9e�?<xֵcpb�G +1����o֭�+�c�I\}H�Af��S���pn*�7 �~�:���� ��D�u�������PL&�$ƷSãb%p��&���� +���r(��<:1��6D�t-y�] p��J�Ϟ�`s/;o��������������W|0���4]5o�*{hհ�����z�3,��U �kFv��ϘM�����{�بn+�?��0�Jx�nY��Am�Iʥj:?�+-�R���cV!����%s�/�jt��Sqs�3hf��Ѻ����H +�?�(E�� +endstream +endobj +8915 0 obj +<< +/Type /FontDescriptor +/FontName /AZYKUS+CMR9 +/Flags 4 +/FontBBox [-39 -250 1036 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 74 +/XHeight 431 +/CharSet (/equal/parenright/plus/zero) +/FontFile 8914 0 R +>> +endobj +8916 0 obj +<< +/Length1 1491 +/Length2 6794 +/Length3 0 +/Length 7810 +/Filter /FlateDecode +>> +stream +xڍxT�۶5�Ez�j@z ]z�:H I�@H0 ]�W�M� (�#E��t����w�=�{��?�{#c$ߞ��5��k'#<� SU(� ��BbE�E���uSkq ��%�xx��X�o������QH���PG��X��� PH�/@\ .-/.#$�@��Qhy���0�:�� wq�������������z��p 0�c]a�!`��ð~�H��������{`DQh%a�� +0�a`ho��2���CM��`� +��e0E9c}�h� ���BBah�nw���>�����Y�/a�������+ݟ�_�����`�� F���.�g80����b�`$��#�A����`8�s�]:��j���ᇁ��X�(���Q�W�1k"��(�!�U� ����O�Osݑ(d��+g8�����S� �����ッ�������)�����8�v����������q�Dy�q4`�pg�,����h/X`���"@�,� �G��;;�9���� ���q�����d�S�D����w���j��u��P��QM �����I�����)@�?���?u�G�.����\�9�]�� ���?s�pʅ��-t[��{�?��w��O忲��B����v���;�����S�7(�, ��������p/����b��iPE��-"~Kx�/�т� 8���j�������P���� 7dw�-��I� ��������MBJ�F��~d�^�VR��q�TBa���E�����c ��&��XI���Ǹ������J�Ĝ�`s��,�����@��������B`ី:�,�C�`��n����F�����p4�^��C`0_�l�= +���"���F��G��0��bGL�u_��w�I��>I���=5Gh���G�������YwNG|m�rC�3t�x�}�j{"o�v��8�(�Q�G1�4����T�6�6|����#d�%W�}vсY�+� ��Ssf�b�U�:6�Zsr/b�m�h�6�^f���� 'jmq����m�?}z����H�P��Z�*�����g�P��3Cr�&��ԱzYzs�G$�<�����da���I�C��kF�6zա��+�u��9��}��ޜ�*\�[���w<��[-���!d���u|�4�D���X���5Ƒ<���:v��1>;Y\�.]!;����4��9�l9w~;@��C�%0�t[��),��i���F*�h��u�`w��{��a"$ɪ={�w#�IW������4�Vo�� ���8d��Gz١�pWEnf�+�B����f�L/��|�j�$5%��N��J�OC��e��>��]�0�J��]�f����>� �'&Aj���q�ձĐ��V�q3�|M�z"dO��|��O� ������g �V�v�T��"b�:'����eo�۟���jl���/}�W���1��Ӡ���Wx��1Q�U�S?C��M?X������ֹ��;��͉�O���]ϳ�{j�Z*��9��*�`^��B�h� �o��ెP��HQ<W�F����c� ���X��ڞ{�=l��Zk����CN�B�dϼA�?�YI��SEu��<�\���Ǫj�Bm}k��0����:q�m�HsO�Bb�A��ZUKJ'=�L��w����_g����(�����7�M�5����Z'��xӖ37�.m��i�M\şsh�9�W� +E!(�O���E��I�ټ��PaBΣ�s 6�o�� �� ���\;U�A&�_��="W���K��ʍ�L$p�^�{1��l��7���IK��η��^*�7˱�oK�&��?� ����q X�V)� ��P֗�����6E�R���jI��s�b~�'�z� }�����ּ�� +i���C�����K*:l�*�7�g3��ly�����k��1SN�8� 0�R���2�;9#VUuOA���uY>��t�P�7:�����0߳$��7![��� �:�����aK�ΰuu[��ؖwW�MA��G�>�Q��f�NXd*��y_�C��������\�K���6�S=߇�xSN3)~��c���RU��H��I�ǘ}��un���G�� ��STe&�N�PF\ �&�#���)���z@Ԙ=���ǣ�+�YYKj�C�����H8���/�8<�|�b�M�E����c�zE/�����"��� +��怔ҏ�O ���y�����)eH���qo��h�Y��E����n��rx`G#�HO\i´���w�%--�ds�}� S�/V�̎�-2���r($���{��Ɛ�JdI�)�|(�F~�2[&��J�m�?)��# +����?�!��-Ny��D���\?�y*��°,oו�|}/��2�h��1t�K�����@X'�,��hMyJ��� [�H�t��N�4���v(!6Y['�d +�'�ms{�\�Jb=iAK��u)���X��_��s'��I`l�I��T`�x3�Huc����3 �����䯭���z��ȇs�6cX:~�������E�������͛3kEP�ʞ/��"-��%��X��<� �Q���q3��=�"���Sʎ�:���6���g�+cs�u��}<:l���Fr/Oh���/�o�eQ~�2:��q�"*u$@Z�V����ڱ�2�i�gTP�O�V�t�a�a�' ֯��fn���e���}�!Y0�柛����⫞_ly��ċ�ZG��CM��*��l����*���1����9���B���s��i6@�%H1�ߜ�:fg���D����#gA���ކ;�\�ҁ��[;$�yv ��LI��҄���XL�/�j�V"dB��Y-�����ۊg�\|巆"������{�k#w���>�5��O��� ���q������E��gc,�]�͇��Q���u��g�UW�Z�ڱ�����<�_̈A!{(F�� V�X�\܁��>u��TG\@��4�?ֳ� d��R_�c�拉��?\����Y��t�3ˎ�i����h��^�[�A����ݙW��W���^~1�V���>hM�ˌ$*A�n?���G�N�>,@�U�o������^&>r�y�b��G7���k|�@2�$�D�����n_ ��l���R��˄� jJ�|���J��S/W��I�u�߅s,Z�)�o��-����Y��p�p�@6�O����S�g���=e������#ݛ���1�^_��zP�#�#v<�[�\ŎI/��7�قXV<_�%p��`R��D�� �&���e+4+��+>�����WT��u�TQHʊ�3�k?g_�q/�)q\fi���>y���g,�ݒX]?`o�SQ�ɛ1}6�7���i��|���Y�%XQ��v>�{m4 A� �=�� p��fݲ��ֱ�4Ж-/8<���?��#��NqSb`x ��*06����S�'�b���������[U�9��ȝ��kuSfmi4=YI�G(�l���k�K/l���1�l���ܧ�7��q?/�&�w)��M�q�؍{��������qٸ�3�RF�A=�k�l������/��d�B.����5�]���*$�h�߄��|�"O�ͨnx4�F$�.�U����eX��5�]l���b�0wR����V�{x�܉Bի��.e�\:�m�NI�,3�w�qX=�ޓ�,leLrS${h��X{�CT�@%%yR���2�Yw�Z��JΖji�b���{CT7^͏�j ��z�4�#��|����C���}��G�mDlO��Jl�?uy;~&ok�=�g:��=���g /� ,h��6�����h��pV��6;9T�zU�3'ӕ�C���b�>Ľ1&���*����) ��*=�����>=U��|��TA0RZ^rMX�묝>�}��4�Lt��4�Ћ�F�QT��'Zܿ��5�/�FH��nvWյ�`28� +j4-�zi�1�l` �'&�J��-�O`H�;���Q-]?�mzs���H߳G'�,�5����Biʪ�����<�0����C�<9:�K��澭��h��.e*Q����r���EJZ)�)�W���V4<���`����dͯ�5++����Ͱ{���)j)��# �0Fg��"Q�g����Y0y;k�&�I�f +�`Q�C��Y��,Qn��UWl;��;�ݭ�j�=�ss��j�ꄖ*C�g���y�@W?I5��C�X� �yx��� �Y��qYB��S�4)��M:�w$��z �� +��:�C<�m�2oG�7s��� 2^ܳ +6��<��f��s?#U.��`�u>j��N_\*<��ɿ\��3P�J]��f̑+��,��9��UUN��j.��`��\���⍟r��~�H��9t:Wy�" ���,gɠܘb���4�a�a�Z/�SP�>]�$z��lg��w��עa�D`ر���|'K����U��?snd� +�N���)j�f`�J�PNq�ߛ��z�D}ዤ!^��]L���+ ���:Zs +�{($���Z�o� ��z#��Bm�0:e`�1)�ʚ�_���N"�E�o�+��p|�mG�q�a�����|��'��:�N� K/u�}�L�dz�)�ɞpk����ј=�`Q�< ��B���R|�=ЯE|<{\��7r�{`Xo�L�;��N�g��??�|u���Ɍ���+��p�ʚ����],~�v4�JLJ2d[L�d(��\>Dyݑ�|D�Qླྀ�y���2 �`r^Ry:1����%�=�����L"�%�p�)WcJ��EA�� +���fϢ�ך0�[��v+��Rǭb^�H���6�*�)VG +.�8�t<��h�����k|��}���Wl�Nf�߰��o��Rye�X*�c/m=�[s��� +M^\�u +?>��gt{��SP��y'�X����h Pi��H裞�d8��kp�b\q3d�>�拺c�8]����\��h�ü`��P��^���PY�P%MQSeիsv��:sLh���e�~�_{SI���ԥε�.K�Ľ�Ro����ޯIl�%}��I�|eF6��EA5����~7&lI���b����c7b�g����z��L2K��h�ӄ���&6Lc�(��n7����]�m����|�x�j/�� �1�=��,�V�8"r��n�-�h�(²��g�e�Tt*q�f�i�)>�1O��}Gc��υ���4"sSc(y�/ze�D/ޗ�\ub�V�iv +)���*��E�Y���Ɛ.GWu�V啻�i3IĦ�F#�~J7 u���F2J!�?܋ +����^�3�R1t�6/y1m�AVu�������R"Ϻ�ʲ�1��J�2� i�����fA�d���<Z�E1_�ߧ�{9��Pe�f~h�Il�q��ʓ�h=�3K��XFKu}�� D%�tPŕ�咪�8n�o��p��fo�hT�*��SP�d]��%wӂn?��e��1��;��ܯCE���z������g��lL�4\��r]!��-v��z��r��aC����pF�!������f4�6��N��2#�g<ɺ�����o��)[�1���-�A��刐�� K9%���&���io�$6��ⲵ��<���>WI�ף���d�ol&�c]���i�fPR2�?So����� W���?�Tc|��t�nk��,�D� o��\k�+=v=�Cx~��T��.m"%�ȝ�|M5'���+}�<�#��c�O��@+�>=c1��XN�yɘ�!.�/��]����:k��+xr)�t�L��kc��ԇ6C�c�}��t�$-�L�h^(ՕfR�лP'�y�AOR�q���s�3�qu�����fF�L���;��#���s�x)p��h�* G�oTp$��#�>�9�1Wmf� yOl� +Ï��~d���PA���������'3z��s�a�J-�$��ei7�����'�s�,m�B��SC�È��+�9��E��ι�"k��f#��f����u{*UI�ʫKF9��l�W����|1k��1��D�t�8�M���h�7!L�����#���#_�J@�"���R�^�ҏ��U?��}�-�?H��У�0� �ػ���$S����Ml�#R)�z��N*- ��a��=���+3��kg�>���3`}<SO�S���i���D��[j�����6)����}��Iz#ڸ���G�e,y�����e^�t9"�i��_��6S�o�Vs��kh#�]�n@ޤB�� �}�D2=�3�5=�����-�&�i2p:?����D�Y�&,E�T�w�Sr���������[��U�h�,G{5��|��c@3�?�73�|��Q:=[C�������F� �e������N�^$�d���3� �Y��f�7��ӯS��:�-[��]|O�%h��* +i>t��UX�/|���K��Pܔ�M���U|�zoCXU +9����.��|�66k����7\}a�Z�K�nTV4�`�̵���t��]~� �d��]�w֘�C��Pڽ�M6��F���(�>k��"�*W<gk���{]��X��ѝ������ü��&��_<)�nAGP���g��SSZ"���SFY���s�|n1�5jֽ��\����'��������'���;�@kb���h@�c�M�{e=;l����)�i��o��+��)\��E-o̚~a>���z��N��<ܘ���Ù-Q�yO���+���O��#TbE�9lu V��%ԏؙ Dۤ�}�t�<����*s�28_���7ye��c���Ѳ���ێ^��(?����7�hέ�[c-F?)�p�����)Í ���u��$��6��XPFf-�Q�!w��~�h"{���w��zt`�>t�`��65��$�1��-��%#֙� ����4&fT +��$|���5ϲ��CŨ Zs�����|Q����l��Qg��D<|:�9�_�[�o�>��@�SB�^/>��1-�W��k�)��p�Mxs�������1[4�f�J��6bLJ�SmuӺzK�����q�}�ؘ�{�-���r)�k�)e+s6���4?^�K�UrGg���%e&�t��:�J��k����vl����ox�3�m��\裵���`(����k�ˣ3dF]�!)3w�C>���7#�ŧ�S6w�&5�%D�J���-�E�D�U ���o�x�Zq�K���:|a���?��d;|�p���xS�V�R mQ�:��46��q��B�K�{ l���B�y�����*;Biaf��cQ +�s���)/5�����^c��>�fo��J.(ڟ��nU��G�Tc�n�9XD���H�%tݝ�/�9c��D^m�Rj�����yK��y������%�I��E��RyR �J�@��p���g�z�Ol^=_#c�N��j�� �� 43�:��l�NSN����G�f̵S�?�uw�~G�%Y����xu5�4'�SF���kst����O�#T���o�1�P+��*։)�̗��2��S`��m�}��W��(R=�F`��������<���6�_�|=fN����h��փ�@k� +Ǵ�/��3�@�2�ܨ�|{䝬��f���{�1K;ṡ+4L�=��}��fsz��E��zd�Q�P�MW�����Wy���do)�|��)W������3M�3II�M:->z�hmQq��fV�EJ����H,W +endstream +endobj +8917 0 obj +<< +/Type /FontDescriptor +/FontName /ZEHPCH+CMSY10 +/Flags 4 +/FontBBox [-29 -960 1116 775] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 40 +/XHeight 431 +/CharSet (/asteriskmath/braceleft/braceright/minus/multiply/radical) +/FontFile 8916 0 R +>> +endobj +8918 0 obj +<< +/Length1 1376 +/Length2 5951 +/Length3 0 +/Length 6898 +/Filter /FlateDecode +>> +stream +xڍvT��6�)%2@�F�"� +� �� ؈��)ݍ�JJH��!]J�4�����<������9��s�ם����qs+AQv05#�dʺ���H��qs��1.��f2n3�;�B��/��;���T N�hy���b���,XJ��@2���e*O8�h��04�2��wt������g����H �(!`�p{��8�����1��`���O� �q����Bh ��Q�_��8�`h��' +�50@����H� 0q���؍Q/�;�3���aH4.� ��p�ƚ:�}W�X�@�w7�0��t�%�#C��QWG:�.0����@��_@����xB�.;�w����!����xh{w�+ D�]~�(�+ n˪H�2 +��!1h�_����a���cE�ܬ3���{p�#����z���"�n0M�����?6G �������0o{'�_�M����N�/3n_W�+�7��������!�0��������<����(���9d�Ɏ3���q���X�p�@�>�~����t����~ET�,�Y +���߾�wQ��_aq����4���2�)iI��?�@����'T���i��5������j���\z(ia���p�$��}�����;��F�_Y�_���<\\~��~��7w���8���_�S��?�ՅA����jb 8(!q\�A��p��5�c��0�����\�H� + ��j�E�@��������@�h��é�uU��(�/��JH ��,�&Q �/�G(��7�"@$ +��f�8���~]��8@���k������#����;Nf�i�+���oM�`�0{��)��\�ê���J,^�+CD�˭q]���<_'��1���в��3/CG��X�~����z������S��|wO8���A�#�&u��Tj�g��xC6j[+B+�D��N����g��5K�-�����#���Ӻ�e�qk�oaM{��*��D���9~<��ns4��g������ެ�T�����e�t��>Z9 =��YZuh<����/��8���<�� 0+��w� ����<�J��F����� +���>�#�.��o��C,�ϋ�|���[����o[���2Y��*��}�)p=J�����ܢi����̞��"��'�j�|<Z�ª:�H��֜l�G��.y�܈Vx2�^x#�71��ʧ�e��y�/���.�٨$o�]}9���ѥL��k��^ �#�0�O:]->P��8ֽ��"κm)��2�Z[7MϪ��9Z����=Y��!yC���w�4٥�R�2��5��6�7�*oˑ����so��,�I�`�D5��)Kv���T=݊2��8z)�/�?B��,��xbE�/�L|bNE��/;�i��%s��,�C�k��2��LB�0�����)� ��e��)���}џ�]trL;�G�Bܲ���}��BZ�M��ݍ��B�r;H�A���YE���m���es�1ع9����,�3���<�(/w���@~�N�'@���L ��u�f�:�O�:�m�2�(��s�c;�� �c�kddJ�0�o={��W����� ����U�h���['����ި��-����(��Niz�/d�F�+��x�d�Eo�E�wW>��8AC��.3q��M�M�K>3Z��'j�|� )el���Y�8��]a�kt��KDZGa�Ũ�nA�r9§�����<�}�oK/q�L6�[�ax��d�˫t �z�G�;�=�w���;�����`4�I���ٴ�jP���C<��z�@(����d��%��v��ɣ ?5����d�s4\�rQ�VfF*������U�n�rHd�&X���]��FvrS�]��r|�\;h2[^��p��Yf�7�M�#o]Г�/��y4�9:�.�4�G}�Á��"�k������P��5�rbS�[%�f�oS4���b�r��+$��vDyڈgT!�˫R%��WG��u���l��Eh�Q�47k���K(��iO��N���n��Fx�����'��p���{?�1R>��A�p��25��)��_;7c~���lH�cJ�f51�z�kW�X�\�.m���*��a��HI݊mf�|S40��?�����S��T���}(!�FKq�qz<��2-q�� ��ŜI��f��RcO�dT�/�$�5P(x��T ӻ���5La�b�'�o�-�F��� ITJ�*� �v�%��ԹLX.�T��>s~_1C�%�?�kZ��8 �������Ms�V��w�Y*;�D����ٙW�pF�re�n�vQ̥��M?�E(�QZ�������G��~=�]/�����a� =2$��ԧ�1��zH�|�s0{lW�j �����uNŽWw#�ס��.���;�.�@pԄ�28�������z֬�"�ڽ�$�)��@q~gi����kz��l�~�IM{@�TD��p�?}*��j�ʥ���'�P��=�96�n�"�/���Hg�Y�֩jXeh}_p�I���,J�~�*�R�a6���ڥ�� �h����dC����V龞�-��ҝ;����+� 6$��G~�J���{���u���mu׳�xb>���e��]y�����3�9Qv��e��b�z�&��Q�ȏa5��$����g����k`ڹ��W������V������=}R`\@k�V��t�~��M16�xqMW#�r�I���$y�P]�ݕ�3lJ���@� D�Ԡ�j��B#���u��0%n����:�8Q��������>(�歓����z��غGߥ��EY�U���x�%�/�zw �+^'ҽ}�2�n�ٿ�5?��)�b +b^��=�F�xC������"��\�����0�f�e�3�}���\ʁ�� ���3��-%]$�eM��2���au�t�\<1'^�>�(�}���lh5���1�_�>�G\1���Q|�b"�̼�U������H�g���MbisTQ뤴y�s�@4�9ZN����{:��ɗ�DPU�d +d�%m$+P�:Q�)�І�[Y6��%�����T�֘�#x���lz,�����2�SH���Bw�fa��C.����۰��g��%|�C�����Czrm��,�C�R�jI�*y8 +��@H��:W|Vi8��� +E�E�9 +�@� ��]Nu��j�����gE���9��D�ac's�����=б�~2f�3%(¢�#��U� �<"��/�1�GуB��*BW[�C�ws����9���u2��j)8^��%��,�'�+� ��}H0_nW�t���Z{�}μ��RK]��>y��C�ΕK$���~j兣� ��P'��t��E�-}�a�OAq��A����uBԗ��{E�!'��. ۫���,���Z�t��9�'9T$���s�wco�?,�p�����Υ�|ß3��l�e\�ZV7�{|$G� ���+��?�kz�^���`���խ�je�Ҁ���ʕ&��{�0��G�m��I�.P����f�#��UD9�Qk��1�����v&����b����S�RK���qt��ቺƚ=4�C�(N�o�s� -U@��=�h�ζ�6$|� +i?�劲q�Ϊ��^}��[Ee�L��{����<QdW���01�|�;�xCs2��R�u1�G����^�I���/'B��:��}�$CIO8e� +Ӕ�a|z���h�Z�w���f��:th�e<��x�O�sZh\Y��S�$rXr���k�����G�P�(<��n̫s9Ǖ��l���GC3�<7zj',��N�An[ ��ϛN'����»����^���U��e��z(�|��ԣ��>p/)`�e�l�`4�sSvV�DS@��}�LB6ӣ���`9�Y�̤�h�S�{��tc3dm����Ұ!�J��wD�T��MFH��^h�_�P��5�䍮@�y&z�#��=�3��(w��cb�F�C����Hk���e+Km=�|yV]��x;�ȯ��7^��8�Y�s�-�g���=W�j�]T��`��Q�}8�}z��G���f�*�Q���ȩ��&f��d2)���_�������Ғ�'�"Z�Ns.���ć���Pt� >Z�a6v��:}�f��/(+,T�>�UV�R���+vIC �e�I͑F,DS��a��µ%g��+��CϬ$"8>%R4?+��'�v3�;z�6���{����Dt +S+�6_*�� :��"��K��4��6 +�(37�z��:���Ü�-�몑 +���VlNJ��d�ͷ����dn�5�r�wƗ6o&��+I1x�N��N0�'t�?��%���um��V�e�����7�ּ[�F����z>;w !i3�waa��̝�",�i�R�� ���*ل�v_sb��������'�A�k�)��F��^����W�c_|���I%O�\_�n��.Fp�[�]�����>�m~�E,�{k�*��B��[�Y��+��ة/S��� +�����%^L�<��T��vA[ޚ6f�Ιo�"`L��.t�MIF��X������歲��AM�na�^eRWmVD��E��Ã��j˵M9�j�n^!�ˏ��,���2���7�¿r���_Bg�z��-��mL��_�h*��R��m����SD�6{�������kY�Rca�Y�UOb���\�%��u�c��dy����)L�M�"T�[�9�^�U�=�A��U�sߦ +��I�&�s'��j�:O�Hs*Xt��j�Fvݮ��&!���Cjsl���A��ض�#��|���Gc�,�� ���/�ꓡ�oٖ����H��F7#J���W��k�C%Lc�{(6;l�e�x +%���,-�>5Vt&o=��LC�v-���|�-�����p~�|���q�~���ǯ�g��.ܽ���z��]�k(��N%h�3M:������6_�=\��R�M�h�@�ە��I��jB�>'.��l|jԛѭ���hr�lމa6�O��}V���2%} +d�ڜ�Va���k���0��h`�#�'q�CJ&hCv3jM�L�4�����6e��K��p��k�T&����Dn5M�a��2�CR-=�6�O.��"�?�%R$3�#�`�J�7b?Q���B��h�V�����O���Z��*��ۗF�c���|�]9Cԓ�x�Ġ��<�m�3K�-/l&C&�`���%��E����$�4[�ُ??v\fB�/;ݨB�*W�kM�{�N�����}�>�pfnb��`{DtG�O��k+� 3�,Z��%|�J���,<�=�GO��aP���]H�F}e1��c�g�b����>Q�M����n��q1�:��.�E�����ۛ���.�YT���%��烑n����,P�.� sa/\��bF/-?�j0�Kb����/@[H�I�{Nuo�NOc�E=$��h<�(G �\YhRG���)�g�(Z���֖C*uH�d�Sq~��>���V��ժ0qIk�쎧 ;F}v+����#Lj��O9��y#��'�&�ט������ǽ��5e���&�� �=z^Q��Ha�L�]����\�o'��f����9�N�~5d{���@ ��Y� W���Թm�y4�,H4���������z��? +梢���$q��j��JU�,�o���� +O��L�{jj�CG���㧥�bi?\Hy���ʡy;���;¥$���l|d�����Θ��khB� +=�At�v� �3�g�Dc�)��dN� �v�����-��6�M���%���ir�V8�*��dqI�d��%PRC\A��&�Ӂ�YJ�JU�a +�_��̴�)���@���$�DQ?M�x�@^����{}�2~���ɱ +��Hd��N7�T����X �|J��+�����x�f[M�Cm�\z]R<#��T�����h�U?V̍>�.dIS~z2O4S�Л;<���z9�#ƫ�s��q=&ħ�隿���3c5j�?@5��wr*�cN��f��{��hC���ݝ��>��#3��mY� ��c/��E�F���x6���xr/<��Jt��ck�^ �OvQ���~�-�%�<!LL�������;Ĉ��corr��)�"7�*�h�7�k���o�tl��֎�|Z�\'����|�ͣ��������ծ��mj��U���)�ݘ3�"�e?�,{����EBZ�:��&/�ϳZO��kŻ��1�1��Q��\�۷�Ԙ�^����04���V�\J�6��25Cs�^���.������,0J�� ��?#��D�}��&�5aV�}?�&�^]ԑtMݎn�z�dW ��3�ŕk�T��<i�q���=�@ ��N�DCUN�P��u�X2(Q��#rʜ�����J���I�M��������W������>�"�,��� l�_��������xl��o��}V�`�h�F�Im`7��o|�n�5�Щ�������@��z���s�HEg2���ʺo�,�ۮޟ�K욤���'fı�q�a��ɷ��LB�;�BJ�g�2�x;�zUX������ +k�������1���Jb�����n��'�/G�kB���a�|=i��k����w:vD�����W���['7��+X���r͇VSf����l�[��^�]�ܭ,͵�S1t��i�h��g��F���N���1�� +N]�я����z�TmU5��}�+D*o��/�k�ˑƑ23�+ +��r_)s�hI�a�'*ӻ���ORy|t�vɮ<�hs�E�s�����3�!P������V.��oIq`�3�~���t &������,_��r����3/VQ +endstream +endobj +8919 0 obj +<< +/Type /FontDescriptor +/FontName /DJYPXZ+CMSY6 +/Flags 4 +/FontBBox [-4 -948 1329 786] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 52 +/XHeight 431 +/CharSet (/logicaland) +/FontFile 8918 0 R +>> +endobj +8920 0 obj +<< +/Length1 1422 +/Length2 6187 +/Length3 0 +/Length 7168 +/Filter /FlateDecode +>> +stream +xڍtT���.�Hw8( !��Hw#-01���HIH�J��������(��-����s��w�]��5k}��~�~�~����8��v0U$-�I�t��� �� $D��eG����$\&0�'���_%��`�4���D�4�\`a�XL +,.�@ ��()�2�n�h"0O.%�� +���l�W�������;��C��@�v��av�B\FH(���G '4�] +�����y +"Q�r�w>p��� Cy����B�`&$�;�=��FH�`�W8���dx!�a(�fs���6@���C��C��{6�� ����f�*G�N�@�H7w��p8�]a�=UmA�/�.����E��z"1�o�b�!��PU0�@0������==ᮿF�*�9e���� �@{���O��A1���s�.�"�����w�5���;�>���P�K�@$��ah�(HRLLD����|�N�_���a���_0f���w�;�3,�����xB�a�4���\����{8 ��9�$����a֘�G�}� ����Я߿�`�e�D������~�z +���*�&�wLQ���$E����!.!�g}�o���j ���?�b��_{���_s��YK�Q-���[�DAP���-��)�7������7�����;��;��!npW���h��� 16@�7��Ǵ:0{���G5���1�EA"p��*�f�GC��H�~���\��>���ۂ���+���������w���?�UA@���|&$*��P?FNB����0Ɛ�0��J�H4&��1��D���Va!����q�9��~�`0���@]<]!�N��%E�@W�㯻���_�?��z�PS�����`0_�df ��t��l�V���#�y�`i��a�yo�(����'m�� E[�JơL�OϣǧY����Z��[�P/Dc���) <}w��#����8&��p��0ŀ�����N���(�.�ͪ��힛���7@�WJ�t�BA�.N�9� +z�܊2�e��e�q�'N<<�\�5���o�2){paa ��7S��V�+��h&ZM����~&��<�FO,nEѯJ�ӓo1��Es/��N�YY9�z�@n�2V�!x,v*J�Bs���u|X�{@�ㇿ�.ّ�(�t=d@^���+Li�h?~�V�y�c��h�.Ĝ3?Ψ��qh��G�p�,��H����e�����d�Y�胛U����Fsڵd�b���N_6���QS3*�r=6����v���6���zLȺk�����ʦ劎ͥ��I�P��s~(͊ݬ{���]��{���|��!k��z������j�eмՕ5p���U�g�y�H a���\���ƾ�]�aNM����*ص�F�=���x!ԃ�DB���X�q�� �@��l�O-e��m����w�5�K��g���w^��\c�e |�UD͐F?xH )��R�+��\��1]ǩ�N�{ug��+�$�Z��g�ȏ�&��ni������;���i�t��n����V�b�K"�[�l]c1)9��UW����Β%߉�%���fRr�sN��J���T]�wx�Qr t0s�=E����rՃh��GUCf�-��h�,(Qc;�q�� +A}��3��K�Q�c~)}\v�.�}V����� +��(��E�>�{��֓�t&XH͏遞Y� i�=�Qo��."82��aڂ��/�:�2���jZ�l|7�����m���{ma�K=w�.���{?W���<�CB���;��9�+�ͧ�*��� �O����{2��;_�_�;;���ܴ�>�<��sq��6q.�ξΝ>�Pq +_���&R�d�.�-��]a� )��z�S���r�o8<�sw��c����"�5�BJ;�t�k~Ѡ��y�Sv<>��K�!:9�v8�8I���I�H5�sG��u��O� �`6wY䀅�IfFz��ȋ5�F�X@��0��0��7n��X���El4AZQV���HϬ�? 1�zz&�� ( d�>}�͵"ǐTZZ}��'�SH}��~r���DZ���ҤGxT<)���R�b22�Ȟ�.�?ۤj��v�g�h����ѽ���ܝ�̊�R�|�H����L�����_���k/;���M<�\��;�os=�O�[2�s�\L3�I~j�F��k�Ad��h��מ<��q!넾�f��e��#�#�H0x΄�Vb&�-�Sp�2H�|M�'�lK�2���x�I�gaa���I��ĄWA���y_?)S<|�_�u}�r���bw�(j��cx�c�LRL��6{�N�7�A�f;刑���h��~���֗�u�x�cuQљ&�;��=�F$ݯ��\�����f��D�P���)�j5�n���(�:c�����#a�@�j����g��t�GBY��-�b�*o��f���k�kav���2�`j��or����\�?@] 'ė%���x�;��ʾ'E>7����a3�J�a��SQ�mnE(�7AVO�!ϛT�XCI2}�r�%��q�XR�u�Cޘ�����9��7�$��ZRYs'˟Ol= ��:L +5^����,ētBz�槙@n�~���)?�s&_�3�r��<:o�Ms]-���2��|����H�TmȞ��4�-������A�\F�Y'���8��g�Xf�L{�������D���gG^���T¦�G��y�,���GD ��Zu�UwȊ�E3�$��s�����ʭ�P���t�LT�BO1^�gW 1]�_�{�k}�S���g�ja����k={5�3k�-�-d¹%ܨ�W<�X�aҬ��m�Ndaz��a?{��%��xp��[�^���*F�����.����>/�K.M:�QX�"�)$<4�m�%�S>��f�0䕣+�'���(P�J���a�l��{K�C��)��"�%8�K�<E���%�=���1.���WQ���Ӯ���?ts��^ p����U���:�&��K��[g�3ï�U0���i%�X4�;LY�L�7��)u�C�6�����K��3�2���83���bހL;/�d�5��]��Jo�����{�]3���&�n_ ��*��VB��[/��#R�3��w:����Ui��nrSt�K��4�����cJ����/|dB"-�ܩA�٢&À��8�>P�g5|lv�S�]������e~�^筩;���L)�*�|���u����'.О�c�wf�����Գ�u�7����l!i"��z��?Ǔɧ�drݬ[H��.�0�+�����I!�����IJ��k�Wn�w2Bα�c��0�"�X�$e�}w�U�ov��躟y-�^2�t���ǣi�:�U�Zyx�Z�(%��B���G���n����k�Ϭ"Q����V]m< �����Xh�Qqp�lQ��6<�zoWn��%�x�kn�$�s#�r.>O4,V~hz�Y�<�P�+O�_ԏ��>aO]������Y�%�_ʥY�+c 9����)@c]�H� J�����ܥ54e]��اg9��(�<�]��GЙ�6�C +�|l>J�+6����n�\FRˋ��f+�s/7?ē-��?��3\zXd΅S�+�n5Flo�f���!�"e��n����'6�|�2����r�����s����X�'�&�,��Oŗ=]J����ӱ��d6)�X}���'�MN;Ǭ�=�d�i4+���.SJY��5ۤd[ڎ�˺#z?uv���Z�Wه�eR�z�לK��W���o�v�[?v��[��.I���)�%��(oC'��2�����/ׄH�j`h!���F�)����s�$���e�e�uÈ8YC��q��h�{�#���T,͉��Ka���-�T3�ׯuΖ�����cW�R%�ב�,&��᧽�WǶ��#�����՛I��)2�.����K�q^�7�6r�Z�*�M��xǷx(#�X-��?��6��}{���=�����O�Z���=���Χ�r�h�]��O��ߋ�Xp,�}��x�yR@�W�/¤�Fh7��k��7����س>sգY�q�n�S����������b\���(�~���^ǝ� K� ��%�UyT��/,I2��O���+~���nDN|�_�װ*�-�՞l��s��4D,$5�G|�bd����)z�Ә�*��z�;��T+�֞����:��>zA~���r�Tj������l�Ӱ��eMǖ�=h���� ����3g����[c�\�#��eY�h����0T�ӿ������a�wp�{��,���ϟ���m��:���M��*�b�d�� ���Ji�z�(oh,����k�~l+���[�����z9->v�0� �^3d��m�gO�q>�˛��"x��9�5,MT���7�.�" 4*x��|�n�=�R�pVS�6U�!�S���313Eo"P���ۅ��h��N\��y��X��V,��CO +����x��y9h=�b;����|���P�7���ZZ�����%N�$�h3M�M����Y#���z����^�+��Fqw0��(�z���ը`iU��;2��X 4�`/��U����.[C ��o�hm���DiZ0+�Nv��� %�9��!=���#"�\<.�=���9E);/��Mn���r�muR?�R���;0�����g�w�:��ǛW�'9�'C,��uk4Z�2�W��mϮw��T�ض>� |;|�&)��q= +3�5��7��h�,�3��!~<�΅Xxq���?VcDݔ5����L�p�����&���6Ζ���N>R�W��Qo���)� \nL��EsL6�b�K}}�M�7s�t-�3�,xm�'�,ev��(;��=d�.��y{���s��eU&�-�K�"���~bը���tr��zSn}) �}3�A�[\��kQ������+���x��qy1C��C�|�qQ���|_��Z��$��uo{�tYxե��` �D�l��-W��p�a��ZfW Iz� w<�g��.�h����mY��˸OJF�I�.����E�Mr��.������=���>F*�^Ǽ�ދ]�2�����U&lGs~���!�I<1�5���ė��:q���i�y��y:���vVg��:����'�?�w������1����6^Y�h4� +Y�1"���S�l�_?��< �@�f���{�88./,�H(Y��l��,��2��٪}^�2�{~��e->V��=r����#d^�<U(�l�:����ۀ�o��ȫ�4T�]Ϙ�Rߩ��5��X]�,/��M<�p� "j�i��"�v�����d�!�c��H?��/ӂ��j�s�&Ջ�p�3.���� :� �N�|F,�fk�T�*0.���SC�\�lsՙ�/����l�|kL�Tp�dۺ���|��S���'�+Zq��mR��־�ߖޱwU���5���(ƪ�e]�z��|�͵ج����zd��r$��wLE<�,�ـY�2������j�l#�0�k8AP��q�=�0�� CD��G�A�����������?��C��?D4�舿��p}ܵ?5�$칎�)5T��#<�� xd�BB���b=X��X�������k�� !dC3G!�+�>�n��F=J�ܑ���1��W�,Dd��&yo%��S�o\���ř�K����{�-�d���[�cҩ�ү�F�!Z'�|w������7��m�#H;��N}lh�N�����0u�F�w��.��ߛ�>����F2����@�\[������>��k#Y�kPxX��ƿh���o�q�1�\Xo�XaM�ɵk<`�����1�\�6�28�l�[��N6�֭P5� ����K�� �(���#�݈1�*��W��v�KV��� '�Ӳl���F�������KV��J`z#4%Me �c%�V��H�!�"�PgL��i�K�6�R��q��/D�/��Qc����c }j�\j�o�͗�/�t�ž�,����������I���k�,:�+�QM�]���{�Dǭ�CGg֡Hh���pd8��I}}�<�j���(lf����n��o�PAE�A��\>�!s���/��Jf�$���;��#�i���F��cB�bk��5 �*�"X�q�[�a?� g1���+�0��2�}�`Q�c&1�R���~j��j�Z�*�ݚbt:ETa�ó}u����p@͙�:�a'QǿĖ��5��9f�S�?7�_���}s��9q�:~�d��cg���Һ��ofMLO*�%��hm@ua��S�Rӈ|"|���z^lb��#ޝv;n{v@m9?m����~!�m�Sª���Ym1�K��������B��F�SI��F�f)���y�yf�� ,�X�U\�T�=ӆ�S� +� �)�U�����j� ��kj���ÅM2�>��#�3W��O��i����e-=�L� +���At���e/Kؖ�������k��L5����`���x |'��>_� ��r����эg"~s/���k_ۃ�G�83�=�lV�;/d�+�\��7B��Cv{pK�;�%�2��� ���3��G��qQ�S�����W�[f�=�$�R2�yE�i�$��t��:�������D7���m +Ful��2�)K;���s���~�Έ<Cf��m�I���g��\��m�����7%�-�����i0 +�[�L��Դ���!��;3ۦ��^������N �H�N#o����-=�Ê�PЫu|MHR��kBP��^�P�M[NH�B@�މ0��hR���E9�m�(ˈ�0"o1\8��H����J�sw�����5�%�LJ��ђő���Rk��U�s������]�Mr�~Ы[ +u^���:�<��w�N�A��� ���4zUW�$�o������� E+�~�t��l�"4�tZ�l'Ӗ$���N���S����]�N��`=t��X�ȥei:�)W�Sl��:��hf����%��7����������B���c�s��_*��M �]Z����=!�������r +endstream +endobj +8921 0 obj +<< +/Type /FontDescriptor +/FontName /OAJWTE+CMSY7 +/Flags 4 +/FontBBox [-15 -951 1251 782] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 49 +/XHeight 431 +/CharSet (/arrowleft/backslash/logicaland) +/FontFile 8920 0 R +>> +endobj +8922 0 obj +<< +/Length1 1378 +/Length2 6060 +/Length3 0 +/Length 7008 +/Filter /FlateDecode +>> +stream +xڍuT��6-N� et�N��a��m�� �� �)� J(!) "%-���HH��t��<�����9�{v�����u�羮��M��a(;� +���U�M,e�""� 1��)��kp��� +)����h8���A�8�> + ��p��E��D��DD�b""����r@5�'�uPH8���r�A#��2�z�B�����҂�Áʮp4 +A�!XG�+�"�4AAp��?R��;b�nr��^^^ �+�B;(� �XG�1G{�a�_�B\�&������ ��AÁ8� +GbpH ��h� ���?`�?�A���D���o��D��`�ru� }H�=�4��a���@�q��p�O�b����P6Bp�E#ܰ��kD�_ip������\]�H,�?5�]����:#Q^H��{f�k�������V������9��@IY)) Y ���: +�Jo�����e�M��r�ㆀ ���� b�������� * +�!�X����';���s�-���Ep�������G/ +������ +k���R�3�}**(o����PHVR(**# ����3�!� ���j#�Q@�?���_{�%��_q����. +�Z8��?$����D����;����_Y�_$��4<\\~�y��7�����#�'�}N���Z���VCx���W� A�#���HD���@x�a�,��e���~I����0�_�\����p��:��/��8����:���ҙ���FC|�"8:����'�$����@a�Ņ�q3��Qh�����!���3n�����z��8������οU �{á��q�v�ӫ���*ef/�oI澶D'YvEIb�'��9�]��qWy�+�їn8Y1<��̿y4�mݖ<�������-��{�����C19J�G/Rm=2�I��L�yl1~.�.�R�\xނY��]�_P��1c�s[� b-�8�b?XZS&P����f�����C��8�c�EpB懙��9�]��;���R�4���:l�}�=�t�rt�1x�*��%�I��]#�g !]S`نwkXcΕ��G{�lDJ����!X��v����ԢMQy�䓙-�5�:�oJ���^ ���y {s�G +=���yL�?�7x7�97+;����8K�^��IȎf�U�8����'�����U4�7��̧�fn��H/�ju��g$��s{� +twϻ�%U�y�����+�>�+n�nD�þ�q�+�>͊��@d ��0 �n�O�.qQs�c =(*kK�^m�~��cw�������� �?a�}�}���te����O��H�����0�����|�P��wߡ��ka�wо��[��������� G���(>���\(Y��\3{D�Q��ЮL]�ɫB�s�O��Q�Aa��0�w!,_���#�$+��������$�.y�Ma�r���o�����U���g�9\c���V� �`�+@4�, ���R%L/�%��S��=����;�C�:�9����n��ɚ�?\c��s���!�l�wR�֡�1���;��>r���\Ѻuv��V�>L�M��dln��U��n�d7�l���Ԇ ��yh�!�y"�?���mn7:�x�_$��V��]�$�}��� (� +%侦0PHFH�HC�T���ƢΦ���Oݿ��Q��$�|u |�"�#��Y�=����{бK/?W��Ĉ@�(�G�˒@�A������@:U�&R7-EN�К}#àNqV�3:7�G��-9�,�ˬ�+��T;�YU�D@��Nڒ4(���i����!�;]Dz���ʢ��C�|`��![�C}�C�&Z�aZ�����.�1�pf7t��\s��:$_�3U���J�O�l��~�,�ƍN���0�����N@�c҇y�eSO؊W�^��闒H�}��S�Ft���͔�%� �y�#�c<�"c)�5�/1g=}��'�{l��>�6*�y��O�D���j"t�j�xĚ�#�.*�-L�Z�yU+(K�?��- ��<r6�'�+�m����E�@k*�����OKc��>�Yl�@IW^2���}��ˢ��W`B-�M�ڇ@��N���@�r=Ƭk{��ܻ�uq+�V���Cd����K�n��uw��NK�UԀ�<��G�t<����%w�;��.k��v��}>��Tg��j�M�h^mΈ��s��5c5�� F�]蟡���w��+���m+���)U���({���;_�>!:#\\�O\�F�p+�SG:�C��S<��C��)��&��Lw9B'�ˎ�E�R��� +k�m�q��t�i)ΰ|��)�"�@�Mc��gnG�YɄ �+G��В��!� �K[`51��N��\y�9�Ci�4�T�CҐ�^"}51�a�ӥB&�*T������8*v�E�mW��ݬv��LU������s�Ui����b,C�ӗ��K�������o\��_��Y�|�� ��-Xz.��t]���r��ځ�D���ȋ���j˟O�9�'{�+rw�����ς{��"!osi��t.�b������؟�K}��x��^����(�3`Z�L�\L��%c�N7����/y~�=����6���BG��#��,����*GD�^�Y�4�������ȴ�i�"���� +��Io��l{'�W��ͪhze@�IIYU�A;I�� +Ta$I]����v��k㥞V��Iz�rW�E1W� Z$@��^�sZ{y+���,�"x�V#ρ� 'Y�v/���Og��,�ý��Y�!�[q*�)�[��d|����r%�F?�^�.�~��|d�e��7�u�,Ӎ���y��Ņ��!L[�3�.��0�E}�]$R�4��-�R���F/�MS�<O�g�K3��)�A=:E;uy�6q|�Y����wuӇ�Ď^�f�>��ͻ��1�6�� V&g�͌3r-� �R��? EG(:I6;�� �x��^�zV�O�Y�0+��������n�Z5F��!T:%�gҐ�f�0)ro��(��)�ؾ�<�X�6w���1��'����M�ߛ�r��Ar�������n����7&b +�Ǡ��S~�$d`��!�El�:�{"�nP�|��Ns]Bs�lR���e���p��/(� �Nc�\^���:�zX'�<ִ.�:4˛\aux�UOv�����³@F�N��¹����_dr*Ko��+d-�������2⡹���`�m|�fqVQ��Ɯ�cH�@x��-��a��C��{]B-�O�G�sO�?���x�{��? +k��`\^��ݙ�����T���#l����ɭhW��D��+\攗E�C�N�)��IR�O|���ȓa�|8hц�m}Gs��A���4�RP�8I-�;^I���)�Cq�yh�����(��M��/�ܢ�H�<�t��|���ʶ�G��3���'����7"}��]�YP�ϓ��b�����d�"K�a��'�?x����l�(=3!N*5 �B�Z^,�tN �OZ�%�6#�<�zJ��:���;A�����+�2���x&ᶋ&{�}ljŖ���\���r�D"��/�� +g}�´Z�� +���Ǎ�5=D��1���L�*���j}g��O�v�"�j���T��ܐVӑ�sžU�(��z�ay�����a�[�ƶ�f�?��>�n9���q]���(�5��~v��#��ƙ6� ��� ��|�k�`��rŖ�|��#_�7?fҥt��3���w��A4},��G��#͕�5�R��g;�����wIB�uy�Y�����;�y�:I��)]�()��me��2��P��ˎ��E�����J�jr?���J������)���T|{9��J�4�b�����_�OW���M7��<O�<EN�ˆ�og3��x(������������~Sь������}|湉���=zS����`��XZ�Q�jx_�@椂kC�ڮ{v��sW�`V�|����KL�_) �5-�b��^w[���r^���Z��W]��^�c1�O"7�hs���)dN��,�Sx�4=�g���3>7�\\�Ӹ^4^aи����cC����avM<��ڗ�.�7E��<9Y ;��E�KsZ#�CL־�� D}h2o}�iȓ��1HS�4m���s◧��y��Ԧ�땶>�r�(3���)�_\�hCG���O3%�iX�3p N�=-Un=��S�g�3�\���t_!��K�9#�����Q��B�+������:Q����=u�Y���a_+5���7�������(t�y��i�z� xu��A�̭��I���(ܵ@Ƶ�Յ���)d�o��,p�kp�R+�j>�69d6-/I�C�Q/E�l�a�0�I�kQ2x�I�~J��Iek���Vw���t�RZ ��:iͩ�䥄e��A! k[E����5�C'R�G)�.^~�%��4�:ߜ�P�'p�}�n�r����h2J�A�� ����m�Ƙ��S\�t�Q1�{�Y\�AȭޝV����"�$l���zC �"5�-|���,/9y2��_VF��mǎ�����$w +�p������b�g}�ӷ��"J�G�"��CQL/�Z�Ą�Xc,$lC�>�M\O��T��DtT���UfzH�K�|��>`��}�W�X-�����˺A(�jo�}R��2�B���[���D���q��.F$�����RQ} +-)��^��P���>7c�P�\M�yo�>ԇ�~G���UAH!��ӵLJ�F�{$�(�-�]��r�əoZw�d�:s�ܣ�ڕtUч�L��$ʖIAy���n]����!��m�W�( �z�B�� +ހ{M����֙��Υ���;��g�x-��r?I����6�T]d�p��g-��K�,� �z)���>�ׅ�t���$W#"Z���7t�@��6����0���������T�9�~L���أ�G3ɱ[$߰m{��>sJ��|h���,k�����7p�=>����e�v��؇8�w��<W���Q��t3�bt������<��c��X��?��F�9���AU����b�%l9�go��Wod��4���B�2�!+S��}y���Wl��t>���������Fw����5Vb<��t�9��!][�0;��X��h�3Y\��^���^s.����㉖��$K�"Z�j�H��>��(|9H0N�C�l��G�゚8��N=Bv}*��G�����ܻZ�;&�v��0,bp��1~�B ����E]��|�l֏d,�8���H�a��9���&���aT��\M�^���z�d���\�#.�l;����MI0��=��¯u��Oй;\�C��vK��\�B��_gI9������Nj�~��Ě�<F��ABV뇠�`� �g��N�4�k�w,��ǻ����^����AzV�*�G�G�F�z�K�r~4E���B'��ډs�#�^� -GV�����Oa6��Q)�Ky_�l(�h��yT�=+���+X����PV���Xۏ���(�ҿ�ޒ"[(w4K~ �-�<�����|gbK�K�ym�k��Muo�����@��ҫs�n.�-�v#��Ӗn��wG�' cz��dRWl?�����]���d�q`S ?l��(�����.���^]�z���0�V]g���q�:ϟ R��{'z6���)β���������� <��#ɐ��;�w��=/����ʟ�:��pXəf�n�x�)���D%��K�yM69����HT˧_���ٗiï2��n�:�� ��YD���P�>[S�/��[�Y���{ڔu +E��eAkQ���d�����/�H�������~������!מ�ʗP��_�t} +�N���l�۾sA��Bd8��v�N�i���/�R�fv�_u��w���&�����N�3��y�=����@��;˓�����^ܐ�%�ԑ���~r�[<�ּ�9��0(���w��u�W0�>��Emv3TC�*|,ɺ�9�a����<��0#�U���/�_?���0������kX���͏=�k�=�ь���"҄w���)qJ�[�� {����q�ꛜ�:U�-O������7�������������z�;���{� �#}QyH7�'i����=��yso�$�{9'��� +�[\��G�X����a����GPr��ٌ|����H�z�{G �L�i�Ι�L�=�5J:#���ͼ�;Au��<_��ik����[+3Qx��N"��m�-�}��+���"-פ������(��!H�<V��n>]r��k��"����g��gW�2�}��3cy�z�(e�l玔��~7��t}��<��*��r�������܊b�Up�q���K���#�l+�sr�wE�.��(��o��&��1a��%TX�����Th4��+'���ؽ�洈�/iD9,�*RvL\��iH��,5d���y�H:�hг%�)��>�)q��+��i�1R�w0mٞk��d�����^j����Ӫm�n�ň[�Dz��* k&�S�}iB�F|]�����}�ȖjNc�<����1�����en�A�DGr6Wk eIp�S��jy��'(���L�M:J��gO���~h���R�Yߙ���Q*��<�&X���N�J�n��>��6'}A���5~~��ұj�wʲ�R��5ˡM����<�k��.\o��ԡ���=6Mh�nCѥ�P�A��I��Ԁ*���/u.���2��މ��l��`�����c9 w�O!� +�M��l�K�I+��2�W�&��m��O<�w�$�)�p�H��@��*IzO@Y�i�c͘�!�q��!�ߥF����+��z6�$LO�?���� +endstream +endobj +8923 0 obj +<< +/Type /FontDescriptor +/FontName /FRNIHB+CMSY8 +/Flags 4 +/FontBBox [-30 -955 1185 779] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 46 +/XHeight 431 +/CharSet (/asteriskmath) +/FontFile 8922 0 R +>> +endobj +8924 0 obj +<< +/Length1 1374 +/Length2 6002 +/Length3 0 +/Length 6946 +/Filter /FlateDecode +>> +stream +xڍtT�����JHK� �Cw#HwI�03��03L� � -�Jw��JI���* +JwH� �1�9�߹w�{���������}����22R� ��HVHT(P�7������@�/��� ��Z@�!����h(��i��x�>������Q)9Qi9 ���D�4@�0@_��D@1d��H����o�W���&@TVVZ�w9@����A�>�u����H0������������c��hg����/�`�@ўP�����;��d�d��3�O������|�C|������z�C��� �{6�Qa�����EC�.��Hw�C8�`p(�PSO���_@��׃<A08���9��j���;����a�kD�_4�S����#�ݡ,��W04�?v�?7�@z!��.�`�ӯ! 8��9恃jk���Cd��9C��I����$���@��."���|P��I�_a�~($ +���s�����0 O(���A��w�+2QQ����0���a�ӟ5���0o� �=Q�����ovxyA�����W��莮���?�;����� ���d%e���R�iii@�?i�@��m��S��pBd�t�?�u��W��q�O.$^�P��Dn�����o��.��)���K��ݐ&�����?� w��/�/Zo�}$����ZB��V +����;��፠�pƋYHTB(�'�h¼�#��G2�濬�!�FH�_�W�/�������w +���?����#!�|&&)��� 2 ^Nb���?Q�!!P��J�#�X| �?c�� �&�u�b�wC��� ���qh4�d�5���_�ߎ�B��`�/��`�G�u�Z�kTY���_��m���� �������]���Ps�T2 �}. ���z������S)w�����̫m����v�r@�,�Cҩ�4[���T6�6�����B�;ŗ�� +��0��d�Cj�Vl�jV�:a�5�,��ږ:�m��3�6:'�����D3����Ħ����雞T��<ݮj��0:��:\Y ����Ou�0���$�K��n0���M9HO��{�*�W��l�Ln��W�̔@��0 p6u���k%��x�v��7���i +U_�����ɡϨ,Әywx���cn +��}��8�q"=̞��Wzɵ8̞̒Hl�%��U�?薻��)�W�(!�]���s���B]�3iƮ�-4�쬥����:$��]"�q��P�(Ó!;�����F�1{�����/MzC*�e�u�8 ߩR�~�wOK����U�����3)�l�Bjjv+��Kin*c��3� +��Ov���@B�w���UL�o�>x���4��[��.7Q�B��������s��W7�%��]����W*O��k���`$����倕�BT�qv����Ӿ�v���-x!'��f����{tp#�;�ޔ+s8m�ġ�_z��2�W?�s����.۞�?.��-+�i}x�5j�$ez��z:ш.S��9H���������2��o�_u�k���}Jn�mF��5㣏m>7mv���� +;5�O��}���#6�EA�� IC.[��" + �.�pܵ ��]W ��q ��R� g�[�� �2��؉]4G�3:���� +b��6���WU��G�ɼ��r��kE���ShV_q���w&2��r4���~ +����� C���t}�9$�2��L��c'=y�D +'�JLY�d4ru��~��n�o+�����n�D����Na�Qm�}��-��ԇ�Fe��b�=�Ҩ&�sN}љ�Rp��"8q��8;��Չ�N���L��fC�.s�lO���5s63���G���XSR�Tь�[?�JpS�����e��m�yҨ@����Bs�-ɶysVl��@W4S�]������0 ����{��]�'��N%Ԭ���7�J��$�h :�}�x���}�p"- �������6���Ź|mŽAk�� "����P�f[F�f��&#A� n�br1��Q�*.E���grN�@AA���hI����l�f-���GE���7�D�ڋ>@�`�Y@{/�Z�O��Ϫ��+1�3����������;ٱ��d'�1Z��60�Hǖ���/�<[k�9��/~Y�X�Mω*<H��>z��\�` R�3njehTW�H�[FɄZ�݊6�ĸg��,T�2f?�9J +(%��тvȸi*y"vcr�z~��Gy�7���<��ϞR�,��q�|_f�i��t��j���oX�W��1�s���A��Sg��;>#�%��3���Tq[3�GO��E4��MJ�г>m�oc��o��:%k0���f�i���-����w����/5%R���n��������M+�sr55�G/�ڌ,I�uuJ,�C%�r�k�:����Dɔ|���]��*���lv4�����\�/i*�,��TS��<a�]�����I͊^��KmGT���N�eS����n�Z�����oת���_�翵��gu�?��0_g��"�4���H�4a�>�oLl�h}~fQ�t�>D7�����#kՙ�<z�KD��GkG8.��A;FV�����u�I��s���.f���ƺY ��nF��㯧�,�� +���4<�y!�M:�Y27!w���E2��$u�S:��P�cnѿԿ���z�BuYG�^�A(����r:D� � ڙ��刜=UO���@��N��| +�,�M���'�~}���ΎWёɔ9�C�?�C{�\��{���ȣ�O�JmoV�L�(�M��9u4�*�<2��U�メ�0p��M虫�f��X�NZ b������%�:�9��6-�ܚ4⦛��߇$�N��%ұ-A�7�>|�v��-G���$e�Z�gv���'��5�37�=�t�{ij�v+�⮁��49�u�[W�%`��I���.�`@��Ƚ��2�0,y��H�{�2"�H��e���ܾñ�ŶJG��Ct9��3�nk%���O��;�E��=:M�|5T���j���#�Oxp/��jw�93�.8nֽ}�6���[�ɭg�� +n��B���}X�K��ǒ5�t�!�ba�x���3�Y��7�� +��O�X��̑.�g_sߜd�� � �� �cWl������y �e�~ª�4�`� +���zuMS�%ZH���w�3bo�oAT��}��(a���w��%׆���_�;eX��?��w\[+%��؊�:�h��^zmW7�D �7{?����"A��e�ca�n�� +�5=+���ӳ"��SV�J����5{�������ӈ��8ܡ����A0-(~�*n�PȘ���ܫ�٘�c�ǣA:W��U�P�6��H�^9�o����0�3Ӻ�<��ypL��V�þ�y�������$'X���i�+$�؞�j��}r����%�e�b�����քF�Ljx̥(+�����%:2�k��h��o��֔�HN�-��l���r���M&i���ff���6&���3���\�Χf?�����=o�=�#'�����-�[��[� /����*r����y�m!�mz̠ZU���W㆖˴*�.s.8���W�Vi�8���j�#��+|��;HOCڻ���yU�E��!����,�X����Mr���VQ�WR���ds��q�@+`���H*+�P�>C']F��آ��mbm�������`��i\�r$c�&u�ʵY[Δg�y:5��ŵmsX� {e��Ij������o��b9ϖ�%��0�Z+V}����0�ۜ�M��Oɓ\a������}z˔�y'<�T�}z"&5B +Fqs�{9=�tn8\5��b(eЧ�����CP�%rʰ!�?-,�|t ��X7'��Q�~*��Y �x�X�w5hGyL�M�֫������g]�n43�}���ȌW���|�c�O��O^8�t�b?�{Ȥ�ʫSD>��9E�?xq��9½��#�^Q|#1�5��vf�܍�$ ��&iD�&��gڦd�6�8���. >䪂�fcU�+�u��Vs�k�*o?�&�S3����Z?�ʝ-����h,P�1IJ��E�����$�|8}����+�0���u;��_h��.�<�)�Crei,5��G^��P�[��!|���B��D�तk\D����C����T�uU�_��KF7�=���i)!��TSeV� +纾¥@��tn6��*刕�[��d�����M}��\�"�wW�Wl�yf��c8�ms�8d��=���aR�е�ah�����hmQ���RDy���xeB�Gԫ��1��wpQ'f���sT^æ�!�{�w��Rem1�RV�d��ʬ|�� +��� ���/�#������hi��.M��6��3�3��eW� ?X�W�f�|E��x�N@J��� bY��!&�ka����)�l�����H��2h�IF���.�4�p?W��[� ��sA�jw0�8���d�f�$d��~���|�ZE\�����6�pcS��Jo���V�y����z0��'%f�#-(�� ��l��ɹ��Y�g?w锓__;[��P�>�X|�I[{�Re +^O�J���R�wAS���6�ܾ�LǰF��W9���w���ԯe��x7���>m�qh�2��s����gF�$i�G���/���C���������ld��Ƣ�)mν��Z��c�7�$�|����9:\����t�8��z8n-�,4�IvR�a���8��rZ��M&�j�fv8���'�-:gS +?� ��/�|;���ȇEO��*�&n�u��_���!~^�t^���)Pj ��Ѳl�z9-W����ʿO���:My�j�֜}���p�V�����|ܕ)�7�����Z=�z�7�?���~�:�z|�\I���ދ��[�'��@F6�WO�B[C:��cL�������S�UG��V�8��w�(����W����1�ꉲK�|Ѹ�s��g�-�-���-�/�v$���F��7]�龓�*!d�|���հ��d �,,��6pV�,��m�� 1U�v%3�+��� +��r�ľe�����b;f�D;��3�YLW�aYIx+j�"�rA�Y��Ԯ�o}��t��B,�u�]��s�'X����mI�+㠦��J��idΟ�.���b���"��a�s��y���}���qX�~ɿ[ ]�g�v;�a���UڒǸ��`���:�$ZO��B��"G��<�?�,|��}��u榘����K���To�L ��gM��#�_�w�6.����L�V��ۜp�HQ������@{�:�j�`��F0�F4��5k���C)�a�ᵎ7����W�Ey5����N2dҠ8e��b{����Ω�MU��h/Gp=��./{&�Lh>*b���?�z�tS�L�����7�z�� )[#L��ܻ�zȋ֦7�ݮ.�D�<( +�<J�(��������Q���i}�%���%FbR�����f�� ž�Q]:�Af��y]^`�^�1\�ø��H/3���㣞�ts�K�(����zvۈ��.��h�T��x�i0�-��|�ɖ$��y�C5��*_�3�ev�V�Ɲcv�0�����i�!�6 �M?'��g��5�~ +4E�&�^�O�/~(1��N��tI�f���� +U��������dܫj�+�L7��>w�!'�T�5����ة-|R��/���2�H�}�b����e%'��ueo�n,R��H�ó���&��2R�^�Z�pY�2�����Z`���}���P���TIubo�1���[�G_����v��V,��0������\�1��=�ݛb�E�J!��n��u���k?��t�~�0���+��/����nY�G�V�. +o#�ƾ߂�܃��J\1)V�j_p��+>��c�_���F̍>�N>�%ݜ�]I8��^��14�,d�ћ�tE�"#=#�+�l;��,c̶m����+�r�K)���E�o���F&����b���RO�t�O��3edt���}1h��n?���ܷ��`BFvn�=�z��^NE�^�W�>����K��Y?3w.d���D�F��a�/[��mn���ȑ��Hx6�w�Ψ)��B��j<�6[8y�&B��6�O0��/���:�&Z�S���U�^�>LWF����s��PO�PN�}~�0g�~N���G�� W�S�q"M5j +�S��ӓ��G�^�7���< ����.=�v��� +�[��u�*�S�����wa����i:Q�+�� +{���B��Rb�g��Gd���Z��[��d�aH������w�����#�'/���X3�N��*�LYf�� +�����$#���3�H�(V:��S[:Fz]c�/��T����)K�L���d�f���W���N�F��Լ{�x�Y���Ssv�8��J�|�J��i�g��`]W��3t��2�X2�y� �P����B$�n9I*�>�f�A��pd!���4�\V�\n�����52��>S�|�G�fCm�.�x-�Xm�'��S�5��33��������} +�Iq���������[4������2���o� ȗ��D��lխ��uH�F7eF�]��u��o��� +tJW�kH+���*?�D~3�ʊ8����s�f5���gCm]Lb�Φ;N����Z'��s��.F� +F?��ɠK��j�W���q�?�Տ�ƪ�?vT0pԲ�ag7n/Z���@�ߡh�H �Q����be���ab߮]gam�W~�)�����J>oke���]�|c��8\��A�}��<���V�c�6u� n�Oñ��\y + +endstream +endobj +8925 0 obj +<< +/Type /FontDescriptor +/FontName /OPEKTB+CMSY9 +/Flags 4 +/FontBBox [-29 -958 1146 777] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 43 +/XHeight 431 +/CharSet (/multiply) +/FontFile 8924 0 R +>> +endobj +8926 0 obj +<< +/Length1 1612 +/Length2 17908 +/Length3 0 +/Length 18751 +/Filter /FlateDecode +>> +stream +xڬ�ctf]�.�f�m';�ض�ܱ��m��tl۶m�����=ϟ}�k�5�j^uU]5���XA�^����T��H�������5rq����A�dj��kd�#'q25Z�ۉMy��&�QSc������ b���dinP�*�S��������������lin����jjc�`kj���Q����0�YژD�4��$�Tr�� S;S'C������1�������)5��� `��������Ҝ�b 9��Ɩ����:��8�:�Z:;�}X:̝�{��X�۸��C����_����F����S�w:;Y:��*����'���Ong˿n����H{c�J���/�_/�����4u����`b��`c��7�_0'��pq��3�/t�'SsC'Sg�0����� �ߪ7tp����n�E�/�@gS38f��9��s�[��1�3(Rvf��f��M\������_ ��gf���04���������1����P�ߩ���'����-�����O����;����B��������_0��7�=���;�����nhki������&���#4��!;�010��h�,n�nj�` 4������Կ�v&�N6�v��W3��LL��S��4�������v�ڙ�'��"��:������2�ީ��R��=P���/��Q�����Z��!,l���{�YX9r13�������ֲ�@'Kw��ߒ���U��x�k��0bv��&�̊2�����x�/�?nc'�������-���5覦��p�K�Ƽ�Vi���Z�ܡ Q��f���z���_��~i�;ܕ�5! S<���g�4�#=X6��)�W�>�Խ��휴���z�����Q^�?�!�8��w'��Jޡ��Y�`����I]�1Ȟ�|�S�b1;P@�j��)O��(F���o!{�isba�y �}�ψ��N�Ɵ�o��n���A(U��I-Q>#@�k�A�F/���@&+��YE��`�r.�hq�?ђx#�T_��$@������z��� Cw��.�ٜ�c�0�߽��=�m߮Q�g)�c/��`��m��1υK[�M�_�h ���x�?l�}9�����uV�c�S�槲 �ߍ���9q���2q/�?�`C�M����9u�M���NC�xt��� 3�"�i��i)_��~�M��߄��0d�9|���r���ٲgq�i�"�����H]NiKo�t ?�U)a�6?\��o���:�̓!z�kL�'i�_JL�p].u_%n�^���������������2_����w|�c���{yf��QT��tvo��kE�h؛&��Ry��C)�Έ�ͼ�Z���8a�[��Oe��xT_���MJ@S.�O�h�w�Xq\�7Ū�_QH��зvE�)�BF�Lњ�"j��IS7���V7��$����ˡ���^@�+�0"S۬�����=�������7Kq�w��02A�g�_-K +�je�O�=�p�I����d�~!�.P�ڋx�H�gͦ�O��"���^��,�rw�6Y��B��3|Vk�����*?2���Էړ�h;+�%��'-K:d�t�,�~p�A1b`l��QE;�z*�Q-���u٧|��?t�8��'8 +l�f�䵮�� .� �,'Pz�*��R*�Q��u�IX�Hi�$8C2�Kj��&�%�-�Q�QsB��a�����b�kcu��g䌳"�v_�pu��|���P!�)#?��i�Cz��x�R�@����γ6!�5�����r�A�C-bkʈ�6Y{��o�}��j�m�!ֶt��и�o*�huR��М�*I���4�������%�)N�7�y�s��!<-W����J��H�g��\7<�����Xؚx +C��\�||l��!�$�d����&�9˄�+�*��µ{oہ���R���^@$9�a� +�h��z?�n ��1v<P�z��C\LH٨}\���ӴAg�^z)��.?0�)O��˥Ƚg�E>%��+U@ �Bi�]��Oa��#�i%����I���|9�~�Q�5���;��Va;��y@Dɞ��<�����F:H��`�e?^�ɇ��e� ��S��w�҉�b.^���=|�c�WIK`7Ӌ��Ssw,��6�];����L�p7b[���^W����0]8ns�#�}�g������������D����E�/�jz���M��sJ9"re�F�.��,��&�i:_����&��ld���Sz�A����$^�'��eD�ш����sL�R ���۟�����-:�ޑ��m��k-����_�Q)�e�!�|��L� ��i�`]l���-��I���SPjuZ\�#�t7/�e�|�A��q������I���z��9�!��y)���k�P;���Krk���N��iU��(��)���C�B�HSK0��g; ��[�$�D (���f �������6w�D�����8 �\�7�Ϟ_,�r�gF-�XOk�@:�m��d�#�N�x3Tݛ-W��y�,b�c��s,�hڽ1p�ƙ4H���>��\��".�� �B���K�^�Y0Z�r$��V2�d �NH��f�4��=_�ǎ�6��y�֕3 ��u*�L�F���u�|�|qD!TJV�ݕ��?K Jo54��J�#k:��'��t���i �]V'd5N*������U�aV �~���`|>K>'�͈�^u0�U��XjS�0c�.hjom?��PX���Y���K�Zu�W8v䬈���祓9r��2�O�Ђ�n�yRl#�c�盩G��H� !��S��Fcɮ�*U�<D�Fs�B�y:����xRVi������o3�V����ۑ�}PY���E��Ǚ/L��>*5R��3P���ҝ����<��oc�`R1�J:o2<�t��|��q�^��s=�r��;/^�����J\ ��/�� +Z� �cǚ/dW~��|��ի�� +�8 �'@ 1Iq�Ҽ�Y�p��0x�z���:�qR�[�s��DU����J��&hD��W.�b�2|_�ɍF�p��%j\,�A���-��`r�w|tw��x¿�Ԙ89��i��P��إ��p�<�W�"�MI���#�Gw�x&�����u�V�@���a����������E��y��$ �-Z�[۹}Y���'-*�r�hY�h ��k�˳44�4��q��w��7�W�1t s�!m���Kk����I�9by�5I��M�����Ň��u�8���*!�2��t�Lj������K �/��vk�p��ɍ�A��fJ�T�L.0F$U��mFG���X�B�|O��#�y�u�b��&�&�����ܾ㘠J��G��Ђ���'G?�гfE(���B�q�S����*��7?D]�x���~��l���o�o���J����tYͶkfK*QK[�s�: +��i��n4(K�/$t�q���f �~�.��i�R�@����'M���m�`LP:�r+_���QXbOd�+rĩ�QaX&F���y�Z��_Ҧ��z��o�^���7����9Ə �� ��0]���W��7k�D�O�+ӣ��zږ��Q\&i,Z@��D�����%�Wa���F]� 0�` ��AD2JM%�_�Jf6��]�49�S*�j&D�{]7����~N�xGG��f��2UCDpJX0�5T��l����b�;��ru>������%��2d�d�������3H\��*�_�����H�R2��OkO����8�p:�*j,(3sʆ����,���������0[�XnQǩ"�fg��4����7ժ`4�q^��Ͻ��'�����O�Wf���B����4��l��#��z�*�ƽ��_���P`QWX[ [����:�}�<5�Y�"lU�6A�ntK^�o +���d�x*%��t�i���$FZR~�_��1��~7�HB�I.���x��R�_=P�!��w���������p5W�a���^�"ESqrIU�{�Sb���(s�Ūy)t��}$����R�����l?�/��x Ćק�]K)�~R��ZrD��֒�ʗSIְ�E�Z���O���˃�KS��G�ך�k-;���dK�~2��j�8f�3v�g�M�OD~l8��������HZ��!����&�� �2YKs�~O^�#��ߒ���|?v���ɚy��[�v39��� ��]�#��&2G�K�m���7h0�����;���D�#y�êD,+I;hu�dg�C�pʔ{�n����>YC�`D��zH�L<���w[�1B�̖�nA��ܿ_��ٛg)t��5�}gj���y$O�w�L+(�8y�����ȳ���V�$&r�k�kOoA�pi�~5�i���5�鹙�>s���쒬����J<^�gO�H\�:by��$����i}g�(�QdW�Q�,LlJ�,�VQ-� v��_x�I����� +�Q ~�zZ ���� +G1G ��m�����(�'�;f��M!��;��`\+��֣x��tMB�a�T��� O[�g���'-M�2Ty�{4���Ű7��\�}mc��vE����БWC��:��t��Y0�l���$�n�H���@+#��=�#��Ї9e�ڗ�o����*)7���ro� �!L��R��ڋg�����lk����\qV�f��&ǖ��ֿMHS�y �Q6=�)�]ǁZ{���}�E1���2��b�L�}>�e���jo��13g=m#��gO�(�6����tw-� �� 1ǿ��3N�����c��R��܀ɋUM������_ڞ,h�L3�����'Fܒ���U�Z�=^�H�֧���à^i&���v>�4���,!V�*�w���2����,�l��K�z�W��=n��g��m�8�nIGfY]�̋(MEa:����p�� ŨFEVf��a�-����W�*x�m^��~2��C8��&e��>b<�&.��礅2B���}P����U!���^N�����tX�J�x����*�ۄ��� �n0{d�:��~��lܷN�[�S�*�^եC��S]��x�? ý�#?����b��텇�@r(W�f���L�BD;2���6�sF���!����v`wvk��k����Ǒ�@2�}���C*3H#��:��=�^%s}xx��Q%��f��H�r����`��7@�0Y����VQp��K�!��W�K�Pj_[h�A���}hK_�ժ2k�Ԥ�_�qNR}E��ֽ���>��ek�t�R��C���:?*��7����j�<5<ۨ���� +=+x��O��ׅ/,Nߺ��ªWC7�Ft�|�z<,��m_��6T�s�Q�Z ��7�؎Z�H����s�LL>&��Rz54'��&"G�)J���wr}�ss鏬�Э���[�E�9__}����GEKK�>��aǷ� ��5|o��n�we�/���U�e���I5�`�>;�\1�̩��[ܵ`�">�u��|Hs�RBe�w�O��ѫ�ˉW8��|�,���b2^���CI��:��2*j�7}!p|��~���aP�`���l���]w�'n�\Qe +��k��8̒u�pR�4]>^�t����T��"{=J��3l�8) ����^��@5\�#�D�ߤc�0e�~����Α�Xc�E"(ϒÏ�7�b�$/ZQ��f�R�O�ƹ�}X�������I<r����d��"������P�Wp�?�L\M�[��-Ig�W�شX�A�-{hj�[�扉a��7&�D7�"[y�{s�$�w��Jh���k���d_~XT�2L�~:O���)��R�ujo�y��Bv�ܭ����Ҁ�b)��T�Ə�y�q���Dd���"� �L��%�>/���U�����9������pP)�M@;Gn�:w]�U�<����m�SZѲ����Wd���-�Tu���;�=��*:��5XU�J��E5;§S{ބ*{�s��ӹ�h����~(�B����ӄ�j��0dZ��U������◦P?�V�˗LҌs���c0D?M��Z;%����+��S5��ڙ�V�ɼr�&`�z�v�×E�YX�� cҲHQz�C���Ry���᳡��k�ϙ1?m�7��^�7�|Ls�C�X�/h��S� �����n�����+oG��y8g01��0�A0��8Q�o?��6t6z�o�����x��?��։�YB`Ѐ� ��h���"�v�����>-�� Ǚ�E�8�k�NlT���.Z�P���¥�'yM��0��)5��[�.r|����@��BWr]������(�!6"o��E&Ѭa��GH�AŰ�g�b[����^8Oo,�[���|P �,b�\��<Sb5���W�a;�(�2�Y+�&�{�� N��R�E����^WEQM�ɩ�Y`�����.�`5�t�JI�}ɾ�"��8ԣ����#É���@���/p���@�;�R��E'Ɯ<�������;^�#��&�t�~^ÒS.����3�8���lsU�N�~��mT(r5�7f�<�UY9I��㑐7���6�E��^�#7Qt�!�-� �A���[��Ĩ+GX4��Z��|ۧ_������d$c/��21�,C�Jf�R�at�V�m�o/��[%B �q�����k�ZB��҉j��H�z�e�h�q�36� +���e|�ɓP�$��:�g�RO�$D�̜��mY�TK���x���7G�6�w�A�V����9{F鮡��w'qj N�9��F4��|��?J��o�p�\Ƽ��۶���~ә�ک8�p�IO���y����_4�w�{�����E� ��k�ԛ^N�$赍V��S�g���K��Qމ�&��({�LFG�L�O+"AY~hg��CE��v�A��$����G[T�K�����9W��\�Zg�'9��^��<������B2�"j���\���nn� �J)X1��Q_� +Qv�쭬��������М ��ot���$�.^*�;hSn���rr`}j��0cn*ux���G�9A�_0�xx��A���$l��k�<^���UF���J�^������z�g<��iՂ�x /P�{�����"!���IP�*@CY{�]S߉������J����7����y x��6����Nv�kʛ���A� Ul�E�_y��y|��l�ԯO�&����&?)[��������!>�D�Z��7��v�|���2í`���^F�k\�!+����O� +gE��Ɵk�@��Z������Vt�h�#~채Z�.�w.�C�Nj�#��hL�=�W,U���+�����@�g�q}]�ۆQ�U�B:c�����KF��(�˜�5����2K�Ĥ���j�4�����xo͉,�`ip�g�ந�ҵ ���� r+[�Va��m�g^+j=VSs�m�a���o�>#'�H�$��[}��d��=�ͅi�-;���^ [��E��8P��w�J�^hKU��O�0ov��Ʌ]��r�<zw���q7I��S����g��?��1gDM)hZ���)�Jބ���q���Z(?�hT/y�a�+�$[[6��e,���ۛ�H%[�*X�����N�����i^D�E&e����YYht]Q�n�^�W��OWO'��U�����c2�L�����ѧ��%�zu�c�l(��{��"(J�L%b-#�����P�?C��&E��Ŀ�{ ���6Rʱ���ЈC��C>j��y3c-Bl�q��3��U� ����׀D�H�D�{:%�9�p�;�4U ���� ����xV�$_v�(P���f�&� �r�]���nm@�����Wdr���BFk��s�wt��D@�=�����=3�DW�ZB�G0���S͖ o{Z/��F�+d���g}v��Ƈ\�"�����\?~L��W^�)��\nD���Q̛+��D`{a��DȻ?���t������=�A�vsg$�l�'��@�O�S^!��Z,ܚ�8mNSRG�%��{fQv6��'kl�q�nqb曈����4���i�9K�8s��d�%�O��XrC����l������S�L�tb��2�}3vd��T������FT��c���'� +�v�g�����cT���=��9�#�d�\���@�/_�������5 O���!�rG?���='�\�&'#�����*���C]i��F)�G������uq�7/��uqs��N�m���v�S�x��q"�����!F�|�|Oj)4:�U�V�}�1h�29����ɬ^.L!��{��x$a�U9�QW���NhMw{)ys���K!�غ��2�G��<��,������K����ʛ��Q8 ��ܴ��ک%:*9����Z��r��cg9��U��z�DY4���Ⱙ +�dբ�@L�����I��ke#u��'R�����~õRs��<�l��B�#��˻G���C�/�)���)Y d0T:S����+s��0`������X^��P��b��1����ҫ�'��C���.��'>�+e`y�l����\�f�W]��Q�&��F�c�2���i�坋�u'�3��Z�S�A�#�'W�����c�Hb�L&x�N�(섩W��JPǁ z{k�Yq�,^�_� ���`Z_����I;SS�V��,�`i��4mU�Oj�)�O +A�h�}Vq��kR$b~b�ؗ�-�%�g����i%��0�ox�o6��՛�!�>E<$��ٵ�I��j����b.���<u���hC�!6ӓul}،N�6�G���О}[F�7�nEaI3!��3��y]z[D��H��KZ�ǀl.���%��ȧZ�B�m41�L>C�q�� +�[\\�����M&Q�^֔)[1�D��〜�u�Z=m�7�d-f�/�62k��%H)����T�Hİmg����h�$����Ӏl{@�f=uR�tj�VAA�Z��������� p��RX���Ɓ���v�˪��^�o�VKl:��[ީ�a�^��T~p���P��+;��"�&;��^0�b���5\�ʳ�벁Y�v���C6���d��6p�/��Og(��~߲rȁ���G�n�'�᪢p�zS]�EL�e��i9�/jk��FG�<b� ޝ����b��^`}���p�`Ƭ�����q�~��. +#rW�c�(1��������$|������x���/):L���pn{��n�\��]sʺ�}YYN������ԡO03#u�2�X"�G>�{�W�909E��t��o�V�����+�] l��ɘ^�p��3v\�u=��2�y|W�0+~J� 5������d{,d�!vpD����kh�|�|�DGI��nc���Mp�DŽ��E�'z?N@6�x��>I�6�%|] �l�П2�s���#�)�[�a�]���W���O��(4�5�&�o��&I7P:튅��{���(���.f�sk2�5�J=Az1�}�Bc��/��1����],����:TH̅?����(��Xl���p�:-O3�t�k �f3gJ�P�m?ڻ�I�=�:0JF��o�L&k���y}��P��e��R���9Ax���7�k���"����uc�Ʉly4� ����~j>3������I�,��ؽ]�I%���T�Г�m���B�왗�Wu����Hn��� +���O?t�c��{~5�z)��ۂ4��9N߰yQ2�P�)��u��&l�*���*�d?A!�c�����q$E���Aw$��?�f��JW�xVP�q��N���PiD� �mĻ("`��ES�¦L��XT��;[�"�=���& +^ʗ�*�'�ύvoU7�!x����}�a���Br�W�$�T��I<C�AK�vr�Lp�Je>��>����'0� �(d���#��{��j�S�f�� �x(�zIL��>;ed�ΦQ#f����B�I �:^�����&a�@�U�<�;�����&V$� �I���&���w�����Z�P-䡈[z�"�9c)��B� }���� +��÷>m`���I:���G?b<��W_ ���F�\C�l��"��X�ܷaԗ[�'�L_���%2�s�\}�U��ED��Y�bꂎ�ca3e���4�;��>5g��% �@�F������m���$��C�ϚXk��N�5�6��@56$���E[7�~�͟��T���u��$�#-<}�RMyl.�s��M��1gu�]�Ǫ�Y�P8��#5"C�_��x+)c�QEC�#W}v��f�`| E$J=�I� &ӫ�%I����oX��b2[S��(���{q�4r+�ڼ�~E�/����ü��u�e���AQGmv�e%}��/�{�\F��%�*:�Q�}���ƣ-G�r��8���T�<��MÞ�G�2�f_D�y�x +7^*�%9�D����k�lx8��j����� U �Bw�q:tST��ε�;c +����&~�c��+`��q���<�?0���MH�}+rK��%z��w�(p(��5��uN ц��"�^��Y��D�1�T$8�9u��<��&�xl��3���Ǩg^�� �:�%�>3g?�x�.��������Y��̖�����Z�W�f���v��vGeg7qŖ6�r�YGYײ31��*�D��G����C30��=%�h�jD��S�ڜ��Ŷ��&'��� ��p_c m�\���נ+��w+��"��$A�%Yg*��4�5T���̹�,���3�1��>*V +�v���L���Me[���'��膛�o[�_Ě��"z�u��+Pְko7�9_�5���c�y�9A\���Z�~� +�"?O�^Y��8Vn�yX�L�P�PUߡ��<c�*�\��)��-f7��FԦ����\��~��Iq�n^��(K��uC��c?�%E��i�f'����k�d�i�I����b �BR��/�����9�ՒKS�Xӛ˥F������JPj"�[��n��������5{�ڀk��1��|t�ֈSO?�Y���W�ޫ0�^gߧ8��������/���S;���BbӸ��8�8��d�0b���;Be�C��7�͇�V���)�3Yh����SW���g+�\燰�^�������63�-/nw�A��Gn��E�v�u�Y"��$kst�F=�\�6�� Ԕ���C�*�DE��gP�Rv2<Ğŋ���T2Ul�{�|��\�2A�2 +}�*;�O0G}{'��ۆ���%��be�푟�d���� ��1�J�P�:�����W�_y�%D"�M��pH����"��`��瞋��,�J�X��u!Mbv�q�h����2dm�K�9H�-D��5�/s��~$����P���x}���Vq�7�ʩކ�$� �j�@���'��Djy�"�rU���3M��Ȟ���4�}y����)�� +:5�[kd��} ��0 +7�!���Ҏ:�AH��9uu+g�Z[�����^V&����^��X�D\7D���tW�h�H�o>�����i�?>��Bi4©�� �_�i:�z^d~vO�)��3A�A��Xo4��T�q�_��ļ5�K*s�[pO��� /]�>��n�]u��l��r��uc +Q2}SӞ�� P�EQ-F&\Z�-~!Sx����w�$軈B�� �{l0ѱ_�5_��Gh��Q�,� Tc�N�ڥ�KJ�"$u�1E�K���ëK����f�eZ��6VϛzH��HS�9����+��ȈU��:���h�Ò���/ɏ��%���!����l���c{#"�[r��˺��#�h�߭\b�T�y1��R���1�.U;����`������j���AT$G��@J-� +�1��)���w�Vf��X(����쓨�|4ܝ�t ��| r�5�*�KnI$n�[n~�����OIq�ja �J +��fvgF�� ͕k� +}V z�'����QOQ�������y�Rdk/���M����8�m�k=��m�3Mі�z�t���LO����6�=E��������R��i��n;�d��g����3�s�,=Q�|�U��Fz�9�&tu��s'��$�;e�T:��[1�a/��A��;��D��e=��Z�d��~^�����%-�-�tb/�c�2�6�f,Q_.��QCt��v[���%�t4?���� γhQVo�K����R�k�ⱀ�j�2y7�e��ѡ�O96��&I�J�+ +d��F���OZ��s$�F{ ������ +Mf�^�2v��^$�(���8��;,"h=ha��GM�rr��@�9�3��"4(v�����qO�l��B'��L��q9N�Ƶ�f�+���a���[��c�Q�\%e>Y�(����]��rl��������џ�7%g�Ͱ燂:�:��A���B�ۍ��-�F�֡�����O�x���S�-�Pa���y�ּ�9g1跩��dRIQ8~��N5���Ѩ�v�"ɞP�H� +��^<�(�Ƭv� +�`��)������ŚIw��N�6��g��E�u-� +ڶ�p/��T����z�ɹM&?l6���=A��C!���(/�,��UN��?e���j!uOOժuތS��W��&R��j؛�[l9��!���LT� +���F�T���yv��L� ��vu�z�l�ú^~�ކtP_o �8DK�}P���[(xK#cfe!Mb���F�('�A���Ӈ�^g�M�� q�ނ����{�O� +���_$�%�0zTU_�S�]�f�C_� +�i��*� �Mɤ1M��K�1�d.����s2V�Q�/G���A��g��/��Ň�@��;�W���"�����7�q��� +��c�n��4ʱS!*k�-#���v��O���5��$o�^]0P̵��#� "x���ׅu� ��C#&q� ٚknGH��ȟ�m D�rt��6��_a&ff��lWHc=P�u@��v�X�?���Y`��Qa��� +4�.[p�=�R��.DŽ�sY EW 3vyuT��d���P�� -���o������� ~�1O�ؔ��u;Q��,�k���X�n���9X�̙��[a �,V�|�IR����0�:�[��#�ǟ5�W��G7s�z���h @4�c�����#��[۠���e'`]�<�1&��[%����a�(������3� >�"��$���j�� �J$@��k+���{�)�YJ��)�QpRs2/�j�uZf*o�0�af�$�<!,�A@V!���`A �:�Eo@��)�z煐$9�Ҧ֘�Ck������xP�#�!��Ih��ϓ�I��m�EU��a �~�_������8*�\@����D�&%tIZkY���*؆3&@_��E3�^�ϝۓ�w��w�2�͡�F�5I^3h�qQ1�X�_{bJ<��Y�/��L3�\�t"���x"}.O�����vl��59�%�?ܗ��(�u�]�]X���\CZk�O湸][`���͢cwa6�"�+�� �r�)��ۜ�NT��)�%����`'�"I(�ثP�YOR`�)t�;�p�������I��J[�����.=a)�L�$L:�~�Ԛ���%���sm�k���6�B� �,�����/��\#��<zc�q����?@=����䎠�Z1R#�������>ƶ^f2#�L�s.��AWl���<�]5�٩]7LVTZd!֤Hm�pk���͜�\�g�J�(���_�'��9����N&P��Z㮋����[�>Or���<��K��{9��(0�.gLJ�-IU����:�gmPWB��jl����sug�]�g�.��s��*<|;;��Q��֫�@9g��R�>d�W�K�n�5���u�Q��s-�I�UMlD�>,�)4�O���w����ana*��-��/ܫh��eX��%�c��s8sG��^#`����.ڈ,�V�O]=s�-c� +����v^�G��Ʋ��n�`��Z��%��yEWB��$���������z~���hx�IaCl��Fi�X���Ŷ����Yw�7��#�hA��P�]V*"7�}���RЏ�D:,��#2S�<a�D�E�wUU�B�T�T;*�1q��g�����.gI_��{�M�� � �>{i1�XA]�����XF��u��T�B�0ao���S�x ��6*<��됵-�gg�뎟0�������ZUNf �9���k��k� ������j�/ Nʚ�X52#13=��(Ad��Z������2;��/c�h◂�6���y (y����R>�ˠ��l��N�E[���f��O���EZ�+�|�;��=(���$�����aF�k�]:խ�qG�'X×��n8y~a�Q��-����e�q��'�<P���|]�(Ҿ�6T�u��w�z���uW7��ƣ,�>T��S�\��\�thD�M��(6�tlM�?kR"�or�gX��/��ȫӑ�p5�� �Ɲ\��q�k���f��?�����,ln��S��H�Z�M*6�+W�9W��]�.=��\<�����I<N%m +V��^��|������_ظy��s��Y��``|^�O�<�!>9"�����S)�F��?r��q�7$(�6��E�|����wW��R��;2ܛ.%��;��9�>Z&C���1ܦ teq�q��[�9"^+��v�ɞ�N>WY[m���� �F�m7�Oⵠ鐭�:��'Rz��� +��X�Y�.�Ǘz��u4ѡ��^�I�n����S��Өgg�w%.;����;�*�)���M�P/��瑦����}[�;��S�J�E?���w����$� ��.�u�.�Ƀ�;+����u��+�@�v��E�H�qq4j7"�uT����o��skiw����5<��H�ɽB:��M4f@�,�~I��������Y&D�1>uV�jR��G�N6�Τ���bY�Pf\O+=�Ռ����v[o�sC��̭� �u��V��,�(���Va���LB�²[*�2LnW���'7��I�q���e��D+h;v�r��*����/(C��V��9*#�Wļ_#j���0D ��*ҭ%J�����_����v�!]m]�>,���������A)����.}�,�S9�M}��t�gg�]]����;�����\s��<��[�'p�4+:�dw��Xz�>���\�R���u�V����x8�46�����X6�������&59W��w����c�.X��������)�ܡοT�f�r1F����a;�@�^zr9��h�#:�����t�5���2�-��No,E%��-�{\�'z��o�������)�n� 53��.�P������a�==õFB�2Bk�-v�+Loʜ�V���;ZBb���q�<��<�:�PY��X�d'a+���ɓ7;�P�wa��u������%I�'�>�?���ҽٙд�S'+ݏ&,\N[;�߽ y���a�.�F!h��h�+��++��ic?@MUa��1��ASVq��"fh����A( �Y�Xz���U;H����縝�'�w<��Ø}��,(*"���.�o���Y�-�D^hT�z�<�Ǡ"����R���)�&��g�t�g�լ�� q"�O�#͵�t���I���a�4�'�:p�g��,��:�#;�o�{��7�x��\�ʢt�P�^�Md1�eO57�)�%F����Cg�X+u���{�a�H���%�\���Ep)��z��`^�%{�X�+���O.d��k�n���b���zB)X��T(wl )E-�G��G`G3&�����`˭J�����/ߵ'�qIH_8qq�Mq֎ �f��/S�ö�)��>�wͤE��]���J/�w�^.��ϷfJ<��[�ʩ��4o��`gP�w��hH}����[��g�*�\�u��c x]"��҄2�;S8��u���NFXp +B�ڡi�S���DL�jɄ��Q��K\1�*/1��vZY J(i����"Ds����N�$��x�KL�Uf1D,�C�^���R����Z�%s����j�2͕L��C�1��2�XL{�Ʈ����H�bG�u +� +<����c�����Q +f"����B���Z�&dj� ����>r��f( �Cu���gޛ�QÝ1�+�Alq��?�'�֠)_�ԯ��\���:�u1��i]�O��'���(\����W�!��ߙ��|u\$��N�6��� %U/ `ZSÄ����]���������2�n2h����}s�Grdd�e\ ? Kq���M���K쨑sm�u�n�����Sh�����R��w)LA��Nr{C��L\�g�T9ZUM�y�(�D�,��(x ��@��~;��W�#�gy��bQ������Ю��V +Y��CO��?�.���C�i���J���c9�������o�^���n�����5������u?nn���@@s�z���ё/)S�OC�<��l�>SЛ���R�@(~YgZWu_�\��l�/�����N�}���C� #�ה��M��Ws4��`�H�����5l��b]���"6�]X����]�<�?U���<u���e?�>����ׂ�������lMFX!�C��.��v���� C�R.�"���׀^&2�>{���ި>V������5:Ӟ���1�u�w7�����X��N���ͦf6����FN=��� +����& ��@9�l�A�?r���e +��ٮ��d��!�x��9B�����&���y���6��W�����\+��K<$���˞�?����ϡ� +$n�^�?o�����b[?�����-3��fY+g��}#�N�m;������� +ˀ�)�Kv��&��Ѳ�AM6���K�}MǷ\R9������ٗ�x���p���~��� �s��F��<I�����-R(�_���1fq���I�:���� ���� +���}�?cf%n����v0�>H�K ]@��ӎg�w;"��×�1�#���$�9{G���1�|Έ:� ++��UC�D�/����/�q-BF!_�hC��rU:\�X`�MF�6���2A)�K�,�Խ/�/�2��ն,ѩ4?|�:b��x1����$ N��̮e�<�>�y�PV��8��?�1�<�J��z��|B��F:���gWJ�T�f�k��"������~?js�]�k�\9 I������Kf�7N8d�a����$��i��"��|:sxv�v�?s)c@�Z3�h�T���px_n@��Zr?7�A�rh輦T����'�Ku�^� ����OB��T�×z�� +���I��dtZ����C� ʌ9�D!6X���������U7�r��91!�*QԨ�Z�)�c�գ�>��B� !>hĸ�C�y�'7��wɏ�ɍ��,/����y�T��@I��z���JAaQ6|�gK�C�,=�X�8�V����~�@M��F�kǪ�3 U.f��G�t���4Έ߃a�D���;�E�y5�y�2>{/���� d��RR�h��s�9�?�%���;��; ���ør ���{�N@ҳ|���ݫ�����wà�W\-���Z,�<*1���X�q�+���~ȁ�l�< �c���k*������wC�긷������yT�Lp�<F�Q��&po�����+kn�~t|��R.�X>������e�-G��� �̯�z����1�7V<Y�����P�r���7)���]9A��@�T~���C��$�*F��;����/���`y�)ͿqL2rA��r��8�,�lG�W���r`~��ȃ�[��������>�v X�T&�9�Qn1�:��.w�37j�R*�r*V����fU��a +�M=M�D-���N�-�PQ�:�����\�x_��p&��A&��_�6wh%��3��+o�P���(�,i�, 6��)��_��6-���q�����Oq]?��@�o�����I��t�,��;�(P�"֊g������0;_�~'G����B�=Cs��sr#�����;�}��:Nр�T�'5P��K�4 �.0�z���C^�<sd0*B�6��5�]�Tg�9��- 5�2=*m�j�*L������LҔ#) +�aE��i7�SA��<]C�|&)Zu#�&���e�p�P%�ƚS��5��"%�5�?�RK�p`=��bs,p���H��[ �B��v���cr9��Yə�]��a�a�v��^,��� ��d��x��{4X����y[�m�_�����%�5� �l��O�2I��"5<��]x����5tc5�&���l�"��ѣ�PO\�9|"/ =<媊şĥ2G��i�O����d��z7�7�`�v�_�!��a��.���-�`�cj�n�w��r�톂,���;���q��#�x7�Q����{y�Pʅ�Hv�̄=#���(��AP)!s�˟���4���T9Y�^b�l��ٌ��?�T�=��aFN�H���V^(���['�K�6�8�����&Gjhr�(5�T2����D>5�XM�[S��6��T&d�JȿTM�u"~�W�&0-z�����in<��;�� +endstream +endobj +8927 0 obj +<< +/Type /FontDescriptor +/FontName /MIZFWS+NimbusMonL-Regu +/Flags 4 +/FontBBox [-12 -237 650 811] +/Ascent 625 +/CapHeight 557 +/Descent -147 +/ItalicAngle 0 +/StemV 41 +/XHeight 426 +/CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/Q/R/S/T/U/V/W/X/a/at/b/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/dollar/e/eight/equal/exclam/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/period/plus/q/question/quotedbl/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 8926 0 R +>> +endobj +8928 0 obj +<< +/Length1 1630 +/Length2 11693 +/Length3 0 +/Length 12535 +/Filter /FlateDecode +>> +stream +xڭzUT��5nA\ww���i�q���� ,�K����<�]��̙3��s53��}jW�]�����U5��,̀�`fv6�2������VdVZ���ف�o�7 +5��3�����4u +�t��I�9�����ϏB �pp�tYY����u���e��`��O�-�h�܀v��@����8P�X� ; @BEUONY@'�����Φv�UV�� s �X:8��q��;�-@�ay���LG�9�-�at�b8��A��3�X9��]�f�������\-�*��n��wA��o�o����b�rt�eU���G�.֦.冀�`��囧����_-���Ѽ�.� 0��p�+�`�8ڙz��~#st�]�+��WL�g�����y�y��k:���_�7ut���;��o�����Y���s��4wy�m����,r`K�;�?�����܀���+���l� ��Z��*;������Tf����@����O��߉�������>�;�������������2�E�_����3������ڃ�<���w�������wX���m(b`�7a��9X��aA�A@U���5����mf۵�@g;����c}bc�7L�dn�K�@@�ſ��&��ų*�k�)�0�w7�ߞ�o�����G%��<��#.���f�a0sp�xy��|���Mƿi��uV2uqy��X���o�����d�o4R`s��6G��l�l�i�6wuv~���������^{ �h��4�`.l����R���?*i�����X\�Y�P�����_f�T�R?.���9w���K�aw��#x�G�KIߕ��F��˸�jT��~��}:����æ��5��nT�@2���tzK@��Mu��g�Z�ӆY�����1M��� m��@_�9|�/"��XdjAS<��#�$O�:��7^�-A�Ϙ�,�I�Q��.d�z}b �pb�aA���6���Sj�ٽ.�5rp9� +����ǻ����(�x��h3��QpcJ�Ȥ� �K�pP���y`���&Bb��z,Gthw��� ^����|��1D��!W���x +X'/��!\�O���<[���� �����i�m�ߏ0J��x�jn��V�팠�q����=O�'�/����Q+9�Y�<�����a��b(�؇�Ξ��х��iU(>�i���� �u����8�:�������H2�d8�}�'k�T��V[� ��fc*œz'���e`�)��7����9�d�f�M�����t��x�=��9�ꎖ@��A@���sš,�^��~w��@�ٸ*7�8˩$sa�ڭg���������w��_�A)^����4�h�c�h���/����e +�d�f9�>6���\�c�ʌlI�ǎZG�.`ɨ �x56.u^I�HL ͳ}.;J"�F���AyX�_�RX�qA<\�ml- ?�jJ�Fg�z12��9zwa�m�]ŀ��5�o�Lb��O���b�ԅ��7M�md�nȑ'����������[s���֨&���D��Oc�S�s�#����� ���+��.%L��9Yi�t�\�3ˆ�_V/Qޟ@�PE�������9:��W +�N���/�j����}Jr$P E�4m�J��֝�V�8��DV��/;��m ���0$4�%ZL0�?%{.��! �c��;� �{���$��u�3�5�N��6�%)5���ML�:吢){���0tq �H���. +��b ��2F���Jc���gߏ��+ +ǭ�|M����DQ�l��U}�V���ʳ���S��� ����=��9^O��I��aV2":!Y���D ��<t�g���v��w���� �o�<0�mM=�U��8p��˟]�(��3�%d��fZ����u`k�T)䚏�r +Jt�F�-�x�#\�z�97�Y؞ +0�����q�NO* L��h�����o:$]${g�M�&���t};{�p�zQn�l���bw�mZ�x�)���,a���]jDT����A@��)��dW'� +��tmWč��jᑰ��D��ZT���?�b?��EWQ�!��q=J�UJ���Lݸ�Ѭ�f��.[�׆��N(��?�2�bTr��P����??�9{��j~)+��8q�x?4gU���=HsrJ�~xƵ�N�\��ļ���ޜ⦍P�੮�B~��^ɸ(��@k�@�>Յ$g��UB�����#�Ng~1��v����i�C��KP�4���^�GX�@;Æ�ʔ�JF��k[�f��⤴���V!�碎��K�Oa�_��y��]� k�����_~)^°�ۗ�����c. +d +�+@zv��/�n7��z'�?o~�k=��/2��ç5�H�P7�∫?u��� +����F����ޚ��8���Kg��s:zQ +������%�Y�%/j���d<��Ѿl�T=��ћ�c8cB�B5�%~��>-4a߅I�a5M8x5Ij7��J����J+e{Ӱg����,��[�<��*`��}~�ԟ~�Ϗ��'z�q���+uo��͉-�����M�E/:k�jp_��[�3���8*�9��f�sQ\��l:c�K1�'�X�q� C0G�� C��m�l��:���5G;x�� +��t�B�^[���}��R��!�>�Z�Ld=O�0�̓O}��]4�1�f�/��b��߄`�j�ڸĉ_��Hܟ\3�{︶zt�i0]�H�����(ظHH �'.4�"ͼt�ܙm�tC�M3�E�ˀ`� +P�:>���R0�dh�x_�^ԹTSg�����W�:�Eq�ʩ�c5?'_����b��^��Ϲ�E���͖R�*�����Z��M��H"C�,a\$�^t����z��uL�����}�D����~�{n�mI���N��T�E�H���<F��U�-�4�[����N�������ş� (je7���RՅ"B������2>7����@��_v7�aoٽ8�.�ên��f�U�^��~>�e�d��~U���I�lѬ��hjrƫD�hh��\�_�K���`3]S����9%�m�7yhc�Z虢���(��WpV_Һ���C�~Ůը���|���1�R���MN�N���V[5 +�n!o$8�-�`F���T\�U��V�p9u4����5�)���A5�h�\������)�;��=����� Zb�gnF쾟M��`����`�Ba�!���N�B�D"��"�Y��#!Ӂ�U�/��0�5�㝷�����`���W�6@�6m :���c�d��P~��ː���ȋ���J�͕wa�� z�T�I���C�hieq'E�W{��d[�C8v-Un�~�(n�rP3g:L>5HA^F�J�i��s~�F�3#^q��{��\}~O}��}%�>[bJL`t +��<����#N0����% vБ<���F���;�`b݃M͖6�_F#SDA�F�g��0����?�k�����������]��Z�|�"��O>�����8��&c�Ã�Wh���3�+���Q�U�,��Ò/������u�a��Ɂ��n��|J+��\��-��N2�����[�;��0| �4ǀ��̟:0p�����7�'N��rYqi\6�L* l��8B`xZ�����/Sc듹���>ð�t�r�t�/��',�Q�1�7�}&�l�Y����ɰV�RV|}̲a��ߟ>��gccf6�9Lý���3� +F������v�C�[-�#�C(����Ck�|�:/��h$i +�G�#���Z�� ���M��@�W���ݐ�m�Ɓ���iHX����nO�����P��5�&ڰ�ܜ�<��"�7�۬�[�*�3ID9�+����ІL�2�َ�#N^%��A��t�{�c;�mt�L�oז��oC|�w�K�\�k�)��4��ٻm��<��h�!m�N�u�~>�i�`cE�-=��x��eݡ���- �_I��UF���W��z�6 ��Nv9��c+'�}Y�j70skST+��c��6�l���X�Q�`����T@Z���P�<�I���n�U�z�N��Gb������"=Ǝ=4�fK�t�����C@��#B +�ӂDZ����I5��Z�V��a[;,�=b���RtK�z���m|v��Yx��Wј����٩ +���2!�鑭h�Ւ��kM/�_����Ņ��L�x��2��� L��8��U�h�B���*���R�����K&/~Y�A���������]�MO��]Dz�=�[��}�3�h�ǖ�z��K宬\U��hDYA8�i�B��I���Ѱ����rclqƬL�<��Buu�2��8b~��M&`y�(���)�6����x��ܞ��v�9��L����`���+�Aj�U�52��SxM�����k��,�'�9;N��R��h7�4w/��_�Tzԫ�M�F��(��x��`���k���������0�f���p��?(KpG��-_e�:��^$1�Z?�%�Ң���STnx������;�1�o���(���-<���z�)����1�'J��G�+f`.뇶+� +���O��節F��v�%�w��Tj��j��y~8�ƏINݖ�-ې�����\�rm���i�,6�cZp����цcK}�z<sef�~P��Co�r�g�#jD#$穀H�<��`���I��'z&?*(�5�=7 �,H;AWd}�Ʃ�k)�w+E�O�0�!2�G�ߦڊ��?����y�6L��é +n�S�Ԗ~As$װg�X(�'�S����@}<?��H���=�Ɗ��VYC%�%X�+?R +3�n���g^���K����H���13��;ݚ����+��� +�@�2'��q~�m^�Be��ま�� � 0 ��f�imO<.����S��w�V�ks�����s�,A_�eU)f +��P`]�1~ ��ca�مz�L��tm�|ިĶ����H>)\��u�@T����� .�=� �=�^?_>�d�V�4L��AJT�NuZ7�"Ϣ(�ײ����ѩ�N��|w�&�];�qb���S^<9Q��9�s�y_�� �0�+]|k���T���?0�EF¨|��^d��\|S*1x&$:��>�$hYsE�4��>�K$��V)[i�tϠ�1>�,p�:ϗ���������6k�+����*IJg�G�qf� +�����M꜎(�Vu��|����L���a�EoקYv����I�Ԁ�cc�\c�7H.w�Qx0�n��ؿ�����q����w�:m��O�pM���p����.���Ip�)��W��\�� aJ�2�!]u�l�_.�?�2�s�������?g����K8��}tDZ7p��R)폠�0��.�����K��m�/s�h��K� Mj %�"�����J�)[6���V�E����%4�(3a������GI7�K"�}���eۜ\��ښ��w �E��p���Jh���l�9Κ��-�����\_����J�K����u9�l�6��M'��L���Z�k��-TI2�TA>hȡH6���¦/����������;e�>�: (����Ʉ���m�kh�x�ҧ=� /ѥ OBA�}2���^�$�H����pk�>���������ך1w����]3v�7�.���i�{*τ�'�\�8RDCT�)��e�5���(J�C�����}�Zd��t�/-� 5YVy���j�������p�u ���,�G�d ���~`EԞ� �O&L�̡��B�����$'���6r2D:|?^�]yx�u�� +t&������((�}����ޡ5IX�WmC�Q�k���I��>+w`�t������F��Zi�eR��H��WVA��ٕ�O�#��͟����w�_sE���yb����w����0���Ջ�C��� +��<B�)\ø�M��6~x�� n�^��Eu|k|e�y�a+��զ_��u#ԃ�%�I)#� 8*�qS,e@��?�?��ޗa�s�&o��/�FŲBJđ�DŽ=��sCTW(��0(X(�p��-S(���v�'�k��Sb��cS]K��q��Xvl1;Xt!���_y�-�^Bz�>U1���:f���A�B����A�$����Z����A��Y:j�/B�������9l&��p{fs����y� +O��`f�+��+FNj�dW)����G���c���<9nD>���%���/���au�5T�=[� �a�*��1 ܜU h,E�!(%�: �N-�S�I4jph���b�u������u��e�0�AB\<�ib�h�_KV�Zִ�0�(Ly.�/J6�U�@�{��U��6��L]����x�"זP��@4Ƅ8y��ŋgF��[N;na�����������_�'"[�P�z���R���qb#I�����=|�{\6{ v��2�m}6:(����'��ܥ9���ǁ�����x^k��u;&~�����Fp���u"\r����K(��-Vj�A1^�'cdI�`�E!��r����Zy�/,h-�S����ؙlQG�̪Js� v�����I���v�˰S�+Ν%_�xh�k5���~��� +�����bcOt|�п��F]�g�d�5bT,��u�Υ��hE��� �{��Ռ��s�;�ޱ����nHfFQ]��ϯ�#� ���C��LvJ�0��u���6��q��PT ���Q�Sߙc��Ζ.��p����D �r��פ���3d�mp�wrZ��5�b�jR{�wd�a�)��g�876uip$�Q�㥝�����˚ã��שU�����?�P��M��O<���z���|uz>k)�43-�U6��+�y�+-�����5Լ=v>��rNM +ݧ���� 5����3�U���a�ا76`�����~뙩�#� +ݿ�A���� �� ���L�r�_6%�Q{�����ߚ�)�@�c#��T$=5���١�^��NMt�궮O��.�aSQ����r�,O'��� _5 ܻe���j`��y���������=i�O�4��$ ��3yp*h�$������Ĉ����fjk.��� py.���3P�ή�t���=�����B���Jz�Z-ՃP��~���HD�h�e�Q�S��|�����"��#�#��xf��=R25�JP�؝����;�]Q���/�)C5I�r-GǘҰ��H�&o���Լ��]�r�<�v�'��d±�w�f\v���H-710��٩�m�����O����F�9��9_������pҹ�B�lv��yw͢����QS�]qi�Y��K�s��[ﻰ�ru��l���#->�ȧ��B���u�M+O�M�2;?�ޖ��f]Pc����7�oanu��JrE�������%��>�"�d�%�eڮ���Q�sXZ���@��!���IŻ�2I�~��ل�"�~O��11_�"i��{�8A�P�2�L���|��A5BU�f +[�Iݹo��uz#'8���U����B� +�s���'Fv���N ��]c�VJ����0V>��kb�}!0L��dV��>oj ��p�1kt�6Ѷ7X +�m�08��� �+����e���*�ص�+��vM��C�T�|K����3��l�ybJ���6(��1w����]a9������ m�4�T�,̄��(p�A�d��v��1��Z�g�����L����V=����b���P_� �P�BXEAW^��E(�U6��31��oi��К6��Q���%��������'r���I� ��!b�� ��y�hH� rڅ��/�mJw�:��! �?��₵lh�^���g�Nwj��nݑ��Zէ7O�'��aX�R{rK�̚�W�Th�/i������)����J�I��2 e����2[IY���g�wL��O�p2�}��/5��+Xuy:�PYb��t�@.��kJ��®m�Mgx(��`�O&Y��q��e3 `����<4�<:ITvv�u�@=m�ğ����鴼���%��i�e�5r(�q��Ȣ�䨑�v��:�W���b� +�Cu��4�~��B���t����iԛ ����fZE��Ǚ`� �m�[��87�9��q ���hf�B��g���p4��h������$b�ۓ��d�g�2Z�u +�*qT���j5����<�f9y�BW�N0`���|Ji�%���������:�m���:���k���]��}d��3�+�ڳ���@�A�����5u� D8�����|�s��+�Y���S�������_�����v�1�U����DC��NjZb��S!%"��/Q(Ug��V*�I���j���D�n�a�o�Sɥx���Z�.���_[��$��* ���jf��ԫk�B�n�� +u#!�;+3���Q��X!�u���Y��;��T}�s�炻�oj�����'o�����C����C��N,^#�?���Ċf�.D�ef�n�[���{����ߧ��[$���ׄ�.�C�DZ$ +�[�K vB'��!�x�٨k���+�U�s���n������u9��5n0�)�W��bd�6��F����2)a�=��j��0�`�m��XKWQm>�8�_>F�'�6��g=��|ǎ8K2������r�r% +e��=��E����KgK�4�:�[��N�%n��}�o��]�ۖ"�^�:iQ�Nl�+c�f���MԐ�k6��?��d{�6d�[��Fh�������5��9hH����'��q6͘�V�?�x���-/��u7"��#���p<tP����k�;d鐥*Q���S�q8?�p��JqX,�s�G|s���F��h �8A ����DDW�#�M�^�;=�K?XQ?ʐQ�ҿ,�؏�;�^�9}vcc���}3�Qwt�'�c=���8������%����y�E="����O(P�H����fu��xΟ�^E3���,���8~�-jb3�s��hy�[S���;>J�}Z}j�;~l������c�NA!g<�g}+���3 +�;w�Ey����5���똜��S�������p�(�m+8-��J���یpc�{E�C8��V{���G�)��8i���Kd5)��/�fhZD2^F���^�e:���"�V L�C/�o*v��"����<��=W� %�U�BI%����e/�p1���6L�-\+��s�'}�t�3>�;��ZK�Ĭ5��чSb +�=��#�A+߭(���1Q&�L dC/˻!?,1��B)��0�c7ɭ2x���$�,����ܬ��������(4��/��S�>_F�e��.h�g,����hG��OY�@|#���)&�Bq^��g6�g��}ϯ��}� �,��=�(�a�k�Ձi +��5�i�Nֽ�T߇�9��6J:F��Vƚ@$�[H��O��|?9&fv���d{#��4V�#_ߟ�3+����Pm��1�_��/a��!� ��!j�q�x�'&{9��q;ho��2VN��Z��Q~ؒ�v�24�P�?���y��:�6��41 �iK�t%$�C-�ЃcM���ؓ��8�9#Y�y�?�q�'������@v{� +s����Bb���-��z��C��)Q�#M�T��p�<�Q;��_�rEs^�������~��1~=�o��"��GsՓ��ẗ��-�Vc����Ao���c�X�;�L5���b�O`�@[��صj�E��,z�{�I|��4M��uD)َN�%Qo���m�W�n��_#�����"�)�=�g+�g_�Ll��N�~ڒ"<�<,�L97Z���u�ʘ|�J4��� +Zkl�Y��+Y�Z�l��J0q {)�EX=_��HQ��\#T�D�k�o��g> +i��m3.fh�[�1R��p�r���}1@'�<�Eo�\�k��}OaN8cbe��.�y�eT� �?<l�{Zz��ї~���dx�tP����l�j�OX�2I%����|ep���2M�T�5�w>T��Gs��wQ������$>��X�~�M��L;{���l��@���*d����yWڌG�nD�_4�m�����m�F�v�~�X��p6��H�r�M(��NyjV��eP�>��& �gs�tP��P��,I�G|'�\��N����<� +FR�Y.�O��?�ȏ�!������q�Wt\���{�>u8��h��� ����;l���S�f|�%�����ִ=Nl$j�:�˷���-kTʜ����5��������o<8N��g�'gۍ^��c�K�y�����P;D�biD�=X8��� ��80/������<l�lM_D�5�}_�hv�y��^P�6��èR���W��'���{�����A;������5�B��������Uh��p{��d�אm�>����-�74�Ed�^i����rm�廉�����Uv>�*��'�W)v`31^~������h�4`e�3nu�A]T�F_��ɾL���sڪ#.M`��l_�S�TGG�N ��`�a݊��Uf4b���Hԭ)�,�i�����'V�P��$��@�xxr69����|��ճ������e���6E]����:�����I:�Q�G8ԝo��y�o2��M_� +~z)��nv�l��P�� F�Na�Z� +�.�f�ѥ���S%l�@Ы�<mI�&���C�\�H��� Ð��Y��G5� �*ӕ��f���\Y0�����Z��̛gZmD2�Z�C��m�eYn�;��(�A�z4%uK +Y( j���oI�{���7%�y <e�������3���wR>,F�Ucb�R$���H�ոw,v1�JƖj����Z�}�&̓�$w{ԣ�㥔�P���N��P@�{uZJ�f�@~q�Fla��rS���7�"W͕��� -oܩ��h�w?��Ҧ�tz{�@Z19}���[I�,���O(���AW��Q٨�U�ׅb��3UO�q�=�eqp�7�7L�7�w��f|��qJ�w�s�� +N�M<����q�J��<���D�q���,ѐJ�M�]�R`�)�[G�]9S��Ԛ����.W.G��Z��M���-f��t��$Q�Ԯ�:���đ����Ӳ4����k`9 +db���W�����&�b�xX��B�L�K�љ�#�_���CԳ�ԇSχ#+Q��Ӛ�x�ʖ�c�]7�� �<V�} `��Q����ϴj�~��-��]��[ +/��x������2��Vܙ�N�7̓گ}�煭4hQi�D�#ޖ �ޘ�]x����SA.���̔�W����4A&�Wɏ0(�k�-��§a�8��������;tum)<�4��S�q������C` �$���2:zjO�F��g�+�?�=�O&l�.Rq��VAEG�]^��L��F7�'`7fk��l�tqi�Mrw{����\Q��w +�y����px�bq[i����9��f&��rU��0:�l��hY|-������3�� +�gj�x�q!�Gl�N�֭5x�`41�W����Ǖe�<(i����'�@a`�# +���8{2��h���q��� *S���S��[���I�l�h�w��\A϶[�W�KG3x/��zU3���$t��#Q�Ph�Rw�Z��_k��6m���/O +�aP�%ҏ��������1�9��TRW�����&}cV�lԤ���Bg&�F*���Y��b�E!1�V�=�xN�]��D?� ��:�5�mN�<���sfQC_�~V��i5)�x{�Z\N<hޜ����U���ג1�%�H}����$�&��6BK٪J�c�����V����X��[L�`/��/k�WD��&���%�U/~GX�m�'���#/�Q$�E��h�?B��4�)�O9��TƱr&j=_��G����>T����g�VD,~M_�5Д�߫B�}Ft�b���f�� +��9��\�k��s6M�71�t���j�8�+�9DV�������j���`�� 超��x\�b����X"��-s�|bk���aQ;j\ �A����p�ൌ�W��3Z�±�c##A ��>�������SCh<��Њ~����j��w���ݰt��Խv+`䖢o6���fm�:�qH�pDL#^�>��j����ل6��{�zܷI������1�M( m:_KhStќҊ��Sn��^��KH۶L���_k�����M�c�{�A�S�C����>�ʭ�Z�蘿F�ю�-���sO]��w���.��:g�=+�V��f@�$�����R�-�/|q�0��mt�ax�>�-<w�;ԛ�����z�'�D^�4�R�ɘ�<�B�*;ӿ���F'�͓�La��?l� +endstream +endobj +8929 0 obj +<< +/Type /FontDescriptor +/FontName /MRUQMW+NimbusMonL-ReguObli +/Flags 4 +/FontBBox [-61 -237 774 811] +/Ascent 625 +/CapHeight 557 +/Descent -147 +/ItalicAngle -12 +/StemV 43 +/XHeight 426 +/CharSet (/A/B/I/J/L/M/P/Q/R/S/T/U/V/X/a/b/bracketleft/bracketright/c/comma/d/e/f/four/g/h/hyphen/i/j/k/l/m/n/o/one/p/period/q/r/s/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 8928 0 R +>> +endobj +8930 0 obj +<< +/Length1 1608 +/Length2 11712 +/Length3 0 +/Length 12537 +/Filter /FlateDecode +>> +stream +xڭueT�ݒ5Npwk����]h�݂��'����&@������}���Y��_3�G����:�vծSMA��� bfo���sa`ad�(�lM\�Ռ��D�m��Fx + +1'����N�����ā��VV�<@���� da��VWդ���������z>n:�,���n@{[�������p��A6@��������ZJQ �:���]Ml@��y�)��H0�w����0��3�U�3���3����4}\z��r��N� g�o��`�dl���{�������/vs�� 98�D�~�>���]�M�@.��������bi��WngЇ`o�ifo��WI�>`>�.� ;g����\&@�������#����o�� ;�2�8-���l���0�u�u�[��6�߶�;�8�\��6��,�9M]>r[�����;s{��?�f���s:�� �f�惄�����'�hϤh��@��S���'�A����y�o���F���_��BK���(�~�?�c�8���/��d��?D�k�&��'�6��Y|H����#�Y�4S��Z̍m>z��]���d�~h�w,���b 2�����<��vf���C��y3I��i�����6�;J�Cu�/����{��:��!*j��f`�b0�1s}<6f6�;�����o ���]�@�ݏ��Y�.�?~�<��������_s��blg�1Z�e��m������߯����<�=�@��~y�ޔ/�*=+å'oxR\���r8ġ��K���j����M� +�����i6υ#��]Yڽ�^l��T��7B��4}���);����J�2�5��������d��ۚTQ5(~�!��`s�t~O���{�&����iZ}V'j#zm��1e��������P�%t�.]n�1�_�i�����M��;C5oNR��i�(�c 9B/9Ԟ�0��~����H����b�eY����]0�������;z��j�xӅ�ϥ&L��\����B�ƶ��0R��1��fV3�>A1N������~V��l�^��,Ե���^ڽ���?ؾ)�^p��k� +!0�����=z�M��̢�}�{/�����e69J�u���B4U90Ȯ�YJ�)�6�S�6}@[?�� \�'���k���<���D��"g��)�4��4��ˌܑ�G�X�8�!��4B��� �eI�~=�b��E�s���L{x(�K<L�+VVqC�idz�[^�m|���KgW���L�㦡���E��ڈ��o�ޖ�#��4y,A�o$�FM5Bc�5�J�.[�{y%L��yu�+��E�&��z�?Rk��@eP��k��`��(��>�w�L��V������s�+��B}��h2˄�L������-cP8���yO���$����������a�&<��\L�E�^����`����J�sƵ��|�i��A��{�n�˽��6,b!3�H������a����@�����.�㱼<��tC�W�T�gl'�!��Ŧ�M���nv��OΊFr�&�Lw����)����f���NɄ[X��mK$��������`cw�kl�]);��D��Q�.�xH���}&|IÛ��;V=`s9i����J�J�4����V�ͯ�A��Y� � �$#�_�S��jZ��{�I� �z�~T�a��:�#Q҈G�8u-��K�U��E�#V��a�sֿL�֣*�գ�p��/n:�c�Xؖ�2ؼ��<m��Rh���T$�fn�J�|�E�[Rg_@�SG<г�ׄ�kQ&ă+�j��G����.u�����Cf�49�0���Ã��Uv�X�dB���搛�W�Ŏ�AN��a�l4��u�EU��δ(�d�A�k�j5�Ɏ-$��Y�!-,��Ҁ$��wkާ�T�d�>��y��p7A����[&�'�«skQ;_3�'찵?�R +s�{K֤��i���[�b��d��X��Tb�0� ��"�d}V���8#穴�+:�_W{���n��-n,^�؝�a9�Z�2�)A����xiK��3���~i"���,���|�H�����K:9S��o)fV:����`�ʳu��oᄆ�H����.ѯ�f�^�7���t��zܨȺ3�C�`OR�O�*�^(&�fF�W&�Y,�͋f����������P�,,��S3��AJgCu�j�i�7�oE����cE�oPfqQZ�E<y5U ������#d���y7�A�T~��c������Ov��.��HL4���ڵ��Ě��؏¦,n4���!_���%"h&c ӣ�����Jz`� +/G�"�;��[��s]n���Q�["&eSs�z��|y��+TνhT�8� �wN9�<����������?���x�3��.˜z�����r�i�G2�)v����e�** G�H��E�Ъ&)��)qh�S���+�Q|���ɗ���G�E�Qc����)�+E'f���֩�z����)H�����CV��Q�����Bd�ve��I�S"�m�K}&_���~,� ����z:ч"ȉ�r~���� ��U)�u�%�4��f�v]����k��a���[�ZӼ��kS#wf�v�U�J� V�)���2^E���PQ�#��c��0�1;�-�K�p 1F���l���t�6p���&:a�ӷU?�7V|5��dG�Sq5o��O�F;����E.E(<��T8��j0���f�|���ʤ����u���[�q䲅J-�A{�1iy�`�NJ���_��L�wW�Yx��Q7ς�|iKW��G�@V�tO�����u��������z!���w��^���(C��'��dF�S1������,8�[�����O�X͖�� w�{����v����{G\>f�[��mH��Z�����A%�F��%��s��)�YNʂ/���kB u��&�(&c����Q�s��u��o�nWaip��0�C� z�)w� �`��W.���9(�� x��T_�ѩD�n��Щo�V�I=b�x�g���ޏ�����l!�b,����ǖV��Q�`35���K���"���?!{JC�l��'�+��_ކ�6n������a_�� +�~�#�PA��ʖ�4��0�5�t��{/j"4�����C�^�gg���l���y.��o'1b� +NId�,�z?���4j�v3R�u���lM�V� �Fnp����nh�X�\��S|�_O�5ӷ�50Z�pg����7�EXS,�8��O��?ZĨ?�u�M�W����&��#f���g���v\Ϊ.=�������:I�R��9�ᇵ��$~�f���83j�zr-��!g�EC����Yv����!$��s�����쥞��^��B�Dѷ�ڋ�I���q+l��ٹ���Fܒ��B��}e�93r�,O �0����.V�+����L��d��W��� ?X��q/Zy���@������2��'��ZA�59�4&���#��I�3���v땼6���8����՟�-�"rB/�ow9{:U�̹T/��uӄ���J����C'�=�骐_XP����t�cHP������$��/�~�63In��Xߖ�͗txm-�����W�����dcm�1���#��'�W��r���|����#P�[WD���0HgY�(cF�,}��q��l!�t[6GL���1ػU �f�U�u.u�))�G��g�4+�]�k��Tw@dC��f�m��-a���/�n���0��B\o�Z������O?�H\�0}�ݯ�w� f�+ 6�E4����վ��m����0�����`���H�@�g�3l�n .�-/%����M������[i�}����T�S��kX�Vs +I3 +Y�8�e��%Q8�4�>2$�x5��U߉�n���>x�4�O��fN���t���N��1�����)o�A����G|n</XQ�&����Z"p9l��6Ԑ�x"՛�����<�����cR���h_Ujܾ�l���eSr,����ݛR����= �4G/4�τ2e뉗��l��J�X�;K +��� ��ߞ�o.��[lP�Ї��i����|/b@q��N��m�n?���YAFX},�1�!�l�C� �͇Z�'�Q�K8B ��8K�4��ۛ]m����Q����Wy(3{Ou��{ �Q�Wd��|���Ԥ�n��7�0n���eH�����/!ݪ!�`�6�7lY�_��[�\�̛}�/���&�)Z�.wmܬ��*q���W7��{��U9�h�H���"���?# �H�Or[� ��I5Q2�Wz�0�6���\SE+8P%���iɃ~��B�T��d�}hN�Uc���ȍ��e� +8�x -�R�GN�+q6�q;|M�Bg��[�W)�mU����#A9u��1��}_{5�i�\�c���3��� �b7�Ar@4�����g"40}�%�@n�X��}�������G=D���oE��HbE%x��*�FrԞ�'���,��#Bp?͛�p���X]d&G~�*9���4�S\�`R�_��h�վ��Y��[3���iv/����"ߪHd����!Ii:n�*Z�s\ ��7k��WwVE��M�!�طS�+H�B � �!̟���xq�eE�6a W���0�LhL5/ZžD�@�ͳr!k#�fS�&-�`�xZ�C?��/�5ț,-��=�^�C�N �C��E�|e��6�S.��}��ʈ���V�\<��12�Bc-qrbี�9��Ɍkei��`�R�@R��]��r~Dzt$���[�A����.S9��E�Dj=�����y�T+M��u��I��ҽ�P�H�l�� �fNv��2������M�b0b� Qk�\~�CQ՜cR4��1�]��w>��KЙ�ĀR.����R�" �/4�����7�u�7%��E�}��&��$"#�]�O�ɸbds�O�:�y-Vȸ1 +C��D��a&5�og���r��9:�b��gڷ5+��P�3oF�n�d�[��I]�����^K�`�k(-Q܋��Dm�.��H��K���(�>��7�B30�Ѐ}��c�$�. ��}���,j3y�P1-N�5I���g�U��5ȍ�FoL�v��P�gr݃��@i�&�P�˫k�J��kf��.�S����l�1|��g�-{ՂL1�L,�BS,9�����)��싾�ɻd\OqD�j�B�-%1�V#g�Apc�#�|Z+�'c�E�*%��XW�Ҧ�:m�2kK&��*�wƉ���Pe�L�~~�'D%Q�fP�:?_�g�\į�}�f��75�����������T�]Y4�t���� _g*m�%��1���̖i��%���p�2қz��d��9�˻f9KC��25�킈Z%��r�O"_ �42D���n�߾N��6hp�P";���3�]��Ȧ�n �~�L�%��~�R5��0�c�}�~Mo���d0��'�穼c�%u.RL�?Q��f���q���{����g�v�l��]7n?g��2q�qn5�����*�.����^"�u���E���w�-�^`����qr��ng�t�s~�m�� ��l����`%c|�^Ξ��/G���� �ˋ_ƒ�GU��� coP�n��9�-� =^���ã�ɫ�mըf�d#%^k� ��sj�I��W��2�46uݏq���R�MN.����(5V��v;I^�?Flm2:�@�mO���N�.P���S�Y��cZp�t�|�P��6�Z;�fR��誒Q�=�%O.����=BO�]�0��q��br��^�'X�����0���##�Q��"JB��#Ԟgx�<·�w$�Z�k�"��J�WX���(�Z^c�\0OM�W�MHy�Ip�f���_����q��f�p� �P�w��F�B!�M��x�t!�^����U��K�L�l�n�}|�c^ ϲ����i�:?x0��0sv�61ic�r�wⓣ����`�t�2}"�����%9q_������L곊�~*�͎����H���Ճ F��1�A���-s^���8d��P%p����&|�9��K����L��5��7�ЌUdL�ToIq{A�ւ53�DGX��r�+x�/���dр%_��n���>l��y�?@��7q�6������=�������3�"E��2w�Zx���ɻn;%Mfu�b�������lS�D�$v�'n.�vz���hu���xRz#�{t����C��]��2����w�<;m��K�����ǝ�IYx����oAw��i����0�K���uDz�mʣz�;O�z����ޚ�����^�k-�)�L��+�� ó�J&n�`+���+�� �u�:�'������3|nKo�䱖%ބ�ؓz���_1K^��+�����; +�#�-"-唬F� �Ѫ���\U#>������.:����"��{Av�=��/�K�%�/z��4�ĦF�$�ӻ��~ែ,F � +"o������h���!��b�ɂg u�����!b/_N�8��P +��[J�����)���)i-M��De��������� �\3����c$WU39�!�H�#z�m��aVW҈��p-ƯW�����kX�ҡ8U���f +�ï�1���: �+ovވ}^%td�B@Z�H��,�,�;h�:~Q��\���� +D��luLa�"v��x��>뚜M|4Eqy�w&���1���_�kO̓�E�A���D�()�3�h��U{O|_t�4z0kp'\jJ��@�`e����R(� ���}�)N�NU���'�Wց4�f�9YH���|�8��gd��.�Ϋ �x4�9�u +u�� +Ӂ�:H��Axup�@�9�C<6��R?;�M�}�����D�v� c���;v���O�#�P��8��։b7DPBA����E_�r��1�*�~�y&K�D����Z�ע�� ۳�j��������n��ɵ��r(�c�Q�,����� +����5u�a�VVga밎��gj<EI)�(����U����1���'��.����8i�cNj+or�VJ՚�Pmb�xs�A�u�� +U���N�VA����C?h����2�/d<|;"���� (��*�и4����R�̧���>�/�nCF��G�E��'�h��6�>n��dOH�^,Qo�*_�}k,��(Jij��ð�&��ـ���0���,�3�`��rBYi��K�G�7� &�;}�L�����+�M�LD�V��R��x��˷u�����kؘ͋z�6Tc�[K���0n>��֩�K��5}��;z�1CT(� U�ϡ������� "�~�s�ڬ1�X�U�G7����IU��.��\-���qhD�GFm��z_�0�ֿ�W�눝-H���w9�\7xZz��rc� +�}h�5r�I����f�5%�0��~��5����]=!ن��l��8��m$t�^�M�:�x��{�ɧ�@��y� ,�!�ǫ���k����`�ޚ��E�E:S��*�0�y�B�Φ�)b�A.e\}�ՁN�"k�)�v��ZHp�{�E'��S2�Ʋ�k����LC7L�=B(��H�^r��Y�T��T��R��,w'ђQF���saeE�m��9��wQ�o���7=%���?=?�̍���@�|ӏ��"�Z�_m<���BX�נ�*�xâ���W�٢$��ЪD��w�,�@H�qǝoqRj�X�Ȍ��$!�2Ă�m�2���x�\b7��7Q��x�y��$���U�H��=�'��F�s�n+3�C�FxQ��T����'{|��������4�3����:���U�.�I�mu�&�*��28�>�Cn*6k1g\�����'��J �Fkt.-����F��b"l� +����.��^���V��O=���Z�Us� +�U��M b-W��^�K�;�am�5]�VWcD�䧿����)���[�C��&�b�I�ۑ�r[����?�<�a����ƃ��l����$+"�p< �%ܴ֣��Y?�������=U�� +�=�]<��q;�\ +�z4���RLq +u_j���,dH�P�_B0&�d2��F߾k${�ԧ��:�,z�y������'�&գ7'^7���y�2[��=��?M�R�\����T�'�V���,'I��K�n���ɔN.i�Q���&�:i���x�q�A�cA�8�T��oK��]E!�?�"�=�bb�b�}J(1W�7gk&o[%|�┚c(c�K8ΰ�M�-q�|դ%'!��]̅�Kc�߇WhD`RAOR�.V.�+�s )y�&�0�*�!��!����9�!�|��dd^�dx�/I4~�[ޤ�u�Y@؇$3Ъ�f�+p���欻b��J7x/ ��BB�n5�K_T�<�l~b/u�pZ�{���Γ4:|s��`�\���y�i����O��q�%�Ԫϳ����0&����E� n���- �S��Z7?B�7��vV���i�o��-r�ΰ6��LJ���-�,}��R���+A�o�:�|t��q�6G\�**��S���[o� +}�E�Z�0��&ҩ����P�m�x�7��z����-@s_=?Zo�0}���֯�/�z�9Gp�:�����*a*O*ӏR`]�MA(.���*���/�W�@����n�OT��* +�[�+�5&��H��c��uDZ7}CԊ�u�� + ����vC`��9���P%Rg�c�Z�l��5�Gp�+>*�<�:>��(Π�K_����$s��Ёm��L��N��2sW�����}i��A��=�p���00�Be�v��P���D�̈�HS>��@l��(w���j�C4��E�Y'ޗ���hd�� +�J�j�c�u.�����_�뢮S�X4yv��S���� a�S$!|�t�6�����&��ڟ'�u$Z��w�(��� �(g�ڀ�bXy��e��f��t�ȾW��D�~�IV �\�Z�[\�o��U�� )Dd��?p��)�:�QS�u�vWwY���w���ʍ2�Dk\��-4�+f���}�Q~+�ieq.13z�c砶�_��i�L�V��y��-%-�1�xx�QcXa��d�J6m��r����Q��ֶ�m�7�%�C]��aT�u8{L(�S���>']�uBD�yQ���g���������źq~CgfS�d؟>�l�� 0^�'sc^z<O4亞�����t=����4u�:��̢��H����ל�oZ�r��Dڸ��h��{�������c�%��V6�v��r� +g��¤3�3K���[�a�}��]m���P]����*��_^���,�E��.��l��ѕ����.��W���M��~}%WS��� �916'■=o��WAd��+����``�aQGd��ǘ} '��H�t�ME54�q�CytdҮ-��K���M:1*�)�m({�3�Ї�T�y�֊G�.*V|�o�jh�B�(뾼$r���d���qj�-����(�c�v�KX�`�/z��AhG�j�XN^r�߄����*:p���u?��iR��fiKhpdG�����g��<���{ܡ���|��{}�o�����z�?�7���+�3��t���m����H +��V=�BU-���1؊w������:�)�/?�����~nPw"P!��� �$C�~�{�_�Ae(�At���|;3=�)&aZ��bZ�Ji��6�Y8a�J�rťda��2������ޭ�o�D��'�2%ޒ��a�0�5�e����^iz�� +)���!���� DqTү��D�Y�65���rAT��{�c$ֆQ���1�onu]C����-O_We*�F�I�{��o㯦���7�25]l�,0[���0_gDwX��Q ��R�P|3I��:�F=�_稫������Y�M�D}����G�$i?�[<��CA�a���͋���aSIP�$�4��ފԉ��l;2�/J�X�B�]�d`1�ܙtQ߷�:����0w��Z�X<����~���o�:j�;��C���'��A����ԟ�Lnȋ��(���$��B���7���kD�y�R���"Qd ֯%��sץ!�l%����'�P�3)���c��ډ�)�iL� ���[>���U�V4�>��RшGUdw�gc�_ѳ+����(�R�-���H�3����woqq��w��s�(�1�N�.�_р��<z�n� 4�g厱�pM}����F(���l㓈 ^���,M8�%�T����~�B��,�y𖣀����P�گ��(������v�9!}<]�FXm��zKuDf�o +8r��a��5�8cB#�����8����}[]�s�\P�u�B�G����* �_�Wql�US��J�������^ +��[����ϒ�{�Ýܒ�7�#��c�w���Q���m�h���~!�������L�(��(ƫlA� iiP�Շ|�g�~+�s�Ϲ���),�o&�Mns��&�*�A��z�.p8��6)�Qj����~��Q��HGd�>�+��o s��yd�`R��y4({9���[�ɩdFejA��pd5�a4�o7�7��bfz���3ЅAxg�����Kȵ8�Y����J���}���Q+��C�0������kiE� �Gj��C�$2I|�ѯx���_�1�&�8a��B���#ٗ�/s���"�`��D�Ӡ����i���� ն�:���;<I(ɵ]���o0�}F��9@���z��ixjp:�|{��IQ[n����,�!C���A4PfL���,�jLF�!�p"�Y�n.�S>.K[h��XX��V,�i�'��h�|a�}� +��PהnD`(>B�y���� +��:��2hBqM�uq�U�|mx&���Iqf�d�S�K�u������L���c��>�W�(��(,�\�|UU�'�3�� ���'}}���o��Ѿ�{��1�rSO����-����2D<�c &����8���j�sG�Q䭣���e�;�����ցrڕ�b*p�yP����_hT��(�$�=��,SB>�^M�I��%��B\�����#M�:�GI=����&�S�"[tW���?�nEF_�f��O�w��7��.R>.������� �{2��Xmk�P�US�3a`�E���glē/R15\ەVwM�ph"~�����i��4]u��^w��Ű����Y�� @kxa�Y�p�QM�R�u�?R�$�ǖ?�[fS;�hF=L�/5WWG/�9jŢ������iu��p �$�F���V��x����V3lP�}�E�oQq���U dh�μ�c��^���[M�����b>]���F7 ���� .D]�_���SZq� �Ȏ5��}�V�!U�Tr�#S&S�8�k�j�ҷ�%�/W~n���Y���{�X)B�����m����H��K��^���n�pc\��8��<0o�$��� �ou�������f��7�x(Q�p�(����8�ص�9&��;)�fݐ�北��,�}x�"Q*�@����Ϋ���G\����[�_��Zg�� +X� +V��t���l�F������j?k�t/�~�<�.u�"$�4�n��Cҽ��+S�Qa$��6w}"���t6 �� �BB`�����%\���$45��l/a�\�X��'=�"U͎�xdzP�L�}�����}� Փ!F�F�� =UĆ�Xu�@��(v���mJkrsU�E�0.A�X�1�hʀz>$}��S�u�B���f7����/o�m�o��P���*�i����W�I��@N��/�*K)��Pɶ�4���G���5�X5��=���Y{0�0mgRՐOj����� ��(}��4T�amn�|�vS +ەY)�ӭ�6���3���[�#��y�*lǀS��Llig�5~�>���Yn�~��_�x��y���!~��� +&"�+S%�r�Jl��a�]e(E�(��W"Au"ݺ�$���7w�u�x��v��,�lnt��c S�ӑtˠd�� �)\���x�I.��R�8�U��Z2������Q~r� ���+\E�\�#��C���*A�c]��ԟ r�_���N�\)�o��`źt�"M�EE��ש�o!�VB���¯�5н�m�)K#5<u�G�ٷ��Z� ��I(����`���K��Qhc�[�k�-V������(�0�#�i���C�����)���16��X����Ʊ�Ď�P�]P?�"��}h��xu����L E��������9�����j�4����<�T[�X=*#@��`�e�g�e�jyYt�nE�F�'���a$#V�d��]T�4aQ���V�3�U�#D���'�� +endstream +endobj +8931 0 obj +<< +/Type /FontDescriptor +/FontName /EBCVQL+NimbusSanL-Bold +/Flags 4 +/FontBBox [-173 -307 1003 949] +/Ascent 722 +/CapHeight 722 +/Descent -217 +/ItalicAngle 0 +/StemV 141 +/XHeight 532 +/CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/Q/R/S/T/U/V/W/X/Z/a/b/c/d/e/eight/f/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quotesingle/r/s/seven/six/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 8930 0 R +>> +endobj +8932 0 obj +<< +/Length1 1625 +/Length2 9695 +/Length3 0 +/Length 10534 +/Filter /FlateDecode +>> +stream +xڭveT�[�5�6nAw ��4NӸ[�@pw��-Hp�`A�H��Gw��������zN�:�vɩ�4���VN`'G'�P�`��m��!�do%��h|�1d�`s��Q�ꃭ�r`K�˗@aaa����b�d���gacc������?����G �Ӈ;�����{��__�����`�5����4PVW2+����`��=P���b T�X�]�,@k'(�����)Kȟ�\9���]��@Wg�%������b:��Wקo �h5w�=����8ZڻY��d�v�K�3����� {"�tr��ZB!�0�STM9��u�ޚ���v�<�@'�'O+'K�?)��=�<�0s��+����eZA\��ͽ�b?�9C!�ps�8��K; +�1�Zك]]�h���T�_y�[�����^�v���4@`�`{kN��O1-aO�m �\�E��� ��������?1w0��1���'�VN��^@+�5���)$���e�_�� -��4�����[s�٣��������� +n����O���>mW�*�Ϟ�Y4[��� �^�ý:�����2��� Ҏ6OM�����qU�x��4!0˷@ks��j�e�}R��8����WA�<����t�B,�����o��(����Q��7P�Q�a��v�_��O3���r~���9Y�������'Ї��W���-zZ��~�Cȿxx�uV3�A!�@����y���?~�:��F�������h������`K7(���=�������ă��`K���N����i����/crF�=<�_K�u� +����"ք+��>�q6L�<�z}�u����n��3u���)��X>�-3��ms�������Ϊ�>3���\{�e���9�D;/��%�ν ������2�.�����p�7c���S������c��pr��8tQs��]�$��������]�tz�FpS�~]����Cd��������!�T����͓E +p�\P��T���G��n�H����2e��=�摾S�ɋ�ԛ �@�>�.ΤG�bS�����Ddꋷ�����G�Z��,nh s%/k��QM�z���� ʲ��E㊶+/,�\;��Ka��b���({�0��/-�)��sBY�]�.�������#Wcf����3�B��!�p�| �i������Y���@��~?vT�0,�agT�u�̮M�[KN�W�@��;jU��1F��n�y��sQ�S�0Cf�fk��,�_;'��Q�uV�C��\;�ê����+���4pL�����WNP|O��k�*��tN�f�YX��q�9��jF{OW�u���;E� I����mP5��9q�%nM�����{���-쮫zaX���x<�,�|��Z}puΎ�9a��o<~���ҝh�r<r�*ح�^̯��}fr�#��QX3@�h�w��6�?s������ c�$�*D������%-������Rȩ�xR�5�ܡ�.) h��rZ��d����^��T�ƽ:����7�,J��ֶ�%�\y���1�d~}~�_MFT�c�^�+U_���ι L�5i�h{�p(�)bM���Pd\\X�L��Wب4�Q��R3��wp��0~^�?iM���E����2d�&�h3�D�.-��uf:;�;�G��+a4��\!QTX���3��U�i�$2�jZ,�a��+#/�:&Q�yB��J�<���h���U�F5Gk'�5����u:#S��#��x��h�R�g�*��3��u����D���]�����H�;�i��f�\�M/�b�����җ��^2Z�����y��.UNP���ݜ�*Sr��=�dn����`zmL�s����ȷ~�i�t�~Z*&��t� �L�&�{J���&��͗�ts]kW;��pn�����T�>��W�x�\�E�sܜ�0�D~� ��}=UE>v*��1<��AG���i;���� +8=����Gc<�ḙk�S��A� B`{�)9����0��|,�b��ǜSLG�»���ro����]�Kr��B�crf#��d�Z�Џ��vTgQ&@9� T:*o�j��6gC�[���7|����f�kG5���a�Si�v/���z~�,�L��4�9�UD���u?�� +�&3K��|ݙ_'ͼ�電s�d�ף\�p��;������8�Ի���#�a�s=�("��0i`��p`��V��a����T&���?l.w��=nG��4pЂ�5���{�9�1�%3�\1��f�c=�i8J�)>��b(��g;�4�#Q��g~EQ����퇻[�)���ͬymǪ����4ɜ�6[�s��m��4�&}F9�X۹����eJzn�y-���(�t��@:Ű�O˰C$4a����F�E����a�F� +y�Tq��f�<��!��� ��"��K嬧 )r���e7u��}���|�@I������M�B%`֊ ����,]�"�����,2͠��oO��|�[l��{���oV<'e�t�VcY��-�;���T`<^�D��\�E��=�+6Q'�ܖ�s�^�"g�4�RR[�k���\�߱ۢ�_�]Oc���W|y1u73�cL��?�}CXwTK-7�����6�j��;�⤗/z�,���)Q�a�Cu����Unar�qZ���wј/�T�.�@CnyR�r�gi�!��!�V��Z������������Qu֠H�� �����»�Q���As8tҷu��j�Õ��F��QL("8/H)�:�C��K{�(��pIJH�HQY#^E.�\�ϫ����J��L�#����=^�����5��0�L߁��% GGP���m��� !@CD��'�N�c��l� ��Bl���3�f1��9�AvK��Ã��g0X�������~Ѫ���R��mU\t�ܿ?�#�ŎJz�U0�2ԧ +�H@T⾡���G?�}���00)P3�>�TƓ�6K��!ko;#�7$��/�����]��&a��OF��P�f�t�x?�}w';3X���6*y�)4�,IwI� +=�`�fp���B�:t��F���4~�ۄ¢�C��6�L٧��g�h58'�p:Ύ�M1���R�H��~!w��I� ��-!�j������K�b*ʫ�]��EћW��f��U�{o�ȃ��]�@�©�:�k�K�Ё��,��Um�!OtFF,����N��2���("�c�%���N�E�b�ZJ{�aG��K�QK�qq�r5�g;Y�z���ͪ�>����w.�Ρ��͝�{�gd$^��8"<��SI���?q_�>���L}���_X���S�d&F �*��ڟN��ʸ��k���f�R�D�-O>K��V`�ށ�;�V��L�1�Gp��]�\���YoC� ��%����x#��uh���d���v,�������m�����re|����V +l���{��!Ezf�m����Ա�,^�mL�a�����u����2Ǎe�P�TKژ�O�ɖf�ƕ��7�S#����㢃k�W#9Q����RT��WN�Ѵed?l���-� +���B]P5<73��pgI[����a�7��J%Ɣ�؊-S�%e�x���`wT�QQ�ܡ>--�Z�ƽ]�����:�4T�mr���j.I��������R`0@������h]� ��N��lڮ�҃�����K��������ZH��<��=ᓑwaB� ��l$��U�v���[�P���A��/�?��V�X��""3&PӚ�DAE��J�̶6�d�܍��F�X0;����K�����W"�ZqP����3cXR0�uA�Ζ�;`�&�%�J2�$B����(v����0N�W-j�3�&��e�?g7�Ӥ2�z��(��l�w�W!�2�P��8J(iX���i�B�eaY�UI8���a��/�i�tQ���,�BNkt��-��1d�Q�N���8�)�ʥ����Mz���>��;�'zU�V�A �K�zv�A��$��.�ţ|�����ҵK��3���]*���w����}�o���%�;m|��i����F��na&Sӄ;�X �ݖ.;�RJ����)(��k�M�����\���ٕ�_v�\9@tUh[�_w5c[�=y��7� �i{x +H#Ȼ��F�4J^����^f*}�Z~#�z�aޜ� �4ѣp�0�Ay��</��>��Ԫ*l|I�W��6� q3v�4a;Z^�����"L)�*�S��6���Ę�:T�:�����E����X��"��J_)۪�E�\H��2fK ]A�'ց5��f({����� V2�iѬ��p���q��K�ˢ*z�E�eB��LXaJ}uz�d2}��͓��["�Q�=�X0�Q���(AEN@C��\�gFA5J�F����گ�}\����ZR�P�v)o�k���W��hW������:�J����>̚�j�;�o�~�����G��$_��qUo6CR��ߴ6����1j���dm2�k��=�y����AHA[��4K_�U@�\���I�H�|z6� � +�k] �@��NjAZ)C�/ՈC�p�v{~�L��)C<z3]���Z�O���<'Yrb|��{� �T]A�d�%2i�X�Lć`Аd� ݶRj�`�`�jj��t�ɢ��S��[{�t����\�B�L�NC5����J���s����Q����}�2�Mtd����T ����`���B�]e���Tx���|�iY*���S� &�����ί}d +���u��ܿ�TD �<Q����*k|S7����ooj( ��V���R�m6�h���Wa.;��m�$0�DFH���XWG��sZ�ɣS9t�և�ӏ�����?�����6|���9�����y��+h�c%�$T��l��XÃ�34� � +�W��Jx�ԞHf�~l �m��t����e���7>:�2c���"��i���"jhk���<\���/7����\>�g��4�3�P铫�����9�E�q9x��e +�`ESF���ͻD ��KŪЫW���ޔ�}��|#�If�B*���;���Ю�>��|PI�{d ��R��`<�W\�K+E�36�%2��M��M���� >HF��͟-���y�����Q�&|8 d1ɟ�X�V�>���*�w���2C��a�.�l7���������_J��N�]2G�.��Y���!�-�-U���c��s��_؊�e���# +muQOHsO�V 8_?���:�R�L�>��I��*>�� ��4�!G%��1�����/���;ڞ�n�3V� +r]u�s�E]��*w2�f��[�䖍'�����^ϡ�-���h?Ry ��'��!&䱲�2/pҳ^�Lc�P%�)�OMhDx�^�Z|V(�. ����l+u��/�Jo�� +��"������� #�n5 �If�� �SWE�b�}��^���+�l�.��{����L%ř�j���ʶ:f]�P�:!^kv�^1cL�&� �9�9Jo��j�T2�YWm�aX�@$=�r`��Uվ�m�"��IК��ef�M�5�����n���3c���s��Z��7<��=���o3e*��76� +�6��6�R�H]�2MQ�!�b��lR��)�5��P�a�ٝ ���5��Q��N�;���< +���ئt*�O�6��^���9ub��4]��X}�=� +��2�V�]�K0v3��q�U��5N�'���R�$�$�8�]-����F��v/�)CA.T"t}����5�A����?�p�i�rH��ça���A�[�����, MZ�:�du�/JB�Ĵ���i�rS��� �o�5e�dN�7,�<l;?�ѿv�T�� �2�HLE����K0eW��݆w9�E� +[�e�����߈�J�l���+Ȥ[..aa�5��wŨ�z�0,ӏX���1���L�QB��1�-�R4��$��e?rlߙ�=����l��7�Đg�W����rC����#D3��l/:I����q�I�����ۻ�����J��s��� KG�㫯�L+7�D�G�%o����I.�q�G�gH�@�c�A�u�?���4.����ȋ������4�<���Y,��������l�ڞV��.c����Yo�X���?���Cr�qw%\wX��������Ԫ�)�z&~{"a<`t�����§���5�[�.ԏ��ݧ�Ǹ��R|�{�q���2����1�Y;�e? ��K�ly��Ւ�m�i�X� +f��ϯ�I��ͫ�anf/�:�0 +��P����d�����c�It��.5�n!SU�w��j����tJ���&B�� +>�)N)yr�~)L�Jo7�4��&0B�zH?�Kkv�U+�j����Dt@0����x nm�]A>"1��H��C@�K�B* +��~o�a�?=M +� n.�x`B*q㸔d@hW��=�g����7�.LJI��%nݤ�&)M�.{i�E����x�&�DM��4q��| �7�������>���E�m����� o�bzq6lB�X4q��3��b�~qB��T��z��m��u�K{��F A)�h]��̠��ZE1&k�N �ѫ��5D�-6V�~ĝ֮, �9x���A����/!K�^�4�X�%�����[�PX��r��˶��'�3�{�%����;�zb�-=�Եo�rr�O����T�_�.�(@M7>PO�ѾUr� w���C��K�W6�,(�o p�����߃Ċ�I~�_��,�� +2.Lb�p��f��"H�����Se� +Y�)� ������n�}Qs����?��K;} �{A;�6���{w�8���͊`8�3��0��̐��&�֖����L�ͮ�SR������'��lr��HW֬���1���])�F����E�/B��B(��r��hI +i=��ك��Gv C"A�h�(I�L��рd�F8�l�J�Ӏ����q6�!/N�t|u�9�\�5bۜ���9\��hy��P��#��K����������>n_a��yo�|��u�@��V�,"��y�{���� �m��T��Y���9�x�U�1~�����?�K�n�~U$�*&�J�J�"����aN�����ϡ���/1�5ڝO�}�'\w�4㒹�j҂�_��S��]�W�3��c��X-��������b���Z�f��x2_/jv�4��4Qւ�i��וu�Z�%�gR]$"�h��9�`�E2Zg������L39�O?�UM@:�{r���ts>��Dw�S�0���8WU�W�����+*�HL�,/��s!_��tt+���O�8�F�S�)A�4��#}Φ��v�������-A,b4dj���c��M��9�� �yȧw��Ct�n^Zˎ�N<|ͧ���������-�ȁ�b�� +S��=��>녝#u�|9C��Z��K]�:�DV���o��r|�5�C��fӷ�^�5]���t��H�?�_]q�ھ��D��h�e@�_+�Ҭ���j�����ٖsͷSF�o������A�[+ST�7)a �9����r��77�1��}��I�?��~�Z�W߱���<�+�}'�f��ɢF? �=���8������T���>��X�� �d�_��i�� �~�&���z���0��-1=����]��j]{�ef�-bze6�tdw�ZY!B�l!�Wm0p)��D_yF��; � 1.A�:B�\4墟�ޤY���;��¼��k*q�庎_�O�4��u���E^�>굔ݚY���ݷ�<U�_2����_�=�?�!I�m����N�8υ���V#˾�Z�<[��K�~�R1_l<��!��������|�ȗ�\�v/�^� /�t�pԐ�=�d��I{^�(G�?�.�.ݵ�>��pȰ"���7`�y�B݆�Zs�O�iT�x$�~��I�̤q��d<(F20_�f�*!q3���C��wz��B+�X��S�{�+�A��-�J<� 2��C`�>����fWL������[*ZM���y����^�̧F��eČ�',t7�,�e ˖�Vl��x�D��?>�w �T'wγ�1Z�E�D~yx�e�(�!�Q��ӠE���ĥuaw5���/�#�U5�~[B8�09-nƗ��2���Pq�z6��#/GL�!�m�6�jv����0&]-��@E��:�Ӥu�;\����˙��cEM���'�� :���a#"�^�����llm�+~����7rwl�>���}�/Yc&2!�a��S���c�~1��O�3�k���J6����+�E$��%�҇ݷ)�Цy?��8|�����a�'�Κφ��2��!-��Ix +��j����dK�V�g�:�ՌY�eJ�3nF������ح��Ba������;�Y!b� #�U���%c��j�-<o+]UIVF6�"�-���&�Ҩ����_��`Po�đ(UO���D ���Y}�c�lIwƦ�4�aA��TI�,��W��3g��;K_�9|'e �~""iĪ?)���Y;A{m�{�e ���>�g�x!#�'gE�)B��X��=e�ƘW�6��N��I3vV[�m�}z��%����qrh��� ;�K� +�Ĕ��I���^���Xϐ�DC�P���hQ��v�@����삩�,��R�e�JON �3��ݎ�#����4�� ����$��wxp�����`MhR� �S�nO�| ����n�6li�Ҷ��0��w��oJK�1�ji�}��!^H-����.�j�4]kA� =:�\ca��N'�]^��2��sT9o�,�tE�����Y'RZ^+���?xx�>�4g&�p��@G�v���?��2���Eyt���`r <�����}��*�_�T����[���2!�Y��Qk�C�9�I��{��0$���U�"�IBa%�G�[�㐅�9� �%�E�,�vm͈\.�٢&��2���qM�O��a-(�+Zʓ���0̣ @Ɛ�x�l��v����x�N�z��B��M��9���F��'��4~md5v���^IK��$-������A尙;_��|Qԁ�1C�!&m��MN?M:e�}E@���� �$�k�A��ُ�,����7�������vj������0�ً"�}�&H=�a詐���G��ZHU�:��/ʌ˝0����#�(H$}�o�� +�:ҋc*⾨4�W�R�()���>(yڠy���wpW6��C���rO]��|�p�%/U�>��tA��/�}/�ߋn'�B��OP:K�ʳ�f`����������&��3�ߍӃ�3��<J�T�U]r�q����E je�����K�d�Ʈ�e�T�]�MȂ��j<^��Q6Gph�,�3��qH�4�Cʲ-���pժL��|�a��=��.�݊��5�:�ӣ3�t�<>��(�U:���"*��k���e&����^B��D�� +��t�B���mR3�� +�H))��۲��_���Fp_�1>~ZQ�T��3�O�^�"���y?N�� �É䁄���}��N�E� lzRK���o7D,�9<j����)�5�ݛ�1SJGZ�y�.�G_���J3�[�/�jᤠ�˃!�6�ץ� z� +���v��f�:�, ������t#��F2T�p^����.��$��f+�@G7���#CoX��_|�g �G�{?��2� �YFƬ�&��O6 �U� \�B�5E�f�c�r��X�OӮL��HT�dc�^$�Ç�!j3�A��Y-�o ��'a%�4rO�#���(9�d�~��6����ѝj[a�@ݎ�,D��m�s�����;�`� �����o�'mE�����W��{"���ئQLj��ir�p�7^���֠�����92�y2��r>S�a���]�Fl��<~��wg��Y1�t�6p0k�Ь��a�z5�$�Y����t��K^�.���.���p*�0`��l�J���P���Ǣ^7!��#�7��6�q��3 .�k�KR�%�+�qV��7�}��6�N���,~!���������R>I�y��K�%��!xSA�֘�_�m]�C�β3�\��)�m�o��Z�z+���Kn�ԗ�F亍���\lh��s�G���V���|>"�IƇ��C,�$>9r��e�/���|X'v��W~ci�F�b·�?���Î�����_|MP�Ki�>{=�z�[����}*�[�8SI��E����*k˪f-)��۴<T~�e�n�9�f����$q��Ai�^u�3j�x������!�#�N���kH<�{榦�r��r��%�#���P��e +&�[|� ���q�d�Ac�ˁC^w,g^�`�I��Rn�2�e�D��|ܻ�t5S��C�3�-"��`E�!���>=|�$����P�����# +endstream +endobj +8933 0 obj +<< +/Type /FontDescriptor +/FontName /EYGBJT+NimbusSanL-BoldCond +/Flags 4 +/FontBBox [-139 -307 822 975] +/Ascent 722 +/CapHeight 722 +/Descent -217 +/ItalicAngle 0 +/StemV 114 +/XHeight 532 +/CharSet (/A/C/D/E/F/G/I/L/M/N/P/R/S/a/b/c/d/e/eight/five/four/g/h/i/l/m/n/nine/o/one/p/r/s/seven/six/t/three/two/u/x/zero) +/FontFile 8932 0 R +>> +endobj +8934 0 obj +<< +/Length1 1144 +/Length2 11896 +/Length3 0 +/Length 12671 +/Filter /FlateDecode +>> +stream +x�u�eT\Q�-��Kp(���%�%�C�Vx������5�{��C�����;}���^k�o�O��clZJ5MVIKGs��#����!P9���j���X5��n�� � +-�b�_�_B�h9�e� y-7�������!�! ���w���_��.B�5���7@ ��)G7 ����dZj�]�\,��B�������iG'/�� ��YC��������� �����d ��]�����鯄<t�[��?bլ�d-A��`��@���ٝ�̀16W+60����PY�����?\Q�13���oS^��97;�����V ��?[�tsb�9�?����ʿ1k ����!���:��6��H����'���l������2�w����_(>�f�@��� ����%����` ���́�����a�տ��f�'���������WF/��l���p3 �]]_VCQ��?{��())ǿ����<�V.N��(�����jf��[ǿ[9�U�߉�W��@.0�Ӱ������Y��6�!/�_�}q�?��?�����3�����?�g�W〿������������9����3P�/����|��ك,$����=&���h��X�����?�-����]A��f������iـ,��@W��'[�GJY���%l Є��������-�\\��������@=�(kˎ��� �]�u�$�?f��>߿�Q���C����U��� ��ȨMڈ��*�B�Ɠ���{� Ju�!�����(D��5���]!1���$N�&L��%�5�pIYu�G+&=����G��t쬊@B^UT��z��(��9�BU������x��m`X�ޖ�O���Q[�p��qL�����y�C�Q W�$z�B=ӽ\�6݊=�},%���G7�S�o��L�h�I d[h����J�kH$�K�C����VY%����T�����ԄnJ����mS\�+ݫ�V7�F���x]mCO���[�F�?ݥz���� ɡ�I�k��E[N�|�4�/�������,�l2������$"Q���j^_����U����T� :*wm3�+ȯ�����)�"���X)��Ƚ��ͧr�8�4�.���CP���4n��t�.�"�O��t��TKӤ�HR���]!�����:�1Ű� +����Dhn�7�i�-mY���a� +�U��k�y��j����t�i�P��IDϙ"�F��3���q�M?�z�����L��j��'����5>8��9�l� i�%ʘ����l*����� �&M�0��fSC2�� L��E1"WNq��k00b���j�$�m�#���^��ա��BI�!E�G��qMK��I� IY��.k�tP�^,�q�fL���!�'z�ur���7��o�zy7yx^$ڪ_ڷ��E��5���l��vy�,�*���S�w�3[���U�Vx=,J�$D�HAN��77��h��=0��ĵ9]~�?�����������\uM�����գ7M�Q�Į��jy�V��Jؑ:��V�H�>�^�ef��5B��Q�;�e�~�Q�0���ٙ�)OZPw�<V�VC��\ֻ����BX��g*�k<����|]q���*����͠���u���zy*�������NOhm�Z̵7����I�ٗ���� ���^��8�}�魜��D�JΕM�jJu�в�_�����P�#U.'�_&r��6*yhI#���:k�8�KK�7�[*������}�pW�IJ��X��ڊm�֘{�9$dM�����R��/BD:*r��Xk���*���Ƞ�EJ�8}�b�0,ɭ�"tBV�#�Xb&0@�U�^�PR�N����vM�ۃӁ��T$��@���*!�� &��U���j�=��1�j�ȶ����,V��m��s���%��l�q^��6��P��jI��J�Fy![�Q�|o�o�Kn.0�#�~�Y��=)��L�2�n�T�U>�8 +�O�+�bw�g���Ƴ|����'vN�`�LB����i +_�ͤ,n>�B��s�ze���#�Tۘ�&��n���*�P�E/��*P$��_��S���E�������#C[{4�\k��/|&v�u ���ժ�Dܺ��>g7na^��x,�j��_�(N<io�~��H ��nD2�{��ϧ��_Y�[Y���g���� �-�q�����tx�R�O`���|�Qc+T�i=��a9����Z���o��5�Bׇ� ���Z0z�"�f��vYG�Xu���-��*`��љ�V�$��Lˋ�-�����F*��L��+ �4��w�_�t�v1C��fɹ�>H�3�Ȳ�1�Z�8J�&��l��$�d���n_�}��²�XIw�I�u��l���\q��=h���~Y�)��Z{D'�~�������.t��3�K4�]�2O3��o7��Q7&�~����0m�d�ӥ� +n�|b\�9� UИvuCEuNQ����?j^��әYw�ޞ����h�TTY�k��w2o���k]B- m�߁��� ��̓��.LT�\���I�xD��� �����`�+{�w�< ���������/��ߴ�r��k�nf�ȇ��SLښ�|�e9��%DznLQ~�~�Nz+Ñ�c�o��3�T�� /Z�U���-+Nܔ�UJQD���v_�,��DY1���@�^J�!�UN@.x�d�w4���uf�շ�QR�ɻ=s��1�I�G������ђe��X���l�f~$��/�ۘ���F�h�bN����(����O�[ +��e���a`����6�z����_D��my%9ȏ-Z ��J��ޜ��A����Q�:�����f�9G��|��r(�WM�����̷���xj�c���7 ��eR(�����M?DĵJ]�����'��E]&^o$Bޔ:ֶ^R_&B��pi�Y�+g� ->�c���f��ӊ1%-�p~�G��� +?�ar�j��EIQoE��RIz�}����-^���^K���E��{��s���>��F�y�yf������x!�4W0��2>Q�����|�4�n����x�9��k�uX��j"�� ��U8�9��tSA���������B�g�+}e����c>*��R�E@�oj�W�В?7�{�4�� ��ɢ�l>�mp'b^O��l +�v�#�p�������sS���U���3�u���Ϲ.��R�ܴ��K1�(.l�U�ʧ��UbH7z�a�B�ۭ�uh1JT~9j:0w�6m"��&�E5��Y�>GE��mʇ�����b���S���x��QX���yXЏI�k�@���M�����w�z��֢�B2�h{ŞeA���d��g��-�'����.'Npv�8�@��#��]f�#co�sPn(�_�#�L�W�Y�#�e�x�m�yOQ�m�LEXG���/�'��W|Λ4˵Fp8�����9��;�c������J��{�s�>Bg��*�f���;4+E�z�ۂ,u\���$� �ѲƁxw�5����ҙ@�C��o�A�Opbg$9�hO�&}���ō� �a�_���6�5�BB*��4��j�*�u�����;�e�c��3��+H �<�A4�]���V�[¼���ud&�vl����iK�Įk�0[��F�ė� 0C�� +4��{�Γ���h�DFx��;z���Z�X����W���G8�w�WԨ�͕Ӧ�8���_�� #WX��ut�Yu]!�p1+�u@��1�r^��4`�&��M�V�&Q��1�I��<�Z��b^\�O�w �U �6�fw����t0a~*�fA��a��7?����n�D� +�%x���Ur)ɦ�����G���~���9�_3�I�আa +<�i�]��Z��U:D1�Y�cOJ��@1����j�����n�8J8_(�3z-����&�M��_oo+{�GUx�8y(ȱ����ٱ����?�Q�^�E�_��1�t'�<���W*q_�s�|GJ� �Al@@$y������&Y2����+���WF��1s���&5&�TY�+���+#���2��C�>��*c��eZ���y��^���o�F5}6Г����H?벰��`+<�;G��ɍR�#��duݟ�� �H����swZi������|���%�Zy�Q/�RȔ��HI�vu9[�ճ�j@�k�v���X��K�����u��TI�r��%���{��|�-�.4Z?v�ƨmi�~Y}�mg@�~�V ����P{��p��i�e���uV��e�*}V�x��#��"����0�`�3�zyc�x�� Ÿr籤Ns�Ę� �R��.#��(Mu�3+E�$~���;�! �P|�i�i��y-yK���#�u��u��T�X曾O�y�L�s�<��g�ʤ!�Y��R�����>�Z�8��; ��p=��HѦ�o1 � q�O�s��w�~�6��=���E�$Z�dU������ʗ���2��7*;h|?�j��gr����Pb�x_u�ڞ�vZ�G!�K����|����6ئ�4ˤ��^�3?����^�fg��ɡ��kj��� Ak�0��A![4��H�ޤ��mڜQ��\'>0" Oh�cZ�@;�*Q��V}�f\����Խ<ylvY�P���1Czb3���6� �=O�t��Ԉq��B�=��^�eԗ��yY��\0�p�Z��&����4~��~�V���V��ͭg�9N����1��t�FJ�w9�X暥�l���^�S`G��aj#�� +�BQ0�g����B�9��q��X\Oz��t�~+"�9\��hN,�$������Z�25Ψ�-q��p�!g��1ښi�{�U(+}� ��M^@)��2Y�0J�J~~Z����7-`Xj��s����f����6��ʼ�AK+�݃sM���[ಈS��U��"Wy��K:�в��0Iӣ/�ݬk���8�\�0���gU}�f4S}�VfYQ�G��ɠ�i�[&���@w��9���>er8%��%Ӹ���w �نY�r�Ѥm�z��b�)�<�c@�F�z�@��e? ��ө��z���gݮ*�>n�X��H�e�f�G@�>�ZUJ�ga'y�oX���ƴ�%)gr[��ͼ��%oъv��y��7�`:������ +'��\�<9��F9d}�&b�cd�}բfy8��z��pj��~�5�mT������kW��^���7�?�*pm%�'���`zQN�.M� gv:{�ix�9�1�ڤd���YaPeIl�l&�y�4]N��1АN��g�SXݝ���8�b�X�D��у,4��a6���d��V|�4��:Cy�]FƁ���!�M���=���y���?�����,,��.T1�q���sR�f3��Ӯ���8N��U"�?��k�P��C+�M�_5�N�� +]uQgM�ݙ��e��ɘ}�k���_�j�/2�Z�'1��KVCE*��[a�Ie0�ai������*E�o���ȼ��a1,D�^=�yW��T �o��C �o��ү��L�����_a E�g~p� �����M��b���^���\΅}�� #�o3A9)_�%o�̋��'�,������o#!�4%]'����h�쵣��s�.���'o+ �ט ��?hL|�5�LH)Ϫ�?��b����2�κ$���$���Gh������O�ws�y��f�����JW ���J~�EZ��e�0�oT�zB(��.X+��(�b�U������qaY1�Y�ҷ8:���ڐ��<;h;�!w��`��m�*����g.43�A���������R��cw�@4� +����IJ���9���8�8U:�P>� "L�-I���b���N�K���5�a�f��=��n?h.����=�F�=���yGlR�8��E�����wR��%�����h�T�|�9Y�3��Y擬���U�j�L�{���1��5���̆�L .�'$��T��m�ù ��X�:!:5W����=%5\�;e�c�ot��1Y�A/ϛ�Agn����z�E(��-,?�J|���B�2�������O�ȁ�u9=�D5QҦ ^4����L�D��G�ܞ)����=���%)�8 ��$���2�Wi�7#-Z1S�h���zK��݂�H�G]��k��G�mɫp�x���\|*�Kv�1/�'��� +M�tְf�\���Iv�"]7����^��$�IC����ő1XH$J��n�l�����$≷w +3����8�l�b�Ӯ��;��~��¢o���ٹcDIkJq/�~sT�� ����4�#s���ī��@j����Afa<�*rR"m&kd&S��a�,L)��#�;-�λ�NE��"i �&�qfHx��*1V�l!a�;�EC�{���b<B㜸��SdKkJ#C�_���keF�W��UCl�"ܝ"1&Oئ�܀�(�U��D߈q� I#�ҽ�pٖy�}��D�OF4�mt��Up_����˓]�cW�x��_��{�ۓ�B��[ *���l@x)� E�x���ű�:d��x�����m� ��o;�N�Bd�ȭ�y?��9���}U� + H���Q���y��AĜ@�����t�^9��U��^�f�ğ{k�l?h������iN��Շ6h�c"�������9]���0�v�{9�!�y�|�]U���cgRe�otV !7�Bl�V�9u9�2�x��6��p�΅�6 x�=-�ܷ<M�����$��|�5�o>-ۆ.��L�8�E���� r�(�C6��8�w�_�����|}�t����I"o�<������g��$w<���x��c�rN �G.^"3��������0F�o*A"��;�6�� ����k Q��:�����4�9nXxB#�Q"�� +��ч:�z�\�>$^$�ׇ�9q��ai���RP�b�I�֥��Y�١�ڽ +��K�k"�>a� �{��F��#t�S��0kS[��S�5�đ2����q�oHY~����G�=��K�-7n��ǀ�]bR3�6z����GL��W�ċ��H�_ⱽv���Xƥf�dJd����23J��`����ݟ��3�_}b��v1����I Q�'sI_�� ��L��v���A��>��!�ri(�fv��B���\7.�Y�3\}�N����=�H���oQ1J�dS(tך#�����B��%��OpU����FQ��֯�U�e4��L���\ԽW��͚#�YZ�-�G�F�L����2h�f1<:�˅gc{r�b��D���5�ã{�F��r?o���×��FGo�Ƹ�b��w%�=ι���n�ފA���]ت�D�[���K{R�`ۜ}��� ϸ`�����D���˗�^�/����QVj�0���������CIJߜ��ֿ�� a0�NJV�"m��_�Un�^B�mK��"d.GԖut+*+�v�2�w�1���2�[gC��xƦz"��pNX_�ROz����H��p^g�Ywj /z�m��@!��M�8���6�r� �����#���6����a��v���hB���g˸��!�B幃5�{c䶑IK�:W�/�Ɉ%����B�v��9������K��+���gH�� b}#j��1sB��q�����9+Ѽf��I@�8��A:��~k���<�aŵ�S���9Tl����|#�Z�u���P��S[���^�(��6��+M��~ ��I��'��,t�{���H��뇎�43����2]&{q�Ì���g��?�1��9|C�)��1*{�L��Q��~��uz�kU�3Ϟ0c7��Q�ec����>�E'nbJ���^Tu��~^�)�qװ<�щ �C���9�Hr{����ߙo�8�?Q����\9�7$++��6��{���G����9ܵ�g$�ߺ���^}� +����֮�����0��%6�є§�钣x/l��A�R ��2���JW��)E����2c�7�9�T�����k ��O��\7�.���ӓ��qGø)��������� ��`b�'�C�칭�>��T^���6�%����Ճ�U�a�f����:�� +R�1�h��R��Ձ<� ����&)C�na��א� �K���#�'��ܯ�XD$��j�V��=F�M8[.��+�Q�b�w�TG"��&���M2��~Fc���g�ʌ��<2K=�y6 +PO�o��]]*�1j�_�\N���݈���a~T)=J"&���1'Ƕ�ɇ�ysxvnC�6�K�+K��;^_#SG�! I��q�{ +�5,��}r0F�0��hޚ�Rs�T1�����2�Oz�]�m&Q[��SI�vܹjo��/�B��O�[�_�;�q�q�]���\�;!��3����C�uɧP�uՄ!��{p�Wz�_(��}~>���t- ���s=��J?i�0�4��U���`��F(��#�*�;Z����tBA�l����,,�w���J��ڹ=�>�F�"�OZ��}��3y|z�4����5��Jd���<��y{k"�q�.Ο�k����-�M���~���"0�닋�@��=��\-�=::>�R���&w�O���ߍ�RS��N=� ��d����j�f-i�o�|C��td+n`�BL�DN�8ۡ.��Y'�[����0��FC2�=4���V}.�P�Cpd��r�����ll3,bـ��i�]`aQ7���r9 �S� +�c�|�"��K�I$zV^i��n��I7�;��P0���'�GۃP���LO뇓.Y�i.�nm��K��B������y����͛���'آ�cȫ��"���詰G�K�0T� �U��b�2�8�渨��A# ����9�}k�֤P��Ndj^�*���hg�O��"?��-��v��D��w�Y}dq�s+7e|�׃ū��������G8��k�������동k����5ԡ��Oqb[0��),����?��ԅ[��arL���"�,�x)�ݷ�5H�<*c�̌�3f&��K����� �����L������ x\�8�Zբν�.���H7� d���~���R�jQ�F0� �+�Ay@�گ�uhQ�J��/��;����Ȍ���@������̝4k��D��d��[;#'ě�8H2��0�P���D���6��O���#��78w�y��4��498w�H���Y,s�ۃH�ME��-�z +K��/eL�J{U)��@N�3�ڞw���'���8��Ҳ�p�K��ܢ=R��{;REQ����.D�A(��]3*5��܉,��~\f����XN3j��j��]l^���)� o����)̗Nz�o�v'�zi��V:�MQt0Z���Z�`��s>QEP`��;U`0F�s�S�-�/�6�7�IK3�~�V&��wP���d�����>�-Kd�H�Tl��)2rOj?G Z�����pի��|O��zap��a��mGhl_�>�}��UY'~)��l���N�Ub�4�A�$�vm�;No%((7R����^�{��\h���~Zh���3��v�T�d�:�9!�:"TB� �F��I��&!I ��y&����h/��([����m}ϯ���$c�L��u-��~?���tV G��\�k�r�W��u���.�����}���U�~�E�b�gi���\u�c�I�;���t�'W��+q�Мt���;���]|Z�U7����I|&�~�D�pޔu�*f��&�m������ ���Ar58v�xK6����>��&�A���'���9��_��"�DTb�<H)�[)��K\��X�l�܁>���"ɝ�Ñ�4r$��DO�������Z�h6S� NJbH#������܀g��̢ ,<鷬�/�s@ T��׆&u��v�_�(�e��p�o�"A�g�!Eb�*i����NdP��m{mA8�q!�D�賆�%�X����/x���Yjn����sb!��k��{W@��%���_�ў�ى�ukgҔ�$YC��+�.%->uUX�vp�������g�X�%`����6��z�а��a\��[[alA=V.-x��[&��G��<���ɧ���t&�����H�'Ϳ��_��<kQu�{D�aM5+�0y�O������������y +�������dgb�)`�p����Q���Χ��O�k~�NrrTT����9 �Q��.�p6?�(�)v,�5�Y�2¼M�`_��!h�L��P,SGu�>Jcb���E���y8��M;gD ?��و+�K����e�Zt�0�%tȨ$�w�� +1^WN����T���?�R�����|�Y?���xz:q���t,�����sg�0��~[q���M��/Z�舻��/]51ڗ#{���-��2���S���L����:^��PI�/�-��@�3B��B�����o�G��f���ƞ�r�\&M���j=��:c������(�H8K��κ��B���uQ�e����0/��g�rU�]��Lu����jce�lU7��*5�T���C�x{xt(�sV�'���.�=#.p��)M���u� 順��e����z�����'�vs��\n�B�)����ql=̙����M�f-��{0�M 6�7�^��T~�&��N8%��ŏ?�=��#�Ü�F��[QѬkWn�tN1<9{�Z��?���6��Oӵ:�`�F� ̞j�!��f8]���G�NP������[����F��Ň7N)��J +���&���������d��;�:�ό�&8q���H�<���x�o �z +R�[�I��c��C��=�Q��5 +"3��OX24Ր�g�٦��VV��v=�����,�B2�Vr�f��`[s���C,�|��� ��&t��0jb�����N]n���gH�k��Q�.������5N �$�/y�}LJdr�^���Li����A���2���_u�0��O;6f��v��W>Y|��C7��N� ƚg�0��K���2�-_���#x~T��^�N�Ò���u6���$B Z�����xp�B��<��AX�,�������j���:�WzY����M��zK�#��i����Uf�=!���G�be�(nK�����������.��R�d�������c�N�c�����廄�Y��x�m�[ %>Jh� ��K�g���M�Mj�ȁ(m# ~�6n5�^��Q~#�A�����`�}� ����+�bԄ�rĐԣqIģ�����hX��K}3j�)J�4-9�JG����ڦU\)8���Q�K�$?��]s�d�]�g&�9��e�%�`�3���@��O"�Gv��B�e{DIW[-����ٹtv�eǸ�k�l����H(��ɉOb��ۋh�����بD +�Y,f9���r��E���\�ij��D2}��|��q{�~�aU��uu�r(OG�.����~ckY��{�(��4ˬ�u�e$싱Q�'!$`p�L�3�n�p�:͡\I8�v���c�6��&�Qk���=���q4�7߬�t�M��3��xOjVS"=S�{�5[1#��$�=z��kr+CL��q���Iޢ��`��Z��mK]V:�C&5���� ({�<h�C��x�b6�d��a3P4�Œ��V(mg�U���xF~Bt�{�Ml�y:YIl�~�1=��N�C���vC%�ꃺW�*Hz�M����kL�^������nj�;n����u���y$��?b{��$�{�-�e�Z�3-PJ��NRF�8�?����|'�`�O�@g�c���0��MS�5�BL�1-[j[��؉���|�^d�>���V�_(J��k�g�Ϩ���ԥ�i�OrER�+r��>*��=���7�{��o)�~��k��Y��Ė��Y�6�y��T�����5ьt�� +�J<��)LJ�#�רI�l��<��>�Kρn�����ɬ�c��$#����]z!wOu��tk �<�qja!��P��|o�X��9Lp�L����є���F���Y��)����vb&��B��{��u�Q��\<Q�p�^����5�7w�M҃^X�~�:�iq+Bn�� ,�����^]rUI�Z4J?� EŰ�P������|^�8�e��&>�Igc9�&52L�'�^��<oB� �z� +�߫�3]��H�z�����g�� hͲ9ˢ`xN�#*�{������T���g�P��<l+3�i���|�6k.��(�`0��a�Cw���4��b�˷`��ʓ��z����K�yݘ��͕�E�VD��nZm�g��7�&Y�&k�|[��<Y|��t���|C��m_$��ቕ�(�[���z�>�W��B +�4����y>JWz]��nI +hz�J��s9���#����q�۩[��Ɏ����o�dn#{��iM��V�bai�YX����M��.�,嗵��IV�)y4$�Ce�v��m0`�%���:�BX�b���ӱ� @R,�;�&@ ڀ.cގ1̥��F`��u�A�dc�������(��'ib��u8�t������ +endstream +endobj +8935 0 obj +<< +/Type /FontDescriptor +/FontName /QZERKW+NimbusSanL-Regu +/Flags 4 +/FontBBox [-174 -285 1001 953] +/Ascent 712 +/CapHeight 712 +/Descent -213 +/ItalicAngle 0 +/StemV 85 +/XHeight 523 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/adieresis/ampersand/b/backslash/braceleft/braceright/bracketleft/bracketright/bullet/c/colon/comma/d/dollar/e/eight/endash/equal/exclam/f/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/numbersign/o/one/p/parenleft/parenright/period/plus/q/quotedbl/quotesingle/r/s/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 8934 0 R +>> +endobj +8936 0 obj +<< +/Length1 1177 +/Length2 9850 +/Length3 0 +/Length 10627 +/Filter /FlateDecode +>> +stream +x�m�eT]K�5��{Ѝ��]�����6���w������ �^N�۷����Ǫ���5FQ���3���M��`{&6fV~�����Y������U����Np� QSk�\l��h�NJ8M\@`{I�w +W���������������f���!؉���{T�.@'[��;% 6s�ڻ��:8��j@g���Й`�^�?gH�<�@�V.�:M5���A��������f��@g��=��}��;���=����^��_�*&R� ����Y��8�8X���1fgf{����b���%�vpF�k~� '��{c�,�4C{����?R {��g����irt�I���;�����beg�c��@3+��Rkx:��E���؛�z;��&��@_������l��8�}������!���Af.�S�����'�;��{�h�����2���X���we�~��`{[���+��,*�r�j�����Z�����2�����y9ll�}�qq�wT��T��g9{0����ߧ��܀N����K��7��d��G0�\��Zy��������r��Ү�������w|�տ���k �����������P����'��G�������A�� �� +����o���kڛ��*U�Π�.��qV 3{����E���+����do Pwy������f�NN�s��I���{oz/���!�.��B��B:kĈܙ�8��5��\�8�bl!�����lʈ8�~�&gI��[ ׇV���J$��n�'�����%Ax�\/�ďr�@7s��OM��s*�9${I^q�K-,1����'y�;>qT�#"�(�BT>Y�ȇ�'觲���*?��h�$�uPx +�|w��oZy=���N,�ťqT.��0$��+S"�2���n�?V� +�]�=�E���Ƿ,ȯ;��(p��$�(hӁ\��V����:g�FQxW����V�SDny�e�R�~����[l�`_�\[�ZF����/��%����a(��ğ檕������nPTm��նl>�9���vc+��ҍ�/�A� �p +��x"�$X� +T B�)R�t�3��2(q��͉��7#ٷ?�A�C�"���*�d���Sa�J��"��e�F��Y�Guy�ss��������4��D��&�GJ�o]'T|�yN!$|%�iN4Q!�ǐ����1� √PoQ�Ko�e�+*�ߔ��n|w�x3���6jP����)�VK�x�&�0�m�� +��eW \���Q[ܥ�����c�0U��o��C��j�'1\�0�ML�M��G�ND(|��ie����=�2.��1TR?��h�7���*�-nW���9��)D*@�'�+��Gh��=�n +MK ���\!eR�cb��V���|>į�_M`�fƄct�^o�"���͊35I���pIB"u,�+�(@~��Y�w���$�i��U�����n�0^ꨪ�z��k�U��.p;r�1"��T���G.N �ȒM9v�kc�\��JA�^B;��fv�)E��_4�OW�r�`5���"�'Z������,4C��`��o�E���%3�IW�^���n�k��B@Qu���L�'Y�_8��1��'KR5��g��L�!�v�k +��ˌ��g�����uW����~H�������<�E�%��1tQ���j�$���5�_�Kb��|�ⶩc�[A��Ѧq��wx���1D����'����^�u��|Xف8M6��\���\����㉰1uL�ie8��p��r�õ�nHv.ޜ��ɟG����h:u�t� �UV����g�t�5�'״f=,��% +1�PX��4)vA +պܗX�x�A6t��й�E������۔ow�w~�^7dYr�B=���'#�6�6���7��uӣ?���O�!�hS��j�����`o���Jd��eE8�w�Ʊ��p`2V�E���;���HK\>�)�?��f��6X�ʻ(��)�ϭ W�_����=�$����9T1�z�d+��~ �C��ߎ!��hHD����Q��x��pu]��5��[ ������Z�%���/���ڛ<��G �cJ���-�� 2vYtG6�,�����'K��+�U�`�t'>��.6�x��W����]����z9�8�7��rҖ�>��0|�AGtL?��}8�n^J{A��L0�L^�=�z�\rFb�Ҷx"����B���/[V�����÷=�rJ�d�0��� �IC���8O(?hc~x�R�d~D�OV�� +7���&�o�*/��zݾ�0M|��T�J�ɡ,,ij�\�Eɟf�B����;^��Y�ݻ;�*n9s�=m2 ����h灦+��L/���:o�l����g��@(�Ӎ�r#_ ��i"����I�y~��� ^�>qD�h��p��-l�V�����'^����l�51 M�)�+B�7P��z�ODAª��e�3�`�8�T̜��DO �%ST1R�� ��I����6��+��t��jŭ��jX�'���mU{�z}������Y��u�b��<�ʹ��C��3�R�9��^��@fB5���n�Fɋ$r�&�;�di.�������� +~b�E�O�0w,ח�q�ֹ�i�ղ��p�3���M?k��3���܂��/l�����ud�+N!�ɘp1`���]��Mom�ǫp8��EezV|�H�ɮ8��ȡ�@r��x�.�A�yC�(:�<�4gL��q!�45Uwt�6{ͧ��zl��+B�jCA���,���n�-q��K�Jf�d�W^fX���1���C��[2l��c������5�u�Xi��C�zN���a���؎0!v���'��eg�f/�7@maz~��@L��/C�+ʿ<���s�_�V��)g>��P�6& ��L�9��<�`S[l��wu�"<Q��%u� ��'�&E�֥vya~�70�kZIM�+�����B'�>�)��J�,D;��8������ċ�!3_ϗ�7���NQ���l#�;Xt45\��U��=ԨD�ok3q,�Z �z��'2�vA2�+_�{D~�Gd�4��n���ֆx��6z��pa�q6��,�L;P�Y�i�X=�e_m����uQ1;�<FӉ� _Db�"�3[�9�/z�+~aF�O��3 a"`����!&E�c��N�F���h 5��2���� +q+�b�d��#D +ղ�b�K�>�������Ⱦ ���D�o�϶)� �(Â������<�2�����U���?�6¯z1��y�&�g������/�LvMj�N��\ے�Ɣ���������|��9I�,��\Nd/�O�v5B���b'��s��V�î��bs*�W�>N#����wd� T$�~���/��<R�Dpl�uI�Q|��g���<e�U�b�!�X�`�^���ݠ���/t=\��F��Fc����d�5\k-sJ���t�m�,zV��l1}%v"q�ӫ 1�yF��I� +PY4)�i�LJ٢��L��]ލo類C��� ҦϹ��Cxu<�ˋ�ސIcG�����N�!���뙟(c���#潲w�>u<�J"�B@��-�3��M��X0!��jX�����M��I(�9����0��*���ɛ��O���)���ˑ5�'*ů�����1Q�V~{>7C}2�6�+�.嬧z�>?|lF]?�y�}k�a�ƱJ�w� mI��1�2nE*�:�;� ��w5wf�liì��b�o��U�m��tS�N�|�|C�"<#mغ8�S���'o���S\��kH�B���S�B�וk� 1������]�2oO_����Zos\��@�71�1���7�%.2f�B +Ig��d�^8��̃��;��s�ե�_ 0�/R�]��&L�Y:����MV},��RD����f��9�*o+���E!sP@.� +�et#�e�U��Y��(� �Bu��n��?��0.��� �����ϐ��P��3<CAG�����:ˠ�Xh�lL�V(ԘT����(/yՔ�n��k;ї�na��1�*D$������E#�'�j6隰�KU��P���F��ĉ� ��-70ܬc�rG�8S?��Y.] +ޡ8���S=U� M]��}�)w�A�l��j�s�|FZL�� +��nW薒��y�H�3E����hȼ��"I�>���, !���A��C�`�}��66��jL�|�ʏ�tcELh��o�{�r�$����wD3��v��I{L���8B�7A*��� +6b�y�^b�u����� ���Tr`��-�����KM��8_�ӎ��;���3h.���(k��<ChȺ�Xx7�&|�R�:������e=�J��X�^��j��[w�p��鸒 biU&�5���[G�����Lj���ai:�G)����vN��(������\a>3��?��TM�-A2�-H9`(8s�¶cY#un0�(�m���~�X]��_��vܩ��wA!��0$�7>y�Ŵ�6� +� r +�ϡ"q ��JO<c����h�H�_+v�o��s}�ȓ��J�Z. +����`��c6y��8b5,x�8CE�����2�s�u|�f�~qi��\6���2X�N�Z{�"s>䌥��۾7Y/n)������(F�m�/Q�aį�E��h����mV�1�),��F�5�k��wY�x���E��ʰ�k&}�=��y�"75�17j̬�"�|�����$��"~U�υc�Y;��|ṤH�U$Xj{��I�yowt%�.D�l�������0&�| 0Ն&vx���!�V�����t���MN���qxDC�:�^��!mH��V������g?��N9cI~�q2�hZ4k�����J*e(^�`p��=��נe#D�`\�)ۈ����D�U���~G��=�J����YI�9�B�Aެ@���G��&����b5�ՎU���*!���c�p�u��5��E�u.��P���3���+����e�@�����&I�7A�s���ŠI۵ �S���c,I�e�� �7C�@wNQ�z�CY�7\�Ml���22�?�{����М`��U)��1�Cy#� =l��G�'�>U�Ӻ^�6't߄M���-��P���'�}������Kl��no��稬!b���������H����f>P�������2&�r}�Pt���RJ�y8j�������Y��� �)c (����#6�9�@e> ;�k)'G�{���x�d$�{q�c�&ݨh��a�*�J������nj�nӉY��?�n���,{<�Qr� �bO)���4hҦ�.N�7����ɖ{im�n#eD;$�?&�Ǫ�yB���|iD�b�Ɛ$E"��e�M��N�M��R���v�C̓��Anr��hmA�ʮ��G��'�\�uY�d�p�Z�>�M�������7��S֦�w�3�e"'Qhs��F7��)�c[[�^s��3(��=�;�Z�O��HAuxX�|��Yd��B�`4��t�I�D�+���(<��ƜW�U�zEϊ����I?���Nu�[c�o4O;hwP�-�ʎt�#ǹG�U�� ��W~��Mr�b̷Z[��u����/�W`�<���@��'�CG�Ƀs�Nn�����2Čªhu��=h�1q��GG�ya~K�[�ރ4,����/��!�G?c�~EGP�ӝx��{����l��ߤ yM���{w �_�>�f}mˣ�� O�P|ڞ�O��+×�����P��eq�>a���; �F�9�:"�� G����.���u�� +Mഅ��:#탫�[��\2y���Bc������ͭ�MjMf����)�g���"w�u�AqE�F��R�6�聚���JG�ޗV��V�\�+��`�ջiql��g����H�K_��}�)�V�[v^>,����˂��~�y�xFE0.����ǩ���SL����E�]�jIM,�7���Nf�]DI�Y4�m�C�X�EN@8Y@>�1I��x;�>䬤"��_֊�s|��u^&䏂�;w�u $��1>3Pg�$1���?�Jkm(�o�<��M�1A�G���Ǟ��.��$�M3� _p�� d���0T��o��L7�X��]c�� �n������\�� :�7 +�]��p۩� T�������a��۬���q9F\'�G.����~yc�w�tm��L��s|���,s��' ���j��R��(J�~1��f�\�'C����E�h��}�"ت�4��nh��nQʣ-x�&�k���lTn��י(b�D���n����O +��d��>���)�u�RV�.�U���a-o�k��aQe�p�����j&!31>�E{~�)�������Ͼ��Фی/��a��aI��u]�'��$��1P�}�.]�å0_�$���O�3����^��a��ќNy\�PV�|�9���24ڔm驨�I]������Q���XRaI4aI�@�x;�I{��lH��:jN����|�K2v�`����I�t�� R��Ȗѫ3c_bbv��e�N���N�˫�p����T��`�����=߯���SG~q�e;�vû\*H�3l��mq�`F29C�N��/ �N?��/ZiYX@��I|S>�EL�adu� +�������?���Љ���}(��=�����ߖ��! m���n�Պ!�_�\*4��4� 7�C��@�J\D��F�2Anj��G~կ>@�фD1�Q�/k�h�_9?��߽6�I.�L����wG���0��y%x/5�XF����ƕk�C!P䇋{������BJ�u�ߣ��¼���ÊHy����̟?�3��ٺX�����E�r�U�D�;+�Kb�D����t?ň� +<��T"���^D]��W�=�}{\Q���-3Q�0ި9��LJA���^hQ���97e�:/�=ڒj.�,������_Mw~���O�H?�bQ���n���i��х,]H�, +eO��% +��� ��<f9�WG*%�?�V��x�a_E`��s���R�t�@�_�=�TS�O�d�!�z�0���߲�E�q�b̾�q���U~N2�i�yRAo��ʷ�K�Yt�cg�r&c�M�1�K�RmڎG:2XZ"�-�q]��>�����+[�/�TG��Z6���n�I� [��rgy}��#�v�\�F�tԳL�wa�+�_N0�{����p�={O�MF���Z���^g�Gf�qL-(�ܦ��C������.Z��"A�g�V \i�#��Q�Kۨ��4�A� � +Z�8��)S�}-ϗYcb`��I��d�rj���}���&�bй�sĝ�:�as�SV����}�x�P�����8cAJ��q%�-�v�c��ݯ|AT�U�W�M�K�}p�]avںs�zv��婍�eC0�8��$�V3ve +�gv2���e���k�7ha��?�,���,�.���G%�穣<�"������'%������^�w�xh.x˴��)�6�9�'��.F:���k�3|�m��<�,k�T��F�Ju����d͜��#�E��5�F z���7't�=����������Ƅ���Ѱ�$K��In!l�|R�YUYby��VwNusnd$#��R�����R���v��k!+���f�ul +��}������;��C�T��bY=��}5�< +�%�����l��kɚQpC��7�5�B��~I?�<ͽ#���+��ŇKK�sE��D���/���C�(�M���즫�H�b�ddƭS�c�x��o:���u*�Q4����]h�2Y[&{/���rz��I�ۥU��oᮾo��W��V��LY������`��z#�y���`E��}���<���U���-- +�j��!�'�\EE�7�Dbh?�"<l/�ϯmߞ��Q �֮/��z�~?<���l�|�TR�4� HNJ)Ly���sD��\#�-�O�%@�%N:���8�Y���"a|�2Q��H�2�����Q�������P��Y�O�ݤ]�D^Q|�P����;�;� O8h$�G~�'����x��)����8�ZKh��12g��B:��͢�$��ަ�g�C)�S���B�ŗ�k��P�7$w@�os=����h:?�L�哌1ܙ \��[\;:ڑ� ��K���'ǎ���IX!C�)ץx\�|�@G%Z�$u�3/-��t��!�fk>�a��:�i��`���v�V��k�㚸��c�6��2�r<�%'��U�@�qP���8s'_��b�����ζ�މ�"u���Q|vkf�ܴ%m�ؗ�_��MSŽ|ʭ�����x��n���X�Y%���>e����z~Wu,� zÖe���q�����SJIZ�aK��Q� +�p~4��bz�;�Qܹ�����b����B(�_8���j����GK�L}RA��(���]���@� �`�˯v�{��Md ��j3z���r���9ظkş><�4�v@ː�AM1�J���U�GWϩ�V���ʬ<��'uQ:�[��A��~2ב �]_�C�o,���������Y2��U�q�R�Ñ�����*�E�M����fѧ�n�Zө���2��8?��,Ip@n�\_fran�84*^��bqݬ�������;Lo����|mEP����Æ�2N�ɳ��8�V@�֚������8K��G�16ѨKi��IM�"/k�o��-n��)����N��x����N����4P��]ʹu4%�ܴ��Þ�()S���ʞ��2�?F�Oh�k_x�5Nz�Rг����k=_*�N��y���Čo�U4�Y���-�Fz�yUv�?��}>�����Jn+����v�Gټ�@]O�=����y M�*\ +�H��b��2SY��;�� ++�b)�Չ�����S��������iY�lB +���M��Q[Ջ�^�Q&FE���w��P!o���+��F4�i�Oܘo���K��4��7o���~KW�dJ���V蒘ͥ��LN8�����������o��(�g#,Lz���D˗�̿���\�l�. X\s�>|6V�������{yeoY��nv�ٓŤ�Ҩs�Y��N�G��ͭ4(�|�[V��� �șT��ZoZ'�c�*�.DT|ݒ��� ����i)���~�<e@hڌ�Zlܧ!��}U���"�JIkV~���/<����������?���C�dd{x��:������ƀ�X}����*�)Q�����_9p֙Gt��j���1��+淑���S���ɠ��W�v7u�p��]V0���j��k��Q�S�u�}����±&D6'�z���m:I4�C��mB�JMgU4����d�P"yd�����s��l�g�8vXxAy7S�1�>'?]��$5ذjqRVz�����ؖC#�8�0zM2v�"�����/�+Nv�4�w��,"W���Z +��|帞���� zP�fF�����Ն}�2�B��dm�F[.�����2��23(ED��<�6&X(H��$�j�q��OF�߉Uϡ��{�e�۲]lI�:��h���p`p�iHg�lܙWUܥ�_�~���\�� $�SX�����08��(�&����]��6���,���e 0+EV,@���I?�o���Q� ��M�;�r#a��;4��05�Vo��v��Wӎ�(�++�:u�O���뎶���ʣ��G�7:j�Zr����p��͞XȥY(�x���MN�4��ԡ�o2$�oTb��ް�W�����eR9� ��iÃY��t�����e�m�Vד*y{7���>����c�ff2��S�_�q|�����v�Ze^���H��w�zѥ��͜s}�7�4t�� �Ҋ�?hT�m��Janծ �û�HG�(�p���=��I�u(�5V��j��Ю��}�mz���T��:��4-� +fm������+��į�R+�����sy����c��,�69�BM<���{���l��٢� ��8q�f��u�O�ؕR�����{:��xN��o�Y���&7�X�xP�"�v�ͫ����y����AM.�T�ux�_�G���=�[$&�A���0�'7C��J��������Kv�A0KVM/�g��p�'�o/`�`��2����.T:�lH�\��`���%y���9\Sh��b�҄�'���*���\�PQo1)���\��w�9�·�����y��]�*��.��q� o��jM��G������n�m��L۩��o5�hğ��=�<tw��t��aX�b�Bʡ��-3�Sddͨ�qY�M�)� ��N�Y��qa����<���)R"�� _Vr4P�{�K/MD ���Ryfı���/*�+>RF�~i,�h_u����RceͱܧCn��㠧���u��Pk�W3���8~[��5&u��8AnI�2�OC��1�C��|`n;UWH��*"��h�E��p����+�e�rJA0�δx���'�� +endstream +endobj +8937 0 obj +<< +/Type /FontDescriptor +/FontName /POIMRJ+NimbusSanL-ReguItal +/Flags 4 +/FontBBox [-178 -284 1108 953] +/Ascent 712 +/CapHeight 712 +/Descent -213 +/ItalicAngle -12 +/StemV 88 +/XHeight 523 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/f/fi/five/fl/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/plus/q/quotesingle/r/s/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 8936 0 R +>> +endobj +8876 0 obj +<< +/Type /Encoding +/Differences [2/fi/fl 31/quotesingle 33/exclam/quotedbl/numbersign/dollar 38/ampersand 40/parenleft/parenright 43/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright 95/underscore 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft 125/braceright 149/bullet/endash 228/adieresis] +>> +endobj +4058 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /LZNXLT+CMEX10 +/FontDescriptor 8893 0 R +/FirstChar 0 +/LastChar 55 +/Widths 8882 0 R +>> +endobj +4468 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /OOJNEE+CMEX9 +/FontDescriptor 8895 0 R +/FirstChar 0 +/LastChar 1 +/Widths 8880 0 R +>> +endobj +3889 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /GGVJPX+CMMI10 +/FontDescriptor 8897 0 R +/FirstChar 12 +/LastChar 126 +/Widths 8884 0 R +>> +endobj +7423 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /RAFNRP+CMMI5 +/FontDescriptor 8899 0 R +/FirstChar 110 +/LastChar 110 +/Widths 8869 0 R +>> +endobj +4469 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /SHOIGG+CMMI6 +/FontDescriptor 8901 0 R +/FirstChar 84 +/LastChar 110 +/Widths 8879 0 R +>> +endobj +3833 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /XRPSBE+CMMI7 +/FontDescriptor 8903 0 R +/FirstChar 22 +/LastChar 120 +/Widths 8886 0 R +>> +endobj +4470 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /DHMHKZ+CMMI9 +/FontDescriptor 8905 0 R +/FirstChar 22 +/LastChar 126 +/Widths 8878 0 R +>> +endobj +5024 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /QAATYZ+CMR10 +/FontDescriptor 8907 0 R +/FirstChar 40 +/LastChar 120 +/Widths 8872 0 R +>> +endobj +7412 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /RHUHOI+CMR5 +/FontDescriptor 8909 0 R +/FirstChar 49 +/LastChar 50 +/Widths 8870 0 R +>> +endobj +5020 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /RENBRO+CMR6 +/FontDescriptor 8911 0 R +/FirstChar 40 +/LastChar 51 +/Widths 8874 0 R +>> +endobj +5023 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /EXGHEL+CMR7 +/FontDescriptor 8913 0 R +/FirstChar 40 +/LastChar 56 +/Widths 8873 0 R +>> +endobj +5409 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /AZYKUS+CMR9 +/FontDescriptor 8915 0 R +/FirstChar 41 +/LastChar 61 +/Widths 8871 0 R +>> +endobj +3888 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /ZEHPCH+CMSY10 +/FontDescriptor 8917 0 R +/FirstChar 0 +/LastChar 112 +/Widths 8885 0 R +>> +endobj +8262 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /DJYPXZ+CMSY6 +/FontDescriptor 8919 0 R +/FirstChar 94 +/LastChar 94 +/Widths 8868 0 R +>> +endobj +3832 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /OAJWTE+CMSY7 +/FontDescriptor 8921 0 R +/FirstChar 32 +/LastChar 110 +/Widths 8887 0 R +>> +endobj +4575 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /FRNIHB+CMSY8 +/FontDescriptor 8923 0 R +/FirstChar 3 +/LastChar 3 +/Widths 8875 0 R +>> +endobj +4395 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /OPEKTB+CMSY9 +/FontDescriptor 8925 0 R +/FirstChar 2 +/LastChar 2 +/Widths 8881 0 R +>> +endobj +3831 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /MIZFWS+NimbusMonL-Regu +/FontDescriptor 8927 0 R +/FirstChar 33 +/LastChar 125 +/Widths 8888 0 R +/Encoding 8876 0 R +>> +endobj +4494 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /MRUQMW+NimbusMonL-ReguObli +/FontDescriptor 8929 0 R +/FirstChar 44 +/LastChar 122 +/Widths 8877 0 R +/Encoding 8876 0 R +>> +endobj +2725 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /EBCVQL+NimbusSanL-Bold +/FontDescriptor 8931 0 R +/FirstChar 2 +/LastChar 122 +/Widths 8890 0 R +/Encoding 8876 0 R +>> +endobj +3827 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /EYGBJT+NimbusSanL-BoldCond +/FontDescriptor 8933 0 R +/FirstChar 48 +/LastChar 120 +/Widths 8889 0 R +/Encoding 8876 0 R +>> +endobj +2678 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /QZERKW+NimbusSanL-Regu +/FontDescriptor 8935 0 R +/FirstChar 2 +/LastChar 228 +/Widths 8891 0 R +/Encoding 8876 0 R +>> +endobj +3918 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /POIMRJ+NimbusSanL-ReguItal +/FontDescriptor 8937 0 R +/FirstChar 2 +/LastChar 150 +/Widths 8883 0 R +/Encoding 8876 0 R +>> +endobj +2679 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8938 0 R +/Kids [2674 0 R 2681 0 R 2723 0 R 2769 0 R 2814 0 R 2859 0 R] +>> +endobj +2906 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8938 0 R +/Kids [2904 0 R 2950 0 R 2995 0 R 3040 0 R 3085 0 R 3130 0 R] +>> +endobj +3177 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8938 0 R +/Kids [3175 0 R 3221 0 R 3266 0 R 3311 0 R 3356 0 R 3401 0 R] +>> +endobj +3406 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8938 0 R +/Kids [3404 0 R 3408 0 R 3824 0 R 3839 0 R 3857 0 R 3873 0 R] +>> +endobj +3894 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8938 0 R +/Kids [3884 0 R 3900 0 R 3908 0 R 3915 0 R 3927 0 R 3942 0 R] +>> +endobj +3973 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8938 0 R +/Kids [3961 0 R 3976 0 R 3996 0 R 4000 0 R 4006 0 R 4011 0 R] +>> +endobj +4059 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8939 0 R +/Kids [4055 0 R 4135 0 R 4219 0 R 4291 0 R 4318 0 R 4326 0 R] +>> +endobj +4353 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8939 0 R +/Kids [4348 0 R 4360 0 R 4371 0 R 4381 0 R 4391 0 R 4399 0 R] +>> +endobj +4412 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8939 0 R +/Kids [4408 0 R 4417 0 R 4425 0 R 4432 0 R 4440 0 R 4446 0 R] +>> +endobj +4458 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8939 0 R +/Kids [4454 0 R 4464 0 R 4475 0 R 4482 0 R 4489 0 R 4506 0 R] +>> +endobj +4528 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8939 0 R +/Kids [4521 0 R 4554 0 R 4572 0 R 4589 0 R 4614 0 R 4630 0 R] +>> +endobj +4650 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8939 0 R +/Kids [4646 0 R 4662 0 R 4679 0 R 4699 0 R 4716 0 R 4744 0 R] +>> +endobj +4763 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8940 0 R +/Kids [4758 0 R 4788 0 R 4804 0 R 4819 0 R 4834 0 R 4848 0 R] +>> +endobj +4872 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8940 0 R +/Kids [4866 0 R 4882 0 R 4893 0 R 4907 0 R 4921 0 R 4944 0 R] +>> +endobj +4955 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8940 0 R +/Kids [4952 0 R 4970 0 R 4987 0 R 5016 0 R 5035 0 R 5043 0 R] +>> +endobj +5057 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8940 0 R +/Kids [5052 0 R 5066 0 R 5081 0 R 5119 0 R 5138 0 R 5156 0 R] +>> +endobj +5169 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8940 0 R +/Kids [5164 0 R 5201 0 R 5211 0 R 5256 0 R 5262 0 R 5306 0 R] +>> +endobj +5364 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8940 0 R +/Kids [5360 0 R 5405 0 R 5437 0 R 5451 0 R 5459 0 R 5528 0 R] +>> +endobj +5565 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8941 0 R +/Kids [5561 0 R 5589 0 R 5603 0 R 5610 0 R 5623 0 R 5634 0 R] +>> +endobj +5649 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8941 0 R +/Kids [5645 0 R 5662 0 R 5675 0 R 5692 0 R 5721 0 R 5735 0 R] +>> +endobj +5753 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8941 0 R +/Kids [5749 0 R 5787 0 R 5806 0 R 5825 0 R 5870 0 R 5889 0 R] +>> +endobj +5908 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8941 0 R +/Kids [5903 0 R 5910 0 R 5923 0 R 5964 0 R 6005 0 R 6024 0 R] +>> +endobj +6043 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8941 0 R +/Kids [6039 0 R 6054 0 R 6066 0 R 6099 0 R 6179 0 R 6251 0 R] +>> +endobj +6279 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8941 0 R +/Kids [6274 0 R 6285 0 R 6294 0 R 6301 0 R 6310 0 R 6320 0 R] +>> +endobj +6334 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8942 0 R +/Kids [6329 0 R 6340 0 R 6350 0 R 6360 0 R 6368 0 R 6378 0 R] +>> +endobj +6391 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8942 0 R +/Kids [6386 0 R 6399 0 R 6412 0 R 6423 0 R 6432 0 R 6441 0 R] +>> +endobj +6453 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8942 0 R +/Kids [6449 0 R 6458 0 R 6469 0 R 6478 0 R 6489 0 R 6500 0 R] +>> +endobj +6535 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8942 0 R +/Kids [6528 0 R 6608 0 R 6683 0 R 6711 0 R 6718 0 R 6729 0 R] +>> +endobj +6741 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8942 0 R +/Kids [6736 0 R 6747 0 R 6757 0 R 6766 0 R 6775 0 R 6785 0 R] +>> +endobj +6800 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8942 0 R +/Kids [6795 0 R 6805 0 R 6815 0 R 6824 0 R 6833 0 R 6844 0 R] +>> +endobj +6862 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8943 0 R +/Kids [6857 0 R 6866 0 R 6875 0 R 6883 0 R 6891 0 R 6899 0 R] +>> +endobj +6915 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8943 0 R +/Kids [6910 0 R 6920 0 R 6931 0 R 6942 0 R 6954 0 R 6980 0 R] +>> +endobj +7001 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8943 0 R +/Kids [6998 0 R 7026 0 R 7033 0 R 7047 0 R 7060 0 R 7068 0 R] +>> +endobj +7100 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8943 0 R +/Kids [7088 0 R 7104 0 R 7116 0 R 7151 0 R 7167 0 R 7174 0 R] +>> +endobj +7189 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8943 0 R +/Kids [7184 0 R 7191 0 R 7199 0 R 7232 0 R 7248 0 R 7255 0 R] +>> +endobj +7270 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8943 0 R +/Kids [7265 0 R 7272 0 R 7280 0 R 7300 0 R 7320 0 R 7328 0 R] +>> +endobj +7342 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8944 0 R +/Kids [7335 0 R 7348 0 R 7358 0 R 7391 0 R 7409 0 R 7420 0 R] +>> +endobj +7440 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8944 0 R +/Kids [7435 0 R 7447 0 R 7453 0 R 7468 0 R 7490 0 R 7500 0 R] +>> +endobj +7530 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8944 0 R +/Kids [7524 0 R 7547 0 R 7565 0 R 7580 0 R 7591 0 R 7606 0 R] +>> +endobj +7621 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8944 0 R +/Kids [7617 0 R 7629 0 R 7639 0 R 7649 0 R 7664 0 R 7676 0 R] +>> +endobj +7696 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8944 0 R +/Kids [7690 0 R 7702 0 R 7715 0 R 7725 0 R 7753 0 R 7765 0 R] +>> +endobj +7781 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8944 0 R +/Kids [7777 0 R 7805 0 R 7818 0 R 7829 0 R 7838 0 R 7858 0 R] +>> +endobj +7886 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8945 0 R +/Kids [7882 0 R 7895 0 R 7903 0 R 7910 0 R 7932 0 R 7956 0 R] +>> +endobj +7973 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8945 0 R +/Kids [7969 0 R 7978 0 R 7985 0 R 7996 0 R 8041 0 R 8065 0 R] +>> +endobj +8082 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8945 0 R +/Kids [8078 0 R 8092 0 R 8102 0 R 8113 0 R 8128 0 R 8174 0 R] +>> +endobj +8196 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8945 0 R +/Kids [8192 0 R 8203 0 R 8212 0 R 8224 0 R 8236 0 R 8257 0 R] +>> +endobj +8282 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8945 0 R +/Kids [8278 0 R 8285 0 R 8293 0 R 8299 0 R 8306 0 R 8328 0 R] +>> +endobj +8352 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8945 0 R +/Kids [8346 0 R 8358 0 R 8366 0 R 8372 0 R 8378 0 R 8385 0 R] +>> +endobj +8406 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8946 0 R +/Kids [8399 0 R 8472 0 R 8504 0 R 8520 0 R 8531 0 R 8539 0 R] +>> +endobj +8556 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8946 0 R +/Kids [8551 0 R 8564 0 R 8574 0 R 8584 0 R 8594 0 R 8605 0 R] +>> +endobj +8622 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8946 0 R +/Kids [8617 0 R 8625 0 R 8703 0 R 8735 0 R 8746 0 R 8757 0 R] +>> +endobj +8772 0 obj +<< +/Type /Pages +/Count 6 +/Parent 8946 0 R +/Kids [8767 0 R 8778 0 R 8790 0 R 8800 0 R 8810 0 R 8820 0 R] +>> +endobj +8837 0 obj +<< +/Type /Pages +/Count 4 +/Parent 8946 0 R +/Kids [8831 0 R 8844 0 R 8850 0 R 8862 0 R] +>> +endobj +8938 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8947 0 R +/Kids [2679 0 R 2906 0 R 3177 0 R 3406 0 R 3894 0 R 3973 0 R] +>> +endobj +8939 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8947 0 R +/Kids [4059 0 R 4353 0 R 4412 0 R 4458 0 R 4528 0 R 4650 0 R] +>> +endobj +8940 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8947 0 R +/Kids [4763 0 R 4872 0 R 4955 0 R 5057 0 R 5169 0 R 5364 0 R] +>> +endobj +8941 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8947 0 R +/Kids [5565 0 R 5649 0 R 5753 0 R 5908 0 R 6043 0 R 6279 0 R] +>> +endobj +8942 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8947 0 R +/Kids [6334 0 R 6391 0 R 6453 0 R 6535 0 R 6741 0 R 6800 0 R] +>> +endobj +8943 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8947 0 R +/Kids [6862 0 R 6915 0 R 7001 0 R 7100 0 R 7189 0 R 7270 0 R] +>> +endobj +8944 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8948 0 R +/Kids [7342 0 R 7440 0 R 7530 0 R 7621 0 R 7696 0 R 7781 0 R] +>> +endobj +8945 0 obj +<< +/Type /Pages +/Count 36 +/Parent 8948 0 R +/Kids [7886 0 R 7973 0 R 8082 0 R 8196 0 R 8282 0 R 8352 0 R] +>> +endobj +8946 0 obj +<< +/Type /Pages +/Count 28 +/Parent 8948 0 R +/Kids [8406 0 R 8556 0 R 8622 0 R 8772 0 R 8837 0 R] +>> +endobj +8947 0 obj +<< +/Type /Pages +/Count 216 +/Parent 8949 0 R +/Kids [8938 0 R 8939 0 R 8940 0 R 8941 0 R 8942 0 R 8943 0 R] +>> +endobj +8948 0 obj +<< +/Type /Pages +/Count 100 +/Parent 8949 0 R +/Kids [8944 0 R 8945 0 R 8946 0 R] +>> +endobj +8949 0 obj +<< +/Type /Pages +/Count 316 +/Kids [8947 0 R 8948 0 R] +>> +endobj +8950 0 obj +<< +/Type /Outlines +/First 3 0 R +/Last 287 0 R +/Count 10 +>> +endobj +2671 0 obj +<< +/Title 2672 0 R +/A 2669 0 R +/Parent 2667 0 R +>> +endobj +2667 0 obj +<< +/Title 2668 0 R +/A 2665 0 R +/Parent 287 0 R +/Prev 2659 0 R +/First 2671 0 R +/Last 2671 0 R +/Count -1 +>> +endobj +2663 0 obj +<< +/Title 2664 0 R +/A 2661 0 R +/Parent 2659 0 R +>> +endobj +2659 0 obj +<< +/Title 2660 0 R +/A 2657 0 R +/Parent 287 0 R +/Prev 2551 0 R +/Next 2667 0 R +/First 2663 0 R +/Last 2663 0 R +/Count -1 +>> +endobj +2655 0 obj +<< +/Title 2656 0 R +/A 2653 0 R +/Parent 2559 0 R +/Prev 2651 0 R +>> +endobj +2651 0 obj +<< +/Title 2652 0 R +/A 2649 0 R +/Parent 2559 0 R +/Prev 2647 0 R +/Next 2655 0 R +>> +endobj +2647 0 obj +<< +/Title 2648 0 R +/A 2645 0 R +/Parent 2559 0 R +/Prev 2643 0 R +/Next 2651 0 R +>> +endobj +2643 0 obj +<< +/Title 2644 0 R +/A 2641 0 R +/Parent 2559 0 R +/Prev 2639 0 R +/Next 2647 0 R +>> +endobj +2639 0 obj +<< +/Title 2640 0 R +/A 2637 0 R +/Parent 2559 0 R +/Prev 2635 0 R +/Next 2643 0 R +>> +endobj +2635 0 obj +<< +/Title 2636 0 R +/A 2633 0 R +/Parent 2559 0 R +/Prev 2631 0 R +/Next 2639 0 R +>> +endobj +2631 0 obj +<< +/Title 2632 0 R +/A 2629 0 R +/Parent 2559 0 R +/Prev 2627 0 R +/Next 2635 0 R +>> +endobj +2627 0 obj +<< +/Title 2628 0 R +/A 2625 0 R +/Parent 2559 0 R +/Prev 2623 0 R +/Next 2631 0 R +>> +endobj +2623 0 obj +<< +/Title 2624 0 R +/A 2621 0 R +/Parent 2559 0 R +/Prev 2619 0 R +/Next 2627 0 R +>> +endobj +2619 0 obj +<< +/Title 2620 0 R +/A 2617 0 R +/Parent 2559 0 R +/Prev 2615 0 R +/Next 2623 0 R +>> +endobj +2615 0 obj +<< +/Title 2616 0 R +/A 2613 0 R +/Parent 2559 0 R +/Prev 2611 0 R +/Next 2619 0 R +>> +endobj +2611 0 obj +<< +/Title 2612 0 R +/A 2609 0 R +/Parent 2559 0 R +/Prev 2607 0 R +/Next 2615 0 R +>> +endobj +2607 0 obj +<< +/Title 2608 0 R +/A 2605 0 R +/Parent 2559 0 R +/Prev 2603 0 R +/Next 2611 0 R +>> +endobj +2603 0 obj +<< +/Title 2604 0 R +/A 2601 0 R +/Parent 2559 0 R +/Prev 2599 0 R +/Next 2607 0 R +>> +endobj +2599 0 obj +<< +/Title 2600 0 R +/A 2597 0 R +/Parent 2559 0 R +/Prev 2595 0 R +/Next 2603 0 R +>> +endobj +2595 0 obj +<< +/Title 2596 0 R +/A 2593 0 R +/Parent 2559 0 R +/Prev 2591 0 R +/Next 2599 0 R +>> +endobj +2591 0 obj +<< +/Title 2592 0 R +/A 2589 0 R +/Parent 2559 0 R +/Prev 2587 0 R +/Next 2595 0 R +>> +endobj +2587 0 obj +<< +/Title 2588 0 R +/A 2585 0 R +/Parent 2559 0 R +/Prev 2583 0 R +/Next 2591 0 R +>> +endobj +2583 0 obj +<< +/Title 2584 0 R +/A 2581 0 R +/Parent 2559 0 R +/Prev 2579 0 R +/Next 2587 0 R +>> +endobj +2579 0 obj +<< +/Title 2580 0 R +/A 2577 0 R +/Parent 2559 0 R +/Prev 2575 0 R +/Next 2583 0 R +>> +endobj +2575 0 obj +<< +/Title 2576 0 R +/A 2573 0 R +/Parent 2559 0 R +/Prev 2571 0 R +/Next 2579 0 R +>> +endobj +2571 0 obj +<< +/Title 2572 0 R +/A 2569 0 R +/Parent 2559 0 R +/Prev 2567 0 R +/Next 2575 0 R +>> +endobj +2567 0 obj +<< +/Title 2568 0 R +/A 2565 0 R +/Parent 2559 0 R +/Prev 2563 0 R +/Next 2571 0 R +>> +endobj +2563 0 obj +<< +/Title 2564 0 R +/A 2561 0 R +/Parent 2559 0 R +/Next 2567 0 R +>> +endobj +2559 0 obj +<< +/Title 2560 0 R +/A 2557 0 R +/Parent 2551 0 R +/Prev 2555 0 R +/First 2563 0 R +/Last 2655 0 R +/Count -24 +>> +endobj +2555 0 obj +<< +/Title 2556 0 R +/A 2553 0 R +/Parent 2551 0 R +/Next 2559 0 R +>> +endobj +2551 0 obj +<< +/Title 2552 0 R +/A 2549 0 R +/Parent 287 0 R +/Prev 2443 0 R +/Next 2659 0 R +/First 2555 0 R +/Last 2559 0 R +/Count -2 +>> +endobj +2547 0 obj +<< +/Title 2548 0 R +/A 2545 0 R +/Parent 2451 0 R +/Prev 2543 0 R +>> +endobj +2543 0 obj +<< +/Title 2544 0 R +/A 2541 0 R +/Parent 2451 0 R +/Prev 2539 0 R +/Next 2547 0 R +>> +endobj +2539 0 obj +<< +/Title 2540 0 R +/A 2537 0 R +/Parent 2451 0 R +/Prev 2535 0 R +/Next 2543 0 R +>> +endobj +2535 0 obj +<< +/Title 2536 0 R +/A 2533 0 R +/Parent 2451 0 R +/Prev 2531 0 R +/Next 2539 0 R +>> +endobj +2531 0 obj +<< +/Title 2532 0 R +/A 2529 0 R +/Parent 2451 0 R +/Prev 2527 0 R +/Next 2535 0 R +>> +endobj +2527 0 obj +<< +/Title 2528 0 R +/A 2525 0 R +/Parent 2451 0 R +/Prev 2523 0 R +/Next 2531 0 R +>> +endobj +2523 0 obj +<< +/Title 2524 0 R +/A 2521 0 R +/Parent 2451 0 R +/Prev 2519 0 R +/Next 2527 0 R +>> +endobj +2519 0 obj +<< +/Title 2520 0 R +/A 2517 0 R +/Parent 2451 0 R +/Prev 2515 0 R +/Next 2523 0 R +>> +endobj +2515 0 obj +<< +/Title 2516 0 R +/A 2513 0 R +/Parent 2451 0 R +/Prev 2511 0 R +/Next 2519 0 R +>> +endobj +2511 0 obj +<< +/Title 2512 0 R +/A 2509 0 R +/Parent 2451 0 R +/Prev 2507 0 R +/Next 2515 0 R +>> +endobj +2507 0 obj +<< +/Title 2508 0 R +/A 2505 0 R +/Parent 2451 0 R +/Prev 2503 0 R +/Next 2511 0 R +>> +endobj +2503 0 obj +<< +/Title 2504 0 R +/A 2501 0 R +/Parent 2451 0 R +/Prev 2499 0 R +/Next 2507 0 R +>> +endobj +2499 0 obj +<< +/Title 2500 0 R +/A 2497 0 R +/Parent 2451 0 R +/Prev 2495 0 R +/Next 2503 0 R +>> +endobj +2495 0 obj +<< +/Title 2496 0 R +/A 2493 0 R +/Parent 2451 0 R +/Prev 2491 0 R +/Next 2499 0 R +>> +endobj +2491 0 obj +<< +/Title 2492 0 R +/A 2489 0 R +/Parent 2451 0 R +/Prev 2487 0 R +/Next 2495 0 R +>> +endobj +2487 0 obj +<< +/Title 2488 0 R +/A 2485 0 R +/Parent 2451 0 R +/Prev 2483 0 R +/Next 2491 0 R +>> +endobj +2483 0 obj +<< +/Title 2484 0 R +/A 2481 0 R +/Parent 2451 0 R +/Prev 2479 0 R +/Next 2487 0 R +>> +endobj +2479 0 obj +<< +/Title 2480 0 R +/A 2477 0 R +/Parent 2451 0 R +/Prev 2475 0 R +/Next 2483 0 R +>> +endobj +2475 0 obj +<< +/Title 2476 0 R +/A 2473 0 R +/Parent 2451 0 R +/Prev 2471 0 R +/Next 2479 0 R +>> +endobj +2471 0 obj +<< +/Title 2472 0 R +/A 2469 0 R +/Parent 2451 0 R +/Prev 2467 0 R +/Next 2475 0 R +>> +endobj +2467 0 obj +<< +/Title 2468 0 R +/A 2465 0 R +/Parent 2451 0 R +/Prev 2463 0 R +/Next 2471 0 R +>> +endobj +2463 0 obj +<< +/Title 2464 0 R +/A 2461 0 R +/Parent 2451 0 R +/Prev 2459 0 R +/Next 2467 0 R +>> +endobj +2459 0 obj +<< +/Title 2460 0 R +/A 2457 0 R +/Parent 2451 0 R +/Prev 2455 0 R +/Next 2463 0 R +>> +endobj +2455 0 obj +<< +/Title 2456 0 R +/A 2453 0 R +/Parent 2451 0 R +/Next 2459 0 R +>> +endobj +2451 0 obj +<< +/Title 2452 0 R +/A 2449 0 R +/Parent 2443 0 R +/Prev 2447 0 R +/First 2455 0 R +/Last 2547 0 R +/Count -24 +>> +endobj +2447 0 obj +<< +/Title 2448 0 R +/A 2445 0 R +/Parent 2443 0 R +/Next 2451 0 R +>> +endobj +2443 0 obj +<< +/Title 2444 0 R +/A 2441 0 R +/Parent 287 0 R +/Prev 2435 0 R +/Next 2551 0 R +/First 2447 0 R +/Last 2451 0 R +/Count -2 +>> +endobj +2439 0 obj +<< +/Title 2440 0 R +/A 2437 0 R +/Parent 2435 0 R +>> +endobj +2435 0 obj +<< +/Title 2436 0 R +/A 2433 0 R +/Parent 287 0 R +/Prev 2427 0 R +/Next 2443 0 R +/First 2439 0 R +/Last 2439 0 R +/Count -1 +>> +endobj +2431 0 obj +<< +/Title 2432 0 R +/A 2429 0 R +/Parent 2427 0 R +>> +endobj +2427 0 obj +<< +/Title 2428 0 R +/A 2425 0 R +/Parent 287 0 R +/Prev 2367 0 R +/Next 2435 0 R +/First 2431 0 R +/Last 2431 0 R +/Count -1 +>> +endobj +2423 0 obj +<< +/Title 2424 0 R +/A 2421 0 R +/Parent 2375 0 R +/Prev 2419 0 R +>> +endobj +2419 0 obj +<< +/Title 2420 0 R +/A 2417 0 R +/Parent 2375 0 R +/Prev 2415 0 R +/Next 2423 0 R +>> +endobj +2415 0 obj +<< +/Title 2416 0 R +/A 2413 0 R +/Parent 2375 0 R +/Prev 2411 0 R +/Next 2419 0 R +>> +endobj +2411 0 obj +<< +/Title 2412 0 R +/A 2409 0 R +/Parent 2375 0 R +/Prev 2407 0 R +/Next 2415 0 R +>> +endobj +2407 0 obj +<< +/Title 2408 0 R +/A 2405 0 R +/Parent 2375 0 R +/Prev 2403 0 R +/Next 2411 0 R +>> +endobj +2403 0 obj +<< +/Title 2404 0 R +/A 2401 0 R +/Parent 2375 0 R +/Prev 2399 0 R +/Next 2407 0 R +>> +endobj +2399 0 obj +<< +/Title 2400 0 R +/A 2397 0 R +/Parent 2375 0 R +/Prev 2395 0 R +/Next 2403 0 R +>> +endobj +2395 0 obj +<< +/Title 2396 0 R +/A 2393 0 R +/Parent 2375 0 R +/Prev 2391 0 R +/Next 2399 0 R +>> +endobj +2391 0 obj +<< +/Title 2392 0 R +/A 2389 0 R +/Parent 2375 0 R +/Prev 2387 0 R +/Next 2395 0 R +>> +endobj +2387 0 obj +<< +/Title 2388 0 R +/A 2385 0 R +/Parent 2375 0 R +/Prev 2383 0 R +/Next 2391 0 R +>> +endobj +2383 0 obj +<< +/Title 2384 0 R +/A 2381 0 R +/Parent 2375 0 R +/Prev 2379 0 R +/Next 2387 0 R +>> +endobj +2379 0 obj +<< +/Title 2380 0 R +/A 2377 0 R +/Parent 2375 0 R +/Next 2383 0 R +>> +endobj +2375 0 obj +<< +/Title 2376 0 R +/A 2373 0 R +/Parent 2367 0 R +/Prev 2371 0 R +/First 2379 0 R +/Last 2423 0 R +/Count -12 +>> +endobj +2371 0 obj +<< +/Title 2372 0 R +/A 2369 0 R +/Parent 2367 0 R +/Next 2375 0 R +>> +endobj +2367 0 obj +<< +/Title 2368 0 R +/A 2365 0 R +/Parent 287 0 R +/Prev 2307 0 R +/Next 2427 0 R +/First 2371 0 R +/Last 2375 0 R +/Count -2 +>> +endobj +2363 0 obj +<< +/Title 2364 0 R +/A 2361 0 R +/Parent 2315 0 R +/Prev 2359 0 R +>> +endobj +2359 0 obj +<< +/Title 2360 0 R +/A 2357 0 R +/Parent 2315 0 R +/Prev 2355 0 R +/Next 2363 0 R +>> +endobj +2355 0 obj +<< +/Title 2356 0 R +/A 2353 0 R +/Parent 2315 0 R +/Prev 2351 0 R +/Next 2359 0 R +>> +endobj +2351 0 obj +<< +/Title 2352 0 R +/A 2349 0 R +/Parent 2315 0 R +/Prev 2347 0 R +/Next 2355 0 R +>> +endobj +2347 0 obj +<< +/Title 2348 0 R +/A 2345 0 R +/Parent 2315 0 R +/Prev 2343 0 R +/Next 2351 0 R +>> +endobj +2343 0 obj +<< +/Title 2344 0 R +/A 2341 0 R +/Parent 2315 0 R +/Prev 2339 0 R +/Next 2347 0 R +>> +endobj +2339 0 obj +<< +/Title 2340 0 R +/A 2337 0 R +/Parent 2315 0 R +/Prev 2335 0 R +/Next 2343 0 R +>> +endobj +2335 0 obj +<< +/Title 2336 0 R +/A 2333 0 R +/Parent 2315 0 R +/Prev 2331 0 R +/Next 2339 0 R +>> +endobj +2331 0 obj +<< +/Title 2332 0 R +/A 2329 0 R +/Parent 2315 0 R +/Prev 2327 0 R +/Next 2335 0 R +>> +endobj +2327 0 obj +<< +/Title 2328 0 R +/A 2325 0 R +/Parent 2315 0 R +/Prev 2323 0 R +/Next 2331 0 R +>> +endobj +2323 0 obj +<< +/Title 2324 0 R +/A 2321 0 R +/Parent 2315 0 R +/Prev 2319 0 R +/Next 2327 0 R +>> +endobj +2319 0 obj +<< +/Title 2320 0 R +/A 2317 0 R +/Parent 2315 0 R +/Next 2323 0 R +>> +endobj +2315 0 obj +<< +/Title 2316 0 R +/A 2313 0 R +/Parent 2307 0 R +/Prev 2311 0 R +/First 2319 0 R +/Last 2363 0 R +/Count -12 +>> +endobj +2311 0 obj +<< +/Title 2312 0 R +/A 2309 0 R +/Parent 2307 0 R +/Next 2315 0 R +>> +endobj +2307 0 obj +<< +/Title 2308 0 R +/A 2305 0 R +/Parent 287 0 R +/Prev 2259 0 R +/Next 2367 0 R +/First 2311 0 R +/Last 2315 0 R +/Count -2 +>> +endobj +2303 0 obj +<< +/Title 2304 0 R +/A 2301 0 R +/Parent 2267 0 R +/Prev 2299 0 R +>> +endobj +2299 0 obj +<< +/Title 2300 0 R +/A 2297 0 R +/Parent 2267 0 R +/Prev 2295 0 R +/Next 2303 0 R +>> +endobj +2295 0 obj +<< +/Title 2296 0 R +/A 2293 0 R +/Parent 2267 0 R +/Prev 2291 0 R +/Next 2299 0 R +>> +endobj +2291 0 obj +<< +/Title 2292 0 R +/A 2289 0 R +/Parent 2267 0 R +/Prev 2287 0 R +/Next 2295 0 R +>> +endobj +2287 0 obj +<< +/Title 2288 0 R +/A 2285 0 R +/Parent 2267 0 R +/Prev 2283 0 R +/Next 2291 0 R +>> +endobj +2283 0 obj +<< +/Title 2284 0 R +/A 2281 0 R +/Parent 2267 0 R +/Prev 2279 0 R +/Next 2287 0 R +>> +endobj +2279 0 obj +<< +/Title 2280 0 R +/A 2277 0 R +/Parent 2267 0 R +/Prev 2275 0 R +/Next 2283 0 R +>> +endobj +2275 0 obj +<< +/Title 2276 0 R +/A 2273 0 R +/Parent 2267 0 R +/Prev 2271 0 R +/Next 2279 0 R +>> +endobj +2271 0 obj +<< +/Title 2272 0 R +/A 2269 0 R +/Parent 2267 0 R +/Next 2275 0 R +>> +endobj +2267 0 obj +<< +/Title 2268 0 R +/A 2265 0 R +/Parent 2259 0 R +/Prev 2263 0 R +/First 2271 0 R +/Last 2303 0 R +/Count -9 +>> +endobj +2263 0 obj +<< +/Title 2264 0 R +/A 2261 0 R +/Parent 2259 0 R +/Next 2267 0 R +>> +endobj +2259 0 obj +<< +/Title 2260 0 R +/A 2257 0 R +/Parent 287 0 R +/Prev 2211 0 R +/Next 2307 0 R +/First 2263 0 R +/Last 2267 0 R +/Count -2 +>> +endobj +2255 0 obj +<< +/Title 2256 0 R +/A 2253 0 R +/Parent 2219 0 R +/Prev 2251 0 R +>> +endobj +2251 0 obj +<< +/Title 2252 0 R +/A 2249 0 R +/Parent 2219 0 R +/Prev 2247 0 R +/Next 2255 0 R +>> +endobj +2247 0 obj +<< +/Title 2248 0 R +/A 2245 0 R +/Parent 2219 0 R +/Prev 2243 0 R +/Next 2251 0 R +>> +endobj +2243 0 obj +<< +/Title 2244 0 R +/A 2241 0 R +/Parent 2219 0 R +/Prev 2239 0 R +/Next 2247 0 R +>> +endobj +2239 0 obj +<< +/Title 2240 0 R +/A 2237 0 R +/Parent 2219 0 R +/Prev 2235 0 R +/Next 2243 0 R +>> +endobj +2235 0 obj +<< +/Title 2236 0 R +/A 2233 0 R +/Parent 2219 0 R +/Prev 2231 0 R +/Next 2239 0 R +>> +endobj +2231 0 obj +<< +/Title 2232 0 R +/A 2229 0 R +/Parent 2219 0 R +/Prev 2227 0 R +/Next 2235 0 R +>> +endobj +2227 0 obj +<< +/Title 2228 0 R +/A 2225 0 R +/Parent 2219 0 R +/Prev 2223 0 R +/Next 2231 0 R +>> +endobj +2223 0 obj +<< +/Title 2224 0 R +/A 2221 0 R +/Parent 2219 0 R +/Next 2227 0 R +>> +endobj +2219 0 obj +<< +/Title 2220 0 R +/A 2217 0 R +/Parent 2211 0 R +/Prev 2215 0 R +/First 2223 0 R +/Last 2255 0 R +/Count -9 +>> +endobj +2215 0 obj +<< +/Title 2216 0 R +/A 2213 0 R +/Parent 2211 0 R +/Next 2219 0 R +>> +endobj +2211 0 obj +<< +/Title 2212 0 R +/A 2209 0 R +/Parent 287 0 R +/Prev 2203 0 R +/Next 2259 0 R +/First 2215 0 R +/Last 2219 0 R +/Count -2 +>> +endobj +2207 0 obj +<< +/Title 2208 0 R +/A 2205 0 R +/Parent 2203 0 R +>> +endobj +2203 0 obj +<< +/Title 2204 0 R +/A 2201 0 R +/Parent 287 0 R +/Prev 2195 0 R +/Next 2211 0 R +/First 2207 0 R +/Last 2207 0 R +/Count -1 +>> +endobj +2199 0 obj +<< +/Title 2200 0 R +/A 2197 0 R +/Parent 2195 0 R +>> +endobj +2195 0 obj +<< +/Title 2196 0 R +/A 2193 0 R +/Parent 287 0 R +/Prev 2155 0 R +/Next 2203 0 R +/First 2199 0 R +/Last 2199 0 R +/Count -1 +>> +endobj +2191 0 obj +<< +/Title 2192 0 R +/A 2189 0 R +/Parent 2163 0 R +/Prev 2187 0 R +>> +endobj +2187 0 obj +<< +/Title 2188 0 R +/A 2185 0 R +/Parent 2163 0 R +/Prev 2183 0 R +/Next 2191 0 R +>> +endobj +2183 0 obj +<< +/Title 2184 0 R +/A 2181 0 R +/Parent 2163 0 R +/Prev 2179 0 R +/Next 2187 0 R +>> +endobj +2179 0 obj +<< +/Title 2180 0 R +/A 2177 0 R +/Parent 2163 0 R +/Prev 2175 0 R +/Next 2183 0 R +>> +endobj +2175 0 obj +<< +/Title 2176 0 R +/A 2173 0 R +/Parent 2163 0 R +/Prev 2171 0 R +/Next 2179 0 R +>> +endobj +2171 0 obj +<< +/Title 2172 0 R +/A 2169 0 R +/Parent 2163 0 R +/Prev 2167 0 R +/Next 2175 0 R +>> +endobj +2167 0 obj +<< +/Title 2168 0 R +/A 2165 0 R +/Parent 2163 0 R +/Next 2171 0 R +>> +endobj +2163 0 obj +<< +/Title 2164 0 R +/A 2161 0 R +/Parent 2155 0 R +/Prev 2159 0 R +/First 2167 0 R +/Last 2191 0 R +/Count -7 +>> +endobj +2159 0 obj +<< +/Title 2160 0 R +/A 2157 0 R +/Parent 2155 0 R +/Next 2163 0 R +>> +endobj +2155 0 obj +<< +/Title 2156 0 R +/A 2153 0 R +/Parent 287 0 R +/Prev 2115 0 R +/Next 2195 0 R +/First 2159 0 R +/Last 2163 0 R +/Count -2 +>> +endobj +2151 0 obj +<< +/Title 2152 0 R +/A 2149 0 R +/Parent 2123 0 R +/Prev 2147 0 R +>> +endobj +2147 0 obj +<< +/Title 2148 0 R +/A 2145 0 R +/Parent 2123 0 R +/Prev 2143 0 R +/Next 2151 0 R +>> +endobj +2143 0 obj +<< +/Title 2144 0 R +/A 2141 0 R +/Parent 2123 0 R +/Prev 2139 0 R +/Next 2147 0 R +>> +endobj +2139 0 obj +<< +/Title 2140 0 R +/A 2137 0 R +/Parent 2123 0 R +/Prev 2135 0 R +/Next 2143 0 R +>> +endobj +2135 0 obj +<< +/Title 2136 0 R +/A 2133 0 R +/Parent 2123 0 R +/Prev 2131 0 R +/Next 2139 0 R +>> +endobj +2131 0 obj +<< +/Title 2132 0 R +/A 2129 0 R +/Parent 2123 0 R +/Prev 2127 0 R +/Next 2135 0 R +>> +endobj +2127 0 obj +<< +/Title 2128 0 R +/A 2125 0 R +/Parent 2123 0 R +/Next 2131 0 R +>> +endobj +2123 0 obj +<< +/Title 2124 0 R +/A 2121 0 R +/Parent 2115 0 R +/Prev 2119 0 R +/First 2127 0 R +/Last 2151 0 R +/Count -7 +>> +endobj +2119 0 obj +<< +/Title 2120 0 R +/A 2117 0 R +/Parent 2115 0 R +/Next 2123 0 R +>> +endobj +2115 0 obj +<< +/Title 2116 0 R +/A 2113 0 R +/Parent 287 0 R +/Prev 2107 0 R +/Next 2155 0 R +/First 2119 0 R +/Last 2123 0 R +/Count -2 +>> +endobj +2111 0 obj +<< +/Title 2112 0 R +/A 2109 0 R +/Parent 2107 0 R +>> +endobj +2107 0 obj +<< +/Title 2108 0 R +/A 2105 0 R +/Parent 287 0 R +/Prev 2099 0 R +/Next 2115 0 R +/First 2111 0 R +/Last 2111 0 R +/Count -1 +>> +endobj +2103 0 obj +<< +/Title 2104 0 R +/A 2101 0 R +/Parent 2099 0 R +>> +endobj +2099 0 obj +<< +/Title 2100 0 R +/A 2097 0 R +/Parent 287 0 R +/Prev 2071 0 R +/Next 2107 0 R +/First 2103 0 R +/Last 2103 0 R +/Count -1 +>> +endobj +2095 0 obj +<< +/Title 2096 0 R +/A 2093 0 R +/Parent 2079 0 R +/Prev 2091 0 R +>> +endobj +2091 0 obj +<< +/Title 2092 0 R +/A 2089 0 R +/Parent 2079 0 R +/Prev 2087 0 R +/Next 2095 0 R +>> +endobj +2087 0 obj +<< +/Title 2088 0 R +/A 2085 0 R +/Parent 2079 0 R +/Prev 2083 0 R +/Next 2091 0 R +>> +endobj +2083 0 obj +<< +/Title 2084 0 R +/A 2081 0 R +/Parent 2079 0 R +/Next 2087 0 R +>> +endobj +2079 0 obj +<< +/Title 2080 0 R +/A 2077 0 R +/Parent 2071 0 R +/Prev 2075 0 R +/First 2083 0 R +/Last 2095 0 R +/Count -4 +>> +endobj +2075 0 obj +<< +/Title 2076 0 R +/A 2073 0 R +/Parent 2071 0 R +/Next 2079 0 R +>> +endobj +2071 0 obj +<< +/Title 2072 0 R +/A 2069 0 R +/Parent 287 0 R +/Prev 2043 0 R +/Next 2099 0 R +/First 2075 0 R +/Last 2079 0 R +/Count -2 +>> +endobj +2067 0 obj +<< +/Title 2068 0 R +/A 2065 0 R +/Parent 2051 0 R +/Prev 2063 0 R +>> +endobj +2063 0 obj +<< +/Title 2064 0 R +/A 2061 0 R +/Parent 2051 0 R +/Prev 2059 0 R +/Next 2067 0 R +>> +endobj +2059 0 obj +<< +/Title 2060 0 R +/A 2057 0 R +/Parent 2051 0 R +/Prev 2055 0 R +/Next 2063 0 R +>> +endobj +2055 0 obj +<< +/Title 2056 0 R +/A 2053 0 R +/Parent 2051 0 R +/Next 2059 0 R +>> +endobj +2051 0 obj +<< +/Title 2052 0 R +/A 2049 0 R +/Parent 2043 0 R +/Prev 2047 0 R +/First 2055 0 R +/Last 2067 0 R +/Count -4 +>> +endobj +2047 0 obj +<< +/Title 2048 0 R +/A 2045 0 R +/Parent 2043 0 R +/Next 2051 0 R +>> +endobj +2043 0 obj +<< +/Title 2044 0 R +/A 2041 0 R +/Parent 287 0 R +/Prev 2023 0 R +/Next 2071 0 R +/First 2047 0 R +/Last 2051 0 R +/Count -2 +>> +endobj +2039 0 obj +<< +/Title 2040 0 R +/A 2037 0 R +/Parent 2031 0 R +/Prev 2035 0 R +>> +endobj +2035 0 obj +<< +/Title 2036 0 R +/A 2033 0 R +/Parent 2031 0 R +/Next 2039 0 R +>> +endobj +2031 0 obj +<< +/Title 2032 0 R +/A 2029 0 R +/Parent 2023 0 R +/Prev 2027 0 R +/First 2035 0 R +/Last 2039 0 R +/Count -2 +>> +endobj +2027 0 obj +<< +/Title 2028 0 R +/A 2025 0 R +/Parent 2023 0 R +/Next 2031 0 R +>> +endobj +2023 0 obj +<< +/Title 2024 0 R +/A 2021 0 R +/Parent 287 0 R +/Prev 2003 0 R +/Next 2043 0 R +/First 2027 0 R +/Last 2031 0 R +/Count -2 +>> +endobj +2019 0 obj +<< +/Title 2020 0 R +/A 2017 0 R +/Parent 2011 0 R +/Prev 2015 0 R +>> +endobj +2015 0 obj +<< +/Title 2016 0 R +/A 2013 0 R +/Parent 2011 0 R +/Next 2019 0 R +>> +endobj +2011 0 obj +<< +/Title 2012 0 R +/A 2009 0 R +/Parent 2003 0 R +/Prev 2007 0 R +/First 2015 0 R +/Last 2019 0 R +/Count -2 +>> +endobj +2007 0 obj +<< +/Title 2008 0 R +/A 2005 0 R +/Parent 2003 0 R +/Next 2011 0 R +>> +endobj +2003 0 obj +<< +/Title 2004 0 R +/A 2001 0 R +/Parent 287 0 R +/Prev 1987 0 R +/Next 2023 0 R +/First 2007 0 R +/Last 2011 0 R +/Count -2 +>> +endobj +1999 0 obj +<< +/Title 2000 0 R +/A 1997 0 R +/Parent 1995 0 R +>> +endobj +1995 0 obj +<< +/Title 1996 0 R +/A 1993 0 R +/Parent 1987 0 R +/Prev 1991 0 R +/First 1999 0 R +/Last 1999 0 R +/Count -1 +>> +endobj +1991 0 obj +<< +/Title 1992 0 R +/A 1989 0 R +/Parent 1987 0 R +/Next 1995 0 R +>> +endobj +1987 0 obj +<< +/Title 1988 0 R +/A 1985 0 R +/Parent 287 0 R +/Prev 1971 0 R +/Next 2003 0 R +/First 1991 0 R +/Last 1995 0 R +/Count -2 +>> +endobj +1983 0 obj +<< +/Title 1984 0 R +/A 1981 0 R +/Parent 1979 0 R +>> +endobj +1979 0 obj +<< +/Title 1980 0 R +/A 1977 0 R +/Parent 1971 0 R +/Prev 1975 0 R +/First 1983 0 R +/Last 1983 0 R +/Count -1 +>> +endobj +1975 0 obj +<< +/Title 1976 0 R +/A 1973 0 R +/Parent 1971 0 R +/Next 1979 0 R +>> +endobj +1971 0 obj +<< +/Title 1972 0 R +/A 1969 0 R +/Parent 287 0 R +/Prev 1963 0 R +/Next 1987 0 R +/First 1975 0 R +/Last 1979 0 R +/Count -2 +>> +endobj +1967 0 obj +<< +/Title 1968 0 R +/A 1965 0 R +/Parent 1963 0 R +>> +endobj +1963 0 obj +<< +/Title 1964 0 R +/A 1961 0 R +/Parent 287 0 R +/Prev 1955 0 R +/Next 1971 0 R +/First 1967 0 R +/Last 1967 0 R +/Count -1 +>> +endobj +1959 0 obj +<< +/Title 1960 0 R +/A 1957 0 R +/Parent 1955 0 R +>> +endobj +1955 0 obj +<< +/Title 1956 0 R +/A 1953 0 R +/Parent 287 0 R +/Prev 1939 0 R +/Next 1963 0 R +/First 1959 0 R +/Last 1959 0 R +/Count -1 +>> +endobj +1951 0 obj +<< +/Title 1952 0 R +/A 1949 0 R +/Parent 1947 0 R +>> +endobj +1947 0 obj +<< +/Title 1948 0 R +/A 1945 0 R +/Parent 1939 0 R +/Prev 1943 0 R +/First 1951 0 R +/Last 1951 0 R +/Count -1 +>> +endobj +1943 0 obj +<< +/Title 1944 0 R +/A 1941 0 R +/Parent 1939 0 R +/Next 1947 0 R +>> +endobj +1939 0 obj +<< +/Title 1940 0 R +/A 1937 0 R +/Parent 287 0 R +/Prev 1923 0 R +/Next 1955 0 R +/First 1943 0 R +/Last 1947 0 R +/Count -2 +>> +endobj +1935 0 obj +<< +/Title 1936 0 R +/A 1933 0 R +/Parent 1931 0 R +>> +endobj +1931 0 obj +<< +/Title 1932 0 R +/A 1929 0 R +/Parent 1923 0 R +/Prev 1927 0 R +/First 1935 0 R +/Last 1935 0 R +/Count -1 +>> +endobj +1927 0 obj +<< +/Title 1928 0 R +/A 1925 0 R +/Parent 1923 0 R +/Next 1931 0 R +>> +endobj +1923 0 obj +<< +/Title 1924 0 R +/A 1921 0 R +/Parent 287 0 R +/Prev 1903 0 R +/Next 1939 0 R +/First 1927 0 R +/Last 1931 0 R +/Count -2 +>> +endobj +1919 0 obj +<< +/Title 1920 0 R +/A 1917 0 R +/Parent 1911 0 R +/Prev 1915 0 R +>> +endobj +1915 0 obj +<< +/Title 1916 0 R +/A 1913 0 R +/Parent 1911 0 R +/Next 1919 0 R +>> +endobj +1911 0 obj +<< +/Title 1912 0 R +/A 1909 0 R +/Parent 1903 0 R +/Prev 1907 0 R +/First 1915 0 R +/Last 1919 0 R +/Count -2 +>> +endobj +1907 0 obj +<< +/Title 1908 0 R +/A 1905 0 R +/Parent 1903 0 R +/Next 1911 0 R +>> +endobj +1903 0 obj +<< +/Title 1904 0 R +/A 1901 0 R +/Parent 287 0 R +/Prev 1883 0 R +/Next 1923 0 R +/First 1907 0 R +/Last 1911 0 R +/Count -2 +>> +endobj +1899 0 obj +<< +/Title 1900 0 R +/A 1897 0 R +/Parent 1891 0 R +/Prev 1895 0 R +>> +endobj +1895 0 obj +<< +/Title 1896 0 R +/A 1893 0 R +/Parent 1891 0 R +/Next 1899 0 R +>> +endobj +1891 0 obj +<< +/Title 1892 0 R +/A 1889 0 R +/Parent 1883 0 R +/Prev 1887 0 R +/First 1895 0 R +/Last 1899 0 R +/Count -2 +>> +endobj +1887 0 obj +<< +/Title 1888 0 R +/A 1885 0 R +/Parent 1883 0 R +/Next 1891 0 R +>> +endobj +1883 0 obj +<< +/Title 1884 0 R +/A 1881 0 R +/Parent 287 0 R +/Prev 1863 0 R +/Next 1903 0 R +/First 1887 0 R +/Last 1891 0 R +/Count -2 +>> +endobj +1879 0 obj +<< +/Title 1880 0 R +/A 1877 0 R +/Parent 1871 0 R +/Prev 1875 0 R +>> +endobj +1875 0 obj +<< +/Title 1876 0 R +/A 1873 0 R +/Parent 1871 0 R +/Next 1879 0 R +>> +endobj +1871 0 obj +<< +/Title 1872 0 R +/A 1869 0 R +/Parent 1863 0 R +/Prev 1867 0 R +/First 1875 0 R +/Last 1879 0 R +/Count -2 +>> +endobj +1867 0 obj +<< +/Title 1868 0 R +/A 1865 0 R +/Parent 1863 0 R +/Next 1871 0 R +>> +endobj +1863 0 obj +<< +/Title 1864 0 R +/A 1861 0 R +/Parent 287 0 R +/Prev 1843 0 R +/Next 1883 0 R +/First 1867 0 R +/Last 1871 0 R +/Count -2 +>> +endobj +1859 0 obj +<< +/Title 1860 0 R +/A 1857 0 R +/Parent 1851 0 R +/Prev 1855 0 R +>> +endobj +1855 0 obj +<< +/Title 1856 0 R +/A 1853 0 R +/Parent 1851 0 R +/Next 1859 0 R +>> +endobj +1851 0 obj +<< +/Title 1852 0 R +/A 1849 0 R +/Parent 1843 0 R +/Prev 1847 0 R +/First 1855 0 R +/Last 1859 0 R +/Count -2 +>> +endobj +1847 0 obj +<< +/Title 1848 0 R +/A 1845 0 R +/Parent 1843 0 R +/Next 1851 0 R +>> +endobj +1843 0 obj +<< +/Title 1844 0 R +/A 1841 0 R +/Parent 287 0 R +/Prev 1827 0 R +/Next 1863 0 R +/First 1847 0 R +/Last 1851 0 R +/Count -2 +>> +endobj +1839 0 obj +<< +/Title 1840 0 R +/A 1837 0 R +/Parent 1835 0 R +>> +endobj +1835 0 obj +<< +/Title 1836 0 R +/A 1833 0 R +/Parent 1827 0 R +/Prev 1831 0 R +/First 1839 0 R +/Last 1839 0 R +/Count -1 +>> +endobj +1831 0 obj +<< +/Title 1832 0 R +/A 1829 0 R +/Parent 1827 0 R +/Next 1835 0 R +>> +endobj +1827 0 obj +<< +/Title 1828 0 R +/A 1825 0 R +/Parent 287 0 R +/Prev 1819 0 R +/Next 1843 0 R +/First 1831 0 R +/Last 1835 0 R +/Count -2 +>> +endobj +1823 0 obj +<< +/Title 1824 0 R +/A 1821 0 R +/Parent 1819 0 R +>> +endobj +1819 0 obj +<< +/Title 1820 0 R +/A 1817 0 R +/Parent 287 0 R +/Prev 1811 0 R +/Next 1827 0 R +/First 1823 0 R +/Last 1823 0 R +/Count -1 +>> +endobj +1815 0 obj +<< +/Title 1816 0 R +/A 1813 0 R +/Parent 1811 0 R +>> +endobj +1811 0 obj +<< +/Title 1812 0 R +/A 1809 0 R +/Parent 287 0 R +/Prev 1803 0 R +/Next 1819 0 R +/First 1815 0 R +/Last 1815 0 R +/Count -1 +>> +endobj +1807 0 obj +<< +/Title 1808 0 R +/A 1805 0 R +/Parent 1803 0 R +>> +endobj +1803 0 obj +<< +/Title 1804 0 R +/A 1801 0 R +/Parent 287 0 R +/Prev 1795 0 R +/Next 1811 0 R +/First 1807 0 R +/Last 1807 0 R +/Count -1 +>> +endobj +1799 0 obj +<< +/Title 1800 0 R +/A 1797 0 R +/Parent 1795 0 R +>> +endobj +1795 0 obj +<< +/Title 1796 0 R +/A 1793 0 R +/Parent 287 0 R +/Prev 1775 0 R +/Next 1803 0 R +/First 1799 0 R +/Last 1799 0 R +/Count -1 +>> +endobj +1791 0 obj +<< +/Title 1792 0 R +/A 1789 0 R +/Parent 1783 0 R +/Prev 1787 0 R +>> +endobj +1787 0 obj +<< +/Title 1788 0 R +/A 1785 0 R +/Parent 1783 0 R +/Next 1791 0 R +>> +endobj +1783 0 obj +<< +/Title 1784 0 R +/A 1781 0 R +/Parent 1775 0 R +/Prev 1779 0 R +/First 1787 0 R +/Last 1791 0 R +/Count -2 +>> +endobj +1779 0 obj +<< +/Title 1780 0 R +/A 1777 0 R +/Parent 1775 0 R +/Next 1783 0 R +>> +endobj +1775 0 obj +<< +/Title 1776 0 R +/A 1773 0 R +/Parent 287 0 R +/Prev 1731 0 R +/Next 1795 0 R +/First 1779 0 R +/Last 1783 0 R +/Count -2 +>> +endobj +1771 0 obj +<< +/Title 1772 0 R +/A 1769 0 R +/Parent 1739 0 R +/Prev 1767 0 R +>> +endobj +1767 0 obj +<< +/Title 1768 0 R +/A 1765 0 R +/Parent 1739 0 R +/Prev 1763 0 R +/Next 1771 0 R +>> +endobj +1763 0 obj +<< +/Title 1764 0 R +/A 1761 0 R +/Parent 1739 0 R +/Prev 1759 0 R +/Next 1767 0 R +>> +endobj +1759 0 obj +<< +/Title 1760 0 R +/A 1757 0 R +/Parent 1739 0 R +/Prev 1755 0 R +/Next 1763 0 R +>> +endobj +1755 0 obj +<< +/Title 1756 0 R +/A 1753 0 R +/Parent 1739 0 R +/Prev 1751 0 R +/Next 1759 0 R +>> +endobj +1751 0 obj +<< +/Title 1752 0 R +/A 1749 0 R +/Parent 1739 0 R +/Prev 1747 0 R +/Next 1755 0 R +>> +endobj +1747 0 obj +<< +/Title 1748 0 R +/A 1745 0 R +/Parent 1739 0 R +/Prev 1743 0 R +/Next 1751 0 R +>> +endobj +1743 0 obj +<< +/Title 1744 0 R +/A 1741 0 R +/Parent 1739 0 R +/Next 1747 0 R +>> +endobj +1739 0 obj +<< +/Title 1740 0 R +/A 1737 0 R +/Parent 1731 0 R +/Prev 1735 0 R +/First 1743 0 R +/Last 1771 0 R +/Count -8 +>> +endobj +1735 0 obj +<< +/Title 1736 0 R +/A 1733 0 R +/Parent 1731 0 R +/Next 1739 0 R +>> +endobj +1731 0 obj +<< +/Title 1732 0 R +/A 1729 0 R +/Parent 287 0 R +/Prev 1703 0 R +/Next 1775 0 R +/First 1735 0 R +/Last 1739 0 R +/Count -2 +>> +endobj +1727 0 obj +<< +/Title 1728 0 R +/A 1725 0 R +/Parent 1719 0 R +/Prev 1723 0 R +>> +endobj +1723 0 obj +<< +/Title 1724 0 R +/A 1721 0 R +/Parent 1719 0 R +/Next 1727 0 R +>> +endobj +1719 0 obj +<< +/Title 1720 0 R +/A 1717 0 R +/Parent 1703 0 R +/Prev 1711 0 R +/First 1723 0 R +/Last 1727 0 R +/Count -2 +>> +endobj +1715 0 obj +<< +/Title 1716 0 R +/A 1713 0 R +/Parent 1711 0 R +>> +endobj +1711 0 obj +<< +/Title 1712 0 R +/A 1709 0 R +/Parent 1703 0 R +/Prev 1707 0 R +/Next 1719 0 R +/First 1715 0 R +/Last 1715 0 R +/Count -1 +>> +endobj +1707 0 obj +<< +/Title 1708 0 R +/A 1705 0 R +/Parent 1703 0 R +/Next 1711 0 R +>> +endobj +1703 0 obj +<< +/Title 1704 0 R +/A 1701 0 R +/Parent 287 0 R +/Prev 1683 0 R +/Next 1731 0 R +/First 1707 0 R +/Last 1719 0 R +/Count -3 +>> +endobj +1699 0 obj +<< +/Title 1700 0 R +/A 1697 0 R +/Parent 1691 0 R +/Prev 1695 0 R +>> +endobj +1695 0 obj +<< +/Title 1696 0 R +/A 1693 0 R +/Parent 1691 0 R +/Next 1699 0 R +>> +endobj +1691 0 obj +<< +/Title 1692 0 R +/A 1689 0 R +/Parent 1683 0 R +/Prev 1687 0 R +/First 1695 0 R +/Last 1699 0 R +/Count -2 +>> +endobj +1687 0 obj +<< +/Title 1688 0 R +/A 1685 0 R +/Parent 1683 0 R +/Next 1691 0 R +>> +endobj +1683 0 obj +<< +/Title 1684 0 R +/A 1681 0 R +/Parent 287 0 R +/Prev 1667 0 R +/Next 1703 0 R +/First 1687 0 R +/Last 1691 0 R +/Count -2 +>> +endobj +1679 0 obj +<< +/Title 1680 0 R +/A 1677 0 R +/Parent 1675 0 R +>> +endobj +1675 0 obj +<< +/Title 1676 0 R +/A 1673 0 R +/Parent 1667 0 R +/Prev 1671 0 R +/First 1679 0 R +/Last 1679 0 R +/Count -1 +>> +endobj +1671 0 obj +<< +/Title 1672 0 R +/A 1669 0 R +/Parent 1667 0 R +/Next 1675 0 R +>> +endobj +1667 0 obj +<< +/Title 1668 0 R +/A 1665 0 R +/Parent 287 0 R +/Prev 1651 0 R +/Next 1683 0 R +/First 1671 0 R +/Last 1675 0 R +/Count -2 +>> +endobj +1663 0 obj +<< +/Title 1664 0 R +/A 1661 0 R +/Parent 1659 0 R +>> +endobj +1659 0 obj +<< +/Title 1660 0 R +/A 1657 0 R +/Parent 1651 0 R +/Prev 1655 0 R +/First 1663 0 R +/Last 1663 0 R +/Count -1 +>> +endobj +1655 0 obj +<< +/Title 1656 0 R +/A 1653 0 R +/Parent 1651 0 R +/Next 1659 0 R +>> +endobj +1651 0 obj +<< +/Title 1652 0 R +/A 1649 0 R +/Parent 287 0 R +/Prev 1611 0 R +/Next 1667 0 R +/First 1655 0 R +/Last 1659 0 R +/Count -2 +>> +endobj +1647 0 obj +<< +/Title 1648 0 R +/A 1645 0 R +/Parent 1619 0 R +/Prev 1643 0 R +>> +endobj +1643 0 obj +<< +/Title 1644 0 R +/A 1641 0 R +/Parent 1619 0 R +/Prev 1639 0 R +/Next 1647 0 R +>> +endobj +1639 0 obj +<< +/Title 1640 0 R +/A 1637 0 R +/Parent 1619 0 R +/Prev 1635 0 R +/Next 1643 0 R +>> +endobj +1635 0 obj +<< +/Title 1636 0 R +/A 1633 0 R +/Parent 1619 0 R +/Prev 1631 0 R +/Next 1639 0 R +>> +endobj +1631 0 obj +<< +/Title 1632 0 R +/A 1629 0 R +/Parent 1619 0 R +/Prev 1627 0 R +/Next 1635 0 R +>> +endobj +1627 0 obj +<< +/Title 1628 0 R +/A 1625 0 R +/Parent 1619 0 R +/Prev 1623 0 R +/Next 1631 0 R +>> +endobj +1623 0 obj +<< +/Title 1624 0 R +/A 1621 0 R +/Parent 1619 0 R +/Next 1627 0 R +>> +endobj +1619 0 obj +<< +/Title 1620 0 R +/A 1617 0 R +/Parent 1611 0 R +/Prev 1615 0 R +/First 1623 0 R +/Last 1647 0 R +/Count -7 +>> +endobj +1615 0 obj +<< +/Title 1616 0 R +/A 1613 0 R +/Parent 1611 0 R +/Next 1619 0 R +>> +endobj +1611 0 obj +<< +/Title 1612 0 R +/A 1609 0 R +/Parent 287 0 R +/Prev 1571 0 R +/Next 1651 0 R +/First 1615 0 R +/Last 1619 0 R +/Count -2 +>> +endobj +1607 0 obj +<< +/Title 1608 0 R +/A 1605 0 R +/Parent 1579 0 R +/Prev 1603 0 R +>> +endobj +1603 0 obj +<< +/Title 1604 0 R +/A 1601 0 R +/Parent 1579 0 R +/Prev 1599 0 R +/Next 1607 0 R +>> +endobj +1599 0 obj +<< +/Title 1600 0 R +/A 1597 0 R +/Parent 1579 0 R +/Prev 1595 0 R +/Next 1603 0 R +>> +endobj +1595 0 obj +<< +/Title 1596 0 R +/A 1593 0 R +/Parent 1579 0 R +/Prev 1591 0 R +/Next 1599 0 R +>> +endobj +1591 0 obj +<< +/Title 1592 0 R +/A 1589 0 R +/Parent 1579 0 R +/Prev 1587 0 R +/Next 1595 0 R +>> +endobj +1587 0 obj +<< +/Title 1588 0 R +/A 1585 0 R +/Parent 1579 0 R +/Prev 1583 0 R +/Next 1591 0 R +>> +endobj +1583 0 obj +<< +/Title 1584 0 R +/A 1581 0 R +/Parent 1579 0 R +/Next 1587 0 R +>> +endobj +1579 0 obj +<< +/Title 1580 0 R +/A 1577 0 R +/Parent 1571 0 R +/Prev 1575 0 R +/First 1583 0 R +/Last 1607 0 R +/Count -7 +>> +endobj +1575 0 obj +<< +/Title 1576 0 R +/A 1573 0 R +/Parent 1571 0 R +/Next 1579 0 R +>> +endobj +1571 0 obj +<< +/Title 1572 0 R +/A 1569 0 R +/Parent 287 0 R +/Prev 1563 0 R +/Next 1611 0 R +/First 1575 0 R +/Last 1579 0 R +/Count -2 +>> +endobj +1567 0 obj +<< +/Title 1568 0 R +/A 1565 0 R +/Parent 1563 0 R +>> +endobj +1563 0 obj +<< +/Title 1564 0 R +/A 1561 0 R +/Parent 287 0 R +/Prev 1555 0 R +/Next 1571 0 R +/First 1567 0 R +/Last 1567 0 R +/Count -1 +>> +endobj +1559 0 obj +<< +/Title 1560 0 R +/A 1557 0 R +/Parent 1555 0 R +>> +endobj +1555 0 obj +<< +/Title 1556 0 R +/A 1553 0 R +/Parent 287 0 R +/Prev 1535 0 R +/Next 1563 0 R +/First 1559 0 R +/Last 1559 0 R +/Count -1 +>> +endobj +1551 0 obj +<< +/Title 1552 0 R +/A 1549 0 R +/Parent 1543 0 R +/Prev 1547 0 R +>> +endobj +1547 0 obj +<< +/Title 1548 0 R +/A 1545 0 R +/Parent 1543 0 R +/Next 1551 0 R +>> +endobj +1543 0 obj +<< +/Title 1544 0 R +/A 1541 0 R +/Parent 1535 0 R +/Prev 1539 0 R +/First 1547 0 R +/Last 1551 0 R +/Count -2 +>> +endobj +1539 0 obj +<< +/Title 1540 0 R +/A 1537 0 R +/Parent 1535 0 R +/Next 1543 0 R +>> +endobj +1535 0 obj +<< +/Title 1536 0 R +/A 1533 0 R +/Parent 287 0 R +/Prev 1515 0 R +/Next 1555 0 R +/First 1539 0 R +/Last 1543 0 R +/Count -2 +>> +endobj +1531 0 obj +<< +/Title 1532 0 R +/A 1529 0 R +/Parent 1523 0 R +/Prev 1527 0 R +>> +endobj +1527 0 obj +<< +/Title 1528 0 R +/A 1525 0 R +/Parent 1523 0 R +/Next 1531 0 R +>> +endobj +1523 0 obj +<< +/Title 1524 0 R +/A 1521 0 R +/Parent 1515 0 R +/Prev 1519 0 R +/First 1527 0 R +/Last 1531 0 R +/Count -2 +>> +endobj +1519 0 obj +<< +/Title 1520 0 R +/A 1517 0 R +/Parent 1515 0 R +/Next 1523 0 R +>> +endobj +1515 0 obj +<< +/Title 1516 0 R +/A 1513 0 R +/Parent 287 0 R +/Prev 1507 0 R +/Next 1535 0 R +/First 1519 0 R +/Last 1523 0 R +/Count -2 +>> +endobj +1511 0 obj +<< +/Title 1512 0 R +/A 1509 0 R +/Parent 1507 0 R +>> +endobj +1507 0 obj +<< +/Title 1508 0 R +/A 1505 0 R +/Parent 287 0 R +/Prev 1499 0 R +/Next 1515 0 R +/First 1511 0 R +/Last 1511 0 R +/Count -1 +>> +endobj +1503 0 obj +<< +/Title 1504 0 R +/A 1501 0 R +/Parent 1499 0 R +>> +endobj +1499 0 obj +<< +/Title 1500 0 R +/A 1497 0 R +/Parent 287 0 R +/Prev 1483 0 R +/Next 1507 0 R +/First 1503 0 R +/Last 1503 0 R +/Count -1 +>> +endobj +1495 0 obj +<< +/Title 1496 0 R +/A 1493 0 R +/Parent 1491 0 R +>> +endobj +1491 0 obj +<< +/Title 1492 0 R +/A 1489 0 R +/Parent 1483 0 R +/Prev 1487 0 R +/First 1495 0 R +/Last 1495 0 R +/Count -1 +>> +endobj +1487 0 obj +<< +/Title 1488 0 R +/A 1485 0 R +/Parent 1483 0 R +/Next 1491 0 R +>> +endobj +1483 0 obj +<< +/Title 1484 0 R +/A 1481 0 R +/Parent 287 0 R +/Prev 1467 0 R +/Next 1499 0 R +/First 1487 0 R +/Last 1491 0 R +/Count -2 +>> +endobj +1479 0 obj +<< +/Title 1480 0 R +/A 1477 0 R +/Parent 1475 0 R +>> +endobj +1475 0 obj +<< +/Title 1476 0 R +/A 1473 0 R +/Parent 1467 0 R +/Prev 1471 0 R +/First 1479 0 R +/Last 1479 0 R +/Count -1 +>> +endobj +1471 0 obj +<< +/Title 1472 0 R +/A 1469 0 R +/Parent 1467 0 R +/Next 1475 0 R +>> +endobj +1467 0 obj +<< +/Title 1468 0 R +/A 1465 0 R +/Parent 287 0 R +/Prev 1459 0 R +/Next 1483 0 R +/First 1471 0 R +/Last 1475 0 R +/Count -2 +>> +endobj +1463 0 obj +<< +/Title 1464 0 R +/A 1461 0 R +/Parent 1459 0 R +>> +endobj +1459 0 obj +<< +/Title 1460 0 R +/A 1457 0 R +/Parent 287 0 R +/Prev 1451 0 R +/Next 1467 0 R +/First 1463 0 R +/Last 1463 0 R +/Count -1 +>> +endobj +1455 0 obj +<< +/Title 1456 0 R +/A 1453 0 R +/Parent 1451 0 R +>> +endobj +1451 0 obj +<< +/Title 1452 0 R +/A 1449 0 R +/Parent 287 0 R +/Prev 1247 0 R +/Next 1459 0 R +/First 1455 0 R +/Last 1455 0 R +/Count -1 +>> +endobj +1447 0 obj +<< +/Title 1448 0 R +/A 1445 0 R +/Parent 1271 0 R +/Prev 1443 0 R +>> +endobj +1443 0 obj +<< +/Title 1444 0 R +/A 1441 0 R +/Parent 1271 0 R +/Prev 1439 0 R +/Next 1447 0 R +>> +endobj +1439 0 obj +<< +/Title 1440 0 R +/A 1437 0 R +/Parent 1271 0 R +/Prev 1435 0 R +/Next 1443 0 R +>> +endobj +1435 0 obj +<< +/Title 1436 0 R +/A 1433 0 R +/Parent 1271 0 R +/Prev 1431 0 R +/Next 1439 0 R +>> +endobj +1431 0 obj +<< +/Title 1432 0 R +/A 1429 0 R +/Parent 1271 0 R +/Prev 1427 0 R +/Next 1435 0 R +>> +endobj +1427 0 obj +<< +/Title 1428 0 R +/A 1425 0 R +/Parent 1271 0 R +/Prev 1423 0 R +/Next 1431 0 R +>> +endobj +1423 0 obj +<< +/Title 1424 0 R +/A 1421 0 R +/Parent 1271 0 R +/Prev 1419 0 R +/Next 1427 0 R +>> +endobj +1419 0 obj +<< +/Title 1420 0 R +/A 1417 0 R +/Parent 1271 0 R +/Prev 1415 0 R +/Next 1423 0 R +>> +endobj +1415 0 obj +<< +/Title 1416 0 R +/A 1413 0 R +/Parent 1271 0 R +/Prev 1411 0 R +/Next 1419 0 R +>> +endobj +1411 0 obj +<< +/Title 1412 0 R +/A 1409 0 R +/Parent 1271 0 R +/Prev 1407 0 R +/Next 1415 0 R +>> +endobj +1407 0 obj +<< +/Title 1408 0 R +/A 1405 0 R +/Parent 1271 0 R +/Prev 1403 0 R +/Next 1411 0 R +>> +endobj +1403 0 obj +<< +/Title 1404 0 R +/A 1401 0 R +/Parent 1271 0 R +/Prev 1399 0 R +/Next 1407 0 R +>> +endobj +1399 0 obj +<< +/Title 1400 0 R +/A 1397 0 R +/Parent 1271 0 R +/Prev 1395 0 R +/Next 1403 0 R +>> +endobj +1395 0 obj +<< +/Title 1396 0 R +/A 1393 0 R +/Parent 1271 0 R +/Prev 1391 0 R +/Next 1399 0 R +>> +endobj +1391 0 obj +<< +/Title 1392 0 R +/A 1389 0 R +/Parent 1271 0 R +/Prev 1387 0 R +/Next 1395 0 R +>> +endobj +1387 0 obj +<< +/Title 1388 0 R +/A 1385 0 R +/Parent 1271 0 R +/Prev 1383 0 R +/Next 1391 0 R +>> +endobj +1383 0 obj +<< +/Title 1384 0 R +/A 1381 0 R +/Parent 1271 0 R +/Prev 1379 0 R +/Next 1387 0 R +>> +endobj +1379 0 obj +<< +/Title 1380 0 R +/A 1377 0 R +/Parent 1271 0 R +/Prev 1375 0 R +/Next 1383 0 R +>> +endobj +1375 0 obj +<< +/Title 1376 0 R +/A 1373 0 R +/Parent 1271 0 R +/Prev 1371 0 R +/Next 1379 0 R +>> +endobj +1371 0 obj +<< +/Title 1372 0 R +/A 1369 0 R +/Parent 1271 0 R +/Prev 1367 0 R +/Next 1375 0 R +>> +endobj +1367 0 obj +<< +/Title 1368 0 R +/A 1365 0 R +/Parent 1271 0 R +/Prev 1363 0 R +/Next 1371 0 R +>> +endobj +1363 0 obj +<< +/Title 1364 0 R +/A 1361 0 R +/Parent 1271 0 R +/Prev 1359 0 R +/Next 1367 0 R +>> +endobj +1359 0 obj +<< +/Title 1360 0 R +/A 1357 0 R +/Parent 1271 0 R +/Prev 1355 0 R +/Next 1363 0 R +>> +endobj +1355 0 obj +<< +/Title 1356 0 R +/A 1353 0 R +/Parent 1271 0 R +/Prev 1351 0 R +/Next 1359 0 R +>> +endobj +1351 0 obj +<< +/Title 1352 0 R +/A 1349 0 R +/Parent 1271 0 R +/Prev 1347 0 R +/Next 1355 0 R +>> +endobj +1347 0 obj +<< +/Title 1348 0 R +/A 1345 0 R +/Parent 1271 0 R +/Prev 1343 0 R +/Next 1351 0 R +>> +endobj +1343 0 obj +<< +/Title 1344 0 R +/A 1341 0 R +/Parent 1271 0 R +/Prev 1339 0 R +/Next 1347 0 R +>> +endobj +1339 0 obj +<< +/Title 1340 0 R +/A 1337 0 R +/Parent 1271 0 R +/Prev 1335 0 R +/Next 1343 0 R +>> +endobj +1335 0 obj +<< +/Title 1336 0 R +/A 1333 0 R +/Parent 1271 0 R +/Prev 1331 0 R +/Next 1339 0 R +>> +endobj +1331 0 obj +<< +/Title 1332 0 R +/A 1329 0 R +/Parent 1271 0 R +/Prev 1327 0 R +/Next 1335 0 R +>> +endobj +1327 0 obj +<< +/Title 1328 0 R +/A 1325 0 R +/Parent 1271 0 R +/Prev 1323 0 R +/Next 1331 0 R +>> +endobj +1323 0 obj +<< +/Title 1324 0 R +/A 1321 0 R +/Parent 1271 0 R +/Prev 1319 0 R +/Next 1327 0 R +>> +endobj +1319 0 obj +<< +/Title 1320 0 R +/A 1317 0 R +/Parent 1271 0 R +/Prev 1315 0 R +/Next 1323 0 R +>> +endobj +1315 0 obj +<< +/Title 1316 0 R +/A 1313 0 R +/Parent 1271 0 R +/Prev 1311 0 R +/Next 1319 0 R +>> +endobj +1311 0 obj +<< +/Title 1312 0 R +/A 1309 0 R +/Parent 1271 0 R +/Prev 1307 0 R +/Next 1315 0 R +>> +endobj +1307 0 obj +<< +/Title 1308 0 R +/A 1305 0 R +/Parent 1271 0 R +/Prev 1303 0 R +/Next 1311 0 R +>> +endobj +1303 0 obj +<< +/Title 1304 0 R +/A 1301 0 R +/Parent 1271 0 R +/Prev 1299 0 R +/Next 1307 0 R +>> +endobj +1299 0 obj +<< +/Title 1300 0 R +/A 1297 0 R +/Parent 1271 0 R +/Prev 1295 0 R +/Next 1303 0 R +>> +endobj +1295 0 obj +<< +/Title 1296 0 R +/A 1293 0 R +/Parent 1271 0 R +/Prev 1291 0 R +/Next 1299 0 R +>> +endobj +1291 0 obj +<< +/Title 1292 0 R +/A 1289 0 R +/Parent 1271 0 R +/Prev 1287 0 R +/Next 1295 0 R +>> +endobj +1287 0 obj +<< +/Title 1288 0 R +/A 1285 0 R +/Parent 1271 0 R +/Prev 1283 0 R +/Next 1291 0 R +>> +endobj +1283 0 obj +<< +/Title 1284 0 R +/A 1281 0 R +/Parent 1271 0 R +/Prev 1279 0 R +/Next 1287 0 R +>> +endobj +1279 0 obj +<< +/Title 1280 0 R +/A 1277 0 R +/Parent 1271 0 R +/Prev 1275 0 R +/Next 1283 0 R +>> +endobj +1275 0 obj +<< +/Title 1276 0 R +/A 1273 0 R +/Parent 1271 0 R +/Next 1279 0 R +>> +endobj +1271 0 obj +<< +/Title 1272 0 R +/A 1269 0 R +/Parent 1247 0 R +/Prev 1255 0 R +/First 1275 0 R +/Last 1447 0 R +/Count -44 +>> +endobj +1267 0 obj +<< +/Title 1268 0 R +/A 1265 0 R +/Parent 1255 0 R +/Prev 1263 0 R +>> +endobj +1263 0 obj +<< +/Title 1264 0 R +/A 1261 0 R +/Parent 1255 0 R +/Prev 1259 0 R +/Next 1267 0 R +>> +endobj +1259 0 obj +<< +/Title 1260 0 R +/A 1257 0 R +/Parent 1255 0 R +/Next 1263 0 R +>> +endobj +1255 0 obj +<< +/Title 1256 0 R +/A 1253 0 R +/Parent 1247 0 R +/Prev 1251 0 R +/Next 1271 0 R +/First 1259 0 R +/Last 1267 0 R +/Count -3 +>> +endobj +1251 0 obj +<< +/Title 1252 0 R +/A 1249 0 R +/Parent 1247 0 R +/Next 1255 0 R +>> +endobj +1247 0 obj +<< +/Title 1248 0 R +/A 1245 0 R +/Parent 287 0 R +/Prev 1059 0 R +/Next 1451 0 R +/First 1251 0 R +/Last 1271 0 R +/Count -3 +>> +endobj +1243 0 obj +<< +/Title 1244 0 R +/A 1241 0 R +/Parent 1067 0 R +/Prev 1239 0 R +>> +endobj +1239 0 obj +<< +/Title 1240 0 R +/A 1237 0 R +/Parent 1067 0 R +/Prev 1235 0 R +/Next 1243 0 R +>> +endobj +1235 0 obj +<< +/Title 1236 0 R +/A 1233 0 R +/Parent 1067 0 R +/Prev 1231 0 R +/Next 1239 0 R +>> +endobj +1231 0 obj +<< +/Title 1232 0 R +/A 1229 0 R +/Parent 1067 0 R +/Prev 1227 0 R +/Next 1235 0 R +>> +endobj +1227 0 obj +<< +/Title 1228 0 R +/A 1225 0 R +/Parent 1067 0 R +/Prev 1223 0 R +/Next 1231 0 R +>> +endobj +1223 0 obj +<< +/Title 1224 0 R +/A 1221 0 R +/Parent 1067 0 R +/Prev 1219 0 R +/Next 1227 0 R +>> +endobj +1219 0 obj +<< +/Title 1220 0 R +/A 1217 0 R +/Parent 1067 0 R +/Prev 1215 0 R +/Next 1223 0 R +>> +endobj +1215 0 obj +<< +/Title 1216 0 R +/A 1213 0 R +/Parent 1067 0 R +/Prev 1211 0 R +/Next 1219 0 R +>> +endobj +1211 0 obj +<< +/Title 1212 0 R +/A 1209 0 R +/Parent 1067 0 R +/Prev 1207 0 R +/Next 1215 0 R +>> +endobj +1207 0 obj +<< +/Title 1208 0 R +/A 1205 0 R +/Parent 1067 0 R +/Prev 1203 0 R +/Next 1211 0 R +>> +endobj +1203 0 obj +<< +/Title 1204 0 R +/A 1201 0 R +/Parent 1067 0 R +/Prev 1199 0 R +/Next 1207 0 R +>> +endobj +1199 0 obj +<< +/Title 1200 0 R +/A 1197 0 R +/Parent 1067 0 R +/Prev 1195 0 R +/Next 1203 0 R +>> +endobj +1195 0 obj +<< +/Title 1196 0 R +/A 1193 0 R +/Parent 1067 0 R +/Prev 1191 0 R +/Next 1199 0 R +>> +endobj +1191 0 obj +<< +/Title 1192 0 R +/A 1189 0 R +/Parent 1067 0 R +/Prev 1187 0 R +/Next 1195 0 R +>> +endobj +1187 0 obj +<< +/Title 1188 0 R +/A 1185 0 R +/Parent 1067 0 R +/Prev 1183 0 R +/Next 1191 0 R +>> +endobj +1183 0 obj +<< +/Title 1184 0 R +/A 1181 0 R +/Parent 1067 0 R +/Prev 1179 0 R +/Next 1187 0 R +>> +endobj +1179 0 obj +<< +/Title 1180 0 R +/A 1177 0 R +/Parent 1067 0 R +/Prev 1175 0 R +/Next 1183 0 R +>> +endobj +1175 0 obj +<< +/Title 1176 0 R +/A 1173 0 R +/Parent 1067 0 R +/Prev 1171 0 R +/Next 1179 0 R +>> +endobj +1171 0 obj +<< +/Title 1172 0 R +/A 1169 0 R +/Parent 1067 0 R +/Prev 1167 0 R +/Next 1175 0 R +>> +endobj +1167 0 obj +<< +/Title 1168 0 R +/A 1165 0 R +/Parent 1067 0 R +/Prev 1163 0 R +/Next 1171 0 R +>> +endobj +1163 0 obj +<< +/Title 1164 0 R +/A 1161 0 R +/Parent 1067 0 R +/Prev 1159 0 R +/Next 1167 0 R +>> +endobj +1159 0 obj +<< +/Title 1160 0 R +/A 1157 0 R +/Parent 1067 0 R +/Prev 1155 0 R +/Next 1163 0 R +>> +endobj +1155 0 obj +<< +/Title 1156 0 R +/A 1153 0 R +/Parent 1067 0 R +/Prev 1151 0 R +/Next 1159 0 R +>> +endobj +1151 0 obj +<< +/Title 1152 0 R +/A 1149 0 R +/Parent 1067 0 R +/Prev 1147 0 R +/Next 1155 0 R +>> +endobj +1147 0 obj +<< +/Title 1148 0 R +/A 1145 0 R +/Parent 1067 0 R +/Prev 1143 0 R +/Next 1151 0 R +>> +endobj +1143 0 obj +<< +/Title 1144 0 R +/A 1141 0 R +/Parent 1067 0 R +/Prev 1139 0 R +/Next 1147 0 R +>> +endobj +1139 0 obj +<< +/Title 1140 0 R +/A 1137 0 R +/Parent 1067 0 R +/Prev 1135 0 R +/Next 1143 0 R +>> +endobj +1135 0 obj +<< +/Title 1136 0 R +/A 1133 0 R +/Parent 1067 0 R +/Prev 1131 0 R +/Next 1139 0 R +>> +endobj +1131 0 obj +<< +/Title 1132 0 R +/A 1129 0 R +/Parent 1067 0 R +/Prev 1127 0 R +/Next 1135 0 R +>> +endobj +1127 0 obj +<< +/Title 1128 0 R +/A 1125 0 R +/Parent 1067 0 R +/Prev 1123 0 R +/Next 1131 0 R +>> +endobj +1123 0 obj +<< +/Title 1124 0 R +/A 1121 0 R +/Parent 1067 0 R +/Prev 1119 0 R +/Next 1127 0 R +>> +endobj +1119 0 obj +<< +/Title 1120 0 R +/A 1117 0 R +/Parent 1067 0 R +/Prev 1115 0 R +/Next 1123 0 R +>> +endobj +1115 0 obj +<< +/Title 1116 0 R +/A 1113 0 R +/Parent 1067 0 R +/Prev 1111 0 R +/Next 1119 0 R +>> +endobj +1111 0 obj +<< +/Title 1112 0 R +/A 1109 0 R +/Parent 1067 0 R +/Prev 1107 0 R +/Next 1115 0 R +>> +endobj +1107 0 obj +<< +/Title 1108 0 R +/A 1105 0 R +/Parent 1067 0 R +/Prev 1103 0 R +/Next 1111 0 R +>> +endobj +1103 0 obj +<< +/Title 1104 0 R +/A 1101 0 R +/Parent 1067 0 R +/Prev 1099 0 R +/Next 1107 0 R +>> +endobj +1099 0 obj +<< +/Title 1100 0 R +/A 1097 0 R +/Parent 1067 0 R +/Prev 1095 0 R +/Next 1103 0 R +>> +endobj +1095 0 obj +<< +/Title 1096 0 R +/A 1093 0 R +/Parent 1067 0 R +/Prev 1091 0 R +/Next 1099 0 R +>> +endobj +1091 0 obj +<< +/Title 1092 0 R +/A 1089 0 R +/Parent 1067 0 R +/Prev 1087 0 R +/Next 1095 0 R +>> +endobj +1087 0 obj +<< +/Title 1088 0 R +/A 1085 0 R +/Parent 1067 0 R +/Prev 1083 0 R +/Next 1091 0 R +>> +endobj +1083 0 obj +<< +/Title 1084 0 R +/A 1081 0 R +/Parent 1067 0 R +/Prev 1079 0 R +/Next 1087 0 R +>> +endobj +1079 0 obj +<< +/Title 1080 0 R +/A 1077 0 R +/Parent 1067 0 R +/Prev 1075 0 R +/Next 1083 0 R +>> +endobj +1075 0 obj +<< +/Title 1076 0 R +/A 1073 0 R +/Parent 1067 0 R +/Prev 1071 0 R +/Next 1079 0 R +>> +endobj +1071 0 obj +<< +/Title 1072 0 R +/A 1069 0 R +/Parent 1067 0 R +/Next 1075 0 R +>> +endobj +1067 0 obj +<< +/Title 1068 0 R +/A 1065 0 R +/Parent 1059 0 R +/Prev 1063 0 R +/First 1071 0 R +/Last 1243 0 R +/Count -44 +>> +endobj +1063 0 obj +<< +/Title 1064 0 R +/A 1061 0 R +/Parent 1059 0 R +/Next 1067 0 R +>> +endobj +1059 0 obj +<< +/Title 1060 0 R +/A 1057 0 R +/Parent 287 0 R +/Prev 1051 0 R +/Next 1247 0 R +/First 1063 0 R +/Last 1067 0 R +/Count -2 +>> +endobj +1055 0 obj +<< +/Title 1056 0 R +/A 1053 0 R +/Parent 1051 0 R +>> +endobj +1051 0 obj +<< +/Title 1052 0 R +/A 1049 0 R +/Parent 287 0 R +/Prev 1043 0 R +/Next 1059 0 R +/First 1055 0 R +/Last 1055 0 R +/Count -1 +>> +endobj +1047 0 obj +<< +/Title 1048 0 R +/A 1045 0 R +/Parent 1043 0 R +>> +endobj +1043 0 obj +<< +/Title 1044 0 R +/A 1041 0 R +/Parent 287 0 R +/Prev 1003 0 R +/Next 1051 0 R +/First 1047 0 R +/Last 1047 0 R +/Count -1 +>> +endobj +1039 0 obj +<< +/Title 1040 0 R +/A 1037 0 R +/Parent 1011 0 R +/Prev 1035 0 R +>> +endobj +1035 0 obj +<< +/Title 1036 0 R +/A 1033 0 R +/Parent 1011 0 R +/Prev 1031 0 R +/Next 1039 0 R +>> +endobj +1031 0 obj +<< +/Title 1032 0 R +/A 1029 0 R +/Parent 1011 0 R +/Prev 1027 0 R +/Next 1035 0 R +>> +endobj +1027 0 obj +<< +/Title 1028 0 R +/A 1025 0 R +/Parent 1011 0 R +/Prev 1023 0 R +/Next 1031 0 R +>> +endobj +1023 0 obj +<< +/Title 1024 0 R +/A 1021 0 R +/Parent 1011 0 R +/Prev 1019 0 R +/Next 1027 0 R +>> +endobj +1019 0 obj +<< +/Title 1020 0 R +/A 1017 0 R +/Parent 1011 0 R +/Prev 1015 0 R +/Next 1023 0 R +>> +endobj +1015 0 obj +<< +/Title 1016 0 R +/A 1013 0 R +/Parent 1011 0 R +/Next 1019 0 R +>> +endobj +1011 0 obj +<< +/Title 1012 0 R +/A 1009 0 R +/Parent 1003 0 R +/Prev 1007 0 R +/First 1015 0 R +/Last 1039 0 R +/Count -7 +>> +endobj +1007 0 obj +<< +/Title 1008 0 R +/A 1005 0 R +/Parent 1003 0 R +/Next 1011 0 R +>> +endobj +1003 0 obj +<< +/Title 1004 0 R +/A 1001 0 R +/Parent 287 0 R +/Prev 963 0 R +/Next 1043 0 R +/First 1007 0 R +/Last 1011 0 R +/Count -2 +>> +endobj +999 0 obj +<< +/Title 1000 0 R +/A 997 0 R +/Parent 971 0 R +/Prev 995 0 R +>> +endobj +995 0 obj +<< +/Title 996 0 R +/A 993 0 R +/Parent 971 0 R +/Prev 991 0 R +/Next 999 0 R +>> +endobj +991 0 obj +<< +/Title 992 0 R +/A 989 0 R +/Parent 971 0 R +/Prev 987 0 R +/Next 995 0 R +>> +endobj +987 0 obj +<< +/Title 988 0 R +/A 985 0 R +/Parent 971 0 R +/Prev 983 0 R +/Next 991 0 R +>> +endobj +983 0 obj +<< +/Title 984 0 R +/A 981 0 R +/Parent 971 0 R +/Prev 979 0 R +/Next 987 0 R +>> +endobj +979 0 obj +<< +/Title 980 0 R +/A 977 0 R +/Parent 971 0 R +/Prev 975 0 R +/Next 983 0 R +>> +endobj +975 0 obj +<< +/Title 976 0 R +/A 973 0 R +/Parent 971 0 R +/Next 979 0 R +>> +endobj +971 0 obj +<< +/Title 972 0 R +/A 969 0 R +/Parent 963 0 R +/Prev 967 0 R +/First 975 0 R +/Last 999 0 R +/Count -7 +>> +endobj +967 0 obj +<< +/Title 968 0 R +/A 965 0 R +/Parent 963 0 R +/Next 971 0 R +>> +endobj +963 0 obj +<< +/Title 964 0 R +/A 961 0 R +/Parent 287 0 R +/Prev 935 0 R +/Next 1003 0 R +/First 967 0 R +/Last 971 0 R +/Count -2 +>> +endobj +959 0 obj +<< +/Title 960 0 R +/A 957 0 R +/Parent 943 0 R +/Prev 955 0 R +>> +endobj +955 0 obj +<< +/Title 956 0 R +/A 953 0 R +/Parent 943 0 R +/Prev 951 0 R +/Next 959 0 R +>> +endobj +951 0 obj +<< +/Title 952 0 R +/A 949 0 R +/Parent 943 0 R +/Prev 947 0 R +/Next 955 0 R +>> +endobj +947 0 obj +<< +/Title 948 0 R +/A 945 0 R +/Parent 943 0 R +/Next 951 0 R +>> +endobj +943 0 obj +<< +/Title 944 0 R +/A 941 0 R +/Parent 935 0 R +/Prev 939 0 R +/First 947 0 R +/Last 959 0 R +/Count -4 +>> +endobj +939 0 obj +<< +/Title 940 0 R +/A 937 0 R +/Parent 935 0 R +/Next 943 0 R +>> +endobj +935 0 obj +<< +/Title 936 0 R +/A 933 0 R +/Parent 287 0 R +/Prev 907 0 R +/Next 963 0 R +/First 939 0 R +/Last 943 0 R +/Count -2 +>> +endobj +931 0 obj +<< +/Title 932 0 R +/A 929 0 R +/Parent 915 0 R +/Prev 927 0 R +>> +endobj +927 0 obj +<< +/Title 928 0 R +/A 925 0 R +/Parent 915 0 R +/Prev 923 0 R +/Next 931 0 R +>> +endobj +923 0 obj +<< +/Title 924 0 R +/A 921 0 R +/Parent 915 0 R +/Prev 919 0 R +/Next 927 0 R +>> +endobj +919 0 obj +<< +/Title 920 0 R +/A 917 0 R +/Parent 915 0 R +/Next 923 0 R +>> +endobj +915 0 obj +<< +/Title 916 0 R +/A 913 0 R +/Parent 907 0 R +/Prev 911 0 R +/First 919 0 R +/Last 931 0 R +/Count -4 +>> +endobj +911 0 obj +<< +/Title 912 0 R +/A 909 0 R +/Parent 907 0 R +/Next 915 0 R +>> +endobj +907 0 obj +<< +/Title 908 0 R +/A 905 0 R +/Parent 287 0 R +/Prev 891 0 R +/Next 935 0 R +/First 911 0 R +/Last 915 0 R +/Count -2 +>> +endobj +903 0 obj +<< +/Title 904 0 R +/A 901 0 R +/Parent 899 0 R +>> +endobj +899 0 obj +<< +/Title 900 0 R +/A 897 0 R +/Parent 891 0 R +/Prev 895 0 R +/First 903 0 R +/Last 903 0 R +/Count -1 +>> +endobj +895 0 obj +<< +/Title 896 0 R +/A 893 0 R +/Parent 891 0 R +/Next 899 0 R +>> +endobj +891 0 obj +<< +/Title 892 0 R +/A 889 0 R +/Parent 287 0 R +/Prev 875 0 R +/Next 907 0 R +/First 895 0 R +/Last 899 0 R +/Count -2 +>> +endobj +887 0 obj +<< +/Title 888 0 R +/A 885 0 R +/Parent 883 0 R +>> +endobj +883 0 obj +<< +/Title 884 0 R +/A 881 0 R +/Parent 875 0 R +/Prev 879 0 R +/First 887 0 R +/Last 887 0 R +/Count -1 +>> +endobj +879 0 obj +<< +/Title 880 0 R +/A 877 0 R +/Parent 875 0 R +/Next 883 0 R +>> +endobj +875 0 obj +<< +/Title 876 0 R +/A 873 0 R +/Parent 287 0 R +/Prev 867 0 R +/Next 891 0 R +/First 879 0 R +/Last 883 0 R +/Count -2 +>> +endobj +871 0 obj +<< +/Title 872 0 R +/A 869 0 R +/Parent 867 0 R +>> +endobj +867 0 obj +<< +/Title 868 0 R +/A 865 0 R +/Parent 287 0 R +/Prev 859 0 R +/Next 875 0 R +/First 871 0 R +/Last 871 0 R +/Count -1 +>> +endobj +863 0 obj +<< +/Title 864 0 R +/A 861 0 R +/Parent 859 0 R +>> +endobj +859 0 obj +<< +/Title 860 0 R +/A 857 0 R +/Parent 287 0 R +/Prev 843 0 R +/Next 867 0 R +/First 863 0 R +/Last 863 0 R +/Count -1 +>> +endobj +855 0 obj +<< +/Title 856 0 R +/A 853 0 R +/Parent 851 0 R +>> +endobj +851 0 obj +<< +/Title 852 0 R +/A 849 0 R +/Parent 843 0 R +/Prev 847 0 R +/First 855 0 R +/Last 855 0 R +/Count -1 +>> +endobj +847 0 obj +<< +/Title 848 0 R +/A 845 0 R +/Parent 843 0 R +/Next 851 0 R +>> +endobj +843 0 obj +<< +/Title 844 0 R +/A 841 0 R +/Parent 287 0 R +/Prev 827 0 R +/Next 859 0 R +/First 847 0 R +/Last 851 0 R +/Count -2 +>> +endobj +839 0 obj +<< +/Title 840 0 R +/A 837 0 R +/Parent 835 0 R +>> +endobj +835 0 obj +<< +/Title 836 0 R +/A 833 0 R +/Parent 827 0 R +/Prev 831 0 R +/First 839 0 R +/Last 839 0 R +/Count -1 +>> +endobj +831 0 obj +<< +/Title 832 0 R +/A 829 0 R +/Parent 827 0 R +/Next 835 0 R +>> +endobj +827 0 obj +<< +/Title 828 0 R +/A 825 0 R +/Parent 287 0 R +/Prev 799 0 R +/Next 843 0 R +/First 831 0 R +/Last 835 0 R +/Count -2 +>> +endobj +823 0 obj +<< +/Title 824 0 R +/A 821 0 R +/Parent 807 0 R +/Prev 819 0 R +>> +endobj +819 0 obj +<< +/Title 820 0 R +/A 817 0 R +/Parent 807 0 R +/Prev 815 0 R +/Next 823 0 R +>> +endobj +815 0 obj +<< +/Title 816 0 R +/A 813 0 R +/Parent 807 0 R +/Prev 811 0 R +/Next 819 0 R +>> +endobj +811 0 obj +<< +/Title 812 0 R +/A 809 0 R +/Parent 807 0 R +/Next 815 0 R +>> +endobj +807 0 obj +<< +/Title 808 0 R +/A 805 0 R +/Parent 799 0 R +/Prev 803 0 R +/First 811 0 R +/Last 823 0 R +/Count -4 +>> +endobj +803 0 obj +<< +/Title 804 0 R +/A 801 0 R +/Parent 799 0 R +/Next 807 0 R +>> +endobj +799 0 obj +<< +/Title 800 0 R +/A 797 0 R +/Parent 287 0 R +/Prev 771 0 R +/Next 827 0 R +/First 803 0 R +/Last 807 0 R +/Count -2 +>> +endobj +795 0 obj +<< +/Title 796 0 R +/A 793 0 R +/Parent 779 0 R +/Prev 791 0 R +>> +endobj +791 0 obj +<< +/Title 792 0 R +/A 789 0 R +/Parent 779 0 R +/Prev 787 0 R +/Next 795 0 R +>> +endobj +787 0 obj +<< +/Title 788 0 R +/A 785 0 R +/Parent 779 0 R +/Prev 783 0 R +/Next 791 0 R +>> +endobj +783 0 obj +<< +/Title 784 0 R +/A 781 0 R +/Parent 779 0 R +/Next 787 0 R +>> +endobj +779 0 obj +<< +/Title 780 0 R +/A 777 0 R +/Parent 771 0 R +/Prev 775 0 R +/First 783 0 R +/Last 795 0 R +/Count -4 +>> +endobj +775 0 obj +<< +/Title 776 0 R +/A 773 0 R +/Parent 771 0 R +/Next 779 0 R +>> +endobj +771 0 obj +<< +/Title 772 0 R +/A 769 0 R +/Parent 287 0 R +/Prev 755 0 R +/Next 799 0 R +/First 775 0 R +/Last 779 0 R +/Count -2 +>> +endobj +767 0 obj +<< +/Title 768 0 R +/A 765 0 R +/Parent 763 0 R +>> +endobj +763 0 obj +<< +/Title 764 0 R +/A 761 0 R +/Parent 755 0 R +/Prev 759 0 R +/First 767 0 R +/Last 767 0 R +/Count -1 +>> +endobj +759 0 obj +<< +/Title 760 0 R +/A 757 0 R +/Parent 755 0 R +/Next 763 0 R +>> +endobj +755 0 obj +<< +/Title 756 0 R +/A 753 0 R +/Parent 287 0 R +/Prev 739 0 R +/Next 771 0 R +/First 759 0 R +/Last 763 0 R +/Count -2 +>> +endobj +751 0 obj +<< +/Title 752 0 R +/A 749 0 R +/Parent 747 0 R +>> +endobj +747 0 obj +<< +/Title 748 0 R +/A 745 0 R +/Parent 739 0 R +/Prev 743 0 R +/First 751 0 R +/Last 751 0 R +/Count -1 +>> +endobj +743 0 obj +<< +/Title 744 0 R +/A 741 0 R +/Parent 739 0 R +/Next 747 0 R +>> +endobj +739 0 obj +<< +/Title 740 0 R +/A 737 0 R +/Parent 287 0 R +/Prev 719 0 R +/Next 755 0 R +/First 743 0 R +/Last 747 0 R +/Count -2 +>> +endobj +735 0 obj +<< +/Title 736 0 R +/A 733 0 R +/Parent 727 0 R +/Prev 731 0 R +>> +endobj +731 0 obj +<< +/Title 732 0 R +/A 729 0 R +/Parent 727 0 R +/Next 735 0 R +>> +endobj +727 0 obj +<< +/Title 728 0 R +/A 725 0 R +/Parent 719 0 R +/Prev 723 0 R +/First 731 0 R +/Last 735 0 R +/Count -2 +>> +endobj +723 0 obj +<< +/Title 724 0 R +/A 721 0 R +/Parent 719 0 R +/Next 727 0 R +>> +endobj +719 0 obj +<< +/Title 720 0 R +/A 717 0 R +/Parent 287 0 R +/Prev 695 0 R +/Next 739 0 R +/First 723 0 R +/Last 727 0 R +/Count -2 +>> +endobj +715 0 obj +<< +/Title 716 0 R +/A 713 0 R +/Parent 703 0 R +/Prev 711 0 R +>> +endobj +711 0 obj +<< +/Title 712 0 R +/A 709 0 R +/Parent 703 0 R +/Prev 707 0 R +/Next 715 0 R +>> +endobj +707 0 obj +<< +/Title 708 0 R +/A 705 0 R +/Parent 703 0 R +/Next 711 0 R +>> +endobj +703 0 obj +<< +/Title 704 0 R +/A 701 0 R +/Parent 695 0 R +/Prev 699 0 R +/First 707 0 R +/Last 715 0 R +/Count -3 +>> +endobj +699 0 obj +<< +/Title 700 0 R +/A 697 0 R +/Parent 695 0 R +/Next 703 0 R +>> +endobj +695 0 obj +<< +/Title 696 0 R +/A 693 0 R +/Parent 287 0 R +/Prev 687 0 R +/Next 719 0 R +/First 699 0 R +/Last 703 0 R +/Count -2 +>> +endobj +691 0 obj +<< +/Title 692 0 R +/A 689 0 R +/Parent 687 0 R +>> +endobj +687 0 obj +<< +/Title 688 0 R +/A 685 0 R +/Parent 287 0 R +/Prev 679 0 R +/Next 695 0 R +/First 691 0 R +/Last 691 0 R +/Count -1 +>> +endobj +683 0 obj +<< +/Title 684 0 R +/A 681 0 R +/Parent 679 0 R +>> +endobj +679 0 obj +<< +/Title 680 0 R +/A 677 0 R +/Parent 287 0 R +/Prev 671 0 R +/Next 687 0 R +/First 683 0 R +/Last 683 0 R +/Count -1 +>> +endobj +675 0 obj +<< +/Title 676 0 R +/A 673 0 R +/Parent 671 0 R +>> +endobj +671 0 obj +<< +/Title 672 0 R +/A 669 0 R +/Parent 287 0 R +/Prev 663 0 R +/Next 679 0 R +/First 675 0 R +/Last 675 0 R +/Count -1 +>> +endobj +667 0 obj +<< +/Title 668 0 R +/A 665 0 R +/Parent 663 0 R +>> +endobj +663 0 obj +<< +/Title 664 0 R +/A 661 0 R +/Parent 287 0 R +/Prev 655 0 R +/Next 671 0 R +/First 667 0 R +/Last 667 0 R +/Count -1 +>> +endobj +659 0 obj +<< +/Title 660 0 R +/A 657 0 R +/Parent 655 0 R +>> +endobj +655 0 obj +<< +/Title 656 0 R +/A 653 0 R +/Parent 287 0 R +/Prev 619 0 R +/Next 663 0 R +/First 659 0 R +/Last 659 0 R +/Count -1 +>> +endobj +651 0 obj +<< +/Title 652 0 R +/A 649 0 R +/Parent 627 0 R +/Prev 647 0 R +>> +endobj +647 0 obj +<< +/Title 648 0 R +/A 645 0 R +/Parent 627 0 R +/Prev 643 0 R +/Next 651 0 R +>> +endobj +643 0 obj +<< +/Title 644 0 R +/A 641 0 R +/Parent 627 0 R +/Prev 639 0 R +/Next 647 0 R +>> +endobj +639 0 obj +<< +/Title 640 0 R +/A 637 0 R +/Parent 627 0 R +/Prev 635 0 R +/Next 643 0 R +>> +endobj +635 0 obj +<< +/Title 636 0 R +/A 633 0 R +/Parent 627 0 R +/Prev 631 0 R +/Next 639 0 R +>> +endobj +631 0 obj +<< +/Title 632 0 R +/A 629 0 R +/Parent 627 0 R +/Next 635 0 R +>> +endobj +627 0 obj +<< +/Title 628 0 R +/A 625 0 R +/Parent 619 0 R +/Prev 623 0 R +/First 631 0 R +/Last 651 0 R +/Count -6 +>> +endobj +623 0 obj +<< +/Title 624 0 R +/A 621 0 R +/Parent 619 0 R +/Next 627 0 R +>> +endobj +619 0 obj +<< +/Title 620 0 R +/A 617 0 R +/Parent 287 0 R +/Prev 595 0 R +/Next 655 0 R +/First 623 0 R +/Last 627 0 R +/Count -2 +>> +endobj +615 0 obj +<< +/Title 616 0 R +/A 613 0 R +/Parent 611 0 R +>> +endobj +611 0 obj +<< +/Title 612 0 R +/A 609 0 R +/Parent 595 0 R +/Prev 603 0 R +/First 615 0 R +/Last 615 0 R +/Count -1 +>> +endobj +607 0 obj +<< +/Title 608 0 R +/A 605 0 R +/Parent 603 0 R +>> +endobj +603 0 obj +<< +/Title 604 0 R +/A 601 0 R +/Parent 595 0 R +/Prev 599 0 R +/Next 611 0 R +/First 607 0 R +/Last 607 0 R +/Count -1 +>> +endobj +599 0 obj +<< +/Title 600 0 R +/A 597 0 R +/Parent 595 0 R +/Next 603 0 R +>> +endobj +595 0 obj +<< +/Title 596 0 R +/A 593 0 R +/Parent 287 0 R +/Prev 579 0 R +/Next 619 0 R +/First 599 0 R +/Last 611 0 R +/Count -3 +>> +endobj +591 0 obj +<< +/Title 592 0 R +/A 589 0 R +/Parent 587 0 R +>> +endobj +587 0 obj +<< +/Title 588 0 R +/A 585 0 R +/Parent 579 0 R +/Prev 583 0 R +/First 591 0 R +/Last 591 0 R +/Count -1 +>> +endobj +583 0 obj +<< +/Title 584 0 R +/A 581 0 R +/Parent 579 0 R +/Next 587 0 R +>> +endobj +579 0 obj +<< +/Title 580 0 R +/A 577 0 R +/Parent 287 0 R +/Prev 563 0 R +/Next 595 0 R +/First 583 0 R +/Last 587 0 R +/Count -2 +>> +endobj +575 0 obj +<< +/Title 576 0 R +/A 573 0 R +/Parent 571 0 R +>> +endobj +571 0 obj +<< +/Title 572 0 R +/A 569 0 R +/Parent 563 0 R +/Prev 567 0 R +/First 575 0 R +/Last 575 0 R +/Count -1 +>> +endobj +567 0 obj +<< +/Title 568 0 R +/A 565 0 R +/Parent 563 0 R +/Next 571 0 R +>> +endobj +563 0 obj +<< +/Title 564 0 R +/A 561 0 R +/Parent 287 0 R +/Prev 547 0 R +/Next 579 0 R +/First 567 0 R +/Last 571 0 R +/Count -2 +>> +endobj +559 0 obj +<< +/Title 560 0 R +/A 557 0 R +/Parent 555 0 R +>> +endobj +555 0 obj +<< +/Title 556 0 R +/A 553 0 R +/Parent 547 0 R +/Prev 551 0 R +/First 559 0 R +/Last 559 0 R +/Count -1 +>> +endobj +551 0 obj +<< +/Title 552 0 R +/A 549 0 R +/Parent 547 0 R +/Next 555 0 R +>> +endobj +547 0 obj +<< +/Title 548 0 R +/A 545 0 R +/Parent 287 0 R +/Prev 531 0 R +/Next 563 0 R +/First 551 0 R +/Last 555 0 R +/Count -2 +>> +endobj +543 0 obj +<< +/Title 544 0 R +/A 541 0 R +/Parent 539 0 R +>> +endobj +539 0 obj +<< +/Title 540 0 R +/A 537 0 R +/Parent 531 0 R +/Prev 535 0 R +/First 543 0 R +/Last 543 0 R +/Count -1 +>> +endobj +535 0 obj +<< +/Title 536 0 R +/A 533 0 R +/Parent 531 0 R +/Next 539 0 R +>> +endobj +531 0 obj +<< +/Title 532 0 R +/A 529 0 R +/Parent 287 0 R +/Prev 515 0 R +/Next 547 0 R +/First 535 0 R +/Last 539 0 R +/Count -2 +>> +endobj +527 0 obj +<< +/Title 528 0 R +/A 525 0 R +/Parent 523 0 R +>> +endobj +523 0 obj +<< +/Title 524 0 R +/A 521 0 R +/Parent 515 0 R +/Prev 519 0 R +/First 527 0 R +/Last 527 0 R +/Count -1 +>> +endobj +519 0 obj +<< +/Title 520 0 R +/A 517 0 R +/Parent 515 0 R +/Next 523 0 R +>> +endobj +515 0 obj +<< +/Title 516 0 R +/A 513 0 R +/Parent 287 0 R +/Prev 495 0 R +/Next 531 0 R +/First 519 0 R +/Last 523 0 R +/Count -2 +>> +endobj +511 0 obj +<< +/Title 512 0 R +/A 509 0 R +/Parent 503 0 R +/Prev 507 0 R +>> +endobj +507 0 obj +<< +/Title 508 0 R +/A 505 0 R +/Parent 503 0 R +/Next 511 0 R +>> +endobj +503 0 obj +<< +/Title 504 0 R +/A 501 0 R +/Parent 495 0 R +/Prev 499 0 R +/First 507 0 R +/Last 511 0 R +/Count -2 +>> +endobj +499 0 obj +<< +/Title 500 0 R +/A 497 0 R +/Parent 495 0 R +/Next 503 0 R +>> +endobj +495 0 obj +<< +/Title 496 0 R +/A 493 0 R +/Parent 287 0 R +/Prev 475 0 R +/Next 515 0 R +/First 499 0 R +/Last 503 0 R +/Count -2 +>> +endobj +491 0 obj +<< +/Title 492 0 R +/A 489 0 R +/Parent 483 0 R +/Prev 487 0 R +>> +endobj +487 0 obj +<< +/Title 488 0 R +/A 485 0 R +/Parent 483 0 R +/Next 491 0 R +>> +endobj +483 0 obj +<< +/Title 484 0 R +/A 481 0 R +/Parent 475 0 R +/Prev 479 0 R +/First 487 0 R +/Last 491 0 R +/Count -2 +>> +endobj +479 0 obj +<< +/Title 480 0 R +/A 477 0 R +/Parent 475 0 R +/Next 483 0 R +>> +endobj +475 0 obj +<< +/Title 476 0 R +/A 473 0 R +/Parent 287 0 R +/Prev 447 0 R +/Next 495 0 R +/First 479 0 R +/Last 483 0 R +/Count -2 +>> +endobj +471 0 obj +<< +/Title 472 0 R +/A 469 0 R +/Parent 455 0 R +/Prev 467 0 R +>> +endobj +467 0 obj +<< +/Title 468 0 R +/A 465 0 R +/Parent 455 0 R +/Prev 463 0 R +/Next 471 0 R +>> +endobj +463 0 obj +<< +/Title 464 0 R +/A 461 0 R +/Parent 455 0 R +/Prev 459 0 R +/Next 467 0 R +>> +endobj +459 0 obj +<< +/Title 460 0 R +/A 457 0 R +/Parent 455 0 R +/Next 463 0 R +>> +endobj +455 0 obj +<< +/Title 456 0 R +/A 453 0 R +/Parent 447 0 R +/Prev 451 0 R +/First 459 0 R +/Last 471 0 R +/Count -4 +>> +endobj +451 0 obj +<< +/Title 452 0 R +/A 449 0 R +/Parent 447 0 R +/Next 455 0 R +>> +endobj +447 0 obj +<< +/Title 448 0 R +/A 445 0 R +/Parent 287 0 R +/Prev 419 0 R +/Next 475 0 R +/First 451 0 R +/Last 455 0 R +/Count -2 +>> +endobj +443 0 obj +<< +/Title 444 0 R +/A 441 0 R +/Parent 427 0 R +/Prev 439 0 R +>> +endobj +439 0 obj +<< +/Title 440 0 R +/A 437 0 R +/Parent 427 0 R +/Prev 435 0 R +/Next 443 0 R +>> +endobj +435 0 obj +<< +/Title 436 0 R +/A 433 0 R +/Parent 427 0 R +/Prev 431 0 R +/Next 439 0 R +>> +endobj +431 0 obj +<< +/Title 432 0 R +/A 429 0 R +/Parent 427 0 R +/Next 435 0 R +>> +endobj +427 0 obj +<< +/Title 428 0 R +/A 425 0 R +/Parent 419 0 R +/Prev 423 0 R +/First 431 0 R +/Last 443 0 R +/Count -4 +>> +endobj +423 0 obj +<< +/Title 424 0 R +/A 421 0 R +/Parent 419 0 R +/Next 427 0 R +>> +endobj +419 0 obj +<< +/Title 420 0 R +/A 417 0 R +/Parent 287 0 R +/Prev 399 0 R +/Next 447 0 R +/First 423 0 R +/Last 427 0 R +/Count -2 +>> +endobj +415 0 obj +<< +/Title 416 0 R +/A 413 0 R +/Parent 407 0 R +/Prev 411 0 R +>> +endobj +411 0 obj +<< +/Title 412 0 R +/A 409 0 R +/Parent 407 0 R +/Next 415 0 R +>> +endobj +407 0 obj +<< +/Title 408 0 R +/A 405 0 R +/Parent 399 0 R +/Prev 403 0 R +/First 411 0 R +/Last 415 0 R +/Count -2 +>> +endobj +403 0 obj +<< +/Title 404 0 R +/A 401 0 R +/Parent 399 0 R +/Next 407 0 R +>> +endobj +399 0 obj +<< +/Title 400 0 R +/A 397 0 R +/Parent 287 0 R +/Prev 379 0 R +/Next 419 0 R +/First 403 0 R +/Last 407 0 R +/Count -2 +>> +endobj +395 0 obj +<< +/Title 396 0 R +/A 393 0 R +/Parent 387 0 R +/Prev 391 0 R +>> +endobj +391 0 obj +<< +/Title 392 0 R +/A 389 0 R +/Parent 387 0 R +/Next 395 0 R +>> +endobj +387 0 obj +<< +/Title 388 0 R +/A 385 0 R +/Parent 379 0 R +/Prev 383 0 R +/First 391 0 R +/Last 395 0 R +/Count -2 +>> +endobj +383 0 obj +<< +/Title 384 0 R +/A 381 0 R +/Parent 379 0 R +/Next 387 0 R +>> +endobj +379 0 obj +<< +/Title 380 0 R +/A 377 0 R +/Parent 287 0 R +/Prev 355 0 R +/Next 399 0 R +/First 383 0 R +/Last 387 0 R +/Count -2 +>> +endobj +375 0 obj +<< +/Title 376 0 R +/A 373 0 R +/Parent 363 0 R +/Prev 371 0 R +>> +endobj +371 0 obj +<< +/Title 372 0 R +/A 369 0 R +/Parent 363 0 R +/Prev 367 0 R +/Next 375 0 R +>> +endobj +367 0 obj +<< +/Title 368 0 R +/A 365 0 R +/Parent 363 0 R +/Next 371 0 R +>> +endobj +363 0 obj +<< +/Title 364 0 R +/A 361 0 R +/Parent 355 0 R +/Prev 359 0 R +/First 367 0 R +/Last 375 0 R +/Count -3 +>> +endobj +359 0 obj +<< +/Title 360 0 R +/A 357 0 R +/Parent 355 0 R +/Next 363 0 R +>> +endobj +355 0 obj +<< +/Title 356 0 R +/A 353 0 R +/Parent 287 0 R +/Prev 331 0 R +/Next 379 0 R +/First 359 0 R +/Last 363 0 R +/Count -2 +>> +endobj +351 0 obj +<< +/Title 352 0 R +/A 349 0 R +/Parent 339 0 R +/Prev 347 0 R +>> +endobj +347 0 obj +<< +/Title 348 0 R +/A 345 0 R +/Parent 339 0 R +/Prev 343 0 R +/Next 351 0 R +>> +endobj +343 0 obj +<< +/Title 344 0 R +/A 341 0 R +/Parent 339 0 R +/Next 347 0 R +>> +endobj +339 0 obj +<< +/Title 340 0 R +/A 337 0 R +/Parent 331 0 R +/Prev 335 0 R +/First 343 0 R +/Last 351 0 R +/Count -3 +>> +endobj +335 0 obj +<< +/Title 336 0 R +/A 333 0 R +/Parent 331 0 R +/Next 339 0 R +>> +endobj +331 0 obj +<< +/Title 332 0 R +/A 329 0 R +/Parent 287 0 R +/Prev 311 0 R +/Next 355 0 R +/First 335 0 R +/Last 339 0 R +/Count -2 +>> +endobj +327 0 obj +<< +/Title 328 0 R +/A 325 0 R +/Parent 319 0 R +/Prev 323 0 R +>> +endobj +323 0 obj +<< +/Title 324 0 R +/A 321 0 R +/Parent 319 0 R +/Next 327 0 R +>> +endobj +319 0 obj +<< +/Title 320 0 R +/A 317 0 R +/Parent 311 0 R +/Prev 315 0 R +/First 323 0 R +/Last 327 0 R +/Count -2 +>> +endobj +315 0 obj +<< +/Title 316 0 R +/A 313 0 R +/Parent 311 0 R +/Next 319 0 R +>> +endobj +311 0 obj +<< +/Title 312 0 R +/A 309 0 R +/Parent 287 0 R +/Prev 291 0 R +/Next 331 0 R +/First 315 0 R +/Last 319 0 R +/Count -2 +>> +endobj +307 0 obj +<< +/Title 308 0 R +/A 305 0 R +/Parent 299 0 R +/Prev 303 0 R +>> +endobj +303 0 obj +<< +/Title 304 0 R +/A 301 0 R +/Parent 299 0 R +/Next 307 0 R +>> +endobj +299 0 obj +<< +/Title 300 0 R +/A 297 0 R +/Parent 291 0 R +/Prev 295 0 R +/First 303 0 R +/Last 307 0 R +/Count -2 +>> +endobj +295 0 obj +<< +/Title 296 0 R +/A 293 0 R +/Parent 291 0 R +/Next 299 0 R +>> +endobj +291 0 obj +<< +/Title 292 0 R +/A 289 0 R +/Parent 287 0 R +/Next 311 0 R +/First 295 0 R +/Last 299 0 R +/Count -2 +>> +endobj +287 0 obj +<< +/Title 288 0 R +/A 285 0 R +/Parent 8950 0 R +/Prev 275 0 R +/First 291 0 R +/Last 2667 0 R +/Count -95 +>> +endobj +283 0 obj +<< +/Title 284 0 R +/A 281 0 R +/Parent 279 0 R +>> +endobj +279 0 obj +<< +/Title 280 0 R +/A 277 0 R +/Parent 275 0 R +/First 283 0 R +/Last 283 0 R +/Count -1 +>> +endobj +275 0 obj +<< +/Title 276 0 R +/A 273 0 R +/Parent 8950 0 R +/Prev 143 0 R +/Next 287 0 R +/First 279 0 R +/Last 279 0 R +/Count -1 +>> +endobj +271 0 obj +<< +/Title 272 0 R +/A 269 0 R +/Parent 267 0 R +>> +endobj +267 0 obj +<< +/Title 268 0 R +/A 265 0 R +/Parent 143 0 R +/Prev 259 0 R +/First 271 0 R +/Last 271 0 R +/Count -1 +>> +endobj +263 0 obj +<< +/Title 264 0 R +/A 261 0 R +/Parent 259 0 R +>> +endobj +259 0 obj +<< +/Title 260 0 R +/A 257 0 R +/Parent 143 0 R +/Prev 251 0 R +/Next 267 0 R +/First 263 0 R +/Last 263 0 R +/Count -1 +>> +endobj +255 0 obj +<< +/Title 256 0 R +/A 253 0 R +/Parent 251 0 R +>> +endobj +251 0 obj +<< +/Title 252 0 R +/A 249 0 R +/Parent 143 0 R +/Prev 243 0 R +/Next 259 0 R +/First 255 0 R +/Last 255 0 R +/Count -1 +>> +endobj +247 0 obj +<< +/Title 248 0 R +/A 245 0 R +/Parent 243 0 R +>> +endobj +243 0 obj +<< +/Title 244 0 R +/A 241 0 R +/Parent 143 0 R +/Prev 235 0 R +/Next 251 0 R +/First 247 0 R +/Last 247 0 R +/Count -1 +>> +endobj +239 0 obj +<< +/Title 240 0 R +/A 237 0 R +/Parent 235 0 R +>> +endobj +235 0 obj +<< +/Title 236 0 R +/A 233 0 R +/Parent 143 0 R +/Prev 227 0 R +/Next 243 0 R +/First 239 0 R +/Last 239 0 R +/Count -1 +>> +endobj +231 0 obj +<< +/Title 232 0 R +/A 229 0 R +/Parent 227 0 R +>> +endobj +227 0 obj +<< +/Title 228 0 R +/A 225 0 R +/Parent 143 0 R +/Prev 219 0 R +/Next 235 0 R +/First 231 0 R +/Last 231 0 R +/Count -1 +>> +endobj +223 0 obj +<< +/Title 224 0 R +/A 221 0 R +/Parent 219 0 R +>> +endobj +219 0 obj +<< +/Title 220 0 R +/A 217 0 R +/Parent 143 0 R +/Prev 211 0 R +/Next 227 0 R +/First 223 0 R +/Last 223 0 R +/Count -1 +>> +endobj +215 0 obj +<< +/Title 216 0 R +/A 213 0 R +/Parent 211 0 R +>> +endobj +211 0 obj +<< +/Title 212 0 R +/A 209 0 R +/Parent 143 0 R +/Prev 203 0 R +/Next 219 0 R +/First 215 0 R +/Last 215 0 R +/Count -1 +>> +endobj +207 0 obj +<< +/Title 208 0 R +/A 205 0 R +/Parent 203 0 R +>> +endobj +203 0 obj +<< +/Title 204 0 R +/A 201 0 R +/Parent 143 0 R +/Prev 195 0 R +/Next 211 0 R +/First 207 0 R +/Last 207 0 R +/Count -1 +>> +endobj +199 0 obj +<< +/Title 200 0 R +/A 197 0 R +/Parent 195 0 R +>> +endobj +195 0 obj +<< +/Title 196 0 R +/A 193 0 R +/Parent 143 0 R +/Prev 187 0 R +/Next 203 0 R +/First 199 0 R +/Last 199 0 R +/Count -1 +>> +endobj +191 0 obj +<< +/Title 192 0 R +/A 189 0 R +/Parent 187 0 R +>> +endobj +187 0 obj +<< +/Title 188 0 R +/A 185 0 R +/Parent 143 0 R +/Prev 179 0 R +/Next 195 0 R +/First 191 0 R +/Last 191 0 R +/Count -1 +>> +endobj +183 0 obj +<< +/Title 184 0 R +/A 181 0 R +/Parent 179 0 R +>> +endobj +179 0 obj +<< +/Title 180 0 R +/A 177 0 R +/Parent 143 0 R +/Prev 171 0 R +/Next 187 0 R +/First 183 0 R +/Last 183 0 R +/Count -1 +>> +endobj +175 0 obj +<< +/Title 176 0 R +/A 173 0 R +/Parent 171 0 R +>> +endobj +171 0 obj +<< +/Title 172 0 R +/A 169 0 R +/Parent 143 0 R +/Prev 163 0 R +/Next 179 0 R +/First 175 0 R +/Last 175 0 R +/Count -1 +>> +endobj +167 0 obj +<< +/Title 168 0 R +/A 165 0 R +/Parent 163 0 R +>> +endobj +163 0 obj +<< +/Title 164 0 R +/A 161 0 R +/Parent 143 0 R +/Prev 155 0 R +/Next 171 0 R +/First 167 0 R +/Last 167 0 R +/Count -1 +>> +endobj +159 0 obj +<< +/Title 160 0 R +/A 157 0 R +/Parent 155 0 R +>> +endobj +155 0 obj +<< +/Title 156 0 R +/A 153 0 R +/Parent 143 0 R +/Prev 147 0 R +/Next 163 0 R +/First 159 0 R +/Last 159 0 R +/Count -1 +>> +endobj +151 0 obj +<< +/Title 152 0 R +/A 149 0 R +/Parent 147 0 R +>> +endobj +147 0 obj +<< +/Title 148 0 R +/A 145 0 R +/Parent 143 0 R +/Next 155 0 R +/First 151 0 R +/Last 151 0 R +/Count -1 +>> +endobj +143 0 obj +<< +/Title 144 0 R +/A 141 0 R +/Parent 8950 0 R +/Prev 135 0 R +/Next 275 0 R +/First 147 0 R +/Last 267 0 R +/Count -16 +>> +endobj +139 0 obj +<< +/Title 140 0 R +/A 137 0 R +/Parent 135 0 R +>> +endobj +135 0 obj +<< +/Title 136 0 R +/A 133 0 R +/Parent 8950 0 R +/Prev 127 0 R +/Next 143 0 R +/First 139 0 R +/Last 139 0 R +/Count -1 +>> +endobj +131 0 obj +<< +/Title 132 0 R +/A 129 0 R +/Parent 127 0 R +>> +endobj +127 0 obj +<< +/Title 128 0 R +/A 125 0 R +/Parent 8950 0 R +/Prev 119 0 R +/Next 135 0 R +/First 131 0 R +/Last 131 0 R +/Count -1 +>> +endobj +123 0 obj +<< +/Title 124 0 R +/A 121 0 R +/Parent 119 0 R +>> +endobj +119 0 obj +<< +/Title 120 0 R +/A 117 0 R +/Parent 8950 0 R +/Prev 87 0 R +/Next 127 0 R +/First 123 0 R +/Last 123 0 R +/Count -1 +>> +endobj +115 0 obj +<< +/Title 116 0 R +/A 113 0 R +/Parent 95 0 R +/Prev 111 0 R +>> +endobj +111 0 obj +<< +/Title 112 0 R +/A 109 0 R +/Parent 95 0 R +/Prev 107 0 R +/Next 115 0 R +>> +endobj +107 0 obj +<< +/Title 108 0 R +/A 105 0 R +/Parent 95 0 R +/Prev 103 0 R +/Next 111 0 R +>> +endobj +103 0 obj +<< +/Title 104 0 R +/A 101 0 R +/Parent 95 0 R +/Prev 99 0 R +/Next 107 0 R +>> +endobj +99 0 obj +<< +/Title 100 0 R +/A 97 0 R +/Parent 95 0 R +/Next 103 0 R +>> +endobj +95 0 obj +<< +/Title 96 0 R +/A 93 0 R +/Parent 87 0 R +/Prev 91 0 R +/First 99 0 R +/Last 115 0 R +/Count -5 +>> +endobj +91 0 obj +<< +/Title 92 0 R +/A 89 0 R +/Parent 87 0 R +/Next 95 0 R +>> +endobj +87 0 obj +<< +/Title 88 0 R +/A 85 0 R +/Parent 8950 0 R +/Prev 75 0 R +/Next 119 0 R +/First 91 0 R +/Last 95 0 R +/Count -2 +>> +endobj +83 0 obj +<< +/Title 84 0 R +/A 81 0 R +/Parent 75 0 R +/Prev 79 0 R +>> +endobj +79 0 obj +<< +/Title 80 0 R +/A 77 0 R +/Parent 75 0 R +/Next 83 0 R +>> +endobj +75 0 obj +<< +/Title 76 0 R +/A 73 0 R +/Parent 8950 0 R +/Prev 47 0 R +/Next 87 0 R +/First 79 0 R +/Last 83 0 R +/Count -2 +>> +endobj +71 0 obj +<< +/Title 72 0 R +/A 69 0 R +/Parent 63 0 R +/Prev 67 0 R +>> +endobj +67 0 obj +<< +/Title 68 0 R +/A 65 0 R +/Parent 63 0 R +/Next 71 0 R +>> +endobj +63 0 obj +<< +/Title 64 0 R +/A 61 0 R +/Parent 47 0 R +/Prev 59 0 R +/First 67 0 R +/Last 71 0 R +/Count -2 +>> +endobj +59 0 obj +<< +/Title 60 0 R +/A 57 0 R +/Parent 47 0 R +/Prev 55 0 R +/Next 63 0 R +>> +endobj +55 0 obj +<< +/Title 56 0 R +/A 53 0 R +/Parent 47 0 R +/Prev 51 0 R +/Next 59 0 R +>> +endobj +51 0 obj +<< +/Title 52 0 R +/A 49 0 R +/Parent 47 0 R +/Next 55 0 R +>> +endobj +47 0 obj +<< +/Title 48 0 R +/A 45 0 R +/Parent 8950 0 R +/Prev 3 0 R +/Next 75 0 R +/First 51 0 R +/Last 63 0 R +/Count -4 +>> +endobj +43 0 obj +<< +/Title 44 0 R +/A 41 0 R +/Parent 3 0 R +/Prev 19 0 R +>> +endobj +39 0 obj +<< +/Title 40 0 R +/A 37 0 R +/Parent 19 0 R +/Prev 35 0 R +>> +endobj +35 0 obj +<< +/Title 36 0 R +/A 33 0 R +/Parent 19 0 R +/Prev 31 0 R +/Next 39 0 R +>> +endobj +31 0 obj +<< +/Title 32 0 R +/A 29 0 R +/Parent 19 0 R +/Prev 27 0 R +/Next 35 0 R +>> +endobj +27 0 obj +<< +/Title 28 0 R +/A 25 0 R +/Parent 19 0 R +/Prev 23 0 R +/Next 31 0 R +>> +endobj +23 0 obj +<< +/Title 24 0 R +/A 21 0 R +/Parent 19 0 R +/Next 27 0 R +>> +endobj +19 0 obj +<< +/Title 20 0 R +/A 17 0 R +/Parent 3 0 R +/Prev 15 0 R +/Next 43 0 R +/First 23 0 R +/Last 39 0 R +/Count -5 +>> +endobj +15 0 obj +<< +/Title 16 0 R +/A 13 0 R +/Parent 3 0 R +/Prev 11 0 R +/Next 19 0 R +>> +endobj +11 0 obj +<< +/Title 12 0 R +/A 9 0 R +/Parent 3 0 R +/Prev 7 0 R +/Next 15 0 R +>> +endobj +7 0 obj +<< +/Title 8 0 R +/A 5 0 R +/Parent 3 0 R +/Next 11 0 R +>> +endobj +3 0 obj +<< +/Title 4 0 R +/A 1 0 R +/Parent 8950 0 R +/Next 47 0 R +/First 7 0 R +/Last 43 0 R +/Count -5 +>> +endobj +8951 0 obj +<< +/Names [(DOP_8c) 4072 0 R (DOP_8c_a8b878ff6d73e8da6fbc3ae40f01b1ce4) 4911 0 R (DOP_8h) 4073 0 R (DOP_8h_a8b878ff6d73e8da6fbc3ae40f01b1ce4) 4926 0 R (Doc-Start) 2677 0 R (Item.1) 3946 0 R] +/Limits [(DOP_8c) (Item.1)] +>> +endobj +8952 0 obj +<< +/Names [(Item.10) 3955 0 R (Item.11) 3956 0 R (Item.12) 3957 0 R (Item.13) 3964 0 R (Item.14) 3965 0 R (Item.15) 3966 0 R] +/Limits [(Item.10) (Item.15)] +>> +endobj +8953 0 obj +<< +/Names [(Item.16) 3967 0 R (Item.17) 3968 0 R (Item.18) 3969 0 R (Item.19) 3970 0 R (Item.2) 3947 0 R (Item.3) 3948 0 R] +/Limits [(Item.16) (Item.3)] +>> +endobj +8954 0 obj +<< +/Names [(Item.4) 3949 0 R (Item.5) 3950 0 R (Item.6) 3951 0 R (Item.7) 3952 0 R (Item.8) 3953 0 R (Item.9) 3954 0 R] +/Limits [(Item.4) (Item.9)] +>> +endobj +8955 0 obj +<< +/Names [(chapter.1) 2 0 R (chapter.10) 286 0 R (chapter.2) 46 0 R (chapter.3) 74 0 R (chapter.4) 86 0 R (chapter.5) 118 0 R] +/Limits [(chapter.1) (chapter.5)] +>> +endobj +8956 0 obj +<< +/Names [(chapter.6) 126 0 R (chapter.7) 134 0 R (chapter.8) 142 0 R (chapter.9) 274 0 R (combinatorics_8c) 4060 0 R (combinatorics_8c_a1bcaeef00a7027e9b9b7694da2efd1b9) 4495 0 R] +/Limits [(chapter.6) (combinatorics_8c_a1bcaeef00a7027e9b9b7694da2efd1b9)] +>> +endobj +8957 0 obj +<< +/Names [(combinatorics_8c_ae500ce949afe79089e8146eb1fb5cbb0) 4493 0 R (combinatorics_8h) 4061 0 R (combinatorics_8h_a1249f9e7a382225c0889b8ef630d6509) 4513 0 R (combinatorics_8h_a16396d8294127e6ea7dbbdaa3b8132e7) 4511 0 R (combinatorics_8h_a1bcaeef00a7027e9b9b7694da2efd1b9) 4529 0 R (combinatorics_8h_a744ae7aa581aa908643d95d470394872) 4514 0 R] +/Limits [(combinatorics_8c_ae500ce949afe79089e8146eb1fb5cbb0) (combinatorics_8h_a744ae7aa581aa908643d95d470394872)] +>> +endobj +8958 0 obj +<< +/Names [(combinatorics_8h_ae500ce949afe79089e8146eb1fb5cbb0) 4526 0 R (combinatorics_8h_af92c32bbf9a391a055cb472b6f43c498) 4512 0 R (creating-an-application) 3869 0 R (creating-an-application_creating-an-application-full-fledge) 3887 0 R (creating-an-application_creating-an-application-res-lim) 3890 0 R (creating-an-application_including-modules) 3904 0 R] +/Limits [(combinatorics_8h_ae500ce949afe79089e8146eb1fb5cbb0) (creating-an-application_including-modules)] +>> +endobj +8959 0 obj +<< +/Names [(creating-an-application_the-applications-makefile) 3893 0 R (creating-an-application_the-main-function) 3892 0 R (creating-an-application_the-minimal-makefile) 3903 0 R (creating-modules) 3871 0 R (creating-modules_autotoc_md0) 3912 0 R (creating-modules_the-general-structure) 3911 0 R] +/Limits [(creating-an-application_the-applications-makefile) (creating-modules_the-general-structure)] +>> +endobj +8960 0 obj +<< +/Names [(damped__newton__raphson_8c) 4062 0 R (damped__newton__raphson_8c_a0cf3dc5e334091bc43820fa1d8e86c14) 4559 0 R (damped__newton__raphson_8c_a46f90a02170f4f35f9b3bdbc5c65271a) 4562 0 R (damped__newton__raphson_8c_acd5be84f1d01dfb379d85cc8aef8b65e) 4563 0 R (damped__newton__raphson_8h) 4063 0 R (damped__newton__raphson_8h_a0cf3dc5e334091bc43820fa1d8e86c14) 4619 0 R] +/Limits [(damped__newton__raphson_8c) (damped__newton__raphson_8h_a0cf3dc5e334091bc43820fa1d8e86c14)] +>> +endobj +8961 0 obj +<< +/Names [(damped__newton__raphson_8h_a46f90a02170f4f35f9b3bdbc5c65271a) 4620 0 R (damped__newton__raphson_8h_acd5be84f1d01dfb379d85cc8aef8b65e) 4621 0 R (dist__based__fi_8c) 4064 0 R (dist__based__fi_8c_a2a1d8806de5f7f5131be1fbd706c17fa) 4668 0 R (dist__based__fi_8c_a67e1cf0904bc0be1258e5fb4cb292a9a) 4667 0 R (dist__based__fi_8h) 4065 0 R] +/Limits [(damped__newton__raphson_8h_a46f90a02170f4f35f9b3bdbc5c65271a) (dist__based__fi_8h)] +>> +endobj +8962 0 obj +<< +/Names [(dist__based__fi_8h_a2a1d8806de5f7f5131be1fbd706c17fa) 4704 0 R (dist__based__fi_8h_a67e1cf0904bc0be1258e5fb4cb292a9a) 4705 0 R (dist__based__jacobian_8c) 4066 0 R (dist__based__jacobian_8c_a04231d3d216ce6814eb3e183f7a2e408) 4750 0 R (dist__based__jacobian_8c_a59b1a3323c2896ff28f71135af0204a2) 4752 0 R (dist__based__jacobian_8c_a769d35615d26a67b97bfd40b5d26a95c) 4751 0 R] +/Limits [(dist__based__fi_8h_a2a1d8806de5f7f5131be1fbd706c17fa) (dist__based__jacobian_8c_a769d35615d26a67b97bfd40b5d26a95c)] +>> +endobj +8963 0 obj +<< +/Names [(dist__based__jacobian_8c_a8f900ff7d66d260d3b2e3e0ef2757ccc) 4748 0 R (dist__based__jacobian_8h) 4067 0 R (dist__based__jacobian_8h_a04231d3d216ce6814eb3e183f7a2e408) 4809 0 R (dist__based__jacobian_8h_a59b1a3323c2896ff28f71135af0204a2) 4794 0 R (dist__based__jacobian_8h_a769d35615d26a67b97bfd40b5d26a95c) 4793 0 R (dist__based__jacobian_8h_a8f900ff7d66d260d3b2e3e0ef2757ccc) 4807 0 R] +/Limits [(dist__based__jacobian_8c_a8f900ff7d66d260d3b2e3e0ef2757ccc) (dist__based__jacobian_8h_a8f900ff7d66d260d3b2e3e0ef2757ccc)] +>> +endobj +8964 0 obj +<< +/Names [(dist__based__position_8c) 4068 0 R (dist__based__position_8c_a308f40001270af6663e2b1f9aff47cc3) 4839 0 R (dist__based__position_8c_a756c1407a4ba61d312a676ffd824517d) 4840 0 R (dist__based__position_8h) 4069 0 R (dist__based__position_8h_a308f40001270af6663e2b1f9aff47cc3) 4870 0 R (dist__based__position_8h_a756c1407a4ba61d312a676ffd824517d) 4873 0 R] +/Limits [(dist__based__position_8c) (dist__based__position_8h_a756c1407a4ba61d312a676ffd824517d)] +>> +endobj +8965 0 obj +<< +/Names [(distance__based__test_8c) 4070 0 R (distance__based__test_8c_a3a6d73a022976728a5a298ba62d8e115) 4887 0 R (distance__based__test_8h) 4071 0 R (distance__based__test_8h_a3a6d73a022976728a5a298ba62d8e115) 4897 0 R (etoc@tocid.1) 2726 0 R (figure.caption.1) 3842 0 R] +/Limits [(distance__based__test_8c) (figure.caption.1)] +>> +endobj +8966 0 obj +<< +/Names [(fsolve_8c) 4074 0 R (fsolve_8c_a690a05654627b94634ffed0893946ba7) 4949 0 R (fsolve_8h) 4075 0 R (fsolve_8h_a690a05654627b94634ffed0893946ba7) 4978 0 R (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206) 4950 0 R (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117) 4976 0 R] +/Limits [(fsolve_8c) (fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206a44c226e2406536a0eba3ee940a4a7117)] +>> +endobj +8967 0 obj +<< +/Names [(fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783) 4977 0 R (fsolve__test_8c) 4076 0 R (fsolve__test_8c_a3344cde9f5060d7ab962fbaaf1cdd88f) 5025 0 R (fsolve__test_8c_a53bbdeb6ad57eeb4b512c4620b64cc37) 5021 0 R (fsolve__test_8c_a6686e4624961ca943bebb616e763a100) 5029 0 R (fsolve__test_8c_a8f8a1fe785d5304202601b95e1e6871a) 5028 0 R] +/Limits [(fsolve_8h_a806eab83c4b4a937b86ebcfd984f9206a99bd092827a3e3f95abceb5f6b0c1783) (fsolve__test_8c_a8f8a1fe785d5304202601b95e1e6871a)] +>> +endobj +8968 0 obj +<< +/Names [(fsolve__test_8c_ab95955c80b1896b9e75a04faa4ce742e) 5027 0 R (fsolve__test_8c_ae36fe8e55d180d348ef331efbbc5b908) 5026 0 R (fsolve__test_8c_aefd0d3fa000963221de289a3933b7c9b) 5022 0 R (fsolve__test_8h) 4077 0 R (fsolve__test_8h_a53bbdeb6ad57eeb4b512c4620b64cc37) 5071 0 R (getting-started) 3870 0 R] +/Limits [(fsolve__test_8c_ab95955c80b1896b9e75a04faa4ce742e) (getting-started)] +>> +endobj +8969 0 obj +<< +/Names [(getting-started_building-and-executing-an-example-res-lim) 3972 0 R (getting-started_compiling-RcdMathLib) 3932 0 R (getting-started_downloading-RcdMathLib-code) 3930 0 R (getting-started_setting-up-a-toolchain-full-fledge) 3933 0 R (getting-started_setting-up-a-toolchain-res-lim) 3934 0 R (getting-started_the-build-system-full-fledge) 3945 0 R] +/Limits [(getting-started_building-and-executing-an-example-res-lim) (getting-started_the-build-system-full-fledge)] +>> +endobj +8970 0 obj +<< +/Names [(getting-started_the-build-system-res-lim) 3971 0 R (givens__test_8c) 4138 0 R (givens__test_8c_a7b8199da35e2aec77e76bbb9c52a28ae) 5073 0 R (givens__test_8h) 4139 0 R (givens__test_8h_a7b8199da35e2aec77e76bbb9c52a28ae) 5085 0 R (group__basic__operations) 3913 0 R] +/Limits [(getting-started_the-build-system-res-lim) (group__basic__operations)] +>> +endobj +8971 0 obj +<< +/Names [(group__distance__based) 3865 0 R (group__examples) 4351 0 R (group__linear__algebra) 3846 0 R (group__localization) 3868 0 R (group__magnetic__based) 3866 0 R (group__matrix__decompositions) 4364 0 R] +/Limits [(group__distance__based) (group__matrix__decompositions)] +>> +endobj +8972 0 obj +<< +/Names [(group__non__linear__algebra) 3864 0 R (group__optimization) 4403 0 R (group__pos__algos__common) 3867 0 R (group__position__algos) 4375 0 R (group__position__optimization) 4376 0 R (group__pseudo__inverse) 4365 0 R] +/Limits [(group__non__linear__algebra) (group__pseudo__inverse)] +>> +endobj +8973 0 obj +<< +/Names [(group__solve__linear__equations) 4366 0 R (group__solve__non__linear__equations) 4404 0 R (group__utilities) 4367 0 R (householder__test_8c) 4140 0 R (householder__test_8c_aacc09bb5d8990f8f6f3bc872b9a8d9a0) 5087 0 R (householder__test_8h) 4141 0 R] +/Limits [(group__solve__linear__equations) (householder__test_8h)] +>> +endobj +8974 0 obj +<< +/Names [(householder__test_8h_aacc09bb5d8990f8f6f3bc872b9a8d9a0) 5123 0 R (index) 3828 0 R (index_RcdMathLib-in-a-nutshell) 3829 0 R (index_autotoc_md1) 3844 0 R (index_autotoc_md2) 3845 0 R (index_autotoc_md3) 3860 0 R] +/Limits [(householder__test_8h_aacc09bb5d8990f8f6f3bc872b9a8d9a0) (index_autotoc_md3)] +>> +endobj +8975 0 obj +<< +/Names [(index_autotoc_md4) 3861 0 R (index_autotoc_md5) 3862 0 R (index_contribute-to-RcdMathLib) 3830 0 R (index_further-information) 3863 0 R (index_structure) 3836 0 R (index_the-quickest-start) 3835 0 R] +/Limits [(index_autotoc_md4) (index_the-quickest-start)] +>> +endobj +8976 0 obj +<< +/Names [(levenberg__marquardt_8c) 4142 0 R (levenberg__marquardt_8c_a2a72b2b6be15a9998b61a9c0097e3d5f) 5142 0 R (levenberg__marquardt_8c_a46fb5a9d6d185ff7f98c9cf34b56e34f) 5144 0 R (levenberg__marquardt_8c_a741182c4bc201af44ac010bc4474b826) 5143 0 R (levenberg__marquardt_8h) 4143 0 R (levenberg__marquardt_8h_a2a72b2b6be15a9998b61a9c0097e3d5f) 5205 0 R] +/Limits [(levenberg__marquardt_8c) (levenberg__marquardt_8h_a2a72b2b6be15a9998b61a9c0097e3d5f)] +>> +endobj +8977 0 obj +<< +/Names [(levenberg__marquardt_8h_a46fb5a9d6d185ff7f98c9cf34b56e34f) 5206 0 R (loc__gauss__newton_8c) 4144 0 R (loc__gauss__newton_8c_aaba1f25cf23d5529e4fc3bca22f8784e) 5260 0 R (loc__gauss__newton_8h) 4145 0 R (loc__gauss__newton_8h_aaba1f25cf23d5529e4fc3bca22f8784e) 5310 0 R (loc__levenberg__marquardt_8c) 4146 0 R] +/Limits [(levenberg__marquardt_8h_a46fb5a9d6d185ff7f98c9cf34b56e34f) (loc__levenberg__marquardt_8c)] +>> +endobj +8978 0 obj +<< +/Names [(loc__levenberg__marquardt_8c_a09fdd720ff5c5658e160657153ee615f) 5410 0 R (loc__levenberg__marquardt_8c_a34f52d51278453ca0fc0818a1f73a357) 5412 0 R (loc__levenberg__marquardt_8c_a4bad4d347859b95ac176779b34f26f8e) 5413 0 R (loc__levenberg__marquardt_8c_a9b2c27f650c9db97f2923b645a8ca5f6) 5411 0 R (loc__levenberg__marquardt_8h) 4147 0 R (loc__levenberg__marquardt_8h_a09fdd720ff5c5658e160657153ee615f) 5532 0 R] +/Limits [(loc__levenberg__marquardt_8c_a09fdd720ff5c5658e160657153ee615f) (loc__levenberg__marquardt_8h_a09fdd720ff5c5658e160657153ee615f)] +>> +endobj +8979 0 obj +<< +/Names [(loc__levenberg__marquardt_8h_a34f52d51278453ca0fc0818a1f73a357) 5534 0 R (loc__levenberg__marquardt_8h_a4bad4d347859b95ac176779b34f26f8e) 5535 0 R (loc__levenberg__marquardt_8h_a9b2c27f650c9db97f2923b645a8ca5f6) 5533 0 R (lu__decomp_8c) 4148 0 R (lu__decomp_8c_a8649e9f4b85f17bf35a22b18e7f239d7) 5628 0 R (lu__decomp_8h) 4149 0 R] +/Limits [(loc__levenberg__marquardt_8h_a34f52d51278453ca0fc0818a1f73a357) (lu__decomp_8h)] +>> +endobj +8980 0 obj +<< +/Names [(lu__decomp_8h_a8649e9f4b85f17bf35a22b18e7f239d7) 5639 0 R (lu__decomp__test_8c) 4150 0 R (lu__decomp__test_8c_a5798fee8a59a44f3a6a712ffd700dfd1) 5666 0 R (lu__decomp__test_8h) 4151 0 R (lu__decomp__test_8h_a5798fee8a59a44f3a6a712ffd700dfd1) 5668 0 R (magnetic__based__fi_8c) 4152 0 R] +/Limits [(lu__decomp_8h_a8649e9f4b85f17bf35a22b18e7f239d7) (magnetic__based__fi_8c)] +>> +endobj +8981 0 obj +<< +/Names [(magnetic__based__fi_8c_a897f5c675ad714feb9f2ae7571de620a) 5679 0 R (magnetic__based__fi_8h) 4153 0 R (magnetic__based__fi_8h_a897f5c675ad714feb9f2ae7571de620a) 5696 0 R (magnetic__based__jacobian_8c) 4154 0 R (magnetic__based__jacobian_8c_a87f1c7a7d6b151883c2308de275269b8) 5728 0 R (magnetic__based__jacobian_8c_aa66e6f52fd806c36f4b735b7c4c3307e) 5727 0 R] +/Limits [(magnetic__based__fi_8c_a897f5c675ad714feb9f2ae7571de620a) (magnetic__based__jacobian_8c_aa66e6f52fd806c36f4b735b7c4c3307e)] +>> +endobj +8982 0 obj +<< +/Names [(magnetic__based__jacobian_8c_ac3aca0a9af6ad84f6c010a215239f224) 5726 0 R (magnetic__based__jacobian_8c_ae1e7849d86970a33ef5b784705ebc2fc) 5729 0 R (magnetic__based__jacobian_8h) 4155 0 R (magnetic__based__jacobian_8h_a87f1c7a7d6b151883c2308de275269b8) 5795 0 R (magnetic__based__jacobian_8h_aa66e6f52fd806c36f4b735b7c4c3307e) 5794 0 R (magnetic__based__jacobian_8h_ac3aca0a9af6ad84f6c010a215239f224) 5792 0 R] +/Limits [(magnetic__based__jacobian_8c_ac3aca0a9af6ad84f6c010a215239f224) (magnetic__based__jacobian_8h_ac3aca0a9af6ad84f6c010a215239f224)] +>> +endobj +8983 0 obj +<< +/Names [(magnetic__based__jacobian_8h_ae1e7849d86970a33ef5b784705ebc2fc) 5796 0 R (magnetic__based__position_8c) 4156 0 R (magnetic__based__position_8c_a01bb024303e8eb202a19dbd70b291c06) 5879 0 R (magnetic__based__position_8c_a361f3f3c4f9516a1aa6107367ebfda8d) 5876 0 R (magnetic__based__position_8c_aac026f28838a5b30c8f6f189e3ab354c) 5877 0 R (magnetic__based__position_8c_ac852e4c0dcb8e9901aa3fab5efd91599) 5875 0 R] +/Limits [(magnetic__based__jacobian_8h_ae1e7849d86970a33ef5b784705ebc2fc) (magnetic__based__position_8c_ac852e4c0dcb8e9901aa3fab5efd91599)] +>> +endobj +8984 0 obj +<< +/Names [(magnetic__based__position_8c_ad5a7513337486e277ea028480403569d) 5874 0 R (magnetic__based__position_8c_ae584dff239a0111c47b7c5d1e197af59) 5878 0 R (magnetic__based__position_8c_af316f67cb87759b57bc815326b8d1cef) 5880 0 R (magnetic__based__position_8h) 4157 0 R (magnetic__based__position_8h_a01bb024303e8eb202a19dbd70b291c06) 6011 0 R (magnetic__based__position_8h_a0fa11f33bdb89b468b60f19395381cc4) 5974 0 R] +/Limits [(magnetic__based__position_8c_ad5a7513337486e277ea028480403569d) (magnetic__based__position_8h_a0fa11f33bdb89b468b60f19395381cc4)] +>> +endobj +8985 0 obj +<< +/Names [(magnetic__based__position_8h_a2ab193fcd7e0bc8f46ce92c3299b99bc) 5978 0 R (magnetic__based__position_8h_a30ab9da60435727bc80839d416461b8f) 5971 0 R (magnetic__based__position_8h_a361f3f3c4f9516a1aa6107367ebfda8d) 6013 0 R (magnetic__based__position_8h_a3ee4ec231172a5fd866f72acead15bc4) 5977 0 R (magnetic__based__position_8h_a544d6868e9b6cf4f9b9db9e1ad413691) 5976 0 R (magnetic__based__position_8h_a598a3330b3c21701223ee0ca14316eca) 5972 0 R] +/Limits [(magnetic__based__position_8h_a2ab193fcd7e0bc8f46ce92c3299b99bc) (magnetic__based__position_8h_a598a3330b3c21701223ee0ca14316eca)] +>> +endobj +8986 0 obj +<< +/Names [(magnetic__based__position_8h_a6f98ae7b0908254a0dfd1627e652bebe) 5973 0 R (magnetic__based__position_8h_a73d113d91ab7ec355ca707cc930eb718) 5969 0 R (magnetic__based__position_8h_a97d832ae23af4f215e801e37e4f94254) 5975 0 R (magnetic__based__position_8h_aac026f28838a5b30c8f6f189e3ab354c) 6014 0 R (magnetic__based__position_8h_ac852e4c0dcb8e9901aa3fab5efd91599) 6012 0 R (magnetic__based__position_8h_ad5a7513337486e277ea028480403569d) 6009 0 R] +/Limits [(magnetic__based__position_8h_a6f98ae7b0908254a0dfd1627e652bebe) (magnetic__based__position_8h_ad5a7513337486e277ea028480403569d)] +>> +endobj +8987 0 obj +<< +/Names [(magnetic__based__position_8h_ae584dff239a0111c47b7c5d1e197af59) 6010 0 R (magnetic__based__position_8h_af316f67cb87759b57bc815326b8d1cef) 6015 0 R (magnetic__based__position_8h_af9cccf331f045b89a9f12366df5f7687) 5970 0 R (magnetic__based__test_8c) 4158 0 R (magnetic__based__test_8c_a94f4b9ae7750825fc3d332e8f1903f75) 6071 0 R (magnetic__based__test_8h) 4159 0 R] +/Limits [(magnetic__based__position_8h_ae584dff239a0111c47b7c5d1e197af59) (magnetic__based__test_8h)] +>> +endobj +8988 0 obj +<< +/Names [(magnetic__based__test_8h_a94f4b9ae7750825fc3d332e8f1903f75) 6103 0 R (matrix_8c) 4160 0 R (matrix_8c_a0107887a6c40980fa639750be8262f01) 6197 0 R (matrix_8c_a06f75ae4924e3f0dfd0b6a25313dc731) 6194 0 R (matrix_8c_a0a3d3cfa20ad3e75ad783af457343672) 6257 0 R (matrix_8c_a0e06b2cfb86340e88be7b1219bef0ce3) 6105 0 R] +/Limits [(magnetic__based__test_8h_a94f4b9ae7750825fc3d332e8f1903f75) (matrix_8c_a0e06b2cfb86340e88be7b1219bef0ce3)] +>> +endobj +8989 0 obj +<< +/Names [(matrix_8c_a18e47742f1653dcc4491badfe2537a0a) 6200 0 R (matrix_8c_a32ab12965ec43c2acf65cf9dd510353a) 6111 0 R (matrix_8c_a3570c016691507c003dd7a54cb37e7e2) 6262 0 R (matrix_8c_a3763252ca00e4c8522ae1bfd5ef40f0a) 6190 0 R (matrix_8c_a3ae0b9f73f82716f3427a523a3412864) 6254 0 R (matrix_8c_a3cf18a2c5c6ad62a4e0a0c00d27e2887) 6192 0 R] +/Limits [(matrix_8c_a18e47742f1653dcc4491badfe2537a0a) (matrix_8c_a3cf18a2c5c6ad62a4e0a0c00d27e2887)] +>> +endobj +8990 0 obj +<< +/Names [(matrix_8c_a48b36217faeda15438f4e07c54d0ef9e) 6108 0 R (matrix_8c_a49aa70a7d6ad76388ea08acfe43b7374) 6198 0 R (matrix_8c_a51139e6c87b602e5e0ebfbc406fda35d) 6201 0 R (matrix_8c_a53879e7c4cfbc96725aef9f8234be7dd) 6185 0 R (matrix_8c_a53b0a1829b2085414fb66a9e9bd6c7b7) 6195 0 R (matrix_8c_a550aa0d5a3212e35ad0af134895fd20a) 6189 0 R] +/Limits [(matrix_8c_a48b36217faeda15438f4e07c54d0ef9e) (matrix_8c_a550aa0d5a3212e35ad0af134895fd20a)] +>> +endobj +8991 0 obj +<< +/Names [(matrix_8c_a56513a88eff05b0683320c532fadf945) 6110 0 R (matrix_8c_a5f6a1948ec005cff4985559821c4943f) 6260 0 R (matrix_8c_a72073ccd483f9cc438425d3d8ffd3029) 6182 0 R (matrix_8c_a72297a60e572f85929989e813388a9c5) 6184 0 R (matrix_8c_a722a0230185fd66f0cecbeae7d50ce1a) 6269 0 R (matrix_8c_a875d6c55a16ee9f8bf523b8c1c82bc6f) 6261 0 R] +/Limits [(matrix_8c_a56513a88eff05b0683320c532fadf945) (matrix_8c_a875d6c55a16ee9f8bf523b8c1c82bc6f)] +>> +endobj +8992 0 obj +<< +/Names [(matrix_8c_a8d77cfae4f1da83acac929c1ce13d252) 6259 0 R (matrix_8c_a90b6eafa665d34d7330581c32564d632) 6270 0 R (matrix_8c_aa8acafd4181978f536976f8151e51516) 6188 0 R (matrix_8c_aaf85a32b8562c91d2d1889819580375e) 6264 0 R (matrix_8c_ab166871472924745f70e2bb6e17498c8) 6265 0 R (matrix_8c_abbaf8f39b2b7bb4bd2987f99674c1213) 6267 0 R] +/Limits [(matrix_8c_a8d77cfae4f1da83acac929c1ce13d252) (matrix_8c_abbaf8f39b2b7bb4bd2987f99674c1213)] +>> +endobj +8993 0 obj +<< +/Names [(matrix_8c_ac20399f6a8de13b1f392a1e3f7c0fbf4) 6255 0 R (matrix_8c_ac7101bbaa3a2698658276a7e21501093) 6187 0 R (matrix_8c_ac735d13efe5b76ecf60ac13ec79da8e3) 6193 0 R (matrix_8c_acfd2bbc4a90915e57a4555694e842312) 6106 0 R (matrix_8c_acfd7c6f021f4fbcd393fe849c82f34de) 6196 0 R (matrix_8c_ad2cecc467ac6480ef0f3423f962b39bc) 6258 0 R] +/Limits [(matrix_8c_ac20399f6a8de13b1f392a1e3f7c0fbf4) (matrix_8c_ad2cecc467ac6480ef0f3423f962b39bc)] +>> +endobj +8994 0 obj +<< +/Names [(matrix_8c_ad386233d68c73656a03641ddf3ecaaf2) 6183 0 R (matrix_8c_ad610bcce232c69ca302550f57b1ad9fb) 6191 0 R (matrix_8c_ad7c9a682a3cc4ca33c030afa8798241a) 6107 0 R (matrix_8c_adfd93dda9be9b2e8df5805af7fee7845) 6268 0 R (matrix_8c_ae808f007791f060590d39c7668501988) 6199 0 R (matrix_8c_ae8d8daa117e9f96a5e29fe6c76c4998c) 6109 0 R] +/Limits [(matrix_8c_ad386233d68c73656a03641ddf3ecaaf2) (matrix_8c_ae8d8daa117e9f96a5e29fe6c76c4998c)] +>> +endobj +8995 0 obj +<< +/Names [(matrix_8c_ae8e87640fa1a2d259ee4dc98c955cb48) 6266 0 R (matrix_8c_aec03481d950677386122e3c8ba6a5cd0) 6263 0 R (matrix_8c_aed6fab1ffa40243eeb08117215082be3) 6186 0 R (matrix_8c_aef8d1508ad101227ab255a714ab22b94) 6256 0 R (matrix_8h) 4161 0 R (matrix_8h_a0107887a6c40980fa639750be8262f01) 6624 0 R] +/Limits [(matrix_8c_ae8e87640fa1a2d259ee4dc98c955cb48) (matrix_8h_a0107887a6c40980fa639750be8262f01)] +>> +endobj +8996 0 obj +<< +/Names [(matrix_8h_a06f75ae4924e3f0dfd0b6a25313dc731) 6703 0 R (matrix_8h_a0a3d3cfa20ad3e75ad783af457343672) 6687 0 R (matrix_8h_a0e06b2cfb86340e88be7b1219bef0ce3) 6539 0 R (matrix_8h_a18e47742f1653dcc4491badfe2537a0a) 6627 0 R (matrix_8h_a32ab12965ec43c2acf65cf9dd510353a) 6699 0 R (matrix_8h_a3570c016691507c003dd7a54cb37e7e2) 6692 0 R] +/Limits [(matrix_8h_a06f75ae4924e3f0dfd0b6a25313dc731) (matrix_8h_a3570c016691507c003dd7a54cb37e7e2)] +>> +endobj +8997 0 obj +<< +/Names [(matrix_8h_a3763252ca00e4c8522ae1bfd5ef40f0a) 6618 0 R (matrix_8h_a3ae0b9f73f82716f3427a523a3412864) 6629 0 R (matrix_8h_a3cf18a2c5c6ad62a4e0a0c00d27e2887) 6622 0 R (matrix_8h_a48b36217faeda15438f4e07c54d0ef9e) 6541 0 R (matrix_8h_a49aa70a7d6ad76388ea08acfe43b7374) 6625 0 R (matrix_8h_a51139e6c87b602e5e0ebfbc406fda35d) 6628 0 R] +/Limits [(matrix_8h_a3763252ca00e4c8522ae1bfd5ef40f0a) (matrix_8h_a51139e6c87b602e5e0ebfbc406fda35d)] +>> +endobj +8998 0 obj +<< +/Names [(matrix_8h_a53879e7c4cfbc96725aef9f8234be7dd) 6613 0 R (matrix_8h_a53b0a1829b2085414fb66a9e9bd6c7b7) 6620 0 R (matrix_8h_a550aa0d5a3212e35ad0af134895fd20a) 6617 0 R (matrix_8h_a56513a88eff05b0683320c532fadf945) 6612 0 R (matrix_8h_a5f6a1948ec005cff4985559821c4943f) 6690 0 R (matrix_8h_a72073ccd483f9cc438425d3d8ffd3029) 6700 0 R] +/Limits [(matrix_8h_a53879e7c4cfbc96725aef9f8234be7dd) (matrix_8h_a72073ccd483f9cc438425d3d8ffd3029)] +>> +endobj +8999 0 obj +<< +/Names [(matrix_8h_a72297a60e572f85929989e813388a9c5) 6702 0 R (matrix_8h_a722a0230185fd66f0cecbeae7d50ce1a) 6704 0 R (matrix_8h_a82f374a9b8b215f0ef53d35401eae524) 6701 0 R (matrix_8h_a875d6c55a16ee9f8bf523b8c1c82bc6f) 6691 0 R (matrix_8h_a8d77cfae4f1da83acac929c1ce13d252) 6689 0 R (matrix_8h_a90b6eafa665d34d7330581c32564d632) 6705 0 R] +/Limits [(matrix_8h_a72297a60e572f85929989e813388a9c5) (matrix_8h_a90b6eafa665d34d7330581c32564d632)] +>> +endobj +9000 0 obj +<< +/Names [(matrix_8h_aa8acafd4181978f536976f8151e51516) 6615 0 R (matrix_8h_aaf85a32b8562c91d2d1889819580375e) 6694 0 R (matrix_8h_ab166871472924745f70e2bb6e17498c8) 6695 0 R (matrix_8h_abbaf8f39b2b7bb4bd2987f99674c1213) 6697 0 R (matrix_8h_ac20399f6a8de13b1f392a1e3f7c0fbf4) 6630 0 R (matrix_8h_ac7101bbaa3a2698658276a7e21501093) 6614 0 R] +/Limits [(matrix_8h_aa8acafd4181978f536976f8151e51516) (matrix_8h_ac7101bbaa3a2698658276a7e21501093)] +>> +endobj +9001 0 obj +<< +/Names [(matrix_8h_ac735d13efe5b76ecf60ac13ec79da8e3) 6623 0 R (matrix_8h_acfd2bbc4a90915e57a4555694e842312) 6538 0 R (matrix_8h_acfd7c6f021f4fbcd393fe849c82f34de) 6621 0 R (matrix_8h_ad2cecc467ac6480ef0f3423f962b39bc) 6688 0 R (matrix_8h_ad610bcce232c69ca302550f57b1ad9fb) 6619 0 R (matrix_8h_ad7c9a682a3cc4ca33c030afa8798241a) 6540 0 R] +/Limits [(matrix_8h_ac735d13efe5b76ecf60ac13ec79da8e3) (matrix_8h_ad7c9a682a3cc4ca33c030afa8798241a)] +>> +endobj +9002 0 obj +<< +/Names [(matrix_8h_adfd93dda9be9b2e8df5805af7fee7845) 6698 0 R (matrix_8h_ae71449b1cc6e6250b91f539153a7a0d3) 6537 0 R (matrix_8h_ae808f007791f060590d39c7668501988) 6626 0 R (matrix_8h_ae8d8daa117e9f96a5e29fe6c76c4998c) 6611 0 R (matrix_8h_ae8e87640fa1a2d259ee4dc98c955cb48) 6696 0 R (matrix_8h_aec03481d950677386122e3c8ba6a5cd0) 6693 0 R] +/Limits [(matrix_8h_adfd93dda9be9b2e8df5805af7fee7845) (matrix_8h_aec03481d950677386122e3c8ba6a5cd0)] +>> +endobj +9003 0 obj +<< +/Names [(matrix_8h_aed6fab1ffa40243eeb08117215082be3) 6616 0 R (matrix_8h_aef8d1508ad101227ab255a714ab22b94) 6686 0 R (matrix_8h_af38ac6b76d645fea9abd6caeb4d9dd31) 4561 0 R (matrix_8h_af57ae8796956bfd0ee173b9040ba5192) 6536 0 R (matrix__test_8c) 4162 0 R (matrix__test_8c_a5713bd664a96ccd028896420050f22df) 6960 0 R] +/Limits [(matrix_8h_aed6fab1ffa40243eeb08117215082be3) (matrix__test_8c_a5713bd664a96ccd028896420050f22df)] +>> +endobj +9004 0 obj +<< +/Names [(matrix__test_8c_aad3d0f4acb79e8a9b61eda59dc3a12b2) 6959 0 R (matrix__test_8c_af3bd1663337eb8dbe0fbcb49b517621f) 6961 0 R (matrix__test_8h) 3895 0 R (matrix__test_8h_a5713bd664a96ccd028896420050f22df) 6984 0 R (matrix__test_8h_aad3d0f4acb79e8a9b61eda59dc3a12b2) 3897 0 R (matrix__test_8h_af3bd1663337eb8dbe0fbcb49b517621f) 6985 0 R] +/Limits [(matrix__test_8c_aad3d0f4acb79e8a9b61eda59dc3a12b2) (matrix__test_8h_af3bd1663337eb8dbe0fbcb49b517621f)] +>> +endobj +9005 0 obj +<< +/Names [(modified__gauss__newton_8c) 4163 0 R (modified__gauss__newton_8c_a7376799043ad2c27fac02371624051bc) 5793 0 R (modified__gauss__newton_8h) 4164 0 R (modified__gauss__newton_8h_a7376799043ad2c27fac02371624051bc) 7031 0 R (moore__penrose__pinv__test_8c) 4165 0 R (moore__penrose__pinv__test_8c_a71ea6881aeb228d371528527d1974014) 7051 0 R] +/Limits [(modified__gauss__newton_8c) (moore__penrose__pinv__test_8c_a71ea6881aeb228d371528527d1974014)] +>> +endobj +9006 0 obj +<< +/Names [(moore__penrose__pinv__test_8h) 4222 0 R (moore__penrose__pinv__test_8h_a71ea6881aeb228d371528527d1974014) 7053 0 R (moore__penrose__pseudo__inverse_8c) 4223 0 R (moore__penrose__pseudo__inverse_8c_a0ddd46446f074a0d38c04157686f5fce) 7064 0 R (moore__penrose__pseudo__inverse_8c_ada5b18da23c06c1a6f2449bbfe97a7c9) 7065 0 R (moore__penrose__pseudo__inverse_8h) 4224 0 R] +/Limits [(moore__penrose__pinv__test_8h) (moore__penrose__pseudo__inverse_8h)] +>> +endobj +9007 0 obj +<< +/Names [(moore__penrose__pseudo__inverse_8h_a068a278115f777cb1b92107e5c88c68e) 7097 0 R (moore__penrose__pseudo__inverse_8h_a08c63915b31bfeb8d6256981f71b3746) 7092 0 R (moore__penrose__pseudo__inverse_8h_a0ddd46446f074a0d38c04157686f5fce) 7099 0 R (moore__penrose__pseudo__inverse_8h_a4b5bc244bcae0f030336269904158df1) 7095 0 R (moore__penrose__pseudo__inverse_8h_aa41b1dd19931edcc50247511f12859e4) 7096 0 R (moore__penrose__pseudo__inverse_8h_ad174a66874978917203ae18e88d263af) 7093 0 R] +/Limits [(moore__penrose__pseudo__inverse_8h_a068a278115f777cb1b92107e5c88c68e) (moore__penrose__pseudo__inverse_8h_ad174a66874978917203ae18e88d263af)] +>> +endobj +9008 0 obj +<< +/Names [(moore__penrose__pseudo__inverse_8h_ada5b18da23c06c1a6f2449bbfe97a7c9) 7101 0 R (moore__penrose__pseudo__inverse_8h_ae65d746cc90c1447fe1651614fde76eb) 7094 0 R (multipath__algo__own__norm__distr__test_8c) 4225 0 R (multipath__algo__own__norm__distr__test_8c_a557f81ea2791d07f6341dc44b0f169dd) 7120 0 R (multipath__algo__own__norm__distr__test_8h) 4226 0 R (multipath__algo__own__norm__distr__test_8h_a557f81ea2791d07f6341dc44b0f169dd) 7122 0 R] +/Limits [(moore__penrose__pseudo__inverse_8h_ada5b18da23c06c1a6f2449bbfe97a7c9) (multipath__algo__own__norm__distr__test_8h_a557f81ea2791d07f6341dc44b0f169dd)] +>> +endobj +9009 0 obj +<< +/Names [(multipath__dist__detection__mitigation_8c) 4227 0 R (multipath__dist__detection__mitigation_8c_a2776d1c18727f8feb5f0a83a6963e957) 7158 0 R (multipath__dist__detection__mitigation_8c_a38019260396a33562d5a1912c691c26a) 7155 0 R (multipath__dist__detection__mitigation_8c_a540837de8e8a9d4e5dbaac1814b19b5e) 7160 0 R (multipath__dist__detection__mitigation_8c_a5609107d45b6abfa6614fc79c56273c8) 7156 0 R (multipath__dist__detection__mitigation_8c_a6530e8d8955c511d3452748fec987a39) 7159 0 R] +/Limits [(multipath__dist__detection__mitigation_8c) (multipath__dist__detection__mitigation_8c_a6530e8d8955c511d3452748fec987a39)] +>> +endobj +9010 0 obj +<< +/Names [(multipath__dist__detection__mitigation_8c_a8cce1ff9263404ca1e58d67910f38d47) 7161 0 R (multipath__dist__detection__mitigation_8c_a944bb181ffe0b3abc69e345ae88fbfc1) 7157 0 R (multipath__dist__detection__mitigation_8h) 4228 0 R (multipath__dist__detection__mitigation_8h_a2776d1c18727f8feb5f0a83a6963e957) 7239 0 R (multipath__dist__detection__mitigation_8h_a2840a12d90b5b26b59d50f449f754fbd) 7242 0 R (multipath__dist__detection__mitigation_8h_a38019260396a33562d5a1912c691c26a) 7236 0 R] +/Limits [(multipath__dist__detection__mitigation_8c_a8cce1ff9263404ca1e58d67910f38d47) (multipath__dist__detection__mitigation_8h_a38019260396a33562d5a1912c691c26a)] +>> +endobj +9011 0 obj +<< +/Names [(multipath__dist__detection__mitigation_8h_a540837de8e8a9d4e5dbaac1814b19b5e) 7241 0 R (multipath__dist__detection__mitigation_8h_a5609107d45b6abfa6614fc79c56273c8) 7237 0 R (multipath__dist__detection__mitigation_8h_a6530e8d8955c511d3452748fec987a39) 7240 0 R (multipath__dist__detection__mitigation_8h_a944bb181ffe0b3abc69e345ae88fbfc1) 7238 0 R (newton__raphson_8c) 4229 0 R (newton__raphson_8c_ac6837f695990867bd72cf23ee93961cc) 7304 0 R] +/Limits [(multipath__dist__detection__mitigation_8h_a540837de8e8a9d4e5dbaac1814b19b5e) (newton__raphson_8c_ac6837f695990867bd72cf23ee93961cc)] +>> +endobj +9012 0 obj +<< +/Names [(newton__raphson_8h) 4230 0 R (newton__raphson_8h_ac6837f695990867bd72cf23ee93961cc) 7325 0 R (norm__dist__rnd__generator_8c) 4231 0 R (norm__dist__rnd__generator_8c_a5767383d0f4f1fed2c194695a22f56cb) 7341 0 R (norm__dist__rnd__generator_8c_a7c43c3270c6c14bb23f14d071f6132bf) 7339 0 R (norm__dist__rnd__generator_8h) 4232 0 R] +/Limits [(newton__raphson_8h) (norm__dist__rnd__generator_8h)] +>> +endobj +9013 0 obj +<< +/Names [(norm__dist__rnd__generator_8h_a35eb81d6885b8d16d225b230f88a919a) 7355 0 R (norm__dist__rnd__generator_8h_a58c36346c01fb7f1a336a610b177b903) 7356 0 R (norm__dist__rnd__generator_8h_a598a3330b3c21701223ee0ca14316eca) 7354 0 R (optimization__test_8c) 4233 0 R (optimization__test_8c_a1062ae4598fabcf957ec0b855737db20) 7396 0 R (optimization__test_8c_a1daefb42bf903899e7e1d5237ba62c0b) 7402 0 R] +/Limits [(norm__dist__rnd__generator_8h_a35eb81d6885b8d16d225b230f88a919a) (optimization__test_8c_a1daefb42bf903899e7e1d5237ba62c0b)] +>> +endobj +9014 0 obj +<< +/Names [(optimization__test_8c_a5f1f1ed377535a6d4c5758c38174fcb9) 7401 0 R (optimization__test_8c_a5f89a9747d6a7bec1ad0a80ba31647b9) 7404 0 R (optimization__test_8c_a610651298b8018db96cf21ee31740d3b) 7398 0 R (optimization__test_8c_a98fdeac6ec9a38cb63f48e7c0f0085f0) 7400 0 R (optimization__test_8c_ac11e842f01767e97924c100df684476d) 7399 0 R (optimization__test_8c_ac7361316d224b72baa4a681297d9f51c) 7397 0 R] +/Limits [(optimization__test_8c_a5f1f1ed377535a6d4c5758c38174fcb9) (optimization__test_8c_ac7361316d224b72baa4a681297d9f51c)] +>> +endobj +9015 0 obj +<< +/Names [(optimization__test_8c_acb161b62c37921a9edd0cb7aeb76342a) 7403 0 R (optimization__test_8h) 4234 0 R (optimization__test_8h_a1062ae4598fabcf957ec0b855737db20) 7457 0 R (optimization__test_8h_a5f1f1ed377535a6d4c5758c38174fcb9) 7458 0 R (optimization__test_8h_a5f89a9747d6a7bec1ad0a80ba31647b9) 7459 0 R (page.1) 3826 0 R] +/Limits [(optimization__test_8c_acb161b62c37921a9edd0cb7aeb76342a) (page.1)] +>> +endobj +9016 0 obj +<< +/Names [(page.10) 3944 0 R (page.100) 5737 0 R (page.101) 5751 0 R (page.102) 5789 0 R (page.103) 5808 0 R (page.104) 5827 0 R] +/Limits [(page.10) (page.104)] +>> +endobj +9017 0 obj +<< +/Names [(page.105) 5872 0 R (page.106) 5891 0 R (page.107) 5905 0 R (page.108) 5912 0 R (page.109) 5925 0 R (page.11) 3963 0 R] +/Limits [(page.105) (page.11)] +>> +endobj +9018 0 obj +<< +/Names [(page.110) 5966 0 R (page.111) 6007 0 R (page.112) 6026 0 R (page.113) 6041 0 R (page.114) 6056 0 R (page.115) 6068 0 R] +/Limits [(page.110) (page.115)] +>> +endobj +9019 0 obj +<< +/Names [(page.116) 6101 0 R (page.117) 6181 0 R (page.118) 6253 0 R (page.119) 6276 0 R (page.12) 3978 0 R (page.120) 6287 0 R] +/Limits [(page.116) (page.120)] +>> +endobj +9020 0 obj +<< +/Names [(page.121) 6296 0 R (page.122) 6303 0 R (page.123) 6312 0 R (page.124) 6322 0 R (page.125) 6331 0 R (page.126) 6342 0 R] +/Limits [(page.121) (page.126)] +>> +endobj +9021 0 obj +<< +/Names [(page.127) 6352 0 R (page.128) 6362 0 R (page.129) 6370 0 R (page.13) 3998 0 R (page.130) 6380 0 R (page.131) 6388 0 R] +/Limits [(page.127) (page.131)] +>> +endobj +9022 0 obj +<< +/Names [(page.132) 6401 0 R (page.133) 6414 0 R (page.134) 6425 0 R (page.135) 6434 0 R (page.136) 6443 0 R (page.137) 6451 0 R] +/Limits [(page.132) (page.137)] +>> +endobj +9023 0 obj +<< +/Names [(page.138) 6460 0 R (page.139) 6471 0 R (page.14) 4002 0 R (page.140) 6480 0 R (page.141) 6491 0 R (page.142) 6502 0 R] +/Limits [(page.138) (page.142)] +>> +endobj +9024 0 obj +<< +/Names [(page.143) 6530 0 R (page.144) 6610 0 R (page.145) 6685 0 R (page.146) 6713 0 R (page.147) 6720 0 R (page.148) 6731 0 R] +/Limits [(page.143) (page.148)] +>> +endobj +9025 0 obj +<< +/Names [(page.149) 6738 0 R (page.15) 4008 0 R (page.150) 6749 0 R (page.151) 6759 0 R (page.152) 6768 0 R (page.153) 6777 0 R] +/Limits [(page.149) (page.153)] +>> +endobj +9026 0 obj +<< +/Names [(page.154) 6787 0 R (page.155) 6797 0 R (page.156) 6807 0 R (page.157) 6817 0 R (page.158) 6826 0 R (page.159) 6835 0 R] +/Limits [(page.154) (page.159)] +>> +endobj +9027 0 obj +<< +/Names [(page.16) 4013 0 R (page.160) 6846 0 R (page.161) 6859 0 R (page.162) 6868 0 R (page.163) 6877 0 R (page.164) 6885 0 R] +/Limits [(page.16) (page.164)] +>> +endobj +9028 0 obj +<< +/Names [(page.165) 6893 0 R (page.166) 6901 0 R (page.167) 6912 0 R (page.168) 6922 0 R (page.169) 6933 0 R (page.17) 4057 0 R] +/Limits [(page.165) (page.17)] +>> +endobj +9029 0 obj +<< +/Names [(page.170) 6944 0 R (page.171) 6956 0 R (page.172) 6982 0 R (page.173) 7000 0 R (page.174) 7028 0 R (page.175) 7035 0 R] +/Limits [(page.170) (page.175)] +>> +endobj +9030 0 obj +<< +/Names [(page.176) 7049 0 R (page.177) 7062 0 R (page.178) 7070 0 R (page.179) 7090 0 R (page.18) 4137 0 R (page.180) 7106 0 R] +/Limits [(page.176) (page.180)] +>> +endobj +9031 0 obj +<< +/Names [(page.181) 7118 0 R (page.182) 7153 0 R (page.183) 7169 0 R (page.184) 7176 0 R (page.185) 7186 0 R (page.186) 7193 0 R] +/Limits [(page.181) (page.186)] +>> +endobj +9032 0 obj +<< +/Names [(page.187) 7201 0 R (page.188) 7234 0 R (page.189) 7250 0 R (page.19) 4221 0 R (page.190) 7257 0 R (page.191) 7267 0 R] +/Limits [(page.187) (page.191)] +>> +endobj +9033 0 obj +<< +/Names [(page.192) 7274 0 R (page.193) 7282 0 R (page.194) 7302 0 R (page.195) 7322 0 R (page.196) 7330 0 R (page.197) 7337 0 R] +/Limits [(page.192) (page.197)] +>> +endobj +9034 0 obj +<< +/Names [(page.198) 7350 0 R (page.199) 7360 0 R (page.2) 3841 0 R (page.20) 4293 0 R (page.200) 7393 0 R (page.201) 7411 0 R] +/Limits [(page.198) (page.201)] +>> +endobj +9035 0 obj +<< +/Names [(page.202) 7422 0 R (page.203) 7437 0 R (page.204) 7449 0 R (page.205) 7455 0 R (page.206) 7470 0 R (page.207) 7492 0 R] +/Limits [(page.202) (page.207)] +>> +endobj +9036 0 obj +<< +/Names [(page.208) 7502 0 R (page.209) 7526 0 R (page.21) 4320 0 R (page.210) 7549 0 R (page.211) 7567 0 R (page.212) 7582 0 R] +/Limits [(page.208) (page.212)] +>> +endobj +9037 0 obj +<< +/Names [(page.213) 7593 0 R (page.214) 7608 0 R (page.215) 7619 0 R (page.216) 7631 0 R (page.217) 7641 0 R (page.218) 7651 0 R] +/Limits [(page.213) (page.218)] +>> +endobj +9038 0 obj +<< +/Names [(page.219) 7666 0 R (page.22) 4328 0 R (page.220) 7678 0 R (page.221) 7692 0 R (page.222) 7704 0 R (page.223) 7717 0 R] +/Limits [(page.219) (page.223)] +>> +endobj +9039 0 obj +<< +/Names [(page.224) 7727 0 R (page.225) 7755 0 R (page.226) 7767 0 R (page.227) 7779 0 R (page.228) 7807 0 R (page.229) 7820 0 R] +/Limits [(page.224) (page.229)] +>> +endobj +9040 0 obj +<< +/Names [(page.23) 4350 0 R (page.230) 7831 0 R (page.231) 7840 0 R (page.232) 7860 0 R (page.233) 7884 0 R (page.234) 7897 0 R] +/Limits [(page.23) (page.234)] +>> +endobj +9041 0 obj +<< +/Names [(page.235) 7905 0 R (page.236) 7912 0 R (page.237) 7934 0 R (page.238) 7958 0 R (page.239) 7971 0 R (page.24) 4362 0 R] +/Limits [(page.235) (page.24)] +>> +endobj +9042 0 obj +<< +/Names [(page.240) 7980 0 R (page.241) 7987 0 R (page.242) 7998 0 R (page.243) 8043 0 R (page.244) 8067 0 R (page.245) 8080 0 R] +/Limits [(page.240) (page.245)] +>> +endobj +9043 0 obj +<< +/Names [(page.246) 8094 0 R (page.247) 8104 0 R (page.248) 8115 0 R (page.249) 8130 0 R (page.25) 4373 0 R (page.250) 8176 0 R] +/Limits [(page.246) (page.250)] +>> +endobj +9044 0 obj +<< +/Names [(page.251) 8194 0 R (page.252) 8205 0 R (page.253) 8214 0 R (page.254) 8226 0 R (page.255) 8238 0 R (page.256) 8259 0 R] +/Limits [(page.251) (page.256)] +>> +endobj +9045 0 obj +<< +/Names [(page.257) 8280 0 R (page.258) 8287 0 R (page.259) 8295 0 R (page.26) 4383 0 R (page.260) 8301 0 R (page.261) 8308 0 R] +/Limits [(page.257) (page.261)] +>> +endobj +9046 0 obj +<< +/Names [(page.262) 8330 0 R (page.263) 8348 0 R (page.264) 8360 0 R (page.265) 8368 0 R (page.266) 8374 0 R (page.267) 8380 0 R] +/Limits [(page.262) (page.267)] +>> +endobj +9047 0 obj +<< +/Names [(page.268) 8387 0 R (page.269) 8401 0 R (page.27) 4393 0 R (page.270) 8474 0 R (page.271) 8506 0 R (page.272) 8522 0 R] +/Limits [(page.268) (page.272)] +>> +endobj +9048 0 obj +<< +/Names [(page.273) 8533 0 R (page.274) 8541 0 R (page.275) 8553 0 R (page.276) 8566 0 R (page.277) 8576 0 R (page.278) 8586 0 R] +/Limits [(page.273) (page.278)] +>> +endobj +9049 0 obj +<< +/Names [(page.279) 8596 0 R (page.28) 4401 0 R (page.280) 8607 0 R (page.281) 8619 0 R (page.282) 8627 0 R (page.283) 8705 0 R] +/Limits [(page.279) (page.283)] +>> +endobj +9050 0 obj +<< +/Names [(page.284) 8737 0 R (page.285) 8748 0 R (page.286) 8759 0 R (page.287) 8769 0 R (page.288) 8780 0 R (page.289) 8792 0 R] +/Limits [(page.284) (page.289)] +>> +endobj +9051 0 obj +<< +/Names [(page.29) 4410 0 R (page.290) 8802 0 R (page.291) 8812 0 R (page.292) 8822 0 R (page.293) 8833 0 R (page.294) 8846 0 R] +/Limits [(page.29) (page.294)] +>> +endobj +9052 0 obj +<< +/Names [(page.295) 8852 0 R (page.296) 8864 0 R (page.3) 3859 0 R (page.30) 4419 0 R (page.31) 4427 0 R (page.32) 4434 0 R] +/Limits [(page.295) (page.32)] +>> +endobj +9053 0 obj +<< +/Names [(page.33) 4442 0 R (page.34) 4448 0 R (page.35) 4456 0 R (page.36) 4466 0 R (page.37) 4477 0 R (page.38) 4484 0 R] +/Limits [(page.33) (page.38)] +>> +endobj +9054 0 obj +<< +/Names [(page.39) 4491 0 R (page.4) 3875 0 R (page.40) 4508 0 R (page.41) 4523 0 R (page.42) 4556 0 R (page.43) 4574 0 R] +/Limits [(page.39) (page.43)] +>> +endobj +9055 0 obj +<< +/Names [(page.44) 4591 0 R (page.45) 4616 0 R (page.46) 4632 0 R (page.47) 4648 0 R (page.48) 4664 0 R (page.49) 4681 0 R] +/Limits [(page.44) (page.49)] +>> +endobj +9056 0 obj +<< +/Names [(page.5) 3886 0 R (page.50) 4701 0 R (page.51) 4718 0 R (page.52) 4746 0 R (page.53) 4760 0 R (page.54) 4790 0 R] +/Limits [(page.5) (page.54)] +>> +endobj +9057 0 obj +<< +/Names [(page.55) 4806 0 R (page.56) 4821 0 R (page.57) 4836 0 R (page.58) 4850 0 R (page.59) 4868 0 R (page.6) 3902 0 R] +/Limits [(page.55) (page.6)] +>> +endobj +9058 0 obj +<< +/Names [(page.60) 4884 0 R (page.61) 4895 0 R (page.62) 4909 0 R (page.63) 4923 0 R (page.64) 4946 0 R (page.65) 4954 0 R] +/Limits [(page.60) (page.65)] +>> +endobj +9059 0 obj +<< +/Names [(page.66) 4972 0 R (page.67) 4989 0 R (page.68) 5018 0 R (page.69) 5037 0 R (page.7) 3910 0 R (page.70) 5045 0 R] +/Limits [(page.66) (page.70)] +>> +endobj +9060 0 obj +<< +/Names [(page.71) 5054 0 R (page.72) 5068 0 R (page.73) 5083 0 R (page.74) 5121 0 R (page.75) 5140 0 R (page.76) 5158 0 R] +/Limits [(page.71) (page.76)] +>> +endobj +9061 0 obj +<< +/Names [(page.77) 5166 0 R (page.78) 5203 0 R (page.79) 5213 0 R (page.8) 3917 0 R (page.80) 5258 0 R (page.81) 5264 0 R] +/Limits [(page.77) (page.81)] +>> +endobj +9062 0 obj +<< +/Names [(page.82) 5308 0 R (page.83) 5362 0 R (page.84) 5407 0 R (page.85) 5439 0 R (page.86) 5453 0 R (page.87) 5461 0 R] +/Limits [(page.82) (page.87)] +>> +endobj +9063 0 obj +<< +/Names [(page.88) 5530 0 R (page.89) 5563 0 R (page.9) 3929 0 R (page.90) 5591 0 R (page.91) 5605 0 R (page.92) 5612 0 R] +/Limits [(page.88) (page.92)] +>> +endobj +9064 0 obj +<< +/Names [(page.93) 5625 0 R (page.94) 5636 0 R (page.95) 5647 0 R (page.96) 5664 0 R (page.97) 5677 0 R (page.98) 5694 0 R] +/Limits [(page.93) (page.98)] +>> +endobj +9065 0 obj +<< +/Names [(page.99) 5723 0 R (pos__algos__common__test_8c) 4235 0 R (pos__algos__common__test_8c_ad7c3809ba4d66f929854a4127784be8c) 7472 0 R (pos__algos__common__test_8h) 4236 0 R (pos__algos__common__test_8h_ad7c3809ba4d66f929854a4127784be8c) 7474 0 R (position__optimization__test_8c) 4237 0 R] +/Limits [(page.99) (position__optimization__test_8c)] +>> +endobj +9066 0 obj +<< +/Names [(position__optimization__test_8c_adf2ebfc668717eeac312234ac2b24166) 7494 0 R (position__optimization__test_8h) 4238 0 R (position__optimization__test_8h_adf2ebfc668717eeac312234ac2b24166) 7496 0 R (pseudo__inverse_8h) 4239 0 R (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3) 7504 0 R (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04) 7507 0 R] +/Limits [(position__optimization__test_8c_adf2ebfc668717eeac312234ac2b24166) (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3a9db08339065f28367b9ae058d1127a04)] +>> +endobj +9067 0 obj +<< +/Names [(pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991) 7508 0 R (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3ab15a7891aa5223439e4692a1048cb220) 7509 0 R (pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3ae835310f82eb01d07137e72133cd5b06) 7506 0 R (qr__common_8c) 4240 0 R (qr__common_8c_a47e88b1e236d3637717ea144811cdc1b) 7531 0 R (qr__common_8c_adad26253c0e08a0d9fe2dfe0f6d64112) 7528 0 R] +/Limits [(pseudo__inverse_8h_aeead1612e2f846fe32e4c50e1ab3d7c3aab4d4fdd6aa659e7306fa9abf3d0a991) (qr__common_8c_adad26253c0e08a0d9fe2dfe0f6d64112)] +>> +endobj +9068 0 obj +<< +/Names [(qr__common_8h) 4241 0 R (qr__common_8h_a3144f99da14a69ec80bf9ded23714612) 7555 0 R (qr__common_8h_ac62c54358ecc0c35cdef1c3fb37cc73b) 7552 0 R (qr__common_8h_adad26253c0e08a0d9fe2dfe0f6d64112) 7554 0 R (qr__givens_8c) 4242 0 R (qr__givens_8c_a07adca97c58afc057a5cff738f6473cc) 7585 0 R] +/Limits [(qr__common_8h) (qr__givens_8c_a07adca97c58afc057a5cff738f6473cc)] +>> +endobj +9069 0 obj +<< +/Names [(qr__givens_8c_a53f748fbc6f8a129deb6a048d423d644) 7586 0 R (qr__givens_8h) 4243 0 R (qr__givens_8h_a07adca97c58afc057a5cff738f6473cc) 7611 0 R (qr__givens_8h_a53f748fbc6f8a129deb6a048d423d644) 7612 0 R (qr__householder_8c) 4244 0 R (qr__householder_8c_a926e8bce91b658f64837d5c93b0bc74f) 7634 0 R] +/Limits [(qr__givens_8c_a53f748fbc6f8a129deb6a048d423d644) (qr__householder_8c_a926e8bce91b658f64837d5c93b0bc74f)] +>> +endobj +9070 0 obj +<< +/Names [(qr__householder_8h) 4245 0 R (qr__householder_8h_a926e8bce91b658f64837d5c93b0bc74f) 7644 0 R (qr__pinv__test_8c) 4246 0 R (qr__pinv__test_8c_a292d2351f35310e579dd0741ab4857db) 7668 0 R (qr__pinv__test_8h) 4247 0 R (qr__pinv__test_8h_a292d2351f35310e579dd0741ab4857db) 7670 0 R] +/Limits [(qr__householder_8h) (qr__pinv__test_8h_a292d2351f35310e579dd0741ab4857db)] +>> +endobj +9071 0 obj +<< +/Names [(qr__pseudo__inverse_8c) 4294 0 R (qr__pseudo__inverse_8c_a9fb1ebdfe21c5a66cd322f00bf886d8d) 7680 0 R (qr__pseudo__inverse_8h) 4295 0 R (qr__pseudo__inverse_8h_a9fb1ebdfe21c5a66cd322f00bf886d8d) 7695 0 R (section*.10) 4411 0 R (section*.100) 7679 0 R] +/Limits [(qr__pseudo__inverse_8c) (section*.100)] +>> +endobj +9072 0 obj +<< +/Names [(section*.101) 7694 0 R (section*.102) 7706 0 R (section*.103) 7720 0 R (section*.104) 7756 0 R (section*.105) 7809 0 R (section*.106) 7842 0 R] +/Limits [(section*.101) (section*.106)] +>> +endobj +9073 0 obj +<< +/Names [(section*.107) 7861 0 R (section*.108) 7885 0 R (section*.109) 7936 0 R (section*.11) 4420 0 R (section*.110) 7959 0 R (section*.111) 8000 0 R] +/Limits [(section*.107) (section*.111)] +>> +endobj +9074 0 obj +<< +/Names [(section*.112) 8044 0 R (section*.113) 8046 0 R (section*.114) 8177 0 R (section*.115) 8261 0 R (section*.116) 8332 0 R (section*.117) 8334 0 R] +/Limits [(section*.112) (section*.117)] +>> +endobj +9075 0 obj +<< +/Names [(section*.118) 8402 0 R (section*.119) 8404 0 R (section*.12) 4428 0 R (section*.120) 8475 0 R (section*.121) 8706 0 R (section*.122) 8707 0 R] +/Limits [(section*.118) (section*.122)] +>> +endobj +9076 0 obj +<< +/Names [(section*.123) 8865 0 R (section*.124) 8867 0 R (section*.13) 4435 0 R (section*.14) 4443 0 R (section*.15) 4449 0 R (section*.16) 4457 0 R] +/Limits [(section*.123) (section*.16)] +>> +endobj +9077 0 obj +<< +/Names [(section*.17) 4467 0 R (section*.18) 4478 0 R (section*.19) 4492 0 R (section*.2) 4321 0 R (section*.20) 4524 0 R (section*.21) 4525 0 R] +/Limits [(section*.17) (section*.21)] +>> +endobj +9078 0 obj +<< +/Names [(section*.22) 4558 0 R (section*.23) 4618 0 R (section*.24) 4666 0 R (section*.25) 4703 0 R (section*.26) 4747 0 R (section*.27) 4792 0 R] +/Limits [(section*.22) (section*.27)] +>> +endobj +9079 0 obj +<< +/Names [(section*.28) 4838 0 R (section*.29) 4869 0 R (section*.3) 4329 0 R (section*.30) 4886 0 R (section*.31) 4896 0 R (section*.32) 4910 0 R] +/Limits [(section*.28) (section*.32)] +>> +endobj +9080 0 obj +<< +/Names [(section*.33) 4925 0 R (section*.34) 4948 0 R (section*.35) 4974 0 R (section*.36) 4975 0 R (section*.37) 5019 0 R (section*.38) 5070 0 R] +/Limits [(section*.33) (section*.38)] +>> +endobj +9081 0 obj +<< +/Names [(section*.39) 5072 0 R (section*.4) 4352 0 R (section*.40) 5084 0 R (section*.41) 5086 0 R (section*.42) 5122 0 R (section*.43) 5141 0 R] +/Limits [(section*.39) (section*.43)] +>> +endobj +9082 0 obj +<< +/Names [(section*.44) 5204 0 R (section*.45) 5259 0 R (section*.46) 5309 0 R (section*.47) 5408 0 R (section*.48) 5531 0 R (section*.49) 5627 0 R] +/Limits [(section*.44) (section*.49)] +>> +endobj +9083 0 obj +<< +/Names [(section*.5) 4363 0 R (section*.50) 5638 0 R (section*.51) 5665 0 R (section*.52) 5667 0 R (section*.53) 5678 0 R (section*.54) 5695 0 R] +/Limits [(section*.5) (section*.54)] +>> +endobj +9084 0 obj +<< +/Names [(section*.55) 5725 0 R (section*.56) 5791 0 R (section*.57) 5873 0 R (section*.58) 5968 0 R (section*.59) 6008 0 R (section*.6) 4374 0 R] +/Limits [(section*.55) (section*.6)] +>> +endobj +9085 0 obj +<< +/Names [(section*.60) 6070 0 R (section*.61) 6102 0 R (section*.62) 6104 0 R (section*.63) 6532 0 R (section*.64) 6533 0 R (section*.65) 6534 0 R] +/Limits [(section*.60) (section*.65)] +>> +endobj +9086 0 obj +<< +/Names [(section*.66) 6958 0 R (section*.67) 6983 0 R (section*.68) 6986 0 R (section*.69) 7030 0 R (section*.7) 4384 0 R (section*.70) 7050 0 R] +/Limits [(section*.66) (section*.70)] +>> +endobj +9087 0 obj +<< +/Names [(section*.71) 7052 0 R (section*.72) 7063 0 R (section*.73) 7091 0 R (section*.74) 7098 0 R (section*.75) 7119 0 R (section*.76) 7121 0 R] +/Limits [(section*.71) (section*.76)] +>> +endobj +9088 0 obj +<< +/Names [(section*.77) 7154 0 R (section*.78) 7235 0 R (section*.79) 7303 0 R (section*.8) 4394 0 R (section*.80) 7324 0 R (section*.81) 7338 0 R] +/Limits [(section*.77) (section*.81)] +>> +endobj +9089 0 obj +<< +/Names [(section*.82) 7352 0 R (section*.83) 7353 0 R (section*.84) 7395 0 R (section*.85) 7456 0 R (section*.86) 7471 0 R (section*.87) 7473 0 R] +/Limits [(section*.82) (section*.87)] +>> +endobj +9090 0 obj +<< +/Names [(section*.88) 7493 0 R (section*.89) 7495 0 R (section*.9) 4402 0 R (section*.90) 7503 0 R (section*.91) 7527 0 R (section*.92) 7551 0 R] +/Limits [(section*.88) (section*.92)] +>> +endobj +9091 0 obj +<< +/Names [(section*.93) 7553 0 R (section*.94) 7584 0 R (section*.95) 7610 0 R (section*.96) 7633 0 R (section*.97) 7643 0 R (section*.98) 7667 0 R] +/Limits [(section*.93) (section*.98)] +>> +endobj +9092 0 obj +<< +/Names [(section*.99) 7669 0 R (section.1.1) 6 0 R (section.1.2) 10 0 R (section.1.3) 14 0 R (section.1.4) 18 0 R (section.1.5) 42 0 R] +/Limits [(section*.99) (section.1.5)] +>> +endobj +9093 0 obj +<< +/Names [(section.10.1) 290 0 R (section.10.10) 494 0 R (section.10.11) 514 0 R (section.10.12) 530 0 R (section.10.13) 546 0 R (section.10.14) 562 0 R] +/Limits [(section.10.1) (section.10.14)] +>> +endobj +9094 0 obj +<< +/Names [(section.10.15) 578 0 R (section.10.16) 594 0 R (section.10.17) 618 0 R (section.10.18) 654 0 R (section.10.19) 662 0 R (section.10.2) 310 0 R] +/Limits [(section.10.15) (section.10.2)] +>> +endobj +9095 0 obj +<< +/Names [(section.10.20) 670 0 R (section.10.21) 678 0 R (section.10.22) 686 0 R (section.10.23) 694 0 R (section.10.24) 718 0 R (section.10.25) 738 0 R] +/Limits [(section.10.20) (section.10.25)] +>> +endobj +9096 0 obj +<< +/Names [(section.10.26) 754 0 R (section.10.27) 770 0 R (section.10.28) 798 0 R (section.10.29) 826 0 R (section.10.3) 330 0 R (section.10.30) 842 0 R] +/Limits [(section.10.26) (section.10.30)] +>> +endobj +9097 0 obj +<< +/Names [(section.10.31) 858 0 R (section.10.32) 866 0 R (section.10.33) 874 0 R (section.10.34) 890 0 R (section.10.35) 906 0 R (section.10.36) 934 0 R] +/Limits [(section.10.31) (section.10.36)] +>> +endobj +9098 0 obj +<< +/Names [(section.10.37) 962 0 R (section.10.38) 1002 0 R (section.10.39) 1042 0 R (section.10.4) 354 0 R (section.10.40) 1050 0 R (section.10.41) 1058 0 R] +/Limits [(section.10.37) (section.10.41)] +>> +endobj +9099 0 obj +<< +/Names [(section.10.42) 1246 0 R (section.10.43) 1450 0 R (section.10.44) 1458 0 R (section.10.45) 1466 0 R (section.10.46) 1482 0 R (section.10.47) 1498 0 R] +/Limits [(section.10.42) (section.10.47)] +>> +endobj +9100 0 obj +<< +/Names [(section.10.48) 1506 0 R (section.10.49) 1514 0 R (section.10.5) 378 0 R (section.10.50) 1534 0 R (section.10.51) 1554 0 R (section.10.52) 1562 0 R] +/Limits [(section.10.48) (section.10.52)] +>> +endobj +9101 0 obj +<< +/Names [(section.10.53) 1570 0 R (section.10.54) 1610 0 R (section.10.55) 1650 0 R (section.10.56) 1666 0 R (section.10.57) 1682 0 R (section.10.58) 1702 0 R] +/Limits [(section.10.53) (section.10.58)] +>> +endobj +9102 0 obj +<< +/Names [(section.10.59) 1730 0 R (section.10.6) 398 0 R (section.10.60) 1774 0 R (section.10.61) 1794 0 R (section.10.62) 1802 0 R (section.10.63) 1810 0 R] +/Limits [(section.10.59) (section.10.63)] +>> +endobj +9103 0 obj +<< +/Names [(section.10.64) 1818 0 R (section.10.65) 1826 0 R (section.10.66) 1842 0 R (section.10.67) 1862 0 R (section.10.68) 1882 0 R (section.10.69) 1902 0 R] +/Limits [(section.10.64) (section.10.69)] +>> +endobj +9104 0 obj +<< +/Names [(section.10.7) 418 0 R (section.10.70) 1922 0 R (section.10.71) 1938 0 R (section.10.72) 1954 0 R (section.10.73) 1962 0 R (section.10.74) 1970 0 R] +/Limits [(section.10.7) (section.10.74)] +>> +endobj +9105 0 obj +<< +/Names [(section.10.75) 1986 0 R (section.10.76) 2002 0 R (section.10.77) 2022 0 R (section.10.78) 2042 0 R (section.10.79) 2070 0 R (section.10.8) 446 0 R] +/Limits [(section.10.75) (section.10.8)] +>> +endobj +9106 0 obj +<< +/Names [(section.10.80) 2098 0 R (section.10.81) 2106 0 R (section.10.82) 2114 0 R (section.10.83) 2154 0 R (section.10.84) 2194 0 R (section.10.85) 2202 0 R] +/Limits [(section.10.80) (section.10.85)] +>> +endobj +9107 0 obj +<< +/Names [(section.10.86) 2210 0 R (section.10.87) 2258 0 R (section.10.88) 2306 0 R (section.10.89) 2366 0 R (section.10.9) 474 0 R (section.10.90) 2426 0 R] +/Limits [(section.10.86) (section.10.90)] +>> +endobj +9108 0 obj +<< +/Names [(section.10.91) 2434 0 R (section.10.92) 2442 0 R (section.10.93) 2550 0 R (section.10.94) 2658 0 R (section.10.95) 2666 0 R (section.2.1) 50 0 R] +/Limits [(section.10.91) (section.2.1)] +>> +endobj +9109 0 obj +<< +/Names [(section.2.2) 54 0 R (section.2.3) 58 0 R (section.2.4) 62 0 R (section.3.1) 78 0 R (section.3.2) 82 0 R (section.4.1) 90 0 R] +/Limits [(section.2.2) (section.4.1)] +>> +endobj +9110 0 obj +<< +/Names [(section.4.2) 94 0 R (section.5.1) 122 0 R (section.6.1) 130 0 R (section.7.1) 138 0 R (section.8.1) 146 0 R (section.8.10) 218 0 R] +/Limits [(section.4.2) (section.8.10)] +>> +endobj +9111 0 obj +<< +/Names [(section.8.11) 226 0 R (section.8.12) 234 0 R (section.8.13) 242 0 R (section.8.14) 250 0 R (section.8.15) 258 0 R (section.8.16) 266 0 R] +/Limits [(section.8.11) (section.8.16)] +>> +endobj +9112 0 obj +<< +/Names [(section.8.2) 154 0 R (section.8.3) 162 0 R (section.8.4) 170 0 R (section.8.5) 178 0 R (section.8.6) 186 0 R (section.8.7) 194 0 R] +/Limits [(section.8.2) (section.8.7)] +>> +endobj +9113 0 obj +<< +/Names [(section.8.8) 202 0 R (section.8.9) 210 0 R (section.9.1) 278 0 R (shell__sort_8c) 4296 0 R (shell__sort_8c_a569649d96b2e8f453793ea166d3e96a6) 7708 0 R (shell__sort_8c_a92bc0e3a993e78dfab795f5ccc3e227e) 7707 0 R] +/Limits [(section.8.8) (shell__sort_8c_a92bc0e3a993e78dfab795f5ccc3e227e)] +>> +endobj +9114 0 obj +<< +/Names [(shell__sort_8h) 4297 0 R (shell__sort_8h_a569649d96b2e8f453793ea166d3e96a6) 7722 0 R (shell__sort_8h_a92bc0e3a993e78dfab795f5ccc3e227e) 7721 0 R (solve_8c) 4298 0 R (solve_8c_a829e66492dc3073c0f7a190cda9b7db1) 7757 0 R (solve_8c_a96faf0d4f04f27a12e4ced0bffd0f634) 7760 0 R] +/Limits [(shell__sort_8h) (solve_8c_a96faf0d4f04f27a12e4ced0bffd0f634)] +>> +endobj +9115 0 obj +<< +/Names [(solve_8c_ab6336aff7fbff116a6118b39a0d1e2cd) 7758 0 R (solve_8c_ac728f92ed0a0cba0e8776222acfe1d88) 7759 0 R (solve_8h) 4299 0 R (solve_8h_a829e66492dc3073c0f7a190cda9b7db1) 7810 0 R (solve_8h_a96faf0d4f04f27a12e4ced0bffd0f634) 7813 0 R (solve_8h_ab6336aff7fbff116a6118b39a0d1e2cd) 7811 0 R] +/Limits [(solve_8c_ab6336aff7fbff116a6118b39a0d1e2cd) (solve_8h_ab6336aff7fbff116a6118b39a0d1e2cd)] +>> +endobj +9116 0 obj +<< +/Names [(solve_8h_ac728f92ed0a0cba0e8776222acfe1d88) 7812 0 R (solve__test_8c) 4300 0 R (solve__test_8c_a468b4492daa139d24a18624526001220) 7843 0 R (solve__test_8c_acb6c59801ca040ac66f436b8f332a371) 7844 0 R (solve__test_8h) 4301 0 R (solve__test_8h_a468b4492daa139d24a18624526001220) 7862 0 R] +/Limits [(solve_8h_ac728f92ed0a0cba0e8776222acfe1d88) (solve__test_8h_a468b4492daa139d24a18624526001220)] +>> +endobj +9117 0 obj +<< +/Names [(solve__test_8h_acb6c59801ca040ac66f436b8f332a371) 7863 0 R (structmatrix__dim__t) 4009 0 R (structmatrix__dim__t_a853244a0562d43bfdcdcb704ed707721) 4479 0 R (structmatrix__dim__t_aac6b6ff205184047714d5c22019bdbab) 4480 0 R (subsection.1.4.1) 22 0 R (subsection.1.4.2) 26 0 R] +/Limits [(solve__test_8h_acb6c59801ca040ac66f436b8f332a371) (subsection.1.4.2)] +>> +endobj +9118 0 obj +<< +/Names [(subsection.1.4.3) 30 0 R (subsection.1.4.4) 34 0 R (subsection.1.4.5) 38 0 R (subsection.10.1.1) 294 0 R (subsection.10.1.2) 298 0 R (subsection.10.10.1) 498 0 R] +/Limits [(subsection.1.4.3) (subsection.10.10.1)] +>> +endobj +9119 0 obj +<< +/Names [(subsection.10.10.2) 502 0 R (subsection.10.11.1) 518 0 R (subsection.10.11.2) 522 0 R (subsection.10.12.1) 534 0 R (subsection.10.12.2) 538 0 R (subsection.10.13.1) 550 0 R] +/Limits [(subsection.10.10.2) (subsection.10.13.1)] +>> +endobj +9120 0 obj +<< +/Names [(subsection.10.13.2) 554 0 R (subsection.10.14.1) 566 0 R (subsection.10.14.2) 570 0 R (subsection.10.15.1) 582 0 R (subsection.10.15.2) 586 0 R (subsection.10.16.1) 598 0 R] +/Limits [(subsection.10.13.2) (subsection.10.16.1)] +>> +endobj +9121 0 obj +<< +/Names [(subsection.10.16.2) 602 0 R (subsection.10.16.3) 610 0 R (subsection.10.17.1) 622 0 R (subsection.10.17.2) 626 0 R (subsection.10.18.1) 658 0 R (subsection.10.19.1) 666 0 R] +/Limits [(subsection.10.16.2) (subsection.10.19.1)] +>> +endobj +9122 0 obj +<< +/Names [(subsection.10.2.1) 314 0 R (subsection.10.2.2) 318 0 R (subsection.10.20.1) 674 0 R (subsection.10.21.1) 682 0 R (subsection.10.22.1) 690 0 R (subsection.10.23.1) 698 0 R] +/Limits [(subsection.10.2.1) (subsection.10.23.1)] +>> +endobj +9123 0 obj +<< +/Names [(subsection.10.23.2) 702 0 R (subsection.10.24.1) 722 0 R (subsection.10.24.2) 726 0 R (subsection.10.25.1) 742 0 R (subsection.10.25.2) 746 0 R (subsection.10.26.1) 758 0 R] +/Limits [(subsection.10.23.2) (subsection.10.26.1)] +>> +endobj +9124 0 obj +<< +/Names [(subsection.10.26.2) 762 0 R (subsection.10.27.1) 774 0 R (subsection.10.27.2) 778 0 R (subsection.10.28.1) 802 0 R (subsection.10.28.2) 806 0 R (subsection.10.29.1) 830 0 R] +/Limits [(subsection.10.26.2) (subsection.10.29.1)] +>> +endobj +9125 0 obj +<< +/Names [(subsection.10.29.2) 834 0 R (subsection.10.3.1) 334 0 R (subsection.10.3.2) 338 0 R (subsection.10.30.1) 846 0 R (subsection.10.30.2) 850 0 R (subsection.10.31.1) 862 0 R] +/Limits [(subsection.10.29.2) (subsection.10.31.1)] +>> +endobj +9126 0 obj +<< +/Names [(subsection.10.32.1) 870 0 R (subsection.10.33.1) 878 0 R (subsection.10.33.2) 882 0 R (subsection.10.34.1) 894 0 R (subsection.10.34.2) 898 0 R (subsection.10.35.1) 910 0 R] +/Limits [(subsection.10.32.1) (subsection.10.35.1)] +>> +endobj +9127 0 obj +<< +/Names [(subsection.10.35.2) 914 0 R (subsection.10.36.1) 938 0 R (subsection.10.36.2) 942 0 R (subsection.10.37.1) 966 0 R (subsection.10.37.2) 970 0 R (subsection.10.38.1) 1006 0 R] +/Limits [(subsection.10.35.2) (subsection.10.38.1)] +>> +endobj +9128 0 obj +<< +/Names [(subsection.10.38.2) 1010 0 R (subsection.10.39.1) 1046 0 R (subsection.10.4.1) 358 0 R (subsection.10.4.2) 362 0 R (subsection.10.40.1) 1054 0 R (subsection.10.41.1) 1062 0 R] +/Limits [(subsection.10.38.2) (subsection.10.41.1)] +>> +endobj +9129 0 obj +<< +/Names [(subsection.10.41.2) 1066 0 R (subsection.10.42.1) 1250 0 R (subsection.10.42.2) 1254 0 R (subsection.10.42.3) 1270 0 R (subsection.10.43.1) 1454 0 R (subsection.10.44.1) 1462 0 R] +/Limits [(subsection.10.41.2) (subsection.10.44.1)] +>> +endobj +9130 0 obj +<< +/Names [(subsection.10.45.1) 1470 0 R (subsection.10.45.2) 1474 0 R (subsection.10.46.1) 1486 0 R (subsection.10.46.2) 1490 0 R (subsection.10.47.1) 1502 0 R (subsection.10.48.1) 1510 0 R] +/Limits [(subsection.10.45.1) (subsection.10.48.1)] +>> +endobj +9131 0 obj +<< +/Names [(subsection.10.49.1) 1518 0 R (subsection.10.49.2) 1522 0 R (subsection.10.5.1) 382 0 R (subsection.10.5.2) 386 0 R (subsection.10.50.1) 1538 0 R (subsection.10.50.2) 1542 0 R] +/Limits [(subsection.10.49.1) (subsection.10.50.2)] +>> +endobj +9132 0 obj +<< +/Names [(subsection.10.51.1) 1558 0 R (subsection.10.52.1) 1566 0 R (subsection.10.53.1) 1574 0 R (subsection.10.53.2) 1578 0 R (subsection.10.54.1) 1614 0 R (subsection.10.54.2) 1618 0 R] +/Limits [(subsection.10.51.1) (subsection.10.54.2)] +>> +endobj +9133 0 obj +<< +/Names [(subsection.10.55.1) 1654 0 R (subsection.10.55.2) 1658 0 R (subsection.10.56.1) 1670 0 R (subsection.10.56.2) 1674 0 R (subsection.10.57.1) 1686 0 R (subsection.10.57.2) 1690 0 R] +/Limits [(subsection.10.55.1) (subsection.10.57.2)] +>> +endobj +9134 0 obj +<< +/Names [(subsection.10.58.1) 1706 0 R (subsection.10.58.2) 1710 0 R (subsection.10.58.3) 1718 0 R (subsection.10.59.1) 1734 0 R (subsection.10.59.2) 1738 0 R (subsection.10.6.1) 402 0 R] +/Limits [(subsection.10.58.1) (subsection.10.6.1)] +>> +endobj +9135 0 obj +<< +/Names [(subsection.10.6.2) 406 0 R (subsection.10.60.1) 1778 0 R (subsection.10.60.2) 1782 0 R (subsection.10.61.1) 1798 0 R (subsection.10.62.1) 1806 0 R (subsection.10.63.1) 1814 0 R] +/Limits [(subsection.10.6.2) (subsection.10.63.1)] +>> +endobj +9136 0 obj +<< +/Names [(subsection.10.64.1) 1822 0 R (subsection.10.65.1) 1830 0 R (subsection.10.65.2) 1834 0 R (subsection.10.66.1) 1846 0 R (subsection.10.66.2) 1850 0 R (subsection.10.67.1) 1866 0 R] +/Limits [(subsection.10.64.1) (subsection.10.67.1)] +>> +endobj +9137 0 obj +<< +/Names [(subsection.10.67.2) 1870 0 R (subsection.10.68.1) 1886 0 R (subsection.10.68.2) 1890 0 R (subsection.10.69.1) 1906 0 R (subsection.10.69.2) 1910 0 R (subsection.10.7.1) 422 0 R] +/Limits [(subsection.10.67.2) (subsection.10.7.1)] +>> +endobj +9138 0 obj +<< +/Names [(subsection.10.7.2) 426 0 R (subsection.10.70.1) 1926 0 R (subsection.10.70.2) 1930 0 R (subsection.10.71.1) 1942 0 R (subsection.10.71.2) 1946 0 R (subsection.10.72.1) 1958 0 R] +/Limits [(subsection.10.7.2) (subsection.10.72.1)] +>> +endobj +9139 0 obj +<< +/Names [(subsection.10.73.1) 1966 0 R (subsection.10.74.1) 1974 0 R (subsection.10.74.2) 1978 0 R (subsection.10.75.1) 1990 0 R (subsection.10.75.2) 1994 0 R (subsection.10.76.1) 2006 0 R] +/Limits [(subsection.10.73.1) (subsection.10.76.1)] +>> +endobj +9140 0 obj +<< +/Names [(subsection.10.76.2) 2010 0 R (subsection.10.77.1) 2026 0 R (subsection.10.77.2) 2030 0 R (subsection.10.78.1) 2046 0 R (subsection.10.78.2) 2050 0 R (subsection.10.79.1) 2074 0 R] +/Limits [(subsection.10.76.2) (subsection.10.79.1)] +>> +endobj +9141 0 obj +<< +/Names [(subsection.10.79.2) 2078 0 R (subsection.10.8.1) 450 0 R (subsection.10.8.2) 454 0 R (subsection.10.80.1) 2102 0 R (subsection.10.81.1) 2110 0 R (subsection.10.82.1) 2118 0 R] +/Limits [(subsection.10.79.2) (subsection.10.82.1)] +>> +endobj +9142 0 obj +<< +/Names [(subsection.10.82.2) 2122 0 R (subsection.10.83.1) 2158 0 R (subsection.10.83.2) 2162 0 R (subsection.10.84.1) 2198 0 R (subsection.10.85.1) 2206 0 R (subsection.10.86.1) 2214 0 R] +/Limits [(subsection.10.82.2) (subsection.10.86.1)] +>> +endobj +9143 0 obj +<< +/Names [(subsection.10.86.2) 2218 0 R (subsection.10.87.1) 2262 0 R (subsection.10.87.2) 2266 0 R (subsection.10.88.1) 2310 0 R (subsection.10.88.2) 2314 0 R (subsection.10.89.1) 2370 0 R] +/Limits [(subsection.10.86.2) (subsection.10.89.1)] +>> +endobj +9144 0 obj +<< +/Names [(subsection.10.89.2) 2374 0 R (subsection.10.9.1) 478 0 R (subsection.10.9.2) 482 0 R (subsection.10.90.1) 2430 0 R (subsection.10.91.1) 2438 0 R (subsection.10.92.1) 2446 0 R] +/Limits [(subsection.10.89.2) (subsection.10.92.1)] +>> +endobj +9145 0 obj +<< +/Names [(subsection.10.92.2) 2450 0 R (subsection.10.93.1) 2554 0 R (subsection.10.93.2) 2558 0 R (subsection.10.94.1) 2662 0 R (subsection.10.95.1) 2670 0 R (subsection.2.4.1) 66 0 R] +/Limits [(subsection.10.92.2) (subsection.2.4.1)] +>> +endobj +9146 0 obj +<< +/Names [(subsection.2.4.2) 70 0 R (subsection.4.2.1) 98 0 R (subsection.4.2.2) 102 0 R (subsection.4.2.3) 106 0 R (subsection.4.2.4) 110 0 R (subsection.4.2.5) 114 0 R] +/Limits [(subsection.2.4.2) (subsection.4.2.5)] +>> +endobj +9147 0 obj +<< +/Names [(subsection.8.1.1) 150 0 R (subsection.8.10.1) 222 0 R (subsection.8.11.1) 230 0 R (subsection.8.12.1) 238 0 R (subsection.8.13.1) 246 0 R (subsection.8.14.1) 254 0 R] +/Limits [(subsection.8.1.1) (subsection.8.14.1)] +>> +endobj +9148 0 obj +<< +/Names [(subsection.8.15.1) 262 0 R (subsection.8.16.1) 270 0 R (subsection.8.2.1) 158 0 R (subsection.8.3.1) 166 0 R (subsection.8.4.1) 174 0 R (subsection.8.5.1) 182 0 R] +/Limits [(subsection.8.15.1) (subsection.8.5.1)] +>> +endobj +9149 0 obj +<< +/Names [(subsection.8.6.1) 190 0 R (subsection.8.7.1) 198 0 R (subsection.8.8.1) 206 0 R (subsection.8.9.1) 214 0 R (subsection.9.1.1) 282 0 R (subsubsection.10.1.2.1) 302 0 R] +/Limits [(subsection.8.6.1) (subsubsection.10.1.2.1)] +>> +endobj +9150 0 obj +<< +/Names [(subsubsection.10.1.2.2) 306 0 R (subsubsection.10.10.2.1) 506 0 R (subsubsection.10.10.2.2) 510 0 R (subsubsection.10.11.2.1) 526 0 R (subsubsection.10.12.2.1) 542 0 R (subsubsection.10.13.2.1) 558 0 R] +/Limits [(subsubsection.10.1.2.2) (subsubsection.10.13.2.1)] +>> +endobj +9151 0 obj +<< +/Names [(subsubsection.10.14.2.1) 574 0 R (subsubsection.10.15.2.1) 590 0 R (subsubsection.10.16.2.1) 606 0 R (subsubsection.10.16.3.1) 614 0 R (subsubsection.10.17.2.1) 630 0 R (subsubsection.10.17.2.2) 634 0 R] +/Limits [(subsubsection.10.14.2.1) (subsubsection.10.17.2.2)] +>> +endobj +9152 0 obj +<< +/Names [(subsubsection.10.17.2.3) 638 0 R (subsubsection.10.17.2.4) 642 0 R (subsubsection.10.17.2.5) 646 0 R (subsubsection.10.17.2.6) 650 0 R (subsubsection.10.2.2.1) 322 0 R (subsubsection.10.2.2.2) 326 0 R] +/Limits [(subsubsection.10.17.2.3) (subsubsection.10.2.2.2)] +>> +endobj +9153 0 obj +<< +/Names [(subsubsection.10.23.2.1) 706 0 R (subsubsection.10.23.2.2) 710 0 R (subsubsection.10.23.2.3) 714 0 R (subsubsection.10.24.2.1) 730 0 R (subsubsection.10.24.2.2) 734 0 R (subsubsection.10.25.2.1) 750 0 R] +/Limits [(subsubsection.10.23.2.1) (subsubsection.10.25.2.1)] +>> +endobj +9154 0 obj +<< +/Names [(subsubsection.10.26.2.1) 766 0 R (subsubsection.10.27.2.1) 782 0 R (subsubsection.10.27.2.2) 786 0 R (subsubsection.10.27.2.3) 790 0 R (subsubsection.10.27.2.4) 794 0 R (subsubsection.10.28.2.1) 810 0 R] +/Limits [(subsubsection.10.26.2.1) (subsubsection.10.28.2.1)] +>> +endobj +9155 0 obj +<< +/Names [(subsubsection.10.28.2.2) 814 0 R (subsubsection.10.28.2.3) 818 0 R (subsubsection.10.28.2.4) 822 0 R (subsubsection.10.29.2.1) 838 0 R (subsubsection.10.3.2.1) 342 0 R (subsubsection.10.3.2.2) 346 0 R] +/Limits [(subsubsection.10.28.2.2) (subsubsection.10.3.2.2)] +>> +endobj +9156 0 obj +<< +/Names [(subsubsection.10.3.2.3) 350 0 R (subsubsection.10.30.2.1) 854 0 R (subsubsection.10.33.2.1) 886 0 R (subsubsection.10.34.2.1) 902 0 R (subsubsection.10.35.2.1) 918 0 R (subsubsection.10.35.2.2) 922 0 R] +/Limits [(subsubsection.10.3.2.3) (subsubsection.10.35.2.2)] +>> +endobj +9157 0 obj +<< +/Names [(subsubsection.10.35.2.3) 926 0 R (subsubsection.10.35.2.4) 930 0 R (subsubsection.10.36.2.1) 946 0 R (subsubsection.10.36.2.2) 950 0 R (subsubsection.10.36.2.3) 954 0 R (subsubsection.10.36.2.4) 958 0 R] +/Limits [(subsubsection.10.35.2.3) (subsubsection.10.36.2.4)] +>> +endobj +9158 0 obj +<< +/Names [(subsubsection.10.37.2.1) 974 0 R (subsubsection.10.37.2.2) 978 0 R (subsubsection.10.37.2.3) 982 0 R (subsubsection.10.37.2.4) 986 0 R (subsubsection.10.37.2.5) 990 0 R (subsubsection.10.37.2.6) 994 0 R] +/Limits [(subsubsection.10.37.2.1) (subsubsection.10.37.2.6)] +>> +endobj +9159 0 obj +<< +/Names [(subsubsection.10.37.2.7) 998 0 R (subsubsection.10.38.2.1) 1014 0 R (subsubsection.10.38.2.2) 1018 0 R (subsubsection.10.38.2.3) 1022 0 R (subsubsection.10.38.2.4) 1026 0 R (subsubsection.10.38.2.5) 1030 0 R] +/Limits [(subsubsection.10.37.2.7) (subsubsection.10.38.2.5)] +>> +endobj +9160 0 obj +<< +/Names [(subsubsection.10.38.2.6) 1034 0 R (subsubsection.10.38.2.7) 1038 0 R (subsubsection.10.4.2.1) 366 0 R (subsubsection.10.4.2.2) 370 0 R (subsubsection.10.4.2.3) 374 0 R (subsubsection.10.41.2.1) 1070 0 R] +/Limits [(subsubsection.10.38.2.6) (subsubsection.10.41.2.1)] +>> +endobj +9161 0 obj +<< +/Names [(subsubsection.10.41.2.10) 1106 0 R (subsubsection.10.41.2.11) 1110 0 R (subsubsection.10.41.2.12) 1114 0 R (subsubsection.10.41.2.13) 1118 0 R (subsubsection.10.41.2.14) 1122 0 R (subsubsection.10.41.2.15) 1126 0 R] +/Limits [(subsubsection.10.41.2.10) (subsubsection.10.41.2.15)] +>> +endobj +9162 0 obj +<< +/Names [(subsubsection.10.41.2.16) 1130 0 R (subsubsection.10.41.2.17) 1134 0 R (subsubsection.10.41.2.18) 1138 0 R (subsubsection.10.41.2.19) 1142 0 R (subsubsection.10.41.2.2) 1074 0 R (subsubsection.10.41.2.20) 1146 0 R] +/Limits [(subsubsection.10.41.2.16) (subsubsection.10.41.2.20)] +>> +endobj +9163 0 obj +<< +/Names [(subsubsection.10.41.2.21) 1150 0 R (subsubsection.10.41.2.22) 1154 0 R (subsubsection.10.41.2.23) 1158 0 R (subsubsection.10.41.2.24) 1162 0 R (subsubsection.10.41.2.25) 1166 0 R (subsubsection.10.41.2.26) 1170 0 R] +/Limits [(subsubsection.10.41.2.21) (subsubsection.10.41.2.26)] +>> +endobj +9164 0 obj +<< +/Names [(subsubsection.10.41.2.27) 1174 0 R (subsubsection.10.41.2.28) 1178 0 R (subsubsection.10.41.2.29) 1182 0 R (subsubsection.10.41.2.3) 1078 0 R (subsubsection.10.41.2.30) 1186 0 R (subsubsection.10.41.2.31) 1190 0 R] +/Limits [(subsubsection.10.41.2.27) (subsubsection.10.41.2.31)] +>> +endobj +9165 0 obj +<< +/Names [(subsubsection.10.41.2.32) 1194 0 R (subsubsection.10.41.2.33) 1198 0 R (subsubsection.10.41.2.34) 1202 0 R (subsubsection.10.41.2.35) 1206 0 R (subsubsection.10.41.2.36) 1210 0 R (subsubsection.10.41.2.37) 1214 0 R] +/Limits [(subsubsection.10.41.2.32) (subsubsection.10.41.2.37)] +>> +endobj +9166 0 obj +<< +/Names [(subsubsection.10.41.2.38) 1218 0 R (subsubsection.10.41.2.39) 1222 0 R (subsubsection.10.41.2.4) 1082 0 R (subsubsection.10.41.2.40) 1226 0 R (subsubsection.10.41.2.41) 1230 0 R (subsubsection.10.41.2.42) 1234 0 R] +/Limits [(subsubsection.10.41.2.38) (subsubsection.10.41.2.42)] +>> +endobj +9167 0 obj +<< +/Names [(subsubsection.10.41.2.43) 1238 0 R (subsubsection.10.41.2.44) 1242 0 R (subsubsection.10.41.2.5) 1086 0 R (subsubsection.10.41.2.6) 1090 0 R (subsubsection.10.41.2.7) 1094 0 R (subsubsection.10.41.2.8) 1098 0 R] +/Limits [(subsubsection.10.41.2.43) (subsubsection.10.41.2.8)] +>> +endobj +9168 0 obj +<< +/Names [(subsubsection.10.41.2.9) 1102 0 R (subsubsection.10.42.2.1) 1258 0 R (subsubsection.10.42.2.2) 1262 0 R (subsubsection.10.42.2.3) 1266 0 R (subsubsection.10.42.3.1) 1274 0 R (subsubsection.10.42.3.10) 1310 0 R] +/Limits [(subsubsection.10.41.2.9) (subsubsection.10.42.3.10)] +>> +endobj +9169 0 obj +<< +/Names [(subsubsection.10.42.3.11) 1314 0 R (subsubsection.10.42.3.12) 1318 0 R (subsubsection.10.42.3.13) 1322 0 R (subsubsection.10.42.3.14) 1326 0 R (subsubsection.10.42.3.15) 1330 0 R (subsubsection.10.42.3.16) 1334 0 R] +/Limits [(subsubsection.10.42.3.11) (subsubsection.10.42.3.16)] +>> +endobj +9170 0 obj +<< +/Names [(subsubsection.10.42.3.17) 1338 0 R (subsubsection.10.42.3.18) 1342 0 R (subsubsection.10.42.3.19) 1346 0 R (subsubsection.10.42.3.2) 1278 0 R (subsubsection.10.42.3.20) 1350 0 R (subsubsection.10.42.3.21) 1354 0 R] +/Limits [(subsubsection.10.42.3.17) (subsubsection.10.42.3.21)] +>> +endobj +9171 0 obj +<< +/Names [(subsubsection.10.42.3.22) 1358 0 R (subsubsection.10.42.3.23) 1362 0 R (subsubsection.10.42.3.24) 1366 0 R (subsubsection.10.42.3.25) 1370 0 R (subsubsection.10.42.3.26) 1374 0 R (subsubsection.10.42.3.27) 1378 0 R] +/Limits [(subsubsection.10.42.3.22) (subsubsection.10.42.3.27)] +>> +endobj +9172 0 obj +<< +/Names [(subsubsection.10.42.3.28) 1382 0 R (subsubsection.10.42.3.29) 1386 0 R (subsubsection.10.42.3.3) 1282 0 R (subsubsection.10.42.3.30) 1390 0 R (subsubsection.10.42.3.31) 1394 0 R (subsubsection.10.42.3.32) 1398 0 R] +/Limits [(subsubsection.10.42.3.28) (subsubsection.10.42.3.32)] +>> +endobj +9173 0 obj +<< +/Names [(subsubsection.10.42.3.33) 1402 0 R (subsubsection.10.42.3.34) 1406 0 R (subsubsection.10.42.3.35) 1410 0 R (subsubsection.10.42.3.36) 1414 0 R (subsubsection.10.42.3.37) 1418 0 R (subsubsection.10.42.3.38) 1422 0 R] +/Limits [(subsubsection.10.42.3.33) (subsubsection.10.42.3.38)] +>> +endobj +9174 0 obj +<< +/Names [(subsubsection.10.42.3.39) 1426 0 R (subsubsection.10.42.3.4) 1286 0 R (subsubsection.10.42.3.40) 1430 0 R (subsubsection.10.42.3.41) 1434 0 R (subsubsection.10.42.3.42) 1438 0 R (subsubsection.10.42.3.43) 1442 0 R] +/Limits [(subsubsection.10.42.3.39) (subsubsection.10.42.3.43)] +>> +endobj +9175 0 obj +<< +/Names [(subsubsection.10.42.3.44) 1446 0 R (subsubsection.10.42.3.5) 1290 0 R (subsubsection.10.42.3.6) 1294 0 R (subsubsection.10.42.3.7) 1298 0 R (subsubsection.10.42.3.8) 1302 0 R (subsubsection.10.42.3.9) 1306 0 R] +/Limits [(subsubsection.10.42.3.44) (subsubsection.10.42.3.9)] +>> +endobj +9176 0 obj +<< +/Names [(subsubsection.10.45.2.1) 1478 0 R (subsubsection.10.46.2.1) 1494 0 R (subsubsection.10.49.2.1) 1526 0 R (subsubsection.10.49.2.2) 1530 0 R (subsubsection.10.5.2.1) 390 0 R (subsubsection.10.5.2.2) 394 0 R] +/Limits [(subsubsection.10.45.2.1) (subsubsection.10.5.2.2)] +>> +endobj +9177 0 obj +<< +/Names [(subsubsection.10.50.2.1) 1546 0 R (subsubsection.10.50.2.2) 1550 0 R (subsubsection.10.53.2.1) 1582 0 R (subsubsection.10.53.2.2) 1586 0 R (subsubsection.10.53.2.3) 1590 0 R (subsubsection.10.53.2.4) 1594 0 R] +/Limits [(subsubsection.10.50.2.1) (subsubsection.10.53.2.4)] +>> +endobj +9178 0 obj +<< +/Names [(subsubsection.10.53.2.5) 1598 0 R (subsubsection.10.53.2.6) 1602 0 R (subsubsection.10.53.2.7) 1606 0 R (subsubsection.10.54.2.1) 1622 0 R (subsubsection.10.54.2.2) 1626 0 R (subsubsection.10.54.2.3) 1630 0 R] +/Limits [(subsubsection.10.53.2.5) (subsubsection.10.54.2.3)] +>> +endobj +9179 0 obj +<< +/Names [(subsubsection.10.54.2.4) 1634 0 R (subsubsection.10.54.2.5) 1638 0 R (subsubsection.10.54.2.6) 1642 0 R (subsubsection.10.54.2.7) 1646 0 R (subsubsection.10.55.2.1) 1662 0 R (subsubsection.10.56.2.1) 1678 0 R] +/Limits [(subsubsection.10.54.2.4) (subsubsection.10.56.2.1)] +>> +endobj +9180 0 obj +<< +/Names [(subsubsection.10.57.2.1) 1694 0 R (subsubsection.10.57.2.2) 1698 0 R (subsubsection.10.58.2.1) 1714 0 R (subsubsection.10.58.3.1) 1722 0 R (subsubsection.10.58.3.2) 1726 0 R (subsubsection.10.59.2.1) 1742 0 R] +/Limits [(subsubsection.10.57.2.1) (subsubsection.10.59.2.1)] +>> +endobj +9181 0 obj +<< +/Names [(subsubsection.10.59.2.2) 1746 0 R (subsubsection.10.59.2.3) 1750 0 R (subsubsection.10.59.2.4) 1754 0 R (subsubsection.10.59.2.5) 1758 0 R (subsubsection.10.59.2.6) 1762 0 R (subsubsection.10.59.2.7) 1766 0 R] +/Limits [(subsubsection.10.59.2.2) (subsubsection.10.59.2.7)] +>> +endobj +9182 0 obj +<< +/Names [(subsubsection.10.59.2.8) 1770 0 R (subsubsection.10.6.2.1) 410 0 R (subsubsection.10.6.2.2) 414 0 R (subsubsection.10.60.2.1) 1786 0 R (subsubsection.10.60.2.2) 1790 0 R (subsubsection.10.65.2.1) 1838 0 R] +/Limits [(subsubsection.10.59.2.8) (subsubsection.10.65.2.1)] +>> +endobj +9183 0 obj +<< +/Names [(subsubsection.10.66.2.1) 1854 0 R (subsubsection.10.66.2.2) 1858 0 R (subsubsection.10.67.2.1) 1874 0 R (subsubsection.10.67.2.2) 1878 0 R (subsubsection.10.68.2.1) 1894 0 R (subsubsection.10.68.2.2) 1898 0 R] +/Limits [(subsubsection.10.66.2.1) (subsubsection.10.68.2.2)] +>> +endobj +9184 0 obj +<< +/Names [(subsubsection.10.69.2.1) 1914 0 R (subsubsection.10.69.2.2) 1918 0 R (subsubsection.10.7.2.1) 430 0 R (subsubsection.10.7.2.2) 434 0 R (subsubsection.10.7.2.3) 438 0 R (subsubsection.10.7.2.4) 442 0 R] +/Limits [(subsubsection.10.69.2.1) (subsubsection.10.7.2.4)] +>> +endobj +9185 0 obj +<< +/Names [(subsubsection.10.70.2.1) 1934 0 R (subsubsection.10.71.2.1) 1950 0 R (subsubsection.10.74.2.1) 1982 0 R (subsubsection.10.75.2.1) 1998 0 R (subsubsection.10.76.2.1) 2014 0 R (subsubsection.10.76.2.2) 2018 0 R] +/Limits [(subsubsection.10.70.2.1) (subsubsection.10.76.2.2)] +>> +endobj +9186 0 obj +<< +/Names [(subsubsection.10.77.2.1) 2034 0 R (subsubsection.10.77.2.2) 2038 0 R (subsubsection.10.78.2.1) 2054 0 R (subsubsection.10.78.2.2) 2058 0 R (subsubsection.10.78.2.3) 2062 0 R (subsubsection.10.78.2.4) 2066 0 R] +/Limits [(subsubsection.10.77.2.1) (subsubsection.10.78.2.4)] +>> +endobj +9187 0 obj +<< +/Names [(subsubsection.10.79.2.1) 2082 0 R (subsubsection.10.79.2.2) 2086 0 R (subsubsection.10.79.2.3) 2090 0 R (subsubsection.10.79.2.4) 2094 0 R (subsubsection.10.8.2.1) 458 0 R (subsubsection.10.8.2.2) 462 0 R] +/Limits [(subsubsection.10.79.2.1) (subsubsection.10.8.2.2)] +>> +endobj +9188 0 obj +<< +/Names [(subsubsection.10.8.2.3) 466 0 R (subsubsection.10.8.2.4) 470 0 R (subsubsection.10.82.2.1) 2126 0 R (subsubsection.10.82.2.2) 2130 0 R (subsubsection.10.82.2.3) 2134 0 R (subsubsection.10.82.2.4) 2138 0 R] +/Limits [(subsubsection.10.8.2.3) (subsubsection.10.82.2.4)] +>> +endobj +9189 0 obj +<< +/Names [(subsubsection.10.82.2.5) 2142 0 R (subsubsection.10.82.2.6) 2146 0 R (subsubsection.10.82.2.7) 2150 0 R (subsubsection.10.83.2.1) 2166 0 R (subsubsection.10.83.2.2) 2170 0 R (subsubsection.10.83.2.3) 2174 0 R] +/Limits [(subsubsection.10.82.2.5) (subsubsection.10.83.2.3)] +>> +endobj +9190 0 obj +<< +/Names [(subsubsection.10.83.2.4) 2178 0 R (subsubsection.10.83.2.5) 2182 0 R (subsubsection.10.83.2.6) 2186 0 R (subsubsection.10.83.2.7) 2190 0 R (subsubsection.10.86.2.1) 2222 0 R (subsubsection.10.86.2.2) 2226 0 R] +/Limits [(subsubsection.10.83.2.4) (subsubsection.10.86.2.2)] +>> +endobj +9191 0 obj +<< +/Names [(subsubsection.10.86.2.3) 2230 0 R (subsubsection.10.86.2.4) 2234 0 R (subsubsection.10.86.2.5) 2238 0 R (subsubsection.10.86.2.6) 2242 0 R (subsubsection.10.86.2.7) 2246 0 R (subsubsection.10.86.2.8) 2250 0 R] +/Limits [(subsubsection.10.86.2.3) (subsubsection.10.86.2.8)] +>> +endobj +9192 0 obj +<< +/Names [(subsubsection.10.86.2.9) 2254 0 R (subsubsection.10.87.2.1) 2270 0 R (subsubsection.10.87.2.2) 2274 0 R (subsubsection.10.87.2.3) 2278 0 R (subsubsection.10.87.2.4) 2282 0 R (subsubsection.10.87.2.5) 2286 0 R] +/Limits [(subsubsection.10.86.2.9) (subsubsection.10.87.2.5)] +>> +endobj +9193 0 obj +<< +/Names [(subsubsection.10.87.2.6) 2290 0 R (subsubsection.10.87.2.7) 2294 0 R (subsubsection.10.87.2.8) 2298 0 R (subsubsection.10.87.2.9) 2302 0 R (subsubsection.10.88.2.1) 2318 0 R (subsubsection.10.88.2.10) 2354 0 R] +/Limits [(subsubsection.10.87.2.6) (subsubsection.10.88.2.10)] +>> +endobj +9194 0 obj +<< +/Names [(subsubsection.10.88.2.11) 2358 0 R (subsubsection.10.88.2.12) 2362 0 R (subsubsection.10.88.2.2) 2322 0 R (subsubsection.10.88.2.3) 2326 0 R (subsubsection.10.88.2.4) 2330 0 R (subsubsection.10.88.2.5) 2334 0 R] +/Limits [(subsubsection.10.88.2.11) (subsubsection.10.88.2.5)] +>> +endobj +9195 0 obj +<< +/Names [(subsubsection.10.88.2.6) 2338 0 R (subsubsection.10.88.2.7) 2342 0 R (subsubsection.10.88.2.8) 2346 0 R (subsubsection.10.88.2.9) 2350 0 R (subsubsection.10.89.2.1) 2378 0 R (subsubsection.10.89.2.10) 2414 0 R] +/Limits [(subsubsection.10.88.2.6) (subsubsection.10.89.2.10)] +>> +endobj +9196 0 obj +<< +/Names [(subsubsection.10.89.2.11) 2418 0 R (subsubsection.10.89.2.12) 2422 0 R (subsubsection.10.89.2.2) 2382 0 R (subsubsection.10.89.2.3) 2386 0 R (subsubsection.10.89.2.4) 2390 0 R (subsubsection.10.89.2.5) 2394 0 R] +/Limits [(subsubsection.10.89.2.11) (subsubsection.10.89.2.5)] +>> +endobj +9197 0 obj +<< +/Names [(subsubsection.10.89.2.6) 2398 0 R (subsubsection.10.89.2.7) 2402 0 R (subsubsection.10.89.2.8) 2406 0 R (subsubsection.10.89.2.9) 2410 0 R (subsubsection.10.9.2.1) 486 0 R (subsubsection.10.9.2.2) 490 0 R] +/Limits [(subsubsection.10.89.2.6) (subsubsection.10.9.2.2)] +>> +endobj +9198 0 obj +<< +/Names [(subsubsection.10.92.2.1) 2454 0 R (subsubsection.10.92.2.10) 2490 0 R (subsubsection.10.92.2.11) 2494 0 R (subsubsection.10.92.2.12) 2498 0 R (subsubsection.10.92.2.13) 2502 0 R (subsubsection.10.92.2.14) 2506 0 R] +/Limits [(subsubsection.10.92.2.1) (subsubsection.10.92.2.14)] +>> +endobj +9199 0 obj +<< +/Names [(subsubsection.10.92.2.15) 2510 0 R (subsubsection.10.92.2.16) 2514 0 R (subsubsection.10.92.2.17) 2518 0 R (subsubsection.10.92.2.18) 2522 0 R (subsubsection.10.92.2.19) 2526 0 R (subsubsection.10.92.2.2) 2458 0 R] +/Limits [(subsubsection.10.92.2.15) (subsubsection.10.92.2.2)] +>> +endobj +9200 0 obj +<< +/Names [(subsubsection.10.92.2.20) 2530 0 R (subsubsection.10.92.2.21) 2534 0 R (subsubsection.10.92.2.22) 2538 0 R (subsubsection.10.92.2.23) 2542 0 R (subsubsection.10.92.2.24) 2546 0 R (subsubsection.10.92.2.3) 2462 0 R] +/Limits [(subsubsection.10.92.2.20) (subsubsection.10.92.2.3)] +>> +endobj +9201 0 obj +<< +/Names [(subsubsection.10.92.2.4) 2466 0 R (subsubsection.10.92.2.5) 2470 0 R (subsubsection.10.92.2.6) 2474 0 R (subsubsection.10.92.2.7) 2478 0 R (subsubsection.10.92.2.8) 2482 0 R (subsubsection.10.92.2.9) 2486 0 R] +/Limits [(subsubsection.10.92.2.4) (subsubsection.10.92.2.9)] +>> +endobj +9202 0 obj +<< +/Names [(subsubsection.10.93.2.1) 2562 0 R (subsubsection.10.93.2.10) 2598 0 R (subsubsection.10.93.2.11) 2602 0 R (subsubsection.10.93.2.12) 2606 0 R (subsubsection.10.93.2.13) 2610 0 R (subsubsection.10.93.2.14) 2614 0 R] +/Limits [(subsubsection.10.93.2.1) (subsubsection.10.93.2.14)] +>> +endobj +9203 0 obj +<< +/Names [(subsubsection.10.93.2.15) 2618 0 R (subsubsection.10.93.2.16) 2622 0 R (subsubsection.10.93.2.17) 2626 0 R (subsubsection.10.93.2.18) 2630 0 R (subsubsection.10.93.2.19) 2634 0 R (subsubsection.10.93.2.2) 2566 0 R] +/Limits [(subsubsection.10.93.2.15) (subsubsection.10.93.2.2)] +>> +endobj +9204 0 obj +<< +/Names [(subsubsection.10.93.2.20) 2638 0 R (subsubsection.10.93.2.21) 2642 0 R (subsubsection.10.93.2.22) 2646 0 R (subsubsection.10.93.2.23) 2650 0 R (subsubsection.10.93.2.24) 2654 0 R (subsubsection.10.93.2.3) 2570 0 R] +/Limits [(subsubsection.10.93.2.20) (subsubsection.10.93.2.3)] +>> +endobj +9205 0 obj +<< +/Names [(subsubsection.10.93.2.4) 2574 0 R (subsubsection.10.93.2.5) 2578 0 R (subsubsection.10.93.2.6) 2582 0 R (subsubsection.10.93.2.7) 2586 0 R (subsubsection.10.93.2.8) 2590 0 R (subsubsection.10.93.2.9) 2594 0 R] +/Limits [(subsubsection.10.93.2.4) (subsubsection.10.93.2.9)] +>> +endobj +9206 0 obj +<< +/Names [(svd_8c) 4302 0 R (svd_8c_a55b4a07eb7dbd09f7fa1d15debd44595) 7892 0 R (svd_8c_a8194826f85cc3105c4d8d4f342ca8df8) 7887 0 R (svd_8c_a91b85e542b1fc44d3500ba52aecb8e0e) 7890 0 R (svd_8c_aa65fbd187ce13d0da98cecb40cfa3b07) 7889 0 R (svd_8c_acdccfce5b7732e6334ca5a521c57e63e) 6373 0 R] +/Limits [(svd_8c) (svd_8c_acdccfce5b7732e6334ca5a521c57e63e)] +>> +endobj +9207 0 obj +<< +/Names [(svd_8c_ae92d53fe415ccfd63a21bb36936294cb) 7891 0 R (svd_8c_aeb7ac3eac076a0f52c729849599808a6) 7888 0 R (svd_8h) 4303 0 R (svd_8h_a55b4a07eb7dbd09f7fa1d15debd44595) 7966 0 R (svd_8h_a70d46444b7291fdb50510447bb1ab9a4) 7938 0 R (svd_8h_a8194826f85cc3105c4d8d4f342ca8df8) 7961 0 R] +/Limits [(svd_8c_ae92d53fe415ccfd63a21bb36936294cb) (svd_8h_a8194826f85cc3105c4d8d4f342ca8df8)] +>> +endobj +9208 0 obj +<< +/Names [(svd_8h_a91b85e542b1fc44d3500ba52aecb8e0e) 7964 0 R (svd_8h_aa2f21266e1086a3971dfd02ee4b48ce5) 7937 0 R (svd_8h_aa65fbd187ce13d0da98cecb40cfa3b07) 7963 0 R (svd_8h_acdb2d1d5cfdead81a1c247037b06823a) 7940 0 R (svd_8h_acdccfce5b7732e6334ca5a521c57e63e) 7960 0 R (svd_8h_ae92d53fe415ccfd63a21bb36936294cb) 7965 0 R] +/Limits [(svd_8h_a91b85e542b1fc44d3500ba52aecb8e0e) (svd_8h_ae92d53fe415ccfd63a21bb36936294cb)] +>> +endobj +9209 0 obj +<< +/Names [(svd_8h_aeb7ac3eac076a0f52c729849599808a6) 7962 0 R (svd_8h_af9e7db6685a0631312bfb93cc58dd756) 7939 0 R (svd__test_8c) 4304 0 R (svd__test_8c_a5b3fa4be9f289d4078fdd009719a4077) 8001 0 R (svd__test_8h) 4305 0 R (svd__test_8h_a5b3fa4be9f289d4078fdd009719a4077) 8045 0 R] +/Limits [(svd_8h_aeb7ac3eac076a0f52c729849599808a6) (svd__test_8h_a5b3fa4be9f289d4078fdd009719a4077)] +>> +endobj +9210 0 obj +<< +/Names [(table.10.1) 4509 0 R (table.10.10) 4665 0 R (table.10.100) 6389 0 R (table.10.101) 6390 0 R (table.10.102) 6402 0 R (table.10.103) 6403 0 R] +/Limits [(table.10.1) (table.10.103)] +>> +endobj +9211 0 obj +<< +/Names [(table.10.104) 6415 0 R (table.10.105) 6416 0 R (table.10.106) 6426 0 R (table.10.107) 6427 0 R (table.10.108) 6435 0 R (table.10.109) 6444 0 R] +/Limits [(table.10.104) (table.10.109)] +>> +endobj +9212 0 obj +<< +/Names [(table.10.11) 4682 0 R (table.10.110) 6445 0 R (table.10.111) 6452 0 R (table.10.112) 6461 0 R (table.10.113) 6462 0 R (table.10.114) 6472 0 R] +/Limits [(table.10.11) (table.10.114)] +>> +endobj +9213 0 obj +<< +/Names [(table.10.115) 6473 0 R (table.10.116) 6481 0 R (table.10.117) 6482 0 R (table.10.118) 6492 0 R (table.10.119) 6493 0 R (table.10.12) 4702 0 R] +/Limits [(table.10.115) (table.10.12)] +>> +endobj +9214 0 obj +<< +/Names [(table.10.120) 6503 0 R (table.10.121) 6504 0 R (table.10.122) 6531 0 R (table.10.123) 6721 0 R (table.10.124) 6722 0 R (table.10.125) 6723 0 R] +/Limits [(table.10.120) (table.10.125)] +>> +endobj +9215 0 obj +<< +/Names [(table.10.126) 6732 0 R (table.10.127) 6739 0 R (table.10.128) 6740 0 R (table.10.129) 6750 0 R (table.10.13) 4719 0 R (table.10.130) 6751 0 R] +/Limits [(table.10.126) (table.10.130)] +>> +endobj +9216 0 obj +<< +/Names [(table.10.131) 6760 0 R (table.10.132) 6769 0 R (table.10.133) 6770 0 R (table.10.134) 6778 0 R (table.10.135) 6779 0 R (table.10.136) 6788 0 R] +/Limits [(table.10.131) (table.10.136)] +>> +endobj +9217 0 obj +<< +/Names [(table.10.137) 6789 0 R (table.10.138) 6798 0 R (table.10.139) 6799 0 R (table.10.14) 4720 0 R (table.10.140) 6808 0 R (table.10.141) 6809 0 R] +/Limits [(table.10.137) (table.10.141)] +>> +endobj +9218 0 obj +<< +/Names [(table.10.142) 6818 0 R (table.10.143) 6819 0 R (table.10.144) 6827 0 R (table.10.145) 6828 0 R (table.10.146) 6836 0 R (table.10.147) 6847 0 R] +/Limits [(table.10.142) (table.10.147)] +>> +endobj +9219 0 obj +<< +/Names [(table.10.148) 6848 0 R (table.10.149) 6860 0 R (table.10.15) 4749 0 R (table.10.150) 6861 0 R (table.10.151) 6869 0 R (table.10.152) 6870 0 R] +/Limits [(table.10.148) (table.10.152)] +>> +endobj +9220 0 obj +<< +/Names [(table.10.153) 6886 0 R (table.10.154) 6887 0 R (table.10.155) 6894 0 R (table.10.156) 6902 0 R (table.10.157) 6903 0 R (table.10.158) 6913 0 R] +/Limits [(table.10.153) (table.10.158)] +>> +endobj +9221 0 obj +<< +/Names [(table.10.159) 6914 0 R (table.10.16) 4761 0 R (table.10.160) 6923 0 R (table.10.161) 6924 0 R (table.10.162) 6934 0 R (table.10.163) 6935 0 R] +/Limits [(table.10.159) (table.10.163)] +>> +endobj +9222 0 obj +<< +/Names [(table.10.164) 6945 0 R (table.10.165) 6946 0 R (table.10.166) 6957 0 R (table.10.167) 7029 0 R (table.10.168) 7036 0 R (table.10.169) 7071 0 R] +/Limits [(table.10.164) (table.10.169)] +>> +endobj +9223 0 obj +<< +/Names [(table.10.17) 4762 0 R (table.10.170) 7072 0 R (table.10.171) 7107 0 R (table.10.172) 7108 0 R (table.10.173) 7170 0 R (table.10.174) 7171 0 R] +/Limits [(table.10.17) (table.10.174)] +>> +endobj +9224 0 obj +<< +/Names [(table.10.175) 7177 0 R (table.10.176) 7187 0 R (table.10.177) 7188 0 R (table.10.178) 7202 0 R (table.10.179) 7203 0 R (table.10.18) 4791 0 R] +/Limits [(table.10.175) (table.10.18)] +>> +endobj +9225 0 obj +<< +/Names [(table.10.180) 7251 0 R (table.10.181) 7252 0 R (table.10.182) 7258 0 R (table.10.183) 7268 0 R (table.10.184) 7269 0 R (table.10.185) 7283 0 R] +/Limits [(table.10.180) (table.10.185)] +>> +endobj +9226 0 obj +<< +/Names [(table.10.186) 7284 0 R (table.10.187) 7323 0 R (table.10.188) 7331 0 R (table.10.189) 7340 0 R (table.10.19) 4808 0 R (table.10.190) 7351 0 R] +/Limits [(table.10.186) (table.10.190)] +>> +endobj +9227 0 obj +<< +/Names [(table.10.191) 7361 0 R (table.10.192) 7394 0 R (table.10.193) 7413 0 R (table.10.194) 7424 0 R (table.10.195) 7425 0 R (table.10.196) 7438 0 R] +/Limits [(table.10.191) (table.10.196)] +>> +endobj +9228 0 obj +<< +/Names [(table.10.197) 7439 0 R (table.10.198) 7450 0 R (table.10.199) 7505 0 R (table.10.2) 4510 0 R (table.10.20) 4822 0 R (table.10.200) 7529 0 R] +/Limits [(table.10.197) (table.10.200)] +>> +endobj +9229 0 obj +<< +/Names [(table.10.201) 7550 0 R (table.10.202) 7568 0 R (table.10.203) 7583 0 R (table.10.204) 7594 0 R (table.10.205) 7609 0 R (table.10.206) 7620 0 R] +/Limits [(table.10.201) (table.10.206)] +>> +endobj +9230 0 obj +<< +/Names [(table.10.207) 7632 0 R (table.10.208) 7642 0 R (table.10.209) 7652 0 R (table.10.21) 4823 0 R (table.10.210) 7693 0 R (table.10.211) 7705 0 R] +/Limits [(table.10.207) (table.10.211)] +>> +endobj +9231 0 obj +<< +/Names [(table.10.212) 7718 0 R (table.10.213) 7719 0 R (table.10.214) 7728 0 R (table.10.215) 7729 0 R (table.10.216) 7768 0 R (table.10.217) 7769 0 R] +/Limits [(table.10.212) (table.10.217)] +>> +endobj +9232 0 obj +<< +/Names [(table.10.218) 7780 0 R (table.10.219) 7808 0 R (table.10.22) 4837 0 R (table.10.220) 7821 0 R (table.10.221) 7832 0 R (table.10.222) 7833 0 R] +/Limits [(table.10.218) (table.10.222)] +>> +endobj +9233 0 obj +<< +/Names [(table.10.223) 7841 0 R (table.10.224) 7898 0 R (table.10.225) 7906 0 R (table.10.226) 7907 0 R (table.10.227) 7913 0 R (table.10.228) 7914 0 R] +/Limits [(table.10.223) (table.10.228)] +>> +endobj +9234 0 obj +<< +/Names [(table.10.229) 7915 0 R (table.10.23) 4851 0 R (table.10.230) 7935 0 R (table.10.231) 7972 0 R (table.10.232) 7981 0 R (table.10.233) 7982 0 R] +/Limits [(table.10.229) (table.10.233)] +>> +endobj +9235 0 obj +<< +/Names [(table.10.234) 7988 0 R (table.10.235) 7989 0 R (table.10.236) 7990 0 R (table.10.237) 7999 0 R (table.10.238) 8068 0 R (table.10.239) 8081 0 R] +/Limits [(table.10.234) (table.10.239)] +>> +endobj +9236 0 obj +<< +/Names [(table.10.24) 4852 0 R (table.10.240) 8095 0 R (table.10.241) 8096 0 R (table.10.242) 8105 0 R (table.10.243) 8106 0 R (table.10.244) 8116 0 R] +/Limits [(table.10.24) (table.10.244)] +>> +endobj +9237 0 obj +<< +/Names [(table.10.245) 8131 0 R (table.10.246) 8132 0 R (table.10.247) 8195 0 R (table.10.248) 8206 0 R (table.10.249) 8207 0 R (table.10.25) 4871 0 R] +/Limits [(table.10.245) (table.10.25)] +>> +endobj +9238 0 obj +<< +/Names [(table.10.250) 8215 0 R (table.10.251) 8216 0 R (table.10.252) 8227 0 R (table.10.253) 8228 0 R (table.10.254) 8239 0 R (table.10.255) 8260 0 R] +/Limits [(table.10.250) (table.10.255)] +>> +endobj +9239 0 obj +<< +/Names [(table.10.256) 8281 0 R (table.10.257) 8288 0 R (table.10.258) 8289 0 R (table.10.259) 8296 0 R (table.10.26) 4885 0 R (table.10.260) 8297 0 R] +/Limits [(table.10.256) (table.10.260)] +>> +endobj +9240 0 obj +<< +/Names [(table.10.261) 8302 0 R (table.10.262) 8303 0 R (table.10.263) 8304 0 R (table.10.264) 8309 0 R (table.10.265) 8310 0 R (table.10.266) 8331 0 R] +/Limits [(table.10.261) (table.10.266)] +>> +endobj +9241 0 obj +<< +/Names [(table.10.267) 8350 0 R (table.10.268) 8361 0 R (table.10.269) 8362 0 R (table.10.27) 4924 0 R (table.10.270) 8369 0 R (table.10.271) 8370 0 R] +/Limits [(table.10.267) (table.10.271)] +>> +endobj +9242 0 obj +<< +/Names [(table.10.272) 8375 0 R (table.10.273) 8376 0 R (table.10.274) 8381 0 R (table.10.275) 8382 0 R (table.10.276) 8383 0 R (table.10.277) 8388 0 R] +/Limits [(table.10.272) (table.10.277)] +>> +endobj +9243 0 obj +<< +/Names [(table.10.278) 8389 0 R (table.10.279) 8507 0 R (table.10.28) 4947 0 R (table.10.280) 8523 0 R (table.10.281) 8524 0 R (table.10.282) 8534 0 R] +/Limits [(table.10.278) (table.10.282)] +>> +endobj +9244 0 obj +<< +/Names [(table.10.283) 8535 0 R (table.10.284) 8542 0 R (table.10.285) 8543 0 R (table.10.286) 8554 0 R (table.10.287) 8555 0 R (table.10.288) 8567 0 R] +/Limits [(table.10.283) (table.10.288)] +>> +endobj +9245 0 obj +<< +/Names [(table.10.289) 8568 0 R (table.10.29) 4973 0 R (table.10.290) 8577 0 R (table.10.291) 8578 0 R (table.10.292) 8587 0 R (table.10.293) 8588 0 R] +/Limits [(table.10.289) (table.10.293)] +>> +endobj +9246 0 obj +<< +/Names [(table.10.294) 8597 0 R (table.10.295) 8598 0 R (table.10.296) 8608 0 R (table.10.297) 8609 0 R (table.10.298) 8610 0 R (table.10.299) 8620 0 R] +/Limits [(table.10.294) (table.10.299)] +>> +endobj +9247 0 obj +<< +/Names [(table.10.3) 4527 0 R (table.10.30) 4990 0 R (table.10.300) 8621 0 R (table.10.301) 8628 0 R (table.10.302) 8629 0 R (table.10.303) 8738 0 R] +/Limits [(table.10.3) (table.10.303)] +>> +endobj +9248 0 obj +<< +/Names [(table.10.304) 8749 0 R (table.10.305) 8750 0 R (table.10.306) 8760 0 R (table.10.307) 8761 0 R (table.10.308) 8770 0 R (table.10.309) 8771 0 R] +/Limits [(table.10.304) (table.10.309)] +>> +endobj +9249 0 obj +<< +/Names [(table.10.31) 4991 0 R (table.10.310) 8781 0 R (table.10.311) 8782 0 R (table.10.312) 8793 0 R (table.10.313) 8794 0 R (table.10.314) 8803 0 R] +/Limits [(table.10.31) (table.10.314)] +>> +endobj +9250 0 obj +<< +/Names [(table.10.315) 8804 0 R (table.10.316) 8813 0 R (table.10.317) 8814 0 R (table.10.318) 8823 0 R (table.10.319) 8824 0 R (table.10.32) 5038 0 R] +/Limits [(table.10.315) (table.10.32)] +>> +endobj +9251 0 obj +<< +/Names [(table.10.320) 8834 0 R (table.10.321) 8835 0 R (table.10.322) 8836 0 R (table.10.323) 8847 0 R (table.10.324) 8848 0 R (table.10.325) 8853 0 R] +/Limits [(table.10.320) (table.10.325)] +>> +endobj +9252 0 obj +<< +/Names [(table.10.326) 8854 0 R (table.10.33) 5039 0 R (table.10.34) 5046 0 R (table.10.35) 5055 0 R (table.10.36) 5056 0 R (table.10.37) 5069 0 R] +/Limits [(table.10.326) (table.10.37)] +>> +endobj +9253 0 obj +<< +/Names [(table.10.38) 5159 0 R (table.10.39) 5167 0 R (table.10.4) 4557 0 R (table.10.40) 5168 0 R (table.10.41) 5214 0 R (table.10.42) 5215 0 R] +/Limits [(table.10.38) (table.10.42)] +>> +endobj +9254 0 obj +<< +/Names [(table.10.43) 5265 0 R (table.10.44) 5363 0 R (table.10.45) 5440 0 R (table.10.46) 5454 0 R (table.10.47) 5462 0 R (table.10.48) 5463 0 R] +/Limits [(table.10.43) (table.10.48)] +>> +endobj +9255 0 obj +<< +/Names [(table.10.49) 5564 0 R (table.10.5) 4576 0 R (table.10.50) 5592 0 R (table.10.51) 5613 0 R (table.10.52) 5626 0 R (table.10.53) 5637 0 R] +/Limits [(table.10.49) (table.10.53)] +>> +endobj +9256 0 obj +<< +/Names [(table.10.54) 5648 0 R (table.10.55) 5680 0 R (table.10.56) 5724 0 R (table.10.57) 5738 0 R (table.10.58) 5739 0 R (table.10.59) 5752 0 R] +/Limits [(table.10.54) (table.10.59)] +>> +endobj +9257 0 obj +<< +/Names [(table.10.6) 4592 0 R (table.10.60) 5790 0 R (table.10.61) 5809 0 R (table.10.62) 5810 0 R (table.10.63) 5828 0 R (table.10.64) 5829 0 R] +/Limits [(table.10.6) (table.10.64)] +>> +endobj +9258 0 obj +<< +/Names [(table.10.65) 5892 0 R (table.10.66) 5893 0 R (table.10.67) 5906 0 R (table.10.68) 5907 0 R (table.10.69) 5926 0 R (table.10.7) 4617 0 R] +/Limits [(table.10.65) (table.10.7)] +>> +endobj +9259 0 obj +<< +/Names [(table.10.70) 5927 0 R (table.10.71) 5967 0 R (table.10.72) 6027 0 R (table.10.73) 6028 0 R (table.10.74) 6029 0 R (table.10.75) 6042 0 R] +/Limits [(table.10.70) (table.10.75)] +>> +endobj +9260 0 obj +<< +/Names [(table.10.76) 6057 0 R (table.10.77) 6058 0 R (table.10.78) 6069 0 R (table.10.79) 6277 0 R (table.10.8) 4633 0 R (table.10.80) 6278 0 R] +/Limits [(table.10.76) (table.10.80)] +>> +endobj +9261 0 obj +<< +/Names [(table.10.81) 6288 0 R (table.10.82) 6289 0 R (table.10.83) 6297 0 R (table.10.84) 6304 0 R (table.10.85) 6313 0 R (table.10.86) 6314 0 R] +/Limits [(table.10.81) (table.10.86)] +>> +endobj +9262 0 obj +<< +/Names [(table.10.87) 6323 0 R (table.10.88) 6324 0 R (table.10.89) 6332 0 R (table.10.9) 4649 0 R (table.10.90) 6333 0 R (table.10.91) 6343 0 R] +/Limits [(table.10.87) (table.10.91)] +>> +endobj +9263 0 obj +<< +/Names [(table.10.92) 6344 0 R (table.10.93) 6353 0 R (table.10.94) 6354 0 R (table.10.95) 6363 0 R (table.10.96) 6364 0 R (table.10.97) 6371 0 R] +/Limits [(table.10.92) (table.10.97)] +>> +endobj +9264 0 obj +<< +/Names [(table.10.98) 6372 0 R (table.10.99) 6381 0 R (trilateration_8c) 4306 0 R (trilateration_8c_a3c9dfccb08c7e4cdb5533cd6bc8b5832) 8070 0 R (trilateration_8c_a4270371ead754327c478d19d57bfafba) 8072 0 R (trilateration_8c_a45883b7c5af43c478bb488b536faa56e) 8069 0 R] +/Limits [(table.10.98) (trilateration_8c_a45883b7c5af43c478bb488b536faa56e)] +>> +endobj +9265 0 obj +<< +/Names [(trilateration_8c_a76695d4831cf7c08b468fe56f117b358) 8051 0 R (trilateration_8c_a95fc45efcb10019be21704539eeedefb) 8047 0 R (trilateration_8c_aadf622c7ec43dce57988a9aef1533758) 8049 0 R (trilateration_8c_ab5f06e68df75b4708d722c268932578c) 8050 0 R (trilateration_8c_abe0c5c3a77d41a6a94aceb8069ec2082) 8071 0 R (trilateration_8c_adf749802a4d86c2a97a6bac50d17bfea) 8048 0 R] +/Limits [(trilateration_8c_a76695d4831cf7c08b468fe56f117b358) (trilateration_8c_adf749802a4d86c2a97a6bac50d17bfea)] +>> +endobj +9266 0 obj +<< +/Names [(trilateration_8h) 4307 0 R (trilateration_8h_a3c9dfccb08c7e4cdb5533cd6bc8b5832) 8180 0 R (trilateration_8h_a4270371ead754327c478d19d57bfafba) 8186 0 R (trilateration_8h_a76695d4831cf7c08b468fe56f117b358) 8183 0 R (trilateration_8h_a821d668be2cee0fa1881c05ab99e05fe) 8185 0 R (trilateration_8h_a95fc45efcb10019be21704539eeedefb) 8178 0 R] +/Limits [(trilateration_8h) (trilateration_8h_a95fc45efcb10019be21704539eeedefb)] +>> +endobj +9267 0 obj +<< +/Names [(trilateration_8h_aadf622c7ec43dce57988a9aef1533758) 8182 0 R (trilateration_8h_ab5f06e68df75b4708d722c268932578c) 8184 0 R (trilateration_8h_abe0c5c3a77d41a6a94aceb8069ec2082) 8181 0 R (trilateration_8h_adf749802a4d86c2a97a6bac50d17bfea) 8179 0 R (utils_8c) 4308 0 R (utils_8c_a0ae8ea233ea6c519cd0434f8c5bde5e5) 8266 0 R] +/Limits [(trilateration_8h_aadf622c7ec43dce57988a9aef1533758) (utils_8c_a0ae8ea233ea6c519cd0434f8c5bde5e5)] +>> +endobj +9268 0 obj +<< +/Names [(utils_8c_a335d8d6c4b945638261228cd116cccd6) 8270 0 R (utils_8c_a535a04a4bff82c88599e4648dfa7cfe1) 8272 0 R (utils_8c_a689d2d3db40d341609423404abc5a23a) 8263 0 R (utils_8c_a8163bb6a1c9742b9607fd87c6b3df5c5) 8268 0 R (utils_8c_a81dabd4841ab656130497f0600979850) 8269 0 R (utils_8c_a8cda5a6c15e99e2b76abfb04316301d8) 8274 0 R] +/Limits [(utils_8c_a335d8d6c4b945638261228cd116cccd6) (utils_8c_a8cda5a6c15e99e2b76abfb04316301d8)] +>> +endobj +9269 0 obj +<< +/Names [(utils_8c_a971d455baef2d25c61e94c4bc4ac13ee) 8273 0 R (utils_8c_aad6440ba12fa7e2e1fae5ba6dc99cabf) 8264 0 R (utils_8c_ab734a543e5543adb2bd98e1bf279a23d) 8267 0 R (utils_8c_acda1e3a1b76af6e0e57b507472986ad6) 8271 0 R (utils_8c_ad21f654c48115ba2419ca98644a44ae9) 8265 0 R (utils_8h) 4309 0 R] +/Limits [(utils_8c_a971d455baef2d25c61e94c4bc4ac13ee) (utils_8h)] +>> +endobj +9270 0 obj +<< +/Names [(utils_8h_a0ae8ea233ea6c519cd0434f8c5bde5e5) 8338 0 R (utils_8h_a335d8d6c4b945638261228cd116cccd6) 8353 0 R (utils_8h_a535a04a4bff82c88599e4648dfa7cfe1) 8355 0 R (utils_8h_a689d2d3db40d341609423404abc5a23a) 8335 0 R (utils_8h_a8163bb6a1c9742b9607fd87c6b3df5c5) 8340 0 R (utils_8h_a81dabd4841ab656130497f0600979850) 8341 0 R] +/Limits [(utils_8h_a0ae8ea233ea6c519cd0434f8c5bde5e5) (utils_8h_a81dabd4841ab656130497f0600979850)] +>> +endobj +9271 0 obj +<< +/Names [(utils_8h_a8cda5a6c15e99e2b76abfb04316301d8) 8351 0 R (utils_8h_a971d455baef2d25c61e94c4bc4ac13ee) 8349 0 R (utils_8h_aad6440ba12fa7e2e1fae5ba6dc99cabf) 8336 0 R (utils_8h_ab734a543e5543adb2bd98e1bf279a23d) 8339 0 R (utils_8h_acda1e3a1b76af6e0e57b507472986ad6) 8354 0 R (utils_8h_ad21f654c48115ba2419ca98644a44ae9) 8337 0 R] +/Limits [(utils_8h_a8cda5a6c15e99e2b76abfb04316301d8) (utils_8h_ad21f654c48115ba2419ca98644a44ae9)] +>> +endobj +9272 0 obj +<< +/Names [(utils_8h_ae71449b1cc6e6250b91f539153a7a0d3) 8333 0 R (utils__test_8c) 4310 0 R (utils__test_8c_a91c61f3d2a5985466b46f5b15ad0faf7) 8403 0 R (utils__test_8h) 4311 0 R (utils__test_8h_a91c61f3d2a5985466b46f5b15ad0faf7) 8405 0 R (vector_8c) 4312 0 R] +/Limits [(utils_8h_ae71449b1cc6e6250b91f539153a7a0d3) (vector_8c)] +>> +endobj +9273 0 obj +<< +/Names [(vector_8c_a099aa56dd0f260c77afaf8b62b56b2c5) 8484 0 R (vector_8c_a1348a041e323e7b333482242b51a7674) 8510 0 R (vector_8c_a1fcbe913017a3b6802d5f66c8ef699ac) 8509 0 R (vector_8c_a3bbd999b10064c2ede2bd427aa040b63) 8482 0 R (vector_8c_a3c0bdd0e463fb34757a71470c55af845) 8487 0 R (vector_8c_a421f989647bf55af29c0f55b7f33d35a) 8511 0 R] +/Limits [(vector_8c_a099aa56dd0f260c77afaf8b62b56b2c5) (vector_8c_a421f989647bf55af29c0f55b7f33d35a)] +>> +endobj +9274 0 obj +<< +/Names [(vector_8c_a45dfc0cdad1f1a542df4029b498766ba) 8508 0 R (vector_8c_a4a8fae4c69677390016c116123d9eff8) 8481 0 R (vector_8c_a4cfc452fdff3e32a601ccff140cd9ae6) 8478 0 R (vector_8c_a5f4b706c07b9b0f7a4983d80fba99e4e) 8491 0 R (vector_8c_a8ec75dc585746d950ab517e9929f31fe) 8513 0 R (vector_8c_a8f24286db94dba6ab181edcdfe296262) 8512 0 R] +/Limits [(vector_8c_a45dfc0cdad1f1a542df4029b498766ba) (vector_8c_a8f24286db94dba6ab181edcdfe296262)] +>> +endobj +9275 0 obj +<< +/Names [(vector_8c_a90a92f618957807f90ab1d8a8d9150d4) 8486 0 R (vector_8c_a92917951880002814392c2367896d7a0) 8483 0 R (vector_8c_a982bc2f9e4755461eac46c6322b4562d) 8490 0 R (vector_8c_aab9d7950d4ba03b0e1a23de5b7fae6a6) 8479 0 R (vector_8c_ab2827264910e858f238868695a92db4b) 8514 0 R (vector_8c_abbb6bf046e47a8634c15c43a508cacb9) 8489 0 R] +/Limits [(vector_8c_a90a92f618957807f90ab1d8a8d9150d4) (vector_8c_abbb6bf046e47a8634c15c43a508cacb9)] +>> +endobj +9276 0 obj +<< +/Names [(vector_8c_ac4b023769faf53e06c2ed1f2fd928d14) 8476 0 R (vector_8c_ae41fee7d298da0645c37ed6af7acea0b) 8488 0 R (vector_8c_ae9d3378f23ba835c727245b434b8a7f6) 8477 0 R (vector_8c_af1767c4decdd472ed81035a19cf2152b) 8480 0 R (vector_8c_af98f2e3896ce7b96d598b11033ac1795) 8492 0 R (vector_8c_afc68fab0b07c974faf5a457d20b01c58) 8485 0 R] +/Limits [(vector_8c_ac4b023769faf53e06c2ed1f2fd928d14) (vector_8c_afc68fab0b07c974faf5a457d20b01c58)] +>> +endobj +9277 0 obj +<< +/Names [(vector_8h) 4313 0 R (vector_8h_a099aa56dd0f260c77afaf8b62b56b2c5) 8716 0 R (vector_8h_a1348a041e323e7b333482242b51a7674) 8728 0 R (vector_8h_a1fcbe913017a3b6802d5f66c8ef699ac) 8727 0 R (vector_8h_a3bbd999b10064c2ede2bd427aa040b63) 8714 0 R (vector_8h_a3c0bdd0e463fb34757a71470c55af845) 8719 0 R] +/Limits [(vector_8h) (vector_8h_a3c0bdd0e463fb34757a71470c55af845)] +>> +endobj +9278 0 obj +<< +/Names [(vector_8h_a421f989647bf55af29c0f55b7f33d35a) 8724 0 R (vector_8h_a45dfc0cdad1f1a542df4029b498766ba) 8725 0 R (vector_8h_a4a8fae4c69677390016c116123d9eff8) 8713 0 R (vector_8h_a4cfc452fdff3e32a601ccff140cd9ae6) 8710 0 R (vector_8h_a5f4b706c07b9b0f7a4983d80fba99e4e) 8722 0 R (vector_8h_a758d38ad9623aa8c385bce765a3b7d17) 8708 0 R] +/Limits [(vector_8h_a421f989647bf55af29c0f55b7f33d35a) (vector_8h_a758d38ad9623aa8c385bce765a3b7d17)] +>> +endobj +9279 0 obj +<< +/Names [(vector_8h_a8ec75dc585746d950ab517e9929f31fe) 8740 0 R (vector_8h_a8f24286db94dba6ab181edcdfe296262) 8739 0 R (vector_8h_a90a92f618957807f90ab1d8a8d9150d4) 8718 0 R (vector_8h_a92917951880002814392c2367896d7a0) 8715 0 R (vector_8h_a982bc2f9e4755461eac46c6322b4562d) 8726 0 R (vector_8h_aab9d7950d4ba03b0e1a23de5b7fae6a6) 8711 0 R] +/Limits [(vector_8h_a8ec75dc585746d950ab517e9929f31fe) (vector_8h_aab9d7950d4ba03b0e1a23de5b7fae6a6)] +>> +endobj +9280 0 obj +<< +/Names [(vector_8h_ab2827264910e858f238868695a92db4b) 8741 0 R (vector_8h_abbb6bf046e47a8634c15c43a508cacb9) 8721 0 R (vector_8h_acb41430bc5720dda7d1c45d91a0b0221) 4560 0 R (vector_8h_ae41fee7d298da0645c37ed6af7acea0b) 8720 0 R (vector_8h_ae9d3378f23ba835c727245b434b8a7f6) 8709 0 R (vector_8h_af1767c4decdd472ed81035a19cf2152b) 8712 0 R] +/Limits [(vector_8h_ab2827264910e858f238868695a92db4b) (vector_8h_af1767c4decdd472ed81035a19cf2152b)] +>> +endobj +9281 0 obj +<< +/Names [(vector_8h_af98f2e3896ce7b96d598b11033ac1795) 8723 0 R (vector_8h_afc68fab0b07c974faf5a457d20b01c58) 8717 0 R (vector__test_8c) 4314 0 R (vector__test_8c_ab0aed13072bc11b97766634c625d6f21) 8866 0 R (vector__test_8h) 3896 0 R (vector__test_8h_ab0aed13072bc11b97766634c625d6f21) 3898 0 R] +/Limits [(vector_8h_af98f2e3896ce7b96d598b11033ac1795) (vector__test_8h_ab0aed13072bc11b97766634c625d6f21)] +>> +endobj +9282 0 obj +<< +/Kids [8951 0 R 8952 0 R 8953 0 R 8954 0 R 8955 0 R 8956 0 R] +/Limits [(DOP_8c) (combinatorics_8c_a1bcaeef00a7027e9b9b7694da2efd1b9)] +>> +endobj +9283 0 obj +<< +/Kids [8957 0 R 8958 0 R 8959 0 R 8960 0 R 8961 0 R 8962 0 R] +/Limits [(combinatorics_8c_ae500ce949afe79089e8146eb1fb5cbb0) (dist__based__jacobian_8c_a769d35615d26a67b97bfd40b5d26a95c)] +>> +endobj +9284 0 obj +<< +/Kids [8963 0 R 8964 0 R 8965 0 R 8966 0 R 8967 0 R 8968 0 R] +/Limits [(dist__based__jacobian_8c_a8f900ff7d66d260d3b2e3e0ef2757ccc) (getting-started)] +>> +endobj +9285 0 obj +<< +/Kids [8969 0 R 8970 0 R 8971 0 R 8972 0 R 8973 0 R 8974 0 R] +/Limits [(getting-started_building-and-executing-an-example-res-lim) (index_autotoc_md3)] +>> +endobj +9286 0 obj +<< +/Kids [8975 0 R 8976 0 R 8977 0 R 8978 0 R 8979 0 R 8980 0 R] +/Limits [(index_autotoc_md4) (magnetic__based__fi_8c)] +>> +endobj +9287 0 obj +<< +/Kids [8981 0 R 8982 0 R 8983 0 R 8984 0 R 8985 0 R 8986 0 R] +/Limits [(magnetic__based__fi_8c_a897f5c675ad714feb9f2ae7571de620a) (magnetic__based__position_8h_ad5a7513337486e277ea028480403569d)] +>> +endobj +9288 0 obj +<< +/Kids [8987 0 R 8988 0 R 8989 0 R 8990 0 R 8991 0 R 8992 0 R] +/Limits [(magnetic__based__position_8h_ae584dff239a0111c47b7c5d1e197af59) (matrix_8c_abbaf8f39b2b7bb4bd2987f99674c1213)] +>> +endobj +9289 0 obj +<< +/Kids [8993 0 R 8994 0 R 8995 0 R 8996 0 R 8997 0 R 8998 0 R] +/Limits [(matrix_8c_ac20399f6a8de13b1f392a1e3f7c0fbf4) (matrix_8h_a72073ccd483f9cc438425d3d8ffd3029)] +>> +endobj +9290 0 obj +<< +/Kids [8999 0 R 9000 0 R 9001 0 R 9002 0 R 9003 0 R 9004 0 R] +/Limits [(matrix_8h_a72297a60e572f85929989e813388a9c5) (matrix__test_8h_af3bd1663337eb8dbe0fbcb49b517621f)] +>> +endobj +9291 0 obj +<< +/Kids [9005 0 R 9006 0 R 9007 0 R 9008 0 R 9009 0 R 9010 0 R] +/Limits [(modified__gauss__newton_8c) (multipath__dist__detection__mitigation_8h_a38019260396a33562d5a1912c691c26a)] +>> +endobj +9292 0 obj +<< +/Kids [9011 0 R 9012 0 R 9013 0 R 9014 0 R 9015 0 R 9016 0 R] +/Limits [(multipath__dist__detection__mitigation_8h_a540837de8e8a9d4e5dbaac1814b19b5e) (page.104)] +>> +endobj +9293 0 obj +<< +/Kids [9017 0 R 9018 0 R 9019 0 R 9020 0 R 9021 0 R 9022 0 R] +/Limits [(page.105) (page.137)] +>> +endobj +9294 0 obj +<< +/Kids [9023 0 R 9024 0 R 9025 0 R 9026 0 R 9027 0 R 9028 0 R] +/Limits [(page.138) (page.17)] +>> +endobj +9295 0 obj +<< +/Kids [9029 0 R 9030 0 R 9031 0 R 9032 0 R 9033 0 R 9034 0 R] +/Limits [(page.170) (page.201)] +>> +endobj +9296 0 obj +<< +/Kids [9035 0 R 9036 0 R 9037 0 R 9038 0 R 9039 0 R 9040 0 R] +/Limits [(page.202) (page.234)] +>> +endobj +9297 0 obj +<< +/Kids [9041 0 R 9042 0 R 9043 0 R 9044 0 R 9045 0 R 9046 0 R] +/Limits [(page.235) (page.267)] +>> +endobj +9298 0 obj +<< +/Kids [9047 0 R 9048 0 R 9049 0 R 9050 0 R 9051 0 R 9052 0 R] +/Limits [(page.268) (page.32)] +>> +endobj +9299 0 obj +<< +/Kids [9053 0 R 9054 0 R 9055 0 R 9056 0 R 9057 0 R 9058 0 R] +/Limits [(page.33) (page.65)] +>> +endobj +9300 0 obj +<< +/Kids [9059 0 R 9060 0 R 9061 0 R 9062 0 R 9063 0 R 9064 0 R] +/Limits [(page.66) (page.98)] +>> +endobj +9301 0 obj +<< +/Kids [9065 0 R 9066 0 R 9067 0 R 9068 0 R 9069 0 R 9070 0 R] +/Limits [(page.99) (qr__pinv__test_8h_a292d2351f35310e579dd0741ab4857db)] +>> +endobj +9302 0 obj +<< +/Kids [9071 0 R 9072 0 R 9073 0 R 9074 0 R 9075 0 R 9076 0 R] +/Limits [(qr__pseudo__inverse_8c) (section*.16)] +>> +endobj +9303 0 obj +<< +/Kids [9077 0 R 9078 0 R 9079 0 R 9080 0 R 9081 0 R 9082 0 R] +/Limits [(section*.17) (section*.49)] +>> +endobj +9304 0 obj +<< +/Kids [9083 0 R 9084 0 R 9085 0 R 9086 0 R 9087 0 R 9088 0 R] +/Limits [(section*.5) (section*.81)] +>> +endobj +9305 0 obj +<< +/Kids [9089 0 R 9090 0 R 9091 0 R 9092 0 R 9093 0 R 9094 0 R] +/Limits [(section*.82) (section.10.2)] +>> +endobj +9306 0 obj +<< +/Kids [9095 0 R 9096 0 R 9097 0 R 9098 0 R 9099 0 R 9100 0 R] +/Limits [(section.10.20) (section.10.52)] +>> +endobj +9307 0 obj +<< +/Kids [9101 0 R 9102 0 R 9103 0 R 9104 0 R 9105 0 R 9106 0 R] +/Limits [(section.10.53) (section.10.85)] +>> +endobj +9308 0 obj +<< +/Kids [9107 0 R 9108 0 R 9109 0 R 9110 0 R 9111 0 R 9112 0 R] +/Limits [(section.10.86) (section.8.7)] +>> +endobj +9309 0 obj +<< +/Kids [9113 0 R 9114 0 R 9115 0 R 9116 0 R 9117 0 R 9118 0 R] +/Limits [(section.8.8) (subsection.10.10.1)] +>> +endobj +9310 0 obj +<< +/Kids [9119 0 R 9120 0 R 9121 0 R 9122 0 R 9123 0 R 9124 0 R] +/Limits [(subsection.10.10.2) (subsection.10.29.1)] +>> +endobj +9311 0 obj +<< +/Kids [9125 0 R 9126 0 R 9127 0 R 9128 0 R 9129 0 R 9130 0 R] +/Limits [(subsection.10.29.2) (subsection.10.48.1)] +>> +endobj +9312 0 obj +<< +/Kids [9131 0 R 9132 0 R 9133 0 R 9134 0 R 9135 0 R 9136 0 R] +/Limits [(subsection.10.49.1) (subsection.10.67.1)] +>> +endobj +9313 0 obj +<< +/Kids [9137 0 R 9138 0 R 9139 0 R 9140 0 R 9141 0 R 9142 0 R] +/Limits [(subsection.10.67.2) (subsection.10.86.1)] +>> +endobj +9314 0 obj +<< +/Kids [9143 0 R 9144 0 R 9145 0 R 9146 0 R 9147 0 R 9148 0 R] +/Limits [(subsection.10.86.2) (subsection.8.5.1)] +>> +endobj +9315 0 obj +<< +/Kids [9149 0 R 9150 0 R 9151 0 R 9152 0 R 9153 0 R 9154 0 R] +/Limits [(subsection.8.6.1) (subsubsection.10.28.2.1)] +>> +endobj +9316 0 obj +<< +/Kids [9155 0 R 9156 0 R 9157 0 R 9158 0 R 9159 0 R 9160 0 R] +/Limits [(subsubsection.10.28.2.2) (subsubsection.10.41.2.1)] +>> +endobj +9317 0 obj +<< +/Kids [9161 0 R 9162 0 R 9163 0 R 9164 0 R 9165 0 R 9166 0 R] +/Limits [(subsubsection.10.41.2.10) (subsubsection.10.41.2.42)] +>> +endobj +9318 0 obj +<< +/Kids [9167 0 R 9168 0 R 9169 0 R 9170 0 R 9171 0 R 9172 0 R] +/Limits [(subsubsection.10.41.2.43) (subsubsection.10.42.3.32)] +>> +endobj +9319 0 obj +<< +/Kids [9173 0 R 9174 0 R 9175 0 R 9176 0 R 9177 0 R 9178 0 R] +/Limits [(subsubsection.10.42.3.33) (subsubsection.10.54.2.3)] +>> +endobj +9320 0 obj +<< +/Kids [9179 0 R 9180 0 R 9181 0 R 9182 0 R 9183 0 R 9184 0 R] +/Limits [(subsubsection.10.54.2.4) (subsubsection.10.7.2.4)] +>> +endobj +9321 0 obj +<< +/Kids [9185 0 R 9186 0 R 9187 0 R 9188 0 R 9189 0 R 9190 0 R] +/Limits [(subsubsection.10.70.2.1) (subsubsection.10.86.2.2)] +>> +endobj +9322 0 obj +<< +/Kids [9191 0 R 9192 0 R 9193 0 R 9194 0 R 9195 0 R 9196 0 R] +/Limits [(subsubsection.10.86.2.3) (subsubsection.10.89.2.5)] +>> +endobj +9323 0 obj +<< +/Kids [9197 0 R 9198 0 R 9199 0 R 9200 0 R 9201 0 R 9202 0 R] +/Limits [(subsubsection.10.89.2.6) (subsubsection.10.93.2.14)] +>> +endobj +9324 0 obj +<< +/Kids [9203 0 R 9204 0 R 9205 0 R 9206 0 R 9207 0 R 9208 0 R] +/Limits [(subsubsection.10.93.2.15) (svd_8h_ae92d53fe415ccfd63a21bb36936294cb)] +>> +endobj +9325 0 obj +<< +/Kids [9209 0 R 9210 0 R 9211 0 R 9212 0 R 9213 0 R 9214 0 R] +/Limits [(svd_8h_aeb7ac3eac076a0f52c729849599808a6) (table.10.125)] +>> +endobj +9326 0 obj +<< +/Kids [9215 0 R 9216 0 R 9217 0 R 9218 0 R 9219 0 R 9220 0 R] +/Limits [(table.10.126) (table.10.158)] +>> +endobj +9327 0 obj +<< +/Kids [9221 0 R 9222 0 R 9223 0 R 9224 0 R 9225 0 R 9226 0 R] +/Limits [(table.10.159) (table.10.190)] +>> +endobj +9328 0 obj +<< +/Kids [9227 0 R 9228 0 R 9229 0 R 9230 0 R 9231 0 R 9232 0 R] +/Limits [(table.10.191) (table.10.222)] +>> +endobj +9329 0 obj +<< +/Kids [9233 0 R 9234 0 R 9235 0 R 9236 0 R 9237 0 R 9238 0 R] +/Limits [(table.10.223) (table.10.255)] +>> +endobj +9330 0 obj +<< +/Kids [9239 0 R 9240 0 R 9241 0 R 9242 0 R 9243 0 R 9244 0 R] +/Limits [(table.10.256) (table.10.288)] +>> +endobj +9331 0 obj +<< +/Kids [9245 0 R 9246 0 R 9247 0 R 9248 0 R 9249 0 R 9250 0 R] +/Limits [(table.10.289) (table.10.32)] +>> +endobj +9332 0 obj +<< +/Kids [9251 0 R 9252 0 R 9253 0 R 9254 0 R 9255 0 R 9256 0 R] +/Limits [(table.10.320) (table.10.59)] +>> +endobj +9333 0 obj +<< +/Kids [9257 0 R 9258 0 R 9259 0 R 9260 0 R 9261 0 R 9262 0 R] +/Limits [(table.10.6) (table.10.91)] +>> +endobj +9334 0 obj +<< +/Kids [9263 0 R 9264 0 R 9265 0 R 9266 0 R 9267 0 R 9268 0 R] +/Limits [(table.10.92) (utils_8c_a8cda5a6c15e99e2b76abfb04316301d8)] +>> +endobj +9335 0 obj +<< +/Kids [9269 0 R 9270 0 R 9271 0 R 9272 0 R 9273 0 R 9274 0 R] +/Limits [(utils_8c_a971d455baef2d25c61e94c4bc4ac13ee) (vector_8c_a8f24286db94dba6ab181edcdfe296262)] +>> +endobj +9336 0 obj +<< +/Kids [9275 0 R 9276 0 R 9277 0 R 9278 0 R 9279 0 R 9280 0 R] +/Limits [(vector_8c_a90a92f618957807f90ab1d8a8d9150d4) (vector_8h_af1767c4decdd472ed81035a19cf2152b)] +>> +endobj +9337 0 obj +<< +/Kids [9281 0 R] +/Limits [(vector_8h_af98f2e3896ce7b96d598b11033ac1795) (vector__test_8h_ab0aed13072bc11b97766634c625d6f21)] +>> +endobj +9338 0 obj +<< +/Kids [9282 0 R 9283 0 R 9284 0 R 9285 0 R 9286 0 R 9287 0 R] +/Limits [(DOP_8c) (magnetic__based__position_8h_ad5a7513337486e277ea028480403569d)] +>> +endobj +9339 0 obj +<< +/Kids [9288 0 R 9289 0 R 9290 0 R 9291 0 R 9292 0 R 9293 0 R] +/Limits [(magnetic__based__position_8h_ae584dff239a0111c47b7c5d1e197af59) (page.137)] +>> +endobj +9340 0 obj +<< +/Kids [9294 0 R 9295 0 R 9296 0 R 9297 0 R 9298 0 R 9299 0 R] +/Limits [(page.138) (page.65)] +>> +endobj +9341 0 obj +<< +/Kids [9300 0 R 9301 0 R 9302 0 R 9303 0 R 9304 0 R 9305 0 R] +/Limits [(page.66) (section.10.2)] +>> +endobj +9342 0 obj +<< +/Kids [9306 0 R 9307 0 R 9308 0 R 9309 0 R 9310 0 R 9311 0 R] +/Limits [(section.10.20) (subsection.10.48.1)] +>> +endobj +9343 0 obj +<< +/Kids [9312 0 R 9313 0 R 9314 0 R 9315 0 R 9316 0 R 9317 0 R] +/Limits [(subsection.10.49.1) (subsubsection.10.41.2.42)] +>> +endobj +9344 0 obj +<< +/Kids [9318 0 R 9319 0 R 9320 0 R 9321 0 R 9322 0 R 9323 0 R] +/Limits [(subsubsection.10.41.2.43) (subsubsection.10.93.2.14)] +>> +endobj +9345 0 obj +<< +/Kids [9324 0 R 9325 0 R 9326 0 R 9327 0 R 9328 0 R 9329 0 R] +/Limits [(subsubsection.10.93.2.15) (table.10.255)] +>> +endobj +9346 0 obj +<< +/Kids [9330 0 R 9331 0 R 9332 0 R 9333 0 R 9334 0 R 9335 0 R] +/Limits [(table.10.256) (vector_8c_a8f24286db94dba6ab181edcdfe296262)] +>> +endobj +9347 0 obj +<< +/Kids [9336 0 R 9337 0 R] +/Limits [(vector_8c_a90a92f618957807f90ab1d8a8d9150d4) (vector__test_8h_ab0aed13072bc11b97766634c625d6f21)] +>> +endobj +9348 0 obj +<< +/Kids [9338 0 R 9339 0 R 9340 0 R 9341 0 R 9342 0 R 9343 0 R] +/Limits [(DOP_8c) (subsubsection.10.41.2.42)] +>> +endobj +9349 0 obj +<< +/Kids [9344 0 R 9345 0 R 9346 0 R 9347 0 R] +/Limits [(subsubsection.10.41.2.43) (vector__test_8h_ab0aed13072bc11b97766634c625d6f21)] +>> +endobj +9350 0 obj +<< +/Kids [9348 0 R 9349 0 R] +/Limits [(DOP_8c) (vector__test_8h_ab0aed13072bc11b97766634c625d6f21)] +>> +endobj +9351 0 obj +<< +/Dests 9350 0 R +>> +endobj +9352 0 obj +<< +/Type /Catalog +/Pages 8949 0 R +/Outlines 8950 0 R +/Names 9351 0 R +/PageMode/UseOutlines/PageLabels<</Nums[0<</S/a>>2<</S/r>>20<</S/D>>]>> +/OpenAction 2673 0 R +>> +endobj +9353 0 obj +<< +/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.19)/Keywords() +/CreationDate (D:20200318153916+01'00') +/ModDate (D:20200318153916+01'00') +/Trapped /False +/PTEX.Fullbanner (This is MiKTeX-pdfTeX 2.9.6668 (1.40.19)) +>> +endobj +xref +0 9354 +0000003843 65535 f +0000000015 00000 n +0000377653 00000 n +0001892693 00000 n +0000000060 00000 n +0000000222 00000 n +0000377839 00000 n +0001892623 00000 n +0000000269 00000 n +0000000447 00000 n +0000377963 00000 n +0001892539 00000 n +0000000494 00000 n +0000000670 00000 n +0000378087 00000 n +0001892453 00000 n +0000000718 00000 n +0000000864 00000 n +0000380378 00000 n +0001892330 00000 n +0000000912 00000 n +0000001007 00000 n +0000380503 00000 n +0001892256 00000 n +0000001060 00000 n +0000001193 00000 n +0000384776 00000 n +0001892169 00000 n +0000001246 00000 n +0000001399 00000 n +0000384900 00000 n +0001892082 00000 n +0000001452 00000 n +0000001572 00000 n +0000385025 00000 n +0001891995 00000 n +0000001625 00000 n +0000001725 00000 n +0000385148 00000 n +0001891921 00000 n +0000001778 00000 n +0000001853 00000 n +0000385273 00000 n +0001891848 00000 n +0000001901 00000 n +0000002049 00000 n +0000389817 00000 n +0001891723 00000 n +0000002095 00000 n +0000002256 00000 n +0000390004 00000 n +0001891649 00000 n +0000002304 00000 n +0000002609 00000 n +0000390129 00000 n +0001891562 00000 n +0000002657 00000 n +0000002982 00000 n +0000390254 00000 n +0001891475 00000 n +0000003030 00000 n +0000003171 00000 n +0000392828 00000 n +0001891364 00000 n +0000003219 00000 n +0000003408 00000 n +0000392952 00000 n +0001891290 00000 n +0000003461 00000 n +0000003627 00000 n +0000393076 00000 n +0001891216 00000 n +0000003680 00000 n +0000003828 00000 n +0000395569 00000 n +0001891090 00000 n +0000003874 00000 n +0000003997 00000 n +0000395756 00000 n +0001891016 00000 n +0000004045 00000 n +0000004206 00000 n +0000397026 00000 n +0001890942 00000 n +0000004254 00000 n +0000004402 00000 n +0000399879 00000 n +0001890815 00000 n +0000004448 00000 n +0000004566 00000 n +0000400066 00000 n +0001890741 00000 n +0000004614 00000 n +0000004805 00000 n +0000400190 00000 n +0001890629 00000 n +0000004853 00000 n +0000005006 00000 n +0000400314 00000 n +0001890553 00000 n +0000005059 00000 n +0000005373 00000 n +0000404973 00000 n +0001890462 00000 n +0000005427 00000 n +0000005761 00000 n +0000405098 00000 n +0001890370 00000 n +0000005815 00000 n +0000006096 00000 n +0000410285 00000 n +0001890278 00000 n +0000006150 00000 n +0000006451 00000 n +0000412312 00000 n +0001890200 00000 n +0000006505 00000 n +0000006897 00000 n +0000416075 00000 n +0001890068 00000 n +0000006944 00000 n +0000007048 00000 n +0000416137 00000 n +0001890003 00000 n +0000007097 00000 n +0000007183 00000 n +0000417908 00000 n +0001889870 00000 n +0000007230 00000 n +0000007377 00000 n +0000417970 00000 n +0001889805 00000 n +0000007426 00000 n +0000007555 00000 n +0000426031 00000 n +0001889672 00000 n +0000007602 00000 n +0000007696 00000 n +0000426093 00000 n +0001889607 00000 n +0000007745 00000 n +0000007844 00000 n +0000458531 00000 n +0001889473 00000 n +0000007891 00000 n +0000008035 00000 n +0000458656 00000 n +0001889355 00000 n +0000008084 00000 n +0000008218 00000 n +0000458781 00000 n +0001889290 00000 n +0000008272 00000 n +0000008436 00000 n +0000460529 00000 n +0001889158 00000 n +0000008485 00000 n +0000008609 00000 n +0000460654 00000 n +0001889093 00000 n +0000008663 00000 n +0000008827 00000 n +0000465149 00000 n +0001888961 00000 n +0000008876 00000 n +0000008967 00000 n +0000465274 00000 n +0001888896 00000 n +0000009021 00000 n +0000009185 00000 n +0000467657 00000 n +0001888764 00000 n +0000009234 00000 n +0000009358 00000 n +0000467782 00000 n +0001888699 00000 n +0000009412 00000 n +0000009576 00000 n +0000469573 00000 n +0001888567 00000 n +0000009625 00000 n +0000009736 00000 n +0000469698 00000 n +0001888502 00000 n +0000009790 00000 n +0000009954 00000 n +0000471496 00000 n +0001888370 00000 n +0000010003 00000 n +0000010127 00000 n +0000471621 00000 n +0001888305 00000 n +0000010181 00000 n +0000010345 00000 n +0000474035 00000 n +0001888173 00000 n +0000010394 00000 n +0000010553 00000 n +0000474160 00000 n +0001888108 00000 n +0000010607 00000 n +0000010771 00000 n +0000476008 00000 n +0001887976 00000 n +0000010820 00000 n +0000010967 00000 n +0000476133 00000 n +0001887911 00000 n +0000011021 00000 n +0000011185 00000 n +0000477781 00000 n +0001887779 00000 n +0000011234 00000 n +0000011345 00000 n +0000477906 00000 n +0001887714 00000 n +0000011399 00000 n +0000011563 00000 n +0000479677 00000 n +0001887582 00000 n +0000011613 00000 n +0000011742 00000 n +0000479802 00000 n +0001887517 00000 n +0000011797 00000 n +0000011966 00000 n +0000481693 00000 n +0001887385 00000 n +0000012016 00000 n +0000012180 00000 n +0000481818 00000 n +0001887320 00000 n +0000012235 00000 n +0000012404 00000 n +0000483326 00000 n +0001887188 00000 n +0000012454 00000 n +0000012596 00000 n +0000483451 00000 n +0001887123 00000 n +0000012651 00000 n +0000012820 00000 n +0000485163 00000 n +0001886991 00000 n +0000012870 00000 n +0000012999 00000 n +0000485288 00000 n +0001886926 00000 n +0000013054 00000 n +0000013223 00000 n +0000486664 00000 n +0001886794 00000 n +0000013273 00000 n +0000013445 00000 n +0000486789 00000 n +0001886729 00000 n +0000013500 00000 n +0000013669 00000 n +0000488489 00000 n +0001886597 00000 n +0000013719 00000 n +0000013914 00000 n +0000488614 00000 n +0001886532 00000 n +0000013969 00000 n +0000014138 00000 n +0000490709 00000 n +0001886414 00000 n +0000014188 00000 n +0000014289 00000 n +0000490834 00000 n +0001886349 00000 n +0000014344 00000 n +0000014513 00000 n +0000492544 00000 n +0001886216 00000 n +0000014560 00000 n +0000014747 00000 n +0000492669 00000 n +0001886112 00000 n +0000014796 00000 n +0000015004 00000 n +0000492920 00000 n +0001886047 00000 n +0000015058 00000 n +0000015222 00000 n +0000495581 00000 n +0001885926 00000 n +0000015270 00000 n +0000015409 00000 n +0000495706 00000 n +0001885808 00000 n +0000015459 00000 n +0000015671 00000 n +0000495830 00000 n +0001885729 00000 n +0000015726 00000 n +0000015895 00000 n +0000495892 00000 n +0001885611 00000 n +0000015950 00000 n +0000016129 00000 n +0000496017 00000 n +0001885532 00000 n +0000016189 00000 n +0000016463 00000 n +0000499108 00000 n +0001885453 00000 n +0000016523 00000 n +0000016708 00000 n +0000499296 00000 n +0001885321 00000 n +0000016758 00000 n +0000016970 00000 n +0000503418 00000 n +0001885242 00000 n +0000017025 00000 n +0000017194 00000 n +0000503480 00000 n +0001885124 00000 n +0000017249 00000 n +0000017428 00000 n +0000503605 00000 n +0001885045 00000 n +0000017488 00000 n +0000017762 00000 n +0000510597 00000 n +0001884966 00000 n +0000017822 00000 n +0000018007 00000 n +0000510783 00000 n +0001884834 00000 n +0000018057 00000 n +0000018315 00000 n +0000514455 00000 n +0001884755 00000 n +0000018370 00000 n +0000018539 00000 n +0000514517 00000 n +0001884637 00000 n +0000018594 00000 n +0000018773 00000 n +0000514642 00000 n +0001884558 00000 n +0000018833 00000 n +0000019036 00000 n +0000517724 00000 n +0001884465 00000 n +0000019096 00000 n +0000019269 00000 n +0000525506 00000 n +0001884386 00000 n +0000019329 00000 n +0000019482 00000 n +0000525693 00000 n +0001884254 00000 n +0000019532 00000 n +0000019790 00000 n +0000529354 00000 n +0001884175 00000 n +0000019845 00000 n +0000020014 00000 n +0000529416 00000 n +0001884057 00000 n +0000020069 00000 n +0000020248 00000 n +0000529541 00000 n +0001883978 00000 n +0000020308 00000 n +0000020511 00000 n +0000532628 00000 n +0001883885 00000 n +0000020571 00000 n +0000020744 00000 n +0000538211 00000 n +0001883806 00000 n +0000020804 00000 n +0000020957 00000 n +0000538398 00000 n +0001883674 00000 n +0000021007 00000 n +0000021225 00000 n +0000542113 00000 n +0001883595 00000 n +0000021280 00000 n +0000021449 00000 n +0000542175 00000 n +0001883477 00000 n +0000021504 00000 n +0000021683 00000 n +0000542300 00000 n +0001883398 00000 n +0000021743 00000 n +0000021914 00000 n +0000542487 00000 n +0001883319 00000 n +0000021974 00000 n +0000022137 00000 n +0000547444 00000 n +0001883187 00000 n +0000022187 00000 n +0000022405 00000 n +0000547569 00000 n +0001883108 00000 n +0000022460 00000 n +0000022629 00000 n +0000547631 00000 n +0001882990 00000 n +0000022684 00000 n +0000022863 00000 n +0000547756 00000 n +0001882911 00000 n +0000022923 00000 n +0000023094 00000 n +0000550664 00000 n +0001882832 00000 n +0000023154 00000 n +0000023317 00000 n +0000550851 00000 n +0001882700 00000 n +0000023367 00000 n +0000023615 00000 n +0000557588 00000 n +0001882621 00000 n +0000023670 00000 n +0000023839 00000 n +0000557650 00000 n +0001882503 00000 n +0000023894 00000 n +0000024073 00000 n +0000557775 00000 n +0001882424 00000 n +0000024133 00000 n +0000024362 00000 n +0000561810 00000 n +0001882331 00000 n +0000024422 00000 n +0000024687 00000 n +0000561998 00000 n +0001882238 00000 n +0000024747 00000 n +0000024986 00000 n +0000567129 00000 n +0001882159 00000 n +0000025046 00000 n +0000025285 00000 n +0000567316 00000 n +0001882027 00000 n +0000025335 00000 n +0000025583 00000 n +0000572175 00000 n +0001881948 00000 n +0000025638 00000 n +0000025807 00000 n +0000572237 00000 n +0001881830 00000 n +0000025862 00000 n +0000026041 00000 n +0000572362 00000 n +0001881751 00000 n +0000026101 00000 n +0000026330 00000 n +0000572549 00000 n +0001881658 00000 n +0000026390 00000 n +0000026655 00000 n +0000576406 00000 n +0001881565 00000 n +0000026715 00000 n +0000026954 00000 n +0000581484 00000 n +0001881486 00000 n +0000027014 00000 n +0000027253 00000 n +0000581671 00000 n +0001881354 00000 n +0000027303 00000 n +0000027551 00000 n +0000581796 00000 n +0001881275 00000 n +0000027606 00000 n +0000027775 00000 n +0000584892 00000 n +0001881157 00000 n +0000027830 00000 n +0000028009 00000 n +0000585017 00000 n +0001881078 00000 n +0000028069 00000 n +0000028318 00000 n +0000585205 00000 n +0001880999 00000 n +0000028378 00000 n +0000028650 00000 n +0000589680 00000 n +0001880867 00000 n +0000028701 00000 n +0000028954 00000 n +0000589805 00000 n +0001880788 00000 n +0000029010 00000 n +0000029184 00000 n +0000589867 00000 n +0001880670 00000 n +0000029240 00000 n +0000029424 00000 n +0000589992 00000 n +0001880591 00000 n +0000029485 00000 n +0000029739 00000 n +0000593399 00000 n +0001880512 00000 n +0000029800 00000 n +0000030077 00000 n +0000593587 00000 n +0001880380 00000 n +0000030128 00000 n +0000030381 00000 n +0000593712 00000 n +0001880301 00000 n +0000030437 00000 n +0000030611 00000 n +0000596014 00000 n +0001880183 00000 n +0000030667 00000 n +0000030851 00000 n +0000596139 00000 n +0001880118 00000 n +0000030912 00000 n +0000031110 00000 n +0000596262 00000 n +0001879986 00000 n +0000031161 00000 n +0000031414 00000 n +0000596387 00000 n +0001879907 00000 n +0000031470 00000 n +0000031644 00000 n +0000596449 00000 n +0001879789 00000 n +0000031700 00000 n +0000031884 00000 n +0000599751 00000 n +0001879724 00000 n +0000031945 00000 n +0000032143 00000 n +0000599876 00000 n +0001879592 00000 n +0000032194 00000 n +0000032361 00000 n +0000600001 00000 n +0001879513 00000 n +0000032417 00000 n +0000032591 00000 n +0000600063 00000 n +0001879395 00000 n +0000032647 00000 n +0000032831 00000 n +0000600186 00000 n +0001879330 00000 n +0000032892 00000 n +0000033032 00000 n +0000603747 00000 n +0001879198 00000 n +0000033083 00000 n +0000033250 00000 n +0000603872 00000 n +0001879119 00000 n +0000033306 00000 n +0000033480 00000 n +0000603934 00000 n +0001879001 00000 n +0000033536 00000 n +0000033720 00000 n +0000604059 00000 n +0001878936 00000 n +0000033781 00000 n +0000033921 00000 n +0000607917 00000 n +0001878804 00000 n +0000033972 00000 n +0000034154 00000 n +0000608042 00000 n +0001878725 00000 n +0000034210 00000 n +0000034384 00000 n +0000608104 00000 n +0001878607 00000 n +0000034440 00000 n +0000034624 00000 n +0000610891 00000 n +0001878542 00000 n +0000034685 00000 n +0000034812 00000 n +0000615850 00000 n +0001878410 00000 n +0000034863 00000 n +0000035045 00000 n +0000616037 00000 n +0001878331 00000 n +0000035101 00000 n +0000035275 00000 n +0000616098 00000 n +0001878199 00000 n +0000035331 00000 n +0000035558 00000 n +0000616222 00000 n +0001878134 00000 n +0000035619 00000 n +0000035791 00000 n +0000620076 00000 n +0001878016 00000 n +0000035847 00000 n +0000036031 00000 n +0000620201 00000 n +0001877951 00000 n +0000036092 00000 n +0000036219 00000 n +0000626758 00000 n +0001877819 00000 n +0000036270 00000 n +0000036480 00000 n +0000626946 00000 n +0001877740 00000 n +0000036536 00000 n +0000036710 00000 n +0000627007 00000 n +0001877622 00000 n +0000036766 00000 n +0000036950 00000 n +0000627132 00000 n +0001877543 00000 n +0000037011 00000 n +0000037218 00000 n +0000630464 00000 n +0001877450 00000 n +0000037279 00000 n +0000037486 00000 n +0000630651 00000 n +0001877357 00000 n +0000037547 00000 n +0000037754 00000 n +0000632798 00000 n +0001877264 00000 n +0000037815 00000 n +0000038022 00000 n +0000636134 00000 n +0001877171 00000 n +0000038083 00000 n +0000038290 00000 n +0000636322 00000 n +0001877092 00000 n +0000038351 00000 n +0000038558 00000 n +0000638924 00000 n +0001876960 00000 n +0000038609 00000 n +0000038819 00000 n +0000639112 00000 n +0001876895 00000 n +0000038875 00000 n +0000039049 00000 n +0000639237 00000 n +0001876763 00000 n +0000039100 00000 n +0000039310 00000 n +0000641778 00000 n +0001876698 00000 n +0000039366 00000 n +0000039540 00000 n +0000641903 00000 n +0001876566 00000 n +0000039591 00000 n +0000039801 00000 n +0000642091 00000 n +0001876501 00000 n +0000039857 00000 n +0000040031 00000 n +0000642216 00000 n +0001876369 00000 n +0000040082 00000 n +0000040317 00000 n +0000644626 00000 n +0001876304 00000 n +0000040373 00000 n +0000040547 00000 n +0000644751 00000 n +0001876172 00000 n +0000040598 00000 n +0000040833 00000 n +0000644938 00000 n +0001876107 00000 n +0000040889 00000 n +0000041063 00000 n +0000645063 00000 n +0001875975 00000 n +0000041114 00000 n +0000041364 00000 n +0000655288 00000 n +0001875896 00000 n +0000041420 00000 n +0000041594 00000 n +0000655350 00000 n +0001875778 00000 n +0000041650 00000 n +0000041834 00000 n +0000655474 00000 n +0001875699 00000 n +0000041895 00000 n +0000042113 00000 n +0000660145 00000 n +0001875606 00000 n +0000042174 00000 n +0000042450 00000 n +0000663396 00000 n +0001875527 00000 n +0000042511 00000 n +0000042775 00000 n +0000671490 00000 n +0001875395 00000 n +0000042826 00000 n +0000043076 00000 n +0000671615 00000 n +0001875316 00000 n +0000043132 00000 n +0000043306 00000 n +0000671677 00000 n +0001875198 00000 n +0000043362 00000 n +0000043546 00000 n +0000671802 00000 n +0001875119 00000 n +0000043607 00000 n +0000043825 00000 n +0000675353 00000 n +0001875040 00000 n +0000043886 00000 n +0000044150 00000 n +0000681441 00000 n +0001874908 00000 n +0000044201 00000 n +0000044439 00000 n +0000681566 00000 n +0001874829 00000 n +0000044495 00000 n +0000044669 00000 n +0000681628 00000 n +0001874711 00000 n +0000044725 00000 n +0000044909 00000 n +0000687880 00000 n +0001874646 00000 n +0000044970 00000 n +0000045153 00000 n +0000697827 00000 n +0001874514 00000 n +0000045204 00000 n +0000045442 00000 n +0000697951 00000 n +0001874435 00000 n +0000045498 00000 n +0000045672 00000 n +0000698013 00000 n +0001874317 00000 n +0000045728 00000 n +0000045912 00000 n +0000698138 00000 n +0001874252 00000 n +0000045973 00000 n +0000046156 00000 n +0000700744 00000 n +0001874120 00000 n +0000046207 00000 n +0000046480 00000 n +0000716899 00000 n +0001874041 00000 n +0000046536 00000 n +0000046710 00000 n +0000716961 00000 n +0001873923 00000 n +0000046766 00000 n +0000046950 00000 n +0000717086 00000 n +0001873844 00000 n +0000047011 00000 n +0000047229 00000 n +0000730654 00000 n +0001873751 00000 n +0000047290 00000 n +0000047566 00000 n +0000735742 00000 n +0001873658 00000 n +0000047627 00000 n +0000047927 00000 n +0000735930 00000 n +0001873579 00000 n +0000047988 00000 n +0000048252 00000 n +0000751195 00000 n +0001873447 00000 n +0000048303 00000 n +0000048576 00000 n +0000751319 00000 n +0001873368 00000 n +0000048632 00000 n +0000048806 00000 n +0000758849 00000 n +0001873250 00000 n +0000048862 00000 n +0000049046 00000 n +0000758974 00000 n +0001873171 00000 n +0000049107 00000 n +0000049325 00000 n +0000766170 00000 n +0001873078 00000 n +0000049386 00000 n +0000049662 00000 n +0000769697 00000 n +0001872985 00000 n +0000049723 00000 n +0000050023 00000 n +0000772474 00000 n +0001872906 00000 n +0000050084 00000 n +0000050348 00000 n +0000775531 00000 n +0001872774 00000 n +0000050399 00000 n +0000050599 00000 n +0000775655 00000 n +0001872695 00000 n +0000050655 00000 n +0000050829 00000 n +0000775717 00000 n +0001872577 00000 n +0000050885 00000 n +0000051069 00000 n +0000779197 00000 n +0001872512 00000 n +0000051130 00000 n +0000051275 00000 n +0000779384 00000 n +0001872380 00000 n +0000051326 00000 n +0000051526 00000 n +0000782282 00000 n +0001872301 00000 n +0000051582 00000 n +0000051756 00000 n +0000782344 00000 n +0001872183 00000 n +0000051812 00000 n +0000051996 00000 n +0000782469 00000 n +0001872118 00000 n +0000052057 00000 n +0000052202 00000 n +0000785022 00000 n +0001871986 00000 n +0000052253 00000 n +0000052481 00000 n +0000785209 00000 n +0001871921 00000 n +0000052537 00000 n +0000052711 00000 n +0000785334 00000 n +0001871789 00000 n +0000052762 00000 n +0000052990 00000 n +0000785522 00000 n +0001871724 00000 n +0000053046 00000 n +0000053220 00000 n +0000789537 00000 n +0001871592 00000 n +0000053271 00000 n +0000053514 00000 n +0000789662 00000 n +0001871513 00000 n +0000053570 00000 n +0000053744 00000 n +0000789724 00000 n +0001871395 00000 n +0000053800 00000 n +0000053984 00000 n +0000789849 00000 n +0001871330 00000 n +0000054045 00000 n +0000054241 00000 n +0000793557 00000 n +0001871198 00000 n +0000054292 00000 n +0000054535 00000 n +0000793682 00000 n +0001871119 00000 n +0000054591 00000 n +0000054765 00000 n +0000793744 00000 n +0001871001 00000 n +0000054821 00000 n +0000055005 00000 n +0000793869 00000 n +0001870936 00000 n +0000055066 00000 n +0000055262 00000 n +0000800305 00000 n +0001870804 00000 n +0000055313 00000 n +0000055586 00000 n +0000800430 00000 n +0001870725 00000 n +0000055642 00000 n +0000055816 00000 n +0000803951 00000 n +0001870607 00000 n +0000055872 00000 n +0000056056 00000 n +0000804076 00000 n +0001870528 00000 n +0000056117 00000 n +0000056371 00000 n +0000804262 00000 n +0001870435 00000 n +0000056432 00000 n +0000056722 00000 n +0000807935 00000 n +0001870342 00000 n +0000056783 00000 n +0000057047 00000 n +0000808122 00000 n +0001870263 00000 n +0000057108 00000 n +0000057372 00000 n +0000815301 00000 n +0001870131 00000 n +0000057423 00000 n +0000057696 00000 n +0000815426 00000 n +0001870052 00000 n +0000057752 00000 n +0000057926 00000 n +0000815488 00000 n +0001869934 00000 n +0000057982 00000 n +0000058166 00000 n +0000819088 00000 n +0001869855 00000 n +0000058227 00000 n +0000058481 00000 n +0000819276 00000 n +0001869762 00000 n +0000058542 00000 n +0000058832 00000 n +0000824058 00000 n +0001869669 00000 n +0000058893 00000 n +0000059157 00000 n +0000824246 00000 n +0001869590 00000 n +0000059218 00000 n +0000059482 00000 n +0000833673 00000 n +0001869457 00000 n +0000059533 00000 n +0000059806 00000 n +0000833796 00000 n +0001869378 00000 n +0000059862 00000 n +0000060036 00000 n +0000837232 00000 n +0001869260 00000 n +0000060092 00000 n +0000060276 00000 n +0000837357 00000 n +0001869181 00000 n +0000060337 00000 n +0000060611 00000 n +0000837543 00000 n +0001869088 00000 n +0000060672 00000 n +0000060918 00000 n +0000840792 00000 n +0001868995 00000 n +0000060979 00000 n +0000061286 00000 n +0000840979 00000 n +0001868902 00000 n +0000061347 00000 n +0000061621 00000 n +0000842931 00000 n +0001868809 00000 n +0000061682 00000 n +0000061979 00000 n +0000846940 00000 n +0001868716 00000 n +0000062040 00000 n +0000062246 00000 n +0000847128 00000 n +0001868636 00000 n +0000062307 00000 n +0000062622 00000 n +0000853901 00000 n +0001868498 00000 n +0000062674 00000 n +0000062948 00000 n +0000864426 00000 n +0001868414 00000 n +0000063005 00000 n +0000063180 00000 n +0000864489 00000 n +0001868289 00000 n +0000063237 00000 n +0000063422 00000 n +0000864615 00000 n +0001868205 00000 n +0000063484 00000 n +0000063759 00000 n +0000868373 00000 n +0001868106 00000 n +0000063821 00000 n +0000064068 00000 n +0000868562 00000 n +0001868007 00000 n +0000064130 00000 n +0000064438 00000 n +0000871872 00000 n +0001867908 00000 n +0000064500 00000 n +0000064775 00000 n +0000872061 00000 n +0001867809 00000 n +0000064837 00000 n +0000065135 00000 n +0000876102 00000 n +0001867710 00000 n +0000065197 00000 n +0000065404 00000 n +0000876291 00000 n +0001867626 00000 n +0000065466 00000 n +0000065781 00000 n +0000879214 00000 n +0001867487 00000 n +0000065833 00000 n +0000066087 00000 n +0000879403 00000 n +0001867418 00000 n +0000066144 00000 n +0000066319 00000 n +0000879529 00000 n +0001867279 00000 n +0000066371 00000 n +0000066625 00000 n +0000885888 00000 n +0001867210 00000 n +0000066682 00000 n +0000066857 00000 n +0000886014 00000 n +0001867071 00000 n +0000066909 00000 n +0000067092 00000 n +0000913354 00000 n +0001866987 00000 n +0000067149 00000 n +0000067324 00000 n +0000916319 00000 n +0001866861 00000 n +0000067381 00000 n +0000067566 00000 n +0000916445 00000 n +0001866777 00000 n +0000067628 00000 n +0000067779 00000 n +0000916633 00000 n +0001866678 00000 n +0000067841 00000 n +0000068038 00000 n +0000919304 00000 n +0001866579 00000 n +0000068100 00000 n +0000068261 00000 n +0000919487 00000 n +0001866480 00000 n +0000068323 00000 n +0000068479 00000 n +0000922448 00000 n +0001866381 00000 n +0000068541 00000 n +0000068758 00000 n +0000922637 00000 n +0001866282 00000 n +0000068820 00000 n +0000069009 00000 n +0000924879 00000 n +0001866183 00000 n +0000069071 00000 n +0000069436 00000 n +0000927332 00000 n +0001866084 00000 n +0000069498 00000 n +0000069779 00000 n +0000930263 00000 n +0001865985 00000 n +0000069841 00000 n +0000070150 00000 n +0000930452 00000 n +0001865886 00000 n +0000070213 00000 n +0000070430 00000 n +0000933285 00000 n +0001865787 00000 n +0000070493 00000 n +0000070700 00000 n +0000933474 00000 n +0001865688 00000 n +0000070763 00000 n +0000070993 00000 n +0000936016 00000 n +0001865589 00000 n +0000071056 00000 n +0000071268 00000 n +0000936205 00000 n +0001865490 00000 n +0000071331 00000 n +0000071571 00000 n +0000939158 00000 n +0001865391 00000 n +0000071634 00000 n +0000071874 00000 n +0000939347 00000 n +0001865292 00000 n +0000071937 00000 n +0000072154 00000 n +0000939535 00000 n +0001865193 00000 n +0000072217 00000 n +0000072480 00000 n +0000942075 00000 n +0001865094 00000 n +0000072543 00000 n +0000072834 00000 n +0000945080 00000 n +0001864995 00000 n +0000072897 00000 n +0000073142 00000 n +0000945269 00000 n +0001864896 00000 n +0000073205 00000 n +0000073389 00000 n +0000947672 00000 n +0001864797 00000 n +0000073452 00000 n +0000073659 00000 n +0000947861 00000 n +0001864698 00000 n +0000073722 00000 n +0000073939 00000 n +0000950433 00000 n +0001864599 00000 n +0000074002 00000 n +0000074239 00000 n +0000950622 00000 n +0001864500 00000 n +0000074302 00000 n +0000074463 00000 n +0000954112 00000 n +0001864401 00000 n +0000074526 00000 n +0000074682 00000 n +0000954301 00000 n +0001864302 00000 n +0000074745 00000 n +0000074993 00000 n +0000958052 00000 n +0001864203 00000 n +0000075056 00000 n +0000075250 00000 n +0000958241 00000 n +0001864104 00000 n +0000075313 00000 n +0000075558 00000 n +0000961216 00000 n +0001864005 00000 n +0000075621 00000 n +0000075800 00000 n +0000961405 00000 n +0001863906 00000 n +0000075863 00000 n +0000076052 00000 n +0000964754 00000 n +0001863807 00000 n +0000076115 00000 n +0000076299 00000 n +0000968390 00000 n +0001863708 00000 n +0000076362 00000 n +0000076635 00000 n +0000970659 00000 n +0001863609 00000 n +0000076698 00000 n +0000076892 00000 n +0000970847 00000 n +0001863510 00000 n +0000076955 00000 n +0000077172 00000 n +0000973451 00000 n +0001863411 00000 n +0000077235 00000 n +0000077401 00000 n +0000973639 00000 n +0001863312 00000 n +0000077464 00000 n +0000077625 00000 n +0000976705 00000 n +0001863213 00000 n +0000077688 00000 n +0000077920 00000 n +0000976894 00000 n +0001863114 00000 n +0000077983 00000 n +0000078139 00000 n +0000979580 00000 n +0001863015 00000 n +0000078202 00000 n +0000078391 00000 n +0000979769 00000 n +0001862916 00000 n +0000078454 00000 n +0000078681 00000 n +0000982773 00000 n +0001862817 00000 n +0000078744 00000 n +0000078956 00000 n +0000982962 00000 n +0001862718 00000 n +0000079019 00000 n +0000079205 00000 n +0000986190 00000 n +0001862619 00000 n +0000079268 00000 n +0000079475 00000 n +0000986378 00000 n +0001862535 00000 n +0000079538 00000 n +0000079704 00000 n +0000991657 00000 n +0001862396 00000 n +0000079756 00000 n +0000079939 00000 n +0001022771 00000 n +0001862312 00000 n +0000079996 00000 n +0000080171 00000 n +0001022834 00000 n +0001862172 00000 n +0000080228 00000 n +0000080456 00000 n +0001022960 00000 n +0001862088 00000 n +0000080518 00000 n +0000080623 00000 n +0001023086 00000 n +0001861989 00000 n +0000080685 00000 n +0000080802 00000 n +0001023212 00000 n +0001861905 00000 n +0000080864 00000 n +0000080989 00000 n +0001023274 00000 n +0001861779 00000 n +0000081046 00000 n +0000081231 00000 n +0001023400 00000 n +0001861695 00000 n +0000081293 00000 n +0000081444 00000 n +0001026220 00000 n +0001861596 00000 n +0000081506 00000 n +0000081703 00000 n +0001026407 00000 n +0001861497 00000 n +0000081765 00000 n +0000081926 00000 n +0001029279 00000 n +0001861398 00000 n +0000081988 00000 n +0000082144 00000 n +0001029468 00000 n +0001861299 00000 n +0000082206 00000 n +0000082423 00000 n +0001032380 00000 n +0001861200 00000 n +0000082485 00000 n +0000082674 00000 n +0001035331 00000 n +0001861101 00000 n +0000082736 00000 n +0000083101 00000 n +0001035520 00000 n +0001861002 00000 n +0000083163 00000 n +0000083444 00000 n +0001038099 00000 n +0001860903 00000 n +0000083506 00000 n +0000083815 00000 n +0001038288 00000 n +0001860804 00000 n +0000083878 00000 n +0000084095 00000 n +0001041154 00000 n +0001860705 00000 n +0000084158 00000 n +0000084365 00000 n +0001041341 00000 n +0001860606 00000 n +0000084428 00000 n +0000084658 00000 n +0001043947 00000 n +0001860507 00000 n +0000084721 00000 n +0000084933 00000 n +0001044136 00000 n +0001860408 00000 n +0000084996 00000 n +0000085236 00000 n +0001046845 00000 n +0001860309 00000 n +0000085299 00000 n +0000085539 00000 n +0001047034 00000 n +0001860210 00000 n +0000085602 00000 n +0000085819 00000 n +0001049777 00000 n +0001860111 00000 n +0000085882 00000 n +0000086145 00000 n +0001049965 00000 n +0001860012 00000 n +0000086208 00000 n +0000086499 00000 n +0001052696 00000 n +0001859913 00000 n +0000086562 00000 n +0000086807 00000 n +0001052885 00000 n +0001859814 00000 n +0000086870 00000 n +0000087054 00000 n +0001055450 00000 n +0001859715 00000 n +0000087117 00000 n +0000087324 00000 n +0001058052 00000 n +0001859616 00000 n +0000087387 00000 n +0000087604 00000 n +0001058241 00000 n +0001859517 00000 n +0000087667 00000 n +0000087904 00000 n +0001058430 00000 n +0001859418 00000 n +0000087967 00000 n +0000088128 00000 n +0001061064 00000 n +0001859319 00000 n +0000088191 00000 n +0000088347 00000 n +0001064199 00000 n +0001859220 00000 n +0000088410 00000 n +0000088658 00000 n +0001064387 00000 n +0001859121 00000 n +0000088721 00000 n +0000088915 00000 n +0001067934 00000 n +0001859022 00000 n +0000088978 00000 n +0000089223 00000 n +0001071306 00000 n +0001858923 00000 n +0000089286 00000 n +0000089465 00000 n +0001071495 00000 n +0001858824 00000 n +0000089528 00000 n +0000089717 00000 n +0001074100 00000 n +0001858725 00000 n +0000089780 00000 n +0000089964 00000 n +0001077736 00000 n +0001858626 00000 n +0000090027 00000 n +0000090300 00000 n +0001080006 00000 n +0001858527 00000 n +0000090363 00000 n +0000090557 00000 n +0001080194 00000 n +0001858428 00000 n +0000090620 00000 n +0000090837 00000 n +0001082798 00000 n +0001858329 00000 n +0000090900 00000 n +0000091066 00000 n +0001082986 00000 n +0001858230 00000 n +0000091129 00000 n +0000091290 00000 n +0001086053 00000 n +0001858131 00000 n +0000091353 00000 n +0000091585 00000 n +0001086242 00000 n +0001858032 00000 n +0000091648 00000 n +0000091804 00000 n +0001088929 00000 n +0001857933 00000 n +0000091867 00000 n +0000092056 00000 n +0001089118 00000 n +0001857834 00000 n +0000092119 00000 n +0000092346 00000 n +0001092122 00000 n +0001857735 00000 n +0000092409 00000 n +0000092621 00000 n +0001092311 00000 n +0001857636 00000 n +0000092684 00000 n +0000092870 00000 n +0001095539 00000 n +0001857537 00000 n +0000092933 00000 n +0000093140 00000 n +0001095727 00000 n +0001857453 00000 n +0000093203 00000 n +0000093369 00000 n +0001099207 00000 n +0001857314 00000 n +0000093421 00000 n +0000093632 00000 n +0001099522 00000 n +0001857245 00000 n +0000093689 00000 n +0000093864 00000 n +0001104420 00000 n +0001857106 00000 n +0000093916 00000 n +0000094127 00000 n +0001104734 00000 n +0001857037 00000 n +0000094184 00000 n +0000094359 00000 n +0001104860 00000 n +0001856898 00000 n +0000094411 00000 n +0000094675 00000 n +0001108790 00000 n +0001856814 00000 n +0000094732 00000 n +0000094907 00000 n +0001108853 00000 n +0001856689 00000 n +0000094964 00000 n +0000095149 00000 n +0001108979 00000 n +0001856620 00000 n +0000095211 00000 n +0000095420 00000 n +0001114233 00000 n +0001856481 00000 n +0000095472 00000 n +0000095736 00000 n +0001114359 00000 n +0001856397 00000 n +0000095793 00000 n +0000095968 00000 n +0001118756 00000 n +0001856272 00000 n +0000096025 00000 n +0000096210 00000 n +0001118882 00000 n +0001856203 00000 n +0000096272 00000 n +0000096481 00000 n +0001121551 00000 n +0001856064 00000 n +0000096533 00000 n +0000096810 00000 n +0001121740 00000 n +0001855995 00000 n +0000096867 00000 n +0000097042 00000 n +0001121866 00000 n +0001855856 00000 n +0000097094 00000 n +0000097371 00000 n +0001122055 00000 n +0001855787 00000 n +0000097428 00000 n +0000097603 00000 n +0001125331 00000 n +0001855648 00000 n +0000097655 00000 n +0000097957 00000 n +0001125457 00000 n +0001855564 00000 n +0000098014 00000 n +0000098189 00000 n +0001125520 00000 n +0001855439 00000 n +0000098246 00000 n +0000098431 00000 n +0001125646 00000 n +0001855355 00000 n +0000098493 00000 n +0000098710 00000 n +0001128256 00000 n +0001855271 00000 n +0000098772 00000 n +0000099042 00000 n +0001128445 00000 n +0001855132 00000 n +0000099094 00000 n +0000099396 00000 n +0001133718 00000 n +0001855048 00000 n +0000099453 00000 n +0000099628 00000 n +0001133781 00000 n +0001854923 00000 n +0000099685 00000 n +0000099870 00000 n +0001133906 00000 n +0001854839 00000 n +0000099932 00000 n +0000100149 00000 n +0001136546 00000 n +0001854755 00000 n +0000100211 00000 n +0000100481 00000 n +0001136735 00000 n +0001854616 00000 n +0000100533 00000 n +0000100871 00000 n +0001139597 00000 n +0001854547 00000 n +0000100928 00000 n +0000101103 00000 n +0001139723 00000 n +0001854408 00000 n +0000101155 00000 n +0000101493 00000 n +0001139911 00000 n +0001854339 00000 n +0000101550 00000 n +0000101725 00000 n +0001147163 00000 n +0001854200 00000 n +0000101777 00000 n +0000102114 00000 n +0001147288 00000 n +0001854116 00000 n +0000102171 00000 n +0000102346 00000 n +0001150063 00000 n +0001853991 00000 n +0000102403 00000 n +0000102588 00000 n +0001150189 00000 n +0001853907 00000 n +0000102650 00000 n +0000102900 00000 n +0001150378 00000 n +0001853808 00000 n +0000102962 00000 n +0000103235 00000 n +0001152823 00000 n +0001853709 00000 n +0000103297 00000 n +0000103557 00000 n +0001153011 00000 n +0001853610 00000 n +0000103619 00000 n +0000103765 00000 n +0001155535 00000 n +0001853511 00000 n +0000103827 00000 n +0000103973 00000 n +0001155724 00000 n +0001853412 00000 n +0000104035 00000 n +0000104259 00000 n +0001160536 00000 n +0001853328 00000 n +0000104321 00000 n +0000104485 00000 n +0001168264 00000 n +0001853189 00000 n +0000104537 00000 n +0000104874 00000 n +0001168390 00000 n +0001853105 00000 n +0000104931 00000 n +0000105106 00000 n +0001168453 00000 n +0001852980 00000 n +0000105163 00000 n +0000105348 00000 n +0001168578 00000 n +0001852896 00000 n +0000105410 00000 n +0000105660 00000 n +0001171449 00000 n +0001852797 00000 n +0000105722 00000 n +0000105995 00000 n +0001171637 00000 n +0001852698 00000 n +0000106057 00000 n +0000106317 00000 n +0001173551 00000 n +0001852599 00000 n +0000106379 00000 n +0000106525 00000 n +0001176075 00000 n +0001852500 00000 n +0000106587 00000 n +0000106733 00000 n +0001176264 00000 n +0001852401 00000 n +0000106795 00000 n +0000107019 00000 n +0001181075 00000 n +0001852317 00000 n +0000107081 00000 n +0000107245 00000 n +0001185771 00000 n +0001852178 00000 n +0000107297 00000 n +0000107523 00000 n +0001185897 00000 n +0001852094 00000 n +0000107580 00000 n +0000107755 00000 n +0001185960 00000 n +0001851969 00000 n +0000107812 00000 n +0000107997 00000 n +0001186086 00000 n +0001851900 00000 n +0000108059 00000 n +0000108230 00000 n +0001190101 00000 n +0001851761 00000 n +0000108282 00000 n +0000108508 00000 n +0001190227 00000 n +0001851677 00000 n +0000108565 00000 n +0000108740 00000 n +0001193808 00000 n +0001851552 00000 n +0000108797 00000 n +0000108982 00000 n +0001193934 00000 n +0001851483 00000 n +0000109044 00000 n +0000109215 00000 n +0001194123 00000 n +0001851344 00000 n +0000109267 00000 n +0000109544 00000 n +0001196640 00000 n +0001851260 00000 n +0000109601 00000 n +0000109776 00000 n +0001196703 00000 n +0001851135 00000 n +0000109833 00000 n +0000110018 00000 n +0001196829 00000 n +0001851051 00000 n +0000110080 00000 n +0000110305 00000 n +0001199710 00000 n +0001850967 00000 n +0000110367 00000 n +0000110531 00000 n +0001199899 00000 n +0001850828 00000 n +0000110583 00000 n +0000110860 00000 n +0001200087 00000 n +0001850744 00000 n +0000110917 00000 n +0000111092 00000 n +0001201881 00000 n +0001850604 00000 n +0000111149 00000 n +0000111377 00000 n +0001202007 00000 n +0001850535 00000 n +0000111439 00000 n +0000111531 00000 n +0001202070 00000 n +0001850410 00000 n +0000111588 00000 n +0000111773 00000 n +0001202196 00000 n +0001850326 00000 n +0000111835 00000 n +0000112060 00000 n +0001202385 00000 n +0001850242 00000 n +0000112122 00000 n +0000112286 00000 n +0001209261 00000 n +0001850103 00000 n +0000112338 00000 n +0000112579 00000 n +0001213017 00000 n +0001850019 00000 n +0000112636 00000 n +0000112811 00000 n +0001213080 00000 n +0001849894 00000 n +0000112868 00000 n +0000113053 00000 n +0001213206 00000 n +0001849810 00000 n +0000113115 00000 n +0000113392 00000 n +0001213332 00000 n +0001849711 00000 n +0000113454 00000 n +0000113671 00000 n +0001216791 00000 n +0001849612 00000 n +0000113733 00000 n +0000113985 00000 n +0001216979 00000 n +0001849513 00000 n +0000114047 00000 n +0000114274 00000 n +0001220347 00000 n +0001849414 00000 n +0000114336 00000 n +0000114530 00000 n +0001220532 00000 n +0001849315 00000 n +0000114592 00000 n +0000114809 00000 n +0001223625 00000 n +0001849216 00000 n +0000114871 00000 n +0000115123 00000 n +0001223814 00000 n +0001849132 00000 n +0000115185 00000 n +0000115457 00000 n +0001223939 00000 n +0001848993 00000 n +0000115509 00000 n +0000115750 00000 n +0001227819 00000 n +0001848909 00000 n +0000115807 00000 n +0000115982 00000 n +0001227881 00000 n +0001848784 00000 n +0000116039 00000 n +0000116224 00000 n +0001228007 00000 n +0001848700 00000 n +0000116286 00000 n +0000116563 00000 n +0001228133 00000 n +0001848616 00000 n +0000116625 00000 n +0000116897 00000 n +0001230729 00000 n +0001848477 00000 n +0000116949 00000 n +0000117216 00000 n +0001230918 00000 n +0001848408 00000 n +0000117273 00000 n +0000117448 00000 n +0001231044 00000 n +0001848269 00000 n +0000117500 00000 n +0000117767 00000 n +0001231233 00000 n +0001848200 00000 n +0000117824 00000 n +0000117999 00000 n +0001234633 00000 n +0001848061 00000 n +0000118051 00000 n +0000118340 00000 n +0001234822 00000 n +0001847992 00000 n +0000118397 00000 n +0000118572 00000 n +0001234947 00000 n +0001847853 00000 n +0000118624 00000 n +0000118913 00000 n +0001235136 00000 n +0001847784 00000 n +0000118970 00000 n +0000119145 00000 n +0001238550 00000 n +0001847645 00000 n +0000119197 00000 n +0000119423 00000 n +0001238676 00000 n +0001847561 00000 n +0000119480 00000 n +0000119655 00000 n +0001238739 00000 n +0001847436 00000 n +0000119712 00000 n +0000119940 00000 n +0001238865 00000 n +0001847367 00000 n +0000120002 00000 n +0000120129 00000 n +0001239306 00000 n +0001847228 00000 n +0000120181 00000 n +0000120382 00000 n +0001244055 00000 n +0001847144 00000 n +0000120439 00000 n +0000120614 00000 n +0001244118 00000 n +0001847019 00000 n +0000120671 00000 n +0000120856 00000 n +0001244244 00000 n +0001846935 00000 n +0000120918 00000 n +0000121145 00000 n +0001249387 00000 n +0001846851 00000 n +0000121207 00000 n +0000121437 00000 n +0001249572 00000 n +0001846712 00000 n +0000121489 00000 n +0000121690 00000 n +0001253296 00000 n +0001846628 00000 n +0000121747 00000 n +0000121922 00000 n +0001253359 00000 n +0001846503 00000 n +0000121979 00000 n +0000122164 00000 n +0001253485 00000 n +0001846419 00000 n +0000122226 00000 n +0000122453 00000 n +0001253673 00000 n +0001846335 00000 n +0000122515 00000 n +0000122745 00000 n +0001257556 00000 n +0001846196 00000 n +0000122797 00000 n +0000122998 00000 n +0001257682 00000 n +0001846112 00000 n +0000123055 00000 n +0000123230 00000 n +0001257745 00000 n +0001845987 00000 n +0000123287 00000 n +0000123472 00000 n +0001261022 00000 n +0001845903 00000 n +0000123534 00000 n +0000123718 00000 n +0001261211 00000 n +0001845819 00000 n +0000123780 00000 n +0000123987 00000 n +0001264956 00000 n +0001845680 00000 n +0000124039 00000 n +0000124240 00000 n +0001265082 00000 n +0001845596 00000 n +0000124297 00000 n +0000124472 00000 n +0001265145 00000 n +0001845471 00000 n +0000124529 00000 n +0000124714 00000 n +0001268422 00000 n +0001845387 00000 n +0000124776 00000 n +0000124960 00000 n +0001268611 00000 n +0001845303 00000 n +0000125022 00000 n +0000125229 00000 n +0001271565 00000 n +0001845164 00000 n +0000125281 00000 n +0000125507 00000 n +0001271691 00000 n +0001845080 00000 n +0000125564 00000 n +0000125739 00000 n +0001271754 00000 n +0001844955 00000 n +0000125796 00000 n +0000125981 00000 n +0001274924 00000 n +0001844886 00000 n +0000126043 00000 n +0000126252 00000 n +0001275113 00000 n +0001844747 00000 n +0000126304 00000 n +0000126530 00000 n +0001277928 00000 n +0001844663 00000 n +0000126587 00000 n +0000126762 00000 n +0001277991 00000 n +0001844538 00000 n +0000126819 00000 n +0000127004 00000 n +0001278117 00000 n +0001844469 00000 n +0000127066 00000 n +0000127275 00000 n +0001280676 00000 n +0001844330 00000 n +0000127327 00000 n +0000127546 00000 n +0001280865 00000 n +0001844261 00000 n +0000127603 00000 n +0000127778 00000 n +0001280991 00000 n +0001844122 00000 n +0000127830 00000 n +0000128049 00000 n +0001281180 00000 n +0001844053 00000 n +0000128106 00000 n +0000128281 00000 n +0001284418 00000 n +0001843914 00000 n +0000128333 00000 n +0000128577 00000 n +0001284544 00000 n +0001843830 00000 n +0000128634 00000 n +0000128809 00000 n +0001284606 00000 n +0001843705 00000 n +0000128866 00000 n +0000129051 00000 n +0001284732 00000 n +0001843636 00000 n +0000129113 00000 n +0000129272 00000 n +0001288574 00000 n +0001843497 00000 n +0000129324 00000 n +0000129568 00000 n +0001288699 00000 n +0001843413 00000 n +0000129625 00000 n +0000129800 00000 n +0001288762 00000 n +0001843288 00000 n +0000129857 00000 n +0000130042 00000 n +0001288888 00000 n +0001843219 00000 n +0000130104 00000 n +0000130263 00000 n +0001291928 00000 n +0001843080 00000 n +0000130315 00000 n +0000130521 00000 n +0001292054 00000 n +0001842996 00000 n +0000130578 00000 n +0000130753 00000 n +0001292117 00000 n +0001842871 00000 n +0000130810 00000 n +0000130995 00000 n +0001292243 00000 n +0001842787 00000 n +0000131057 00000 n +0000131231 00000 n +0001295395 00000 n +0001842703 00000 n +0000131293 00000 n +0000131444 00000 n +0001295584 00000 n +0001842564 00000 n +0000131496 00000 n +0000131702 00000 n +0001295710 00000 n +0001842480 00000 n +0000131759 00000 n +0000131934 00000 n +0001297730 00000 n +0001842355 00000 n +0000131991 00000 n +0000132176 00000 n +0001297856 00000 n +0001842271 00000 n +0000132238 00000 n +0000132412 00000 n +0001298044 00000 n +0001842187 00000 n +0000132474 00000 n +0000132625 00000 n +0001298233 00000 n +0001842048 00000 n +0000132677 00000 n +0000132855 00000 n +0001304397 00000 n +0001841964 00000 n +0000132912 00000 n +0000133087 00000 n +0001304460 00000 n +0001841839 00000 n +0000133144 00000 n +0000133329 00000 n +0001304586 00000 n +0001841755 00000 n +0000133391 00000 n +0000133514 00000 n +0001307479 00000 n +0001841656 00000 n +0000133576 00000 n +0000133737 00000 n +0001310613 00000 n +0001841557 00000 n +0000133799 00000 n +0000133985 00000 n +0001310801 00000 n +0001841473 00000 n +0000134047 00000 n +0000134226 00000 n +0001316733 00000 n +0001841334 00000 n +0000134278 00000 n +0000134456 00000 n +0001316859 00000 n +0001841250 00000 n +0000134513 00000 n +0000134688 00000 n +0001320263 00000 n +0001841125 00000 n +0000134745 00000 n +0000134930 00000 n +0001320389 00000 n +0001841041 00000 n +0000134992 00000 n +0000135115 00000 n +0001320577 00000 n +0001840942 00000 n +0000135177 00000 n +0000135338 00000 n +0001323358 00000 n +0001840843 00000 n +0000135400 00000 n +0000135586 00000 n +0001326520 00000 n +0001840759 00000 n +0000135648 00000 n +0000135827 00000 n +0001326708 00000 n +0001840620 00000 n +0000135879 00000 n +0000136085 00000 n +0001329809 00000 n +0001840551 00000 n +0000136142 00000 n +0000136317 00000 n +0001329935 00000 n +0001840412 00000 n +0000136369 00000 n +0000136575 00000 n +0001330187 00000 n +0001840343 00000 n +0000136632 00000 n +0000136807 00000 n +0001330313 00000 n +0001840204 00000 n +0000136859 00000 n +0000137027 00000 n +0001337148 00000 n +0001840120 00000 n +0000137084 00000 n +0000137259 00000 n +0001337211 00000 n +0001839995 00000 n +0000137316 00000 n +0000137501 00000 n +0001337336 00000 n +0001839911 00000 n +0000137563 00000 n +0000137676 00000 n +0001339551 00000 n +0001839812 00000 n +0000137738 00000 n +0000137979 00000 n +0001342342 00000 n +0001839713 00000 n +0000138041 00000 n +0000138311 00000 n +0001342531 00000 n +0001839614 00000 n +0000138373 00000 n +0000138545 00000 n +0001344792 00000 n +0001839515 00000 n +0000138607 00000 n +0000138842 00000 n +0001344981 00000 n +0001839416 00000 n +0000138904 00000 n +0000139076 00000 n +0001347916 00000 n +0001839332 00000 n +0000139138 00000 n +0000139310 00000 n +0001348105 00000 n +0001839193 00000 n +0000139362 00000 n +0000139530 00000 n +0001355276 00000 n +0001839109 00000 n +0000139587 00000 n +0000139762 00000 n +0001355338 00000 n +0001838984 00000 n +0000139819 00000 n +0000140004 00000 n +0001355464 00000 n +0001838900 00000 n +0000140066 00000 n +0000140179 00000 n +0001357681 00000 n +0001838801 00000 n +0000140241 00000 n +0000140482 00000 n +0001360473 00000 n +0001838702 00000 n +0000140544 00000 n +0000140814 00000 n +0001360662 00000 n +0001838603 00000 n +0000140876 00000 n +0000141048 00000 n +0001362923 00000 n +0001838504 00000 n +0000141110 00000 n +0000141345 00000 n +0001363112 00000 n +0001838405 00000 n +0000141407 00000 n +0000141579 00000 n +0001365916 00000 n +0001838321 00000 n +0000141641 00000 n +0000141813 00000 n +0001366105 00000 n +0001838182 00000 n +0000141865 00000 n +0000142061 00000 n +0001366294 00000 n +0001838113 00000 n +0000142118 00000 n +0000142293 00000 n +0001373472 00000 n +0001837974 00000 n +0000142345 00000 n +0000142541 00000 n +0001373661 00000 n +0001837905 00000 n +0000142598 00000 n +0000142773 00000 n +0001373787 00000 n +0001837766 00000 n +0000142825 00000 n +0000143043 00000 n +0001381328 00000 n +0001837682 00000 n +0000143100 00000 n +0000143275 00000 n +0001381391 00000 n +0001837557 00000 n +0000143332 00000 n +0000143517 00000 n +0001381517 00000 n +0001837473 00000 n +0000143579 00000 n +0000143747 00000 n +0001385285 00000 n +0001837374 00000 n +0000143809 00000 n +0000143977 00000 n +0001388643 00000 n +0001837275 00000 n +0000144039 00000 n +0000144276 00000 n +0001388832 00000 n +0001837176 00000 n +0000144338 00000 n +0000144575 00000 n +0001392693 00000 n +0001837077 00000 n +0000144637 00000 n +0000144929 00000 n +0001392882 00000 n +0001836978 00000 n +0000144991 00000 n +0000145326 00000 n +0001396060 00000 n +0001836879 00000 n +0000145388 00000 n +0000145736 00000 n +0001396249 00000 n +0001836780 00000 n +0000145798 00000 n +0000146158 00000 n +0001399084 00000 n +0001836696 00000 n +0000146220 00000 n +0000146502 00000 n +0001399273 00000 n +0001836557 00000 n +0000146554 00000 n +0000146772 00000 n +0001409557 00000 n +0001836473 00000 n +0000146829 00000 n +0000147004 00000 n +0001409620 00000 n +0001836348 00000 n +0000147061 00000 n +0000147246 00000 n +0001414279 00000 n +0001836264 00000 n +0000147308 00000 n +0000147476 00000 n +0001414467 00000 n +0001836165 00000 n +0000147538 00000 n +0000147706 00000 n +0001417826 00000 n +0001836066 00000 n +0000147768 00000 n +0000148005 00000 n +0001421581 00000 n +0001835967 00000 n +0000148067 00000 n +0000148304 00000 n +0001421770 00000 n +0001835868 00000 n +0000148366 00000 n +0000148658 00000 n +0001425185 00000 n +0001835769 00000 n +0000148720 00000 n +0000149055 00000 n +0001425370 00000 n +0001835670 00000 n +0000149117 00000 n +0000149465 00000 n +0001428690 00000 n +0001835571 00000 n +0000149527 00000 n +0000149887 00000 n +0001428879 00000 n +0001835487 00000 n +0000149949 00000 n +0000150231 00000 n +0001434610 00000 n +0001835348 00000 n +0000150283 00000 n +0000150461 00000 n +0001436899 00000 n +0001835264 00000 n +0000150518 00000 n +0000150693 00000 n +0001436962 00000 n +0001835138 00000 n +0000150750 00000 n +0000150935 00000 n +0001437088 00000 n +0001835054 00000 n +0000150997 00000 n +0000151181 00000 n +0001437277 00000 n +0001834955 00000 n +0000151243 00000 n +0000151483 00000 n +0001439237 00000 n +0001834856 00000 n +0000151545 00000 n +0000151691 00000 n +0001439426 00000 n +0001834757 00000 n +0000151753 00000 n +0000151904 00000 n +0001439615 00000 n +0001834658 00000 n +0000151966 00000 n +0000152112 00000 n +0001442102 00000 n +0001834559 00000 n +0000152174 00000 n +0000152378 00000 n +0001442291 00000 n +0001834460 00000 n +0000152440 00000 n +0000152601 00000 n +0001444183 00000 n +0001834361 00000 n +0000152663 00000 n +0000152814 00000 n +0001444372 00000 n +0001834262 00000 n +0000152876 00000 n +0000153027 00000 n +0001446061 00000 n +0001834163 00000 n +0000153090 00000 n +0000153274 00000 n +0001446249 00000 n +0001834064 00000 n +0000153337 00000 n +0000153506 00000 n +0001449793 00000 n +0001833980 00000 n +0000153569 00000 n +0000153738 00000 n +0001449982 00000 n +0001833841 00000 n +0000153790 00000 n +0000153968 00000 n +0001454328 00000 n +0001833757 00000 n +0000154025 00000 n +0000154200 00000 n +0001454391 00000 n +0001833631 00000 n +0000154257 00000 n +0000154442 00000 n +0001454517 00000 n +0001833547 00000 n +0000154504 00000 n +0000154688 00000 n +0001456269 00000 n +0001833448 00000 n +0000154750 00000 n +0000154990 00000 n +0001456458 00000 n +0001833349 00000 n +0000155052 00000 n +0000155198 00000 n +0001458432 00000 n +0001833250 00000 n +0000155260 00000 n +0000155411 00000 n +0001458621 00000 n +0001833151 00000 n +0000155473 00000 n +0000155619 00000 n +0001458809 00000 n +0001833052 00000 n +0000155681 00000 n +0000155885 00000 n +0001461358 00000 n +0001832953 00000 n +0000155947 00000 n +0000156108 00000 n +0001461547 00000 n +0001832854 00000 n +0000156170 00000 n +0000156321 00000 n +0001463296 00000 n +0001832755 00000 n +0000156383 00000 n +0000156534 00000 n +0001463485 00000 n +0001832656 00000 n +0000156597 00000 n +0000156781 00000 n +0001465127 00000 n +0001832557 00000 n +0000156844 00000 n +0000157013 00000 n +0001465316 00000 n +0001832473 00000 n +0000157076 00000 n +0000157245 00000 n +0001467750 00000 n +0001832334 00000 n +0000157297 00000 n +0000157503 00000 n +0001467938 00000 n +0001832265 00000 n +0000157560 00000 n +0000157735 00000 n +0001468064 00000 n +0001832126 00000 n +0000157787 00000 n +0000157993 00000 n +0001468253 00000 n +0001832057 00000 n +0000158050 00000 n +0000158225 00000 n +0001481143 00000 n +0001831918 00000 n +0000158277 00000 n +0000158460 00000 n +0001487255 00000 n +0001831834 00000 n +0000158517 00000 n +0000158692 00000 n +0001487318 00000 n +0001831708 00000 n +0000158749 00000 n +0000158934 00000 n +0001487444 00000 n +0001831624 00000 n +0000158996 00000 n +0000159147 00000 n +0001490082 00000 n +0001831525 00000 n +0000159209 00000 n +0000159370 00000 n +0001490269 00000 n +0001831426 00000 n +0000159432 00000 n +0000159588 00000 n +0001493149 00000 n +0001831327 00000 n +0000159650 00000 n +0000159839 00000 n +0001493337 00000 n +0001831228 00000 n +0000159901 00000 n +0000160100 00000 n +0001496541 00000 n +0001831129 00000 n +0000160162 00000 n +0000160414 00000 n +0001496730 00000 n +0001831030 00000 n +0000160476 00000 n +0000160698 00000 n +0001499293 00000 n +0001830931 00000 n +0000160760 00000 n +0000160990 00000 n +0001499482 00000 n +0001830832 00000 n +0000161052 00000 n +0000161264 00000 n +0001502503 00000 n +0001830733 00000 n +0000161327 00000 n +0000161516 00000 n +0001502692 00000 n +0001830634 00000 n +0000161579 00000 n +0000161783 00000 n +0001505546 00000 n +0001830535 00000 n +0000161846 00000 n +0000162083 00000 n +0001505735 00000 n +0001830436 00000 n +0000162146 00000 n +0000162373 00000 n +0001508448 00000 n +0001830337 00000 n +0000162436 00000 n +0000162615 00000 n +0001508637 00000 n +0001830238 00000 n +0000162678 00000 n +0000162923 00000 n +0001508826 00000 n +0001830139 00000 n +0000162986 00000 n +0000163170 00000 n +0001512041 00000 n +0001830040 00000 n +0000163233 00000 n +0000163389 00000 n +0001512229 00000 n +0001829941 00000 n +0000163452 00000 n +0000163618 00000 n +0001514574 00000 n +0001829842 00000 n +0000163681 00000 n +0000163898 00000 n +0001514763 00000 n +0001829743 00000 n +0000163961 00000 n +0000164155 00000 n +0001517735 00000 n +0001829644 00000 n +0000164218 00000 n +0000164412 00000 n +0001517924 00000 n +0001829545 00000 n +0000164475 00000 n +0000164646 00000 n +0001518113 00000 n +0001829446 00000 n +0000164709 00000 n +0000164865 00000 n +0001521041 00000 n +0001829362 00000 n +0000164928 00000 n +0000165150 00000 n +0001521230 00000 n +0001829223 00000 n +0000165202 00000 n +0000165385 00000 n +0001540298 00000 n +0001829139 00000 n +0000165442 00000 n +0000165617 00000 n +0001540361 00000 n +0001829013 00000 n +0000165674 00000 n +0000165859 00000 n +0001540487 00000 n +0001828929 00000 n +0000165921 00000 n +0000166072 00000 n +0001543137 00000 n +0001828830 00000 n +0000166134 00000 n +0000166295 00000 n +0001543326 00000 n +0001828731 00000 n +0000166357 00000 n +0000166513 00000 n +0001543515 00000 n +0001828632 00000 n +0000166575 00000 n +0000166764 00000 n +0001546584 00000 n +0001828533 00000 n +0000166826 00000 n +0000167025 00000 n +0001546773 00000 n +0001828434 00000 n +0000167087 00000 n +0000167339 00000 n +0001549764 00000 n +0001828335 00000 n +0000167401 00000 n +0000167623 00000 n +0001552322 00000 n +0001828236 00000 n +0000167685 00000 n +0000167915 00000 n +0001552511 00000 n +0001828137 00000 n +0000167977 00000 n +0000168189 00000 n +0001555532 00000 n +0001828038 00000 n +0000168252 00000 n +0000168441 00000 n +0001555721 00000 n +0001827939 00000 n +0000168504 00000 n +0000168708 00000 n +0001558577 00000 n +0001827840 00000 n +0000168771 00000 n +0000169008 00000 n +0001558766 00000 n +0001827741 00000 n +0000169071 00000 n +0000169298 00000 n +0001561480 00000 n +0001827642 00000 n +0000169361 00000 n +0000169540 00000 n +0001561669 00000 n +0001827543 00000 n +0000169603 00000 n +0000169848 00000 n +0001561858 00000 n +0001827444 00000 n +0000169911 00000 n +0000170095 00000 n +0001565067 00000 n +0001827345 00000 n +0000170158 00000 n +0000170314 00000 n +0001565255 00000 n +0001827246 00000 n +0000170377 00000 n +0000170543 00000 n +0001567609 00000 n +0001827147 00000 n +0000170606 00000 n +0000170823 00000 n +0001567798 00000 n +0001827048 00000 n +0000170886 00000 n +0000171080 00000 n +0001570770 00000 n +0001826949 00000 n +0000171143 00000 n +0000171337 00000 n +0001570959 00000 n +0001826850 00000 n +0000171400 00000 n +0000171571 00000 n +0001571148 00000 n +0001826751 00000 n +0000171634 00000 n +0000171790 00000 n +0001573993 00000 n +0001826667 00000 n +0000171853 00000 n +0000172075 00000 n +0001574182 00000 n +0001826528 00000 n +0000172127 00000 n +0000172338 00000 n +0001576745 00000 n +0001826459 00000 n +0000172395 00000 n +0000172570 00000 n +0001576871 00000 n +0001826335 00000 n +0000172622 00000 n +0000172833 00000 n +0001577060 00000 n +0001826266 00000 n +0000172890 00000 n +0000173065 00000 n +0000173355 00000 n +0000173541 00000 n +0000173117 00000 n +0000173478 00000 n +0001817804 00000 n +0001818156 00000 n +0000173880 00000 n +0000173757 00000 n +0000173649 00000 n +0000175748 00000 n +0000175899 00000 n +0000176051 00000 n +0000176203 00000 n +0000176355 00000 n +0000176508 00000 n +0000176668 00000 n +0000176828 00000 n +0000176988 00000 n +0000177147 00000 n +0000177306 00000 n +0000177459 00000 n +0000177610 00000 n +0000177763 00000 n +0000177916 00000 n +0000178069 00000 n +0000178222 00000 n +0000178381 00000 n +0000178541 00000 n +0000178692 00000 n +0000178845 00000 n +0000178998 00000 n +0000179149 00000 n +0000179301 00000 n +0000179453 00000 n +0000179613 00000 n +0000179773 00000 n +0000179933 00000 n +0000180093 00000 n +0000180253 00000 n +0000180402 00000 n +0000180555 00000 n +0000180706 00000 n +0000180859 00000 n +0000181010 00000 n +0000181163 00000 n +0000181314 00000 n +0000181464 00000 n +0000183435 00000 n +0000181683 00000 n +0000175271 00000 n +0000173956 00000 n +0001817451 00000 n +0000181620 00000 n +0000183588 00000 n +0000183746 00000 n +0000183899 00000 n +0000184057 00000 n +0000184210 00000 n +0000184368 00000 n +0000184520 00000 n +0000184677 00000 n +0000184830 00000 n +0000184988 00000 n +0000185140 00000 n +0000185298 00000 n +0000185451 00000 n +0000185608 00000 n +0000185761 00000 n +0000185919 00000 n +0000186073 00000 n +0000186234 00000 n +0000186388 00000 n +0000186549 00000 n +0000186703 00000 n +0000186864 00000 n +0000187017 00000 n +0000187176 00000 n +0000187330 00000 n +0000187491 00000 n +0000187644 00000 n +0000187805 00000 n +0000187959 00000 n +0000188119 00000 n +0000188270 00000 n +0000188423 00000 n +0000188581 00000 n +0000188732 00000 n +0000188886 00000 n +0000189047 00000 n +0000189208 00000 n +0000189374 00000 n +0000189540 00000 n +0000189692 00000 n +0000191471 00000 n +0000189851 00000 n +0000182931 00000 n +0000181805 00000 n +0000191632 00000 n +0000191798 00000 n +0000191964 00000 n +0000192117 00000 n +0000192277 00000 n +0000192438 00000 n +0000192603 00000 n +0000192769 00000 n +0000192934 00000 n +0000193088 00000 n +0000193249 00000 n +0000193410 00000 n +0000193575 00000 n +0000193740 00000 n +0000193906 00000 n +0000194059 00000 n +0000194220 00000 n +0000194381 00000 n +0000194546 00000 n +0000194712 00000 n +0000194866 00000 n +0000195027 00000 n +0000195188 00000 n +0000195354 00000 n +0000195520 00000 n +0000195674 00000 n +0000195835 00000 n +0000195996 00000 n +0000196162 00000 n +0000196328 00000 n +0000196494 00000 n +0000196660 00000 n +0000196814 00000 n +0000196975 00000 n +0000197136 00000 n +0000197302 00000 n +0000197468 00000 n +0000197634 00000 n +0000197800 00000 n +0000197954 00000 n +0000198113 00000 n +0000199911 00000 n +0000198272 00000 n +0000190958 00000 n +0000189973 00000 n +0000200076 00000 n +0000200242 00000 n +0000200397 00000 n +0000200558 00000 n +0000200719 00000 n +0000200884 00000 n +0000201051 00000 n +0000201206 00000 n +0000201367 00000 n +0000201529 00000 n +0000201696 00000 n +0000201851 00000 n +0000202012 00000 n +0000202174 00000 n +0000202341 00000 n +0000202496 00000 n +0000202657 00000 n +0000202819 00000 n +0000202985 00000 n +0000203140 00000 n +0000203301 00000 n +0000203463 00000 n +0000203630 00000 n +0000203785 00000 n +0000203946 00000 n +0000204107 00000 n +0000204274 00000 n +0000204429 00000 n +0000204590 00000 n +0000204752 00000 n +0000204919 00000 n +0000205081 00000 n +0000205248 00000 n +0000205403 00000 n +0000205564 00000 n +0000205725 00000 n +0000205892 00000 n +0000206059 00000 n +0000206226 00000 n +0000206393 00000 n +0000206558 00000 n +0000208314 00000 n +0000206723 00000 n +0000199398 00000 n +0000198394 00000 n +0000208469 00000 n +0000208630 00000 n +0000208785 00000 n +0000208946 00000 n +0000209101 00000 n +0000209262 00000 n +0000209417 00000 n +0000209578 00000 n +0000209732 00000 n +0000209893 00000 n +0000210047 00000 n +0000210208 00000 n +0000210370 00000 n +0000210536 00000 n +0000210703 00000 n +0000210869 00000 n +0000211023 00000 n +0000211184 00000 n +0000211346 00000 n +0000211513 00000 n +0000211679 00000 n +0000211834 00000 n +0000211995 00000 n +0000212157 00000 n +0000212324 00000 n +0000212479 00000 n +0000212640 00000 n +0000212802 00000 n +0000212969 00000 n +0000213124 00000 n +0000213285 00000 n +0000213447 00000 n +0000213614 00000 n +0000213781 00000 n +0000213948 00000 n +0000214115 00000 n +0000214270 00000 n +0000214431 00000 n +0000214593 00000 n +0000214760 00000 n +0000214925 00000 n +0000216718 00000 n +0000215090 00000 n +0000207801 00000 n +0000206845 00000 n +0001818281 00000 n +0000216884 00000 n +0000217039 00000 n +0000217200 00000 n +0000217362 00000 n +0000217529 00000 n +0000217684 00000 n +0000217845 00000 n +0000218007 00000 n +0000218173 00000 n +0000218328 00000 n +0000218489 00000 n +0000218644 00000 n +0000218805 00000 n +0000218958 00000 n +0000219119 00000 n +0000219281 00000 n +0000219448 00000 n +0000219603 00000 n +0000219764 00000 n +0000219926 00000 n +0000220093 00000 n +0000220248 00000 n +0000220409 00000 n +0000220571 00000 n +0000220738 00000 n +0000220905 00000 n +0000221072 00000 n +0000221239 00000 n +0000221394 00000 n +0000221555 00000 n +0000221716 00000 n +0000221883 00000 n +0000222050 00000 n +0000222217 00000 n +0000222384 00000 n +0000222539 00000 n +0000222700 00000 n +0000222862 00000 n +0000223028 00000 n +0000223195 00000 n +0000223359 00000 n +0000225291 00000 n +0000223524 00000 n +0000216205 00000 n +0000215212 00000 n +0000225457 00000 n +0000225624 00000 n +0000225791 00000 n +0000225945 00000 n +0000226105 00000 n +0000226267 00000 n +0000226433 00000 n +0000226600 00000 n +0000226765 00000 n +0000226932 00000 n +0000227098 00000 n +0000227265 00000 n +0000227432 00000 n +0000227585 00000 n +0000227746 00000 n +0000227901 00000 n +0000228062 00000 n +0000228217 00000 n +0000228378 00000 n +0000228540 00000 n +0000228707 00000 n +0000228874 00000 n +0000229041 00000 n +0000229207 00000 n +0000229374 00000 n +0000229541 00000 n +0000229708 00000 n +0000229875 00000 n +0000230042 00000 n +0000230210 00000 n +0000230378 00000 n +0000230546 00000 n +0000230714 00000 n +0000230881 00000 n +0000231048 00000 n +0000231216 00000 n +0000231384 00000 n +0000231552 00000 n +0000231720 00000 n +0000231888 00000 n +0000232054 00000 n +0000234013 00000 n +0000232220 00000 n +0000224778 00000 n +0000223646 00000 n +0000234181 00000 n +0000234349 00000 n +0000234517 00000 n +0000234684 00000 n +0000234852 00000 n +0000235020 00000 n +0000235188 00000 n +0000235356 00000 n +0000235523 00000 n +0000235691 00000 n +0000235859 00000 n +0000236027 00000 n +0000236195 00000 n +0000236362 00000 n +0000236530 00000 n +0000236698 00000 n +0000236865 00000 n +0000237032 00000 n +0000237199 00000 n +0000237367 00000 n +0000237535 00000 n +0000237702 00000 n +0000237857 00000 n +0000238018 00000 n +0000238180 00000 n +0000238347 00000 n +0000238514 00000 n +0000238680 00000 n +0000238842 00000 n +0000239009 00000 n +0000239176 00000 n +0000239343 00000 n +0000239509 00000 n +0000239676 00000 n +0000239843 00000 n +0000240010 00000 n +0000240177 00000 n +0000240344 00000 n +0000240512 00000 n +0000240680 00000 n +0000240846 00000 n +0000242783 00000 n +0000241012 00000 n +0000233500 00000 n +0000232342 00000 n +0000242949 00000 n +0000243116 00000 n +0000243284 00000 n +0000243451 00000 n +0000243619 00000 n +0000243785 00000 n +0000243953 00000 n +0000244121 00000 n +0000244288 00000 n +0000244456 00000 n +0000244624 00000 n +0000244792 00000 n +0000244960 00000 n +0000245127 00000 n +0000245295 00000 n +0000245463 00000 n +0000245631 00000 n +0000245799 00000 n +0000245966 00000 n +0000246134 00000 n +0000246302 00000 n +0000246470 00000 n +0000246638 00000 n +0000246806 00000 n +0000246974 00000 n +0000247141 00000 n +0000247308 00000 n +0000247476 00000 n +0000247644 00000 n +0000247812 00000 n +0000247979 00000 n +0000248134 00000 n +0000248295 00000 n +0000248450 00000 n +0000248611 00000 n +0000248765 00000 n +0000248926 00000 n +0000249088 00000 n +0000249254 00000 n +0000249409 00000 n +0000249568 00000 n +0000251432 00000 n +0000249728 00000 n +0000242270 00000 n +0000241134 00000 n +0000251597 00000 n +0000251752 00000 n +0000251913 00000 n +0000252067 00000 n +0000252227 00000 n +0000252382 00000 n +0000252543 00000 n +0000252705 00000 n +0000252871 00000 n +0000253038 00000 n +0000253193 00000 n +0000253354 00000 n +0000253516 00000 n +0000253682 00000 n +0000253849 00000 n +0000254004 00000 n +0000254165 00000 n +0000254320 00000 n +0000254481 00000 n +0000254636 00000 n +0000254797 00000 n +0000254959 00000 n +0000255126 00000 n +0000255293 00000 n +0000255460 00000 n +0000255627 00000 n +0000255794 00000 n +0000255961 00000 n +0000256128 00000 n +0000256283 00000 n +0000256444 00000 n +0000256606 00000 n +0000256773 00000 n +0000256940 00000 n +0000257107 00000 n +0000257274 00000 n +0000257441 00000 n +0000257608 00000 n +0000257775 00000 n +0000257930 00000 n +0000258089 00000 n +0000259947 00000 n +0000258249 00000 n +0000250919 00000 n +0000249850 00000 n +0000260114 00000 n +0000260269 00000 n +0000260430 00000 n +0000260592 00000 n +0000260759 00000 n +0000260910 00000 n +0000261071 00000 n +0000261233 00000 n +0000261399 00000 n +0000261566 00000 n +0000261720 00000 n +0000261881 00000 n +0000262043 00000 n +0000262210 00000 n +0000262372 00000 n +0000262539 00000 n +0000262706 00000 n +0000262859 00000 n +0000263020 00000 n +0000263182 00000 n +0000263349 00000 n +0000263516 00000 n +0000263683 00000 n +0000263849 00000 n +0000264016 00000 n +0000264183 00000 n +0000264350 00000 n +0000264517 00000 n +0000264672 00000 n +0000264833 00000 n +0000264994 00000 n +0000265161 00000 n +0000265328 00000 n +0000265483 00000 n +0000265644 00000 n +0000265799 00000 n +0000265960 00000 n +0000266115 00000 n +0000266276 00000 n +0000266431 00000 n +0000266590 00000 n +0000268390 00000 n +0000266743 00000 n +0000259434 00000 n +0000258371 00000 n +0001818406 00000 n +0000268551 00000 n +0000268713 00000 n +0000268879 00000 n +0000269033 00000 n +0000269193 00000 n +0000269355 00000 n +0000269522 00000 n +0000269689 00000 n +0000269843 00000 n +0000270004 00000 n +0000270166 00000 n +0000270333 00000 n +0000270500 00000 n +0000270654 00000 n +0000270815 00000 n +0000270977 00000 n +0000271144 00000 n +0000271311 00000 n +0000271465 00000 n +0000271626 00000 n +0000271788 00000 n +0000271955 00000 n +0000272122 00000 n +0000272277 00000 n +0000272438 00000 n +0000272599 00000 n +0000272766 00000 n +0000272921 00000 n +0000273082 00000 n +0000273244 00000 n +0000273411 00000 n +0000273566 00000 n +0000273727 00000 n +0000273882 00000 n +0000274043 00000 n +0000274198 00000 n +0000274359 00000 n +0000274521 00000 n +0000274688 00000 n +0000274843 00000 n +0000275002 00000 n +0000276820 00000 n +0000275162 00000 n +0000267877 00000 n +0000266865 00000 n +0000276986 00000 n +0000277141 00000 n +0000277302 00000 n +0000277464 00000 n +0000277631 00000 n +0000277798 00000 n +0000277953 00000 n +0000278114 00000 n +0000278276 00000 n +0000278443 00000 n +0000278610 00000 n +0000278765 00000 n +0000278926 00000 n +0000279088 00000 n +0000279254 00000 n +0000279421 00000 n +0000279588 00000 n +0000279755 00000 n +0000279909 00000 n +0000280070 00000 n +0000280232 00000 n +0000280398 00000 n +0000280565 00000 n +0000280732 00000 n +0000280899 00000 n +0000281054 00000 n +0000281215 00000 n +0000281368 00000 n +0000281529 00000 n +0000281684 00000 n +0000281845 00000 n +0000282007 00000 n +0000282174 00000 n +0000282341 00000 n +0000282508 00000 n +0000282675 00000 n +0000282841 00000 n +0000283008 00000 n +0000283175 00000 n +0000283329 00000 n +0000283488 00000 n +0000285366 00000 n +0000283648 00000 n +0000276307 00000 n +0000275284 00000 n +0000285533 00000 n +0000285700 00000 n +0000285867 00000 n +0000286033 00000 n +0000286199 00000 n +0000286364 00000 n +0000286531 00000 n +0000286686 00000 n +0000286847 00000 n +0000287002 00000 n +0000287163 00000 n +0000287318 00000 n +0000287479 00000 n +0000287641 00000 n +0000287808 00000 n +0000287975 00000 n +0000288142 00000 n +0000288309 00000 n +0000288475 00000 n +0000288642 00000 n +0000288809 00000 n +0000288976 00000 n +0000289143 00000 n +0000289297 00000 n +0000289458 00000 n +0000289619 00000 n +0000289786 00000 n +0000289953 00000 n +0000290120 00000 n +0000290287 00000 n +0000290454 00000 n +0000290621 00000 n +0000290788 00000 n +0000290955 00000 n +0000291122 00000 n +0000291276 00000 n +0000291437 00000 n +0000291599 00000 n +0000291766 00000 n +0000291933 00000 n +0000292098 00000 n +0000293975 00000 n +0000292263 00000 n +0000284853 00000 n +0000283770 00000 n +0000294142 00000 n +0000294309 00000 n +0000294475 00000 n +0000294641 00000 n +0000294808 00000 n +0000294976 00000 n +0000295144 00000 n +0000295312 00000 n +0000295466 00000 n +0000295627 00000 n +0000295789 00000 n +0000295956 00000 n +0000296123 00000 n +0000296289 00000 n +0000296456 00000 n +0000296623 00000 n +0000296790 00000 n +0000296956 00000 n +0000297122 00000 n +0000297289 00000 n +0000297457 00000 n +0000297625 00000 n +0000297793 00000 n +0000297948 00000 n +0000298109 00000 n +0000298264 00000 n +0000298425 00000 n +0000298580 00000 n +0000298741 00000 n +0000298903 00000 n +0000299070 00000 n +0000299237 00000 n +0000299404 00000 n +0000299571 00000 n +0000299738 00000 n +0000299905 00000 n +0000300072 00000 n +0000300239 00000 n +0000300406 00000 n +0000300574 00000 n +0000300740 00000 n +0000302567 00000 n +0000300906 00000 n +0000293462 00000 n +0000292385 00000 n +0000302734 00000 n +0000302902 00000 n +0000303070 00000 n +0000303237 00000 n +0000303405 00000 n +0000303573 00000 n +0000303741 00000 n +0000303909 00000 n +0000304076 00000 n +0000304244 00000 n +0000304412 00000 n +0000304580 00000 n +0000304735 00000 n +0000304896 00000 n +0000305058 00000 n +0000305225 00000 n +0000305392 00000 n +0000305559 00000 n +0000305725 00000 n +0000305892 00000 n +0000306059 00000 n +0000306226 00000 n +0000306393 00000 n +0000306560 00000 n +0000306728 00000 n +0000306896 00000 n +0000307064 00000 n +0000307232 00000 n +0000307400 00000 n +0000307568 00000 n +0000307736 00000 n +0000307904 00000 n +0000308072 00000 n +0000308240 00000 n +0000308408 00000 n +0000308576 00000 n +0000308744 00000 n +0000308912 00000 n +0000309080 00000 n +0000309235 00000 n +0000309394 00000 n +0000310168 00000 n +0000309547 00000 n +0000302054 00000 n +0000301028 00000 n +0000310329 00000 n +0000310024 00000 n +0000309669 00000 n +0001818531 00000 n +0000310682 00000 n +0000310559 00000 n +0000310451 00000 n +0000375705 00000 n +0000375884 00000 n +0000376294 00000 n +0000376489 00000 n +0000376661 00000 n +0000376852 00000 n +0000377047 00000 n +0000377220 00000 n +0000377411 00000 n +0000310758 00000 n +0000312812 00000 n +0000312930 00000 n +0000313124 00000 n +0000313392 00000 n +0000313639 00000 n +0000313907 00000 n +0000314204 00000 n +0000314430 00000 n +0000314691 00000 n +0000314885 00000 n +0000315134 00000 n +0000315384 00000 n +0000315650 00000 n +0000315947 00000 n +0000316173 00000 n +0000316434 00000 n +0000316628 00000 n +0000316884 00000 n +0000317078 00000 n +0000317272 00000 n +0000317466 00000 n +0000317660 00000 n +0000317854 00000 n +0000318048 00000 n +0000318242 00000 n +0000318507 00000 n +0000318803 00000 n +0000319028 00000 n +0000319289 00000 n +0000319483 00000 n +0000319677 00000 n +0000319871 00000 n +0000320138 00000 n +0000320435 00000 n +0000320661 00000 n +0000320922 00000 n +0000321116 00000 n +0000321310 00000 n +0000321504 00000 n +0000321761 00000 n +0000322019 00000 n +0000322213 00000 n +0000322407 00000 n +0000322601 00000 n +0000322795 00000 n +0000322989 00000 n +0000323257 00000 n +0000323554 00000 n +0000323779 00000 n +0000324040 00000 n +0000324234 00000 n +0000324428 00000 n +0000324622 00000 n +0000324888 00000 n +0000325185 00000 n +0000325411 00000 n +0000325672 00000 n +0000325866 00000 n +0000326132 00000 n +0000326431 00000 n +0000326657 00000 n +0000326919 00000 n +0000327113 00000 n +0000327380 00000 n +0000327677 00000 n +0000327903 00000 n +0000328165 00000 n +0000328359 00000 n +0000328624 00000 n +0000328920 00000 n +0000329146 00000 n +0000329409 00000 n +0000329603 00000 n +0000329867 00000 n +0000330162 00000 n +0000330388 00000 n +0000330649 00000 n +0000330843 00000 n +0000331108 00000 n +0000331406 00000 n +0000331631 00000 n +0000331892 00000 n +0000332086 00000 n +0000332351 00000 n +0000332645 00000 n +0000332870 00000 n +0000333131 00000 n +0000333325 00000 n +0000333591 00000 n +0000333885 00000 n +0000334110 00000 n +0000334368 00000 n +0000334562 00000 n +0000334829 00000 n +0000335125 00000 n +0000335350 00000 n +0000335610 00000 n +0000335804 00000 n +0000336063 00000 n +0000336311 00000 n +0000336568 00000 n +0000336589 00000 n +0000336682 00000 n +0000336704 00000 n +0000336767 00000 n +0000336788 00000 n +0000336851 00000 n +0000336873 00000 n +0000336936 00000 n +0000336958 00000 n +0000337021 00000 n +0000337042 00000 n +0000337105 00000 n +0000337127 00000 n +0000337190 00000 n +0000337211 00000 n +0000337304 00000 n +0000337325 00000 n +0000337388 00000 n +0000337409 00000 n +0000337472 00000 n +0000337494 00000 n +0000337557 00000 n +0000337579 00000 n +0000337642 00000 n +0000337663 00000 n +0000337726 00000 n +0000337748 00000 n +0000337811 00000 n +0000337832 00000 n +0000337925 00000 n +0000337947 00000 n +0000338010 00000 n +0000338031 00000 n +0000338124 00000 n +0000338145 00000 n +0000338238 00000 n +0000338259 00000 n +0000338352 00000 n +0000338373 00000 n +0000338466 00000 n +0000338487 00000 n +0000338580 00000 n +0000338601 00000 n +0000338694 00000 n +0000338715 00000 n +0000338808 00000 n +0000338830 00000 n +0000338893 00000 n +0000338915 00000 n +0000338978 00000 n +0000338999 00000 n +0000339062 00000 n +0000339084 00000 n +0000339147 00000 n +0000339168 00000 n +0000339261 00000 n +0000339282 00000 n +0000339375 00000 n +0000339396 00000 n +0000339489 00000 n +0000339511 00000 n +0000339574 00000 n +0000339596 00000 n +0000339659 00000 n +0000339680 00000 n +0000339743 00000 n +0000339765 00000 n +0000339828 00000 n +0000339849 00000 n +0000339942 00000 n +0000339963 00000 n +0000340056 00000 n +0000340077 00000 n +0000340170 00000 n +0000340192 00000 n +0000340255 00000 n +0000340277 00000 n +0000340340 00000 n +0000340361 00000 n +0000340454 00000 n +0000340475 00000 n +0000340568 00000 n +0000340589 00000 n +0000340682 00000 n +0000340703 00000 n +0000340796 00000 n +0000340817 00000 n +0000340910 00000 n +0000340932 00000 n +0000340995 00000 n +0000341017 00000 n +0000341080 00000 n +0000341101 00000 n +0000341164 00000 n +0000341186 00000 n +0000341249 00000 n +0000341270 00000 n +0000341363 00000 n +0000341384 00000 n +0000341477 00000 n +0000341498 00000 n +0000341591 00000 n +0000341613 00000 n +0000341676 00000 n +0000341698 00000 n +0000341761 00000 n +0000341782 00000 n +0000341845 00000 n +0000341867 00000 n +0000341930 00000 n +0000341951 00000 n +0000342044 00000 n +0000342066 00000 n +0000342129 00000 n +0000342151 00000 n +0000342214 00000 n +0000342235 00000 n +0000342298 00000 n +0000342320 00000 n +0000342383 00000 n +0000342404 00000 n +0000342497 00000 n +0000342519 00000 n +0000342582 00000 n +0000342604 00000 n +0000342667 00000 n +0000342688 00000 n +0000342751 00000 n +0000342773 00000 n +0000342836 00000 n +0000342857 00000 n +0000342950 00000 n +0000342972 00000 n +0000343035 00000 n +0000343057 00000 n +0000343120 00000 n +0000343141 00000 n +0000343204 00000 n +0000343226 00000 n +0000343289 00000 n +0000343310 00000 n +0000343403 00000 n +0000343425 00000 n +0000343488 00000 n +0000343510 00000 n +0000343573 00000 n +0000343594 00000 n +0000343657 00000 n +0000343679 00000 n +0000343742 00000 n +0000343763 00000 n +0000343856 00000 n +0000343878 00000 n +0000343941 00000 n +0000343963 00000 n +0000344026 00000 n +0000344047 00000 n +0000344110 00000 n +0000344132 00000 n +0000344195 00000 n +0000344216 00000 n +0000344309 00000 n +0000344331 00000 n +0000344394 00000 n +0000344416 00000 n +0000344479 00000 n +0000344500 00000 n +0000344563 00000 n +0000344585 00000 n +0000344648 00000 n +0000344669 00000 n +0000344762 00000 n +0000344784 00000 n +0000344847 00000 n +0000344869 00000 n +0000344932 00000 n +0000344953 00000 n +0000345016 00000 n +0000345038 00000 n +0000345101 00000 n +0000345122 00000 n +0000345215 00000 n +0000345237 00000 n +0000345300 00000 n +0000345322 00000 n +0000345385 00000 n +0000345406 00000 n +0000345469 00000 n +0000345491 00000 n +0000345554 00000 n +0000345575 00000 n +0000345668 00000 n +0000345690 00000 n +0000345753 00000 n +0000345774 00000 n +0000345837 00000 n +0000345859 00000 n +0000345922 00000 n +0000346177 00000 n +0000346423 00000 n +0000346679 00000 n +0000346969 00000 n +0000347254 00000 n +0000347492 00000 n +0000347741 00000 n +0000348023 00000 n +0000348261 00000 n +0000348506 00000 n +0000348782 00000 n +0000349020 00000 n +0000349263 00000 n +0000349509 00000 n +0000349745 00000 n +0000349992 00000 n +0000350281 00000 n +0000350533 00000 n +0000350803 00000 n +0000351080 00000 n +0000351349 00000 n +0000351592 00000 n +0000351866 00000 n +0000352159 00000 n +0000352411 00000 n +0000352658 00000 n +0000352897 00000 n +0000353170 00000 n +0000353451 00000 n +0000353696 00000 n +0000353935 00000 n +0000354182 00000 n +0000354429 00000 n +0000354451 00000 n +0000354514 00000 n +0000354535 00000 n +0000354626 00000 n +0000354648 00000 n +0000354739 00000 n +0000354761 00000 n +0000354852 00000 n +0000354874 00000 n +0000354965 00000 n +0000354986 00000 n +0000355077 00000 n +0000355098 00000 n +0000355189 00000 n +0000355211 00000 n +0000355302 00000 n +0000355323 00000 n +0000355414 00000 n +0000355435 00000 n +0000355526 00000 n +0000355548 00000 n +0000355639 00000 n +0000355660 00000 n +0000355751 00000 n +0000355772 00000 n +0000355863 00000 n +0000355884 00000 n +0000355975 00000 n +0000355996 00000 n +0000356087 00000 n +0000356108 00000 n +0000356199 00000 n +0000356221 00000 n +0000356312 00000 n +0000356334 00000 n +0000356425 00000 n +0000356447 00000 n +0000356538 00000 n +0000356560 00000 n +0000356651 00000 n +0000356673 00000 n +0000356764 00000 n +0000356785 00000 n +0000356876 00000 n +0000356898 00000 n +0000356989 00000 n +0000357011 00000 n +0000357102 00000 n +0000357124 00000 n +0000357215 00000 n +0000357236 00000 n +0000357327 00000 n +0000357348 00000 n +0000357439 00000 n +0000357461 00000 n +0000357552 00000 n +0000357574 00000 n +0000357665 00000 n +0000357686 00000 n +0000357777 00000 n +0000357798 00000 n +0000357889 00000 n +0000357910 00000 n +0000358001 00000 n +0000358022 00000 n +0000358113 00000 n +0000358579 00000 n +0000358813 00000 n +0000359329 00000 n +0000373665 00000 n +0000373687 00000 n +0000378210 00000 n +0000375480 00000 n +0000373711 00000 n +0000377590 00000 n +0001817625 00000 n +0000377713 00000 n +0000377776 00000 n +0000377899 00000 n +0001817097 00000 n +0001816665 00000 n +0001815360 00000 n +0000376090 00000 n +0000378024 00000 n +0000378148 00000 n +0000380089 00000 n +0000380627 00000 n +0000379929 00000 n +0000378388 00000 n +0000380252 00000 n +0000380315 00000 n +0000005754 00000 f +0000380439 00000 n +0000380564 00000 n +0000467594 00000 n +0000383232 00000 n +0000383403 00000 n +0000383569 00000 n +0000383734 00000 n +0000383903 00000 n +0000384066 00000 n +0000384233 00000 n +0000384391 00000 n +0000384556 00000 n +0000385333 00000 n +0000383016 00000 n +0000380778 00000 n +0000384713 00000 n +0000384837 00000 n +0000384961 00000 n +0000385084 00000 n +0000385209 00000 n +0000475945 00000 n +0000460466 00000 n +0000471433 00000 n +0000483263 00000 n +0000469510 00000 n +0000389878 00000 n +0000399940 00000 n +0000395630 00000 n +0000385960 00000 n +0000385774 00000 n +0000385469 00000 n +0000385897 00000 n +0000388405 00000 n +0000388578 00000 n +0000389054 00000 n +0000389213 00000 n +0000389372 00000 n +0000389562 00000 n +0000392606 00000 n +0000390378 00000 n +0000388207 00000 n +0000386068 00000 n +0000389754 00000 n +0000389940 00000 n +0001816374 00000 n +0001814920 00000 n +0000390065 00000 n +0000388817 00000 n +0000390190 00000 n +0000390315 00000 n +0001818656 00000 n +0001099585 00000 n +0001576808 00000 n +0001104546 00000 n +0001576997 00000 n +0000393137 00000 n +0000392462 00000 n +0000390584 00000 n +0000392765 00000 n +0000392889 00000 n +0000393013 00000 n +0000395179 00000 n +0000395338 00000 n +0000395880 00000 n +0000395026 00000 n +0000393273 00000 n +0000395506 00000 n +0000395693 00000 n +0000395817 00000 n +0000458593 00000 n +0000397087 00000 n +0000396840 00000 n +0000396058 00000 n +0000396963 00000 n +0001817978 00000 n +0000398919 00000 n +0000399094 00000 n +0000399469 00000 n +0000399648 00000 n +0000403296 00000 n +0000403465 00000 n +0000403661 00000 n +0000400437 00000 n +0000398739 00000 n +0000397251 00000 n +0000399816 00000 n +0000400003 00000 n +0000399283 00000 n +0000400127 00000 n +0000400251 00000 n +0000400375 00000 n +0000403860 00000 n +0000404061 00000 n +0000404260 00000 n +0000404432 00000 n +0000404671 00000 n +0000409160 00000 n +0000405916 00000 n +0000403089 00000 n +0000400601 00000 n +0000404910 00000 n +0000405035 00000 n +0000405160 00000 n +0000405223 00000 n +0000405286 00000 n +0000405349 00000 n +0000405412 00000 n +0000405475 00000 n +0000405538 00000 n +0000405601 00000 n +0000405664 00000 n +0000405727 00000 n +0000405790 00000 n +0000405853 00000 n +0000409333 00000 n +0000409515 00000 n +0000410410 00000 n +0000408998 00000 n +0000406066 00000 n +0000409719 00000 n +0000409782 00000 n +0000409845 00000 n +0000409908 00000 n +0000409970 00000 n +0000410033 00000 n +0000410096 00000 n +0000410159 00000 n +0000410222 00000 n +0000410347 00000 n +0001818781 00000 n +0000412065 00000 n +0000412374 00000 n +0000411921 00000 n +0000410546 00000 n +0000412249 00000 n +0000413528 00000 n +0000413683 00000 n +0000413838 00000 n +0000413993 00000 n +0000414148 00000 n +0000414304 00000 n +0000414460 00000 n +0000414616 00000 n +0000414771 00000 n +0000414927 00000 n +0000415082 00000 n +0000415237 00000 n +0000415393 00000 n +0000415548 00000 n +0000415703 00000 n +0000415857 00000 n +0000416199 00000 n +0000413249 00000 n +0000412524 00000 n +0000416012 00000 n +0000416821 00000 n +0000416635 00000 n +0000416335 00000 n +0000416758 00000 n +0000417528 00000 n +0000417690 00000 n +0000418032 00000 n +0000417375 00000 n +0000416929 00000 n +0000417845 00000 n +0000492606 00000 n +0000418660 00000 n +0000418474 00000 n +0000418168 00000 n +0000418597 00000 n +0000420267 00000 n +0000420426 00000 n +0000420582 00000 n +0000420741 00000 n +0000420897 00000 n +0000421065 00000 n +0000421221 00000 n +0000421390 00000 n +0000421546 00000 n +0000421706 00000 n +0000421861 00000 n +0000422022 00000 n +0000422177 00000 n +0000422343 00000 n +0000422497 00000 n +0000422664 00000 n +0000422820 00000 n +0000422987 00000 n +0000423143 00000 n +0000423309 00000 n +0000423466 00000 n +0000423633 00000 n +0000423790 00000 n +0000423957 00000 n +0000424114 00000 n +0000424263 00000 n +0000424420 00000 n +0000424569 00000 n +0000424726 00000 n +0000424878 00000 n +0000425035 00000 n +0000425187 00000 n +0000425344 00000 n +0000425502 00000 n +0000425658 00000 n +0000425814 00000 n +0000428063 00000 n +0000428220 00000 n +0000428376 00000 n +0000428533 00000 n +0000426155 00000 n +0000419808 00000 n +0000418768 00000 n +0000425968 00000 n +0001814632 00000 n +0001818906 00000 n +0000495643 00000 n +0000499233 00000 n +0000510721 00000 n +0000525631 00000 n +0000538336 00000 n +0000547381 00000 n +0000550789 00000 n +0000567253 00000 n +0000581609 00000 n +0000585329 00000 n +0000593524 00000 n +0000596199 00000 n +0000599813 00000 n +0000603684 00000 n +0000607854 00000 n +0000615787 00000 n +0000620326 00000 n +0000638861 00000 n +0000428690 00000 n +0000428849 00000 n +0000429005 00000 n +0000429167 00000 n +0000429324 00000 n +0000429490 00000 n +0000429647 00000 n +0000429813 00000 n +0000429970 00000 n +0000430133 00000 n +0000430290 00000 n +0000430453 00000 n +0000430610 00000 n +0000430781 00000 n +0000430938 00000 n +0000431108 00000 n +0000431264 00000 n +0000431420 00000 n +0000431577 00000 n +0000431733 00000 n +0000431890 00000 n +0000432052 00000 n +0000432209 00000 n +0000432370 00000 n +0000432527 00000 n +0000432691 00000 n +0000432848 00000 n +0000433013 00000 n +0000433170 00000 n +0000433340 00000 n +0000433496 00000 n +0000433667 00000 n +0000433824 00000 n +0000433995 00000 n +0000434152 00000 n +0000434323 00000 n +0000434480 00000 n +0000434647 00000 n +0000434804 00000 n +0000434970 00000 n +0000435127 00000 n +0000435279 00000 n +0000435436 00000 n +0000435587 00000 n +0000435742 00000 n +0000435899 00000 n +0000436056 00000 n +0000436214 00000 n +0000436371 00000 n +0000436540 00000 n +0000436697 00000 n +0000436866 00000 n +0000437022 00000 n +0000437191 00000 n +0000439583 00000 n +0000439755 00000 n +0000437409 00000 n +0000427406 00000 n +0000426332 00000 n +0000437346 00000 n +0000639174 00000 n +0000641840 00000 n +0000642153 00000 n +0000644688 00000 n +0000645000 00000 n +0000663521 00000 n +0000681378 00000 n +0000688005 00000 n +0000700681 00000 n +0000751132 00000 n +0000775468 00000 n +0000779322 00000 n +0000782594 00000 n +0000785271 00000 n +0000785584 00000 n +0000793494 00000 n +0000800242 00000 n +0000815238 00000 n +0000833610 00000 n +0000853838 00000 n +0000879151 00000 n +0000879466 00000 n +0000885951 00000 n +0000991594 00000 n +0001099145 00000 n +0001104797 00000 n +0001114170 00000 n +0001119008 00000 n +0000439912 00000 n +0000440089 00000 n +0000440245 00000 n +0000440422 00000 n +0000440578 00000 n +0000440763 00000 n +0000440920 00000 n +0000441105 00000 n +0000441262 00000 n +0000441446 00000 n +0000441603 00000 n +0000441787 00000 n +0000441944 00000 n +0000442104 00000 n +0000442261 00000 n +0000442422 00000 n +0000442579 00000 n +0000442751 00000 n +0000442908 00000 n +0000443080 00000 n +0000443237 00000 n +0000443401 00000 n +0000443558 00000 n +0000443722 00000 n +0000443879 00000 n +0000444048 00000 n +0000444205 00000 n +0000444375 00000 n +0000444532 00000 n +0000444705 00000 n +0000444862 00000 n +0000445035 00000 n +0000445191 00000 n +0000445351 00000 n +0000445506 00000 n +0000445662 00000 n +0000445819 00000 n +0000445975 00000 n +0000446132 00000 n +0000446288 00000 n +0000446445 00000 n +0000446601 00000 n +0000446758 00000 n +0000446918 00000 n +0000447075 00000 n +0000447236 00000 n +0000447393 00000 n +0000447553 00000 n +0000447709 00000 n +0000447867 00000 n +0000450299 00000 n +0000450464 00000 n +0000448085 00000 n +0000438980 00000 n +0000437531 00000 n +0000448022 00000 n +0001121803 00000 n +0001122118 00000 n +0001128382 00000 n +0001136672 00000 n +0001139660 00000 n +0001139974 00000 n +0001160662 00000 n +0001181201 00000 n +0001190038 00000 n +0001194060 00000 n +0001199836 00000 n +0001209199 00000 n +0001223876 00000 n +0001228196 00000 n +0001230981 00000 n +0001231296 00000 n +0001234884 00000 n +0001235199 00000 n +0001239244 00000 n +0001249509 00000 n +0001257493 00000 n +0001264893 00000 n +0001271502 00000 n +0001275050 00000 n +0001278243 00000 n +0001280928 00000 n +0000450621 00000 n +0000450786 00000 n +0000450942 00000 n +0000451099 00000 n +0000451255 00000 n +0000451412 00000 n +0000451568 00000 n +0000451717 00000 n +0000451874 00000 n +0000452024 00000 n +0000452181 00000 n +0000452338 00000 n +0000452495 00000 n +0000452652 00000 n +0000452809 00000 n +0000452958 00000 n +0000453115 00000 n +0000453264 00000 n +0000453421 00000 n +0000453576 00000 n +0000453733 00000 n +0000453888 00000 n +0000454045 00000 n +0000454204 00000 n +0000454361 00000 n +0000454520 00000 n +0000454677 00000 n +0000454827 00000 n +0000454983 00000 n +0000455134 00000 n +0000455290 00000 n +0000455447 00000 n +0000455604 00000 n +0000455761 00000 n +0000455918 00000 n +0000456068 00000 n +0000456225 00000 n +0000456377 00000 n +0000456534 00000 n +0000456692 00000 n +0000456849 00000 n +0000457007 00000 n +0000457227 00000 n +0000449768 00000 n +0000448221 00000 n +0000457164 00000 n +0001281243 00000 n +0001288511 00000 n +0001291865 00000 n +0001295521 00000 n +0001298170 00000 n +0001316672 00000 n +0001326645 00000 n +0001329872 00000 n +0001330250 00000 n +0001348042 00000 n +0001366042 00000 n +0001366357 00000 n +0001373724 00000 n +0001399210 00000 n +0001434547 00000 n +0001449919 00000 n +0001465442 00000 n +0001468001 00000 n +0001468316 00000 n +0001521167 00000 n +0001574119 00000 n +0000458163 00000 n +0000458315 00000 n +0000458843 00000 n +0000458010 00000 n +0000457363 00000 n +0000458468 00000 n +0000458718 00000 n +0000459905 00000 n +0000460067 00000 n +0000460235 00000 n +0000460716 00000 n +0000459743 00000 n +0000458993 00000 n +0000460403 00000 n +0000460591 00000 n +0000462222 00000 n +0000462381 00000 n +0000462540 00000 n +0000462699 00000 n +0000462863 00000 n +0000463026 00000 n +0000463182 00000 n +0000463355 00000 n +0000463516 00000 n +0000463673 00000 n +0000463831 00000 n +0000463999 00000 n +0000464167 00000 n +0000464338 00000 n +0000464524 00000 n +0000464699 00000 n +0000464864 00000 n +0000465336 00000 n +0000461934 00000 n +0000460866 00000 n +0000465023 00000 n +0000465086 00000 n +0000465211 00000 n +0001819031 00000 n +0000466696 00000 n +0000466863 00000 n +0000467035 00000 n +0000467199 00000 n +0000467373 00000 n +0000467843 00000 n +0000466516 00000 n +0000465486 00000 n +0000467531 00000 n +0000467719 00000 n +0000473972 00000 n +0000485100 00000 n +0000486601 00000 n +0000490646 00000 n +0000469110 00000 n +0000469275 00000 n +0000469760 00000 n +0000468957 00000 n +0000468021 00000 n +0000469447 00000 n +0000469635 00000 n +0000479614 00000 n +0000481630 00000 n +0000470861 00000 n +0000471026 00000 n +0000471198 00000 n +0000471683 00000 n +0000470699 00000 n +0000469910 00000 n +0000471370 00000 n +0000471558 00000 n +0000473128 00000 n +0000473285 00000 n +0000473442 00000 n +0000473598 00000 n +0000473760 00000 n +0000474222 00000 n +0000472948 00000 n +0000471833 00000 n +0000473909 00000 n +0000474097 00000 n +0001816954 00000 n +0000475541 00000 n +0000475703 00000 n +0000476195 00000 n +0000475388 00000 n +0000474386 00000 n +0000475882 00000 n +0000476070 00000 n +0000477718 00000 n +0000488426 00000 n +0000477320 00000 n +0000477485 00000 n +0000477968 00000 n +0000477167 00000 n +0000476345 00000 n +0000477655 00000 n +0000477843 00000 n +0001819156 00000 n +0000479054 00000 n +0000479219 00000 n +0000479384 00000 n +0000479864 00000 n +0000478892 00000 n +0000478118 00000 n +0000479551 00000 n +0000479739 00000 n +0000481046 00000 n +0000481210 00000 n +0000481382 00000 n +0000481880 00000 n +0000480884 00000 n +0000480014 00000 n +0000481567 00000 n +0000481755 00000 n +0000482891 00000 n +0000483041 00000 n +0000483513 00000 n +0000482738 00000 n +0000482030 00000 n +0000483200 00000 n +0000483388 00000 n +0000484531 00000 n +0000484709 00000 n +0000484871 00000 n +0000485350 00000 n +0000484369 00000 n +0000483663 00000 n +0000485037 00000 n +0000485225 00000 n +0000486386 00000 n +0000486851 00000 n +0000486242 00000 n +0000485500 00000 n +0000486538 00000 n +0000486726 00000 n +0000487878 00000 n +0000488048 00000 n +0000488201 00000 n +0000488676 00000 n +0000487716 00000 n +0000487001 00000 n +0000488363 00000 n +0000488551 00000 n +0001819281 00000 n +0000489941 00000 n +0000490101 00000 n +0000490274 00000 n +0000490432 00000 n +0000490896 00000 n +0000489770 00000 n +0000488826 00000 n +0000490583 00000 n +0000490771 00000 n +0001814777 00000 n +0001815214 00000 n +0001815506 00000 n +0000491933 00000 n +0000492131 00000 n +0000492329 00000 n +0000492982 00000 n +0000491771 00000 n +0000491088 00000 n +0000492481 00000 n +0000492731 00000 n +0000492794 00000 n +0000492857 00000 n +0000493653 00000 n +0000493467 00000 n +0000493160 00000 n +0000493590 00000 n +0000494954 00000 n +0000495147 00000 n +0000495340 00000 n +0000496079 00000 n +0000494792 00000 n +0000493761 00000 n +0000495518 00000 n +0000495768 00000 n +0000495954 00000 n +0001817272 00000 n +0000499045 00000 n +0000497951 00000 n +0000498144 00000 n +0000498338 00000 n +0000498531 00000 n +0000498725 00000 n +0000501257 00000 n +0000501451 00000 n +0000501645 00000 n +0000501839 00000 n +0000499358 00000 n +0000497771 00000 n +0000496298 00000 n +0000498919 00000 n +0000498982 00000 n +0000499170 00000 n +0000503293 00000 n +0000503230 00000 n +0000503106 00000 n +0000503169 00000 n +0000502033 00000 n +0000502226 00000 n +0000502419 00000 n +0000502597 00000 n +0000502788 00000 n +0000503730 00000 n +0000501041 00000 n +0000499577 00000 n +0000502980 00000 n +0000503043 00000 n +0000503355 00000 n +0000503542 00000 n +0000503667 00000 n +0001819406 00000 n +0000510534 00000 n +0000506117 00000 n +0000506309 00000 n +0000506502 00000 n +0000506695 00000 n +0000506899 00000 n +0000507086 00000 n +0000507273 00000 n +0000507460 00000 n +0000507647 00000 n +0000507834 00000 n +0000508020 00000 n +0000508222 00000 n +0000508409 00000 n +0000508596 00000 n +0000508782 00000 n +0000508969 00000 n +0000509156 00000 n +0000509359 00000 n +0000509544 00000 n +0000509730 00000 n +0000509916 00000 n +0000510101 00000 n +0000510286 00000 n +0000510908 00000 n +0000505775 00000 n +0000503949 00000 n +0000510471 00000 n +0000510658 00000 n +0000510845 00000 n +0000514579 00000 n +0001536531 00000 n +0001023149 00000 n +0000517661 00000 n +0000517849 00000 n +0000513095 00000 n +0000513273 00000 n +0000513460 00000 n +0000513646 00000 n +0000513833 00000 n +0000514020 00000 n +0000514206 00000 n +0000514767 00000 n +0000512897 00000 n +0000511142 00000 n +0000514392 00000 n +0001816811 00000 n +0000514704 00000 n +0000516665 00000 n +0000516851 00000 n +0000517038 00000 n +0000517225 00000 n +0000517411 00000 n +0000520553 00000 n +0000520740 00000 n +0000520927 00000 n +0000521114 00000 n +0000521300 00000 n +0000521487 00000 n +0000517911 00000 n +0000516485 00000 n +0000514973 00000 n +0000517598 00000 n +0000517786 00000 n +0000521674 00000 n +0000521878 00000 n +0000522065 00000 n +0000522252 00000 n +0000522439 00000 n +0000522626 00000 n +0000522813 00000 n +0000522999 00000 n +0000523201 00000 n +0000523388 00000 n +0000523575 00000 n +0000523760 00000 n +0000523946 00000 n +0000524132 00000 n +0000524333 00000 n +0000524518 00000 n +0000524704 00000 n +0000524890 00000 n +0000525074 00000 n +0000525259 00000 n +0000525818 00000 n +0000520184 00000 n +0000518145 00000 n +0000525443 00000 n +0000525568 00000 n +0000525755 00000 n +0000529478 00000 n +0000532565 00000 n +0000532753 00000 n +0000527994 00000 n +0000528172 00000 n +0000528359 00000 n +0000528545 00000 n +0000528732 00000 n +0000528919 00000 n +0000529105 00000 n +0000529666 00000 n +0000527796 00000 n +0000526052 00000 n +0000529291 00000 n +0000529603 00000 n +0000531569 00000 n +0000531755 00000 n +0000531942 00000 n +0000532129 00000 n +0000532315 00000 n +0000535154 00000 n +0000535341 00000 n +0000535528 00000 n +0000535715 00000 n +0000535901 00000 n +0000536088 00000 n +0000532815 00000 n +0000531389 00000 n +0000529872 00000 n +0000532502 00000 n +0000532690 00000 n +0001819531 00000 n +0000536275 00000 n +0000536460 00000 n +0000536656 00000 n +0000536842 00000 n +0000537027 00000 n +0000537213 00000 n +0000537408 00000 n +0000537593 00000 n +0000537779 00000 n +0000537963 00000 n +0000538523 00000 n +0000534875 00000 n +0000533049 00000 n +0000538148 00000 n +0000538273 00000 n +0000538460 00000 n +0000542424 00000 n +0000542237 00000 n +0000540380 00000 n +0000540558 00000 n +0000540745 00000 n +0000540932 00000 n +0000541119 00000 n +0000541306 00000 n +0000541490 00000 n +0000541677 00000 n +0000541863 00000 n +0000542549 00000 n +0000540164 00000 n +0000538743 00000 n +0000542050 00000 n +0000542362 00000 n +0000544449 00000 n +0000544635 00000 n +0000544831 00000 n +0000545018 00000 n +0000545204 00000 n +0000545391 00000 n +0000545587 00000 n +0000545772 00000 n +0000545958 00000 n +0000546144 00000 n +0000546331 00000 n +0000546507 00000 n +0000546694 00000 n +0000546881 00000 n +0000547068 00000 n +0000547818 00000 n +0000544179 00000 n +0000542727 00000 n +0000547255 00000 n +0000547318 00000 n +0000547506 00000 n +0000547693 00000 n +0000550601 00000 n +0000549729 00000 n +0000549914 00000 n +0000550101 00000 n +0000550288 00000 n +0000553123 00000 n +0000553325 00000 n +0000553512 00000 n +0000553697 00000 n +0000553883 00000 n +0000550912 00000 n +0000549558 00000 n +0000547996 00000 n +0000550475 00000 n +0000550538 00000 n +0000550726 00000 n +0000554070 00000 n +0000554272 00000 n +0000554459 00000 n +0000554644 00000 n +0000554830 00000 n +0000555016 00000 n +0000555218 00000 n +0000555404 00000 n +0000555591 00000 n +0000555778 00000 n +0000555980 00000 n +0000556167 00000 n +0000556354 00000 n +0000556540 00000 n +0000556727 00000 n +0000556905 00000 n +0000557088 00000 n +0000557275 00000 n +0000560251 00000 n +0000560438 00000 n +0000560625 00000 n +0000560812 00000 n +0000557962 00000 n +0000552781 00000 n +0000551104 00000 n +0000557462 00000 n +0000557525 00000 n +0000557712 00000 n +0000557837 00000 n +0000557900 00000 n +0000561935 00000 n +0000567066 00000 n +0000560999 00000 n +0000561186 00000 n +0000561373 00000 n +0000561560 00000 n +0000562123 00000 n +0000560044 00000 n +0000558196 00000 n +0000561747 00000 n +0000561872 00000 n +0000562060 00000 n +0001819656 00000 n +0000564368 00000 n +0000564554 00000 n +0000564741 00000 n +0000564927 00000 n +0000565114 00000 n +0000565315 00000 n +0000565502 00000 n +0000565688 00000 n +0000565875 00000 n +0000566062 00000 n +0000566263 00000 n +0000566449 00000 n +0000566633 00000 n +0000566818 00000 n +0000569479 00000 n +0000569680 00000 n +0000569867 00000 n +0000570054 00000 n +0000570240 00000 n +0000570427 00000 n +0000570629 00000 n +0000570815 00000 n +0000571002 00000 n +0000567440 00000 n +0000564107 00000 n +0000562329 00000 n +0000567003 00000 n +0000567190 00000 n +0000567377 00000 n +0000576343 00000 n +0000576531 00000 n +0000571188 00000 n +0000571366 00000 n +0000571553 00000 n +0000571740 00000 n +0000571927 00000 n +0000574908 00000 n +0000575095 00000 n +0000575282 00000 n +0000572610 00000 n +0000569218 00000 n +0000567674 00000 n +0000572112 00000 n +0000572299 00000 n +0000572424 00000 n +0000572487 00000 n +0000575469 00000 n +0000575656 00000 n +0000575843 00000 n +0000576030 00000 n +0000578974 00000 n +0000579161 00000 n +0000579348 00000 n +0000579535 00000 n +0000576593 00000 n +0000574710 00000 n +0000572844 00000 n +0000576217 00000 n +0000576280 00000 n +0000576468 00000 n +0000579722 00000 n +0000579922 00000 n +0000580109 00000 n +0000580296 00000 n +0000580483 00000 n +0000580669 00000 n +0000580871 00000 n +0000581058 00000 n +0000581245 00000 n +0000581857 00000 n +0000578722 00000 n +0000576799 00000 n +0000581421 00000 n +0000581546 00000 n +0000581733 00000 n +0000584954 00000 n +0000585142 00000 n +0000583709 00000 n +0000583896 00000 n +0000584083 00000 n +0000584270 00000 n +0000584455 00000 n +0000584642 00000 n +0000585391 00000 n +0000583520 00000 n +0000582077 00000 n +0000584829 00000 n +0000585079 00000 n +0000585267 00000 n +0000587358 00000 n +0000587558 00000 n +0000587744 00000 n +0000587930 00000 n +0000588116 00000 n +0000588302 00000 n +0000588504 00000 n +0000588691 00000 n +0000588878 00000 n +0000589056 00000 n +0000589243 00000 n +0000589430 00000 n +0000590116 00000 n +0000587115 00000 n +0000585569 00000 n +0000589617 00000 n +0000589742 00000 n +0000589929 00000 n +0000590053 00000 n +0001819781 00000 n +0000593336 00000 n +0000591991 00000 n +0000592176 00000 n +0000592363 00000 n +0000592550 00000 n +0000592751 00000 n +0000592917 00000 n +0000593094 00000 n +0000593773 00000 n +0000591793 00000 n +0000590336 00000 n +0000593273 00000 n +0000593461 00000 n +0000593649 00000 n +0000596076 00000 n +0000595223 00000 n +0000595424 00000 n +0000595592 00000 n +0000595770 00000 n +0000596573 00000 n +0000595052 00000 n +0000593965 00000 n +0000595951 00000 n +0000596324 00000 n +0000596511 00000 n +0000598208 00000 n +0000598394 00000 n +0000598578 00000 n +0000598765 00000 n +0000598952 00000 n +0000599130 00000 n +0000599315 00000 n +0000599502 00000 n +0000600248 00000 n +0000598001 00000 n +0000596737 00000 n +0000599688 00000 n +0000599938 00000 n +0000600124 00000 n +0000602081 00000 n +0000602266 00000 n +0000602450 00000 n +0000602636 00000 n +0000602822 00000 n +0000603000 00000 n +0000603184 00000 n +0000603371 00000 n +0000604121 00000 n +0000601874 00000 n +0000600440 00000 n +0000603558 00000 n +0000603621 00000 n +0000603809 00000 n +0000603996 00000 n +0000606060 00000 n +0000606247 00000 n +0000606434 00000 n +0000606621 00000 n +0000606806 00000 n +0000606992 00000 n +0000607178 00000 n +0000607364 00000 n +0000607550 00000 n +0000609521 00000 n +0000609708 00000 n +0000609895 00000 n +0000610081 00000 n +0000610268 00000 n +0000610455 00000 n +0000610641 00000 n +0000608228 00000 n +0000605844 00000 n +0000604313 00000 n +0000607728 00000 n +0000607791 00000 n +0000607979 00000 n +0000608166 00000 n +0000616160 00000 n +0000610953 00000 n +0000609323 00000 n +0000608406 00000 n +0000610828 00000 n +0001819906 00000 n +0000613180 00000 n +0000613367 00000 n +0000613585 00000 n +0000613804 00000 n +0000613991 00000 n +0000614178 00000 n +0000614365 00000 n +0000614551 00000 n +0000614738 00000 n +0000614925 00000 n +0000615112 00000 n +0000615299 00000 n +0000615477 00000 n +0000616284 00000 n +0000612928 00000 n +0000611131 00000 n +0000615661 00000 n +0000615724 00000 n +0000615912 00000 n +0000615974 00000 n +0000619949 00000 n +0000620013 00000 n +0000620138 00000 n +0000618515 00000 n +0000618702 00000 n +0000618888 00000 n +0000619075 00000 n +0000619262 00000 n +0000619449 00000 n +0000619636 00000 n +0000620388 00000 n +0000618317 00000 n +0000616462 00000 n +0000619823 00000 n +0000619886 00000 n +0000620263 00000 n +0000622410 00000 n +0000622602 00000 n +0000622789 00000 n +0000622976 00000 n +0000623167 00000 n +0000623354 00000 n +0000623541 00000 n +0000623731 00000 n +0000623918 00000 n +0000624105 00000 n +0000624297 00000 n +0000624484 00000 n +0000624671 00000 n +0000624863 00000 n +0000625050 00000 n +0000625237 00000 n +0000625429 00000 n +0000625615 00000 n +0000625801 00000 n +0000625994 00000 n +0000626144 00000 n +0000626322 00000 n +0000626509 00000 n +0000627194 00000 n +0000622068 00000 n +0000620594 00000 n +0000626695 00000 n +0000626820 00000 n +0001815942 00000 n +0000626883 00000 n +0000627069 00000 n +0001816086 00000 n +0001815652 00000 n +0000632735 00000 n +0000630401 00000 n +0000636071 00000 n +0000630589 00000 n +0000636259 00000 n +0000629527 00000 n +0000629714 00000 n +0000629901 00000 n +0000630088 00000 n +0000630711 00000 n +0000629356 00000 n +0000627467 00000 n +0000630275 00000 n +0000630338 00000 n +0000630526 00000 n +0000632235 00000 n +0000632422 00000 n +0000632860 00000 n +0000632082 00000 n +0000630956 00000 n +0000632609 00000 n +0000632672 00000 n +0000635197 00000 n +0000635384 00000 n +0000635571 00000 n +0000635758 00000 n +0000636384 00000 n +0000635026 00000 n +0000633105 00000 n +0000635945 00000 n +0000636008 00000 n +0000636196 00000 n +0001820031 00000 n +0000638023 00000 n +0000638216 00000 n +0000638367 00000 n +0000638545 00000 n +0000640656 00000 n +0000640813 00000 n +0000640991 00000 n +0000639424 00000 n +0000637852 00000 n +0000636629 00000 n +0000638735 00000 n +0000638798 00000 n +0000638986 00000 n +0000639049 00000 n +0000639299 00000 n +0000639362 00000 n +0000641184 00000 n +0000641341 00000 n +0000641519 00000 n +0000643689 00000 n +0000643851 00000 n +0000644029 00000 n +0000642403 00000 n +0000640467 00000 n +0000639615 00000 n +0000641715 00000 n +0000641965 00000 n +0000642028 00000 n +0000642278 00000 n +0000642341 00000 n +0000644227 00000 n +0000644388 00000 n +0000647479 00000 n +0000647665 00000 n +0000647866 00000 n +0000648053 00000 n +0000648239 00000 n +0000648425 00000 n +0000648611 00000 n +0000648797 00000 n +0000648983 00000 n +0000649169 00000 n +0000649356 00000 n +0000649543 00000 n +0000649744 00000 n +0000649929 00000 n +0000650115 00000 n +0000650301 00000 n +0000650488 00000 n +0000650675 00000 n +0000650862 00000 n +0000651049 00000 n +0000651235 00000 n +0000651422 00000 n +0000651609 00000 n +0000651796 00000 n +0000651983 00000 n +0000652169 00000 n +0000652370 00000 n +0000652557 00000 n +0000645125 00000 n +0000643509 00000 n +0000642581 00000 n +0000644563 00000 n +0000644813 00000 n +0000644876 00000 n +0000652744 00000 n +0000652922 00000 n +0000653108 00000 n +0000653295 00000 n +0000653482 00000 n +0000653669 00000 n +0000653856 00000 n +0000654043 00000 n +0000654229 00000 n +0000654416 00000 n +0000654603 00000 n +0000654790 00000 n +0000654976 00000 n +0000655536 00000 n +0000646975 00000 n +0000645303 00000 n +0000655162 00000 n +0000655225 00000 n +0000655412 00000 n +0000660082 00000 n +0000663333 00000 n +0000658091 00000 n +0000658276 00000 n +0000658463 00000 n +0000658649 00000 n +0000658836 00000 n +0000659022 00000 n +0000659209 00000 n +0000659396 00000 n +0000659583 00000 n +0000659770 00000 n +0000660207 00000 n +0000657866 00000 n +0000655798 00000 n +0000659956 00000 n +0000660019 00000 n +0000662648 00000 n +0000662833 00000 n +0000663020 00000 n +0000663583 00000 n +0000662486 00000 n +0000660468 00000 n +0000663207 00000 n +0000663270 00000 n +0000663458 00000 n +0001820156 00000 n +0000665806 00000 n +0000666007 00000 n +0000666193 00000 n +0000666380 00000 n +0000666566 00000 n +0000666753 00000 n +0000666940 00000 n +0000667127 00000 n +0000667314 00000 n +0000667500 00000 n +0000667687 00000 n +0000667874 00000 n +0000668061 00000 n +0000668248 00000 n +0000668434 00000 n +0000668635 00000 n +0000668822 00000 n +0000669009 00000 n +0000669185 00000 n +0000669372 00000 n +0000669559 00000 n +0000669745 00000 n +0000669932 00000 n +0000670118 00000 n +0000670305 00000 n +0000670492 00000 n +0000670679 00000 n +0000670866 00000 n +0000671053 00000 n +0000671240 00000 n +0000671864 00000 n +0000665401 00000 n +0000663816 00000 n +0000671427 00000 n +0000671552 00000 n +0000671739 00000 n +0000675290 00000 n +0000674605 00000 n +0000674790 00000 n +0000674977 00000 n +0000675478 00000 n +0000674443 00000 n +0000672112 00000 n +0000675164 00000 n +0000675227 00000 n +0000675415 00000 n +0000677398 00000 n +0000677597 00000 n +0000677784 00000 n +0000677971 00000 n +0000678158 00000 n +0000678345 00000 n +0000678531 00000 n +0000678718 00000 n +0000678905 00000 n +0000679091 00000 n +0000679278 00000 n +0000679465 00000 n +0000679651 00000 n +0000679838 00000 n +0000680024 00000 n +0000680211 00000 n +0000680396 00000 n +0000680582 00000 n +0000680769 00000 n +0000680956 00000 n +0000681134 00000 n +0000684467 00000 n +0000684654 00000 n +0000684841 00000 n +0000685028 00000 n +0000685215 00000 n +0000685402 00000 n +0000685589 00000 n +0000685775 00000 n +0000685961 00000 n +0000686147 00000 n +0000686334 00000 n +0000686521 00000 n +0000686704 00000 n +0000686889 00000 n +0000687074 00000 n +0000687261 00000 n +0000687445 00000 n +0000687631 00000 n +0000681752 00000 n +0000677074 00000 n +0000675725 00000 n +0000681315 00000 n +0000681503 00000 n +0000681690 00000 n +0000688067 00000 n +0000684170 00000 n +0000681972 00000 n +0000687817 00000 n +0000687942 00000 n +0000690490 00000 n +0000690689 00000 n +0000690876 00000 n +0000691063 00000 n +0000691250 00000 n +0000691437 00000 n +0000691623 00000 n +0000691810 00000 n +0000691997 00000 n +0000692183 00000 n +0000692370 00000 n +0000692557 00000 n +0000692743 00000 n +0000692930 00000 n +0000693116 00000 n +0000693303 00000 n +0000693489 00000 n +0000693675 00000 n +0000693862 00000 n +0000694049 00000 n +0000694227 00000 n +0000694408 00000 n +0000694595 00000 n +0000694782 00000 n +0000694969 00000 n +0000695154 00000 n +0000695341 00000 n +0000695527 00000 n +0000695713 00000 n +0000695899 00000 n +0000696085 00000 n +0000696272 00000 n +0000696459 00000 n +0000696644 00000 n +0000696831 00000 n +0000697018 00000 n +0000697205 00000 n +0000697390 00000 n +0000697577 00000 n +0000698200 00000 n +0000690004 00000 n +0000688315 00000 n +0000697764 00000 n +0000697889 00000 n +0000698075 00000 n +0000703846 00000 n +0000704032 00000 n +0000704238 00000 n +0000704425 00000 n +0000704611 00000 n +0000704798 00000 n +0000704985 00000 n +0000705172 00000 n +0000705359 00000 n +0000705546 00000 n +0000705733 00000 n +0000705920 00000 n +0000706107 00000 n +0000706294 00000 n +0000706481 00000 n +0000706666 00000 n +0000706852 00000 n +0000707039 00000 n +0000707226 00000 n +0000707413 00000 n +0000707600 00000 n +0000707787 00000 n +0000707973 00000 n +0000708158 00000 n +0000708364 00000 n +0000708551 00000 n +0000708737 00000 n +0000708924 00000 n +0000709111 00000 n +0000709295 00000 n +0000709482 00000 n +0000709669 00000 n +0000709856 00000 n +0000710043 00000 n +0000710230 00000 n +0000710417 00000 n +0000710604 00000 n +0000710791 00000 n +0000710978 00000 n +0000711165 00000 n +0000711351 00000 n +0000711536 00000 n +0000711722 00000 n +0000711909 00000 n +0000712096 00000 n +0000712282 00000 n +0000712468 00000 n +0000712654 00000 n +0000700806 00000 n +0000700432 00000 n +0000698448 00000 n +0000700555 00000 n +0000700618 00000 n +0001820281 00000 n +0000712840 00000 n +0000713026 00000 n +0000713232 00000 n +0000713419 00000 n +0000713606 00000 n +0000713811 00000 n +0000713998 00000 n +0000714183 00000 n +0000714367 00000 n +0000714552 00000 n +0000714736 00000 n +0000714923 00000 n +0000715108 00000 n +0000715294 00000 n +0000715480 00000 n +0000715658 00000 n +0000715845 00000 n +0000716031 00000 n +0000716218 00000 n +0000716403 00000 n +0000716588 00000 n +0000720195 00000 n +0000720382 00000 n +0000720569 00000 n +0000720756 00000 n +0000720943 00000 n +0000721129 00000 n +0000721316 00000 n +0000721503 00000 n +0000721689 00000 n +0000721874 00000 n +0000722061 00000 n +0000722248 00000 n +0000722434 00000 n +0000722619 00000 n +0000722806 00000 n +0000722992 00000 n +0000723177 00000 n +0000723362 00000 n +0000717148 00000 n +0000703090 00000 n +0000701026 00000 n +0000716773 00000 n +0000716836 00000 n +0001816230 00000 n +0000717023 00000 n +0000723674 00000 n +0000735867 00000 n +0000730779 00000 n +0000726500 00000 n +0000726683 00000 n +0000726870 00000 n +0000727057 00000 n +0000727244 00000 n +0000727431 00000 n +0000727618 00000 n +0000727804 00000 n +0000727990 00000 n +0000728176 00000 n +0000728363 00000 n +0000728550 00000 n +0000728735 00000 n +0000728922 00000 n +0000729109 00000 n +0000729296 00000 n +0000729479 00000 n +0000729664 00000 n +0000729849 00000 n +0000730036 00000 n +0000730220 00000 n +0000730406 00000 n +0000723736 00000 n +0000719898 00000 n +0000717424 00000 n +0000723548 00000 n +0000723611 00000 n +0000733439 00000 n +0000733626 00000 n +0000733813 00000 n +0000734000 00000 n +0000734187 00000 n +0000734374 00000 n +0000734561 00000 n +0000734746 00000 n +0000734933 00000 n +0000730841 00000 n +0000726167 00000 n +0000723997 00000 n +0000730591 00000 n +0000730716 00000 n +0000735120 00000 n +0000735305 00000 n +0000735492 00000 n +0000736055 00000 n +0000733196 00000 n +0000731089 00000 n +0000735679 00000 n +0000735804 00000 n +0000735992 00000 n +0000739252 00000 n +0000739458 00000 n +0000739645 00000 n +0000739831 00000 n +0000740018 00000 n +0000740205 00000 n +0000740389 00000 n +0000740576 00000 n +0000740763 00000 n +0000740950 00000 n +0000741137 00000 n +0000741324 00000 n +0000741511 00000 n +0000741698 00000 n +0000741885 00000 n +0000742072 00000 n +0000742259 00000 n +0000742446 00000 n +0000742632 00000 n +0000742818 00000 n +0000743005 00000 n +0000743192 00000 n +0000743379 00000 n +0000743566 00000 n +0000743753 00000 n +0000743940 00000 n +0000744126 00000 n +0000744332 00000 n +0000744519 00000 n +0000744705 00000 n +0000744892 00000 n +0000745079 00000 n +0000745266 00000 n +0000745453 00000 n +0000745640 00000 n +0000745827 00000 n +0000746014 00000 n +0000746201 00000 n +0000746387 00000 n +0000746573 00000 n +0000746757 00000 n +0000746943 00000 n +0000747130 00000 n +0000747317 00000 n +0000747503 00000 n +0000747689 00000 n +0000747876 00000 n +0000748062 00000 n +0000748247 00000 n +0000748432 00000 n +0000748638 00000 n +0000748824 00000 n +0000749010 00000 n +0000749214 00000 n +0000749400 00000 n +0000749587 00000 n +0000749773 00000 n +0000749960 00000 n +0000750146 00000 n +0000750332 00000 n +0000750518 00000 n +0000750705 00000 n +0000750892 00000 n +0000751381 00000 n +0000738550 00000 n +0000736315 00000 n +0000751069 00000 n +0000751257 00000 n +0000758911 00000 n +0000766107 00000 n +0000772411 00000 n +0000769634 00000 n +0000754313 00000 n +0000754500 00000 n +0000754687 00000 n +0000754874 00000 n +0000755061 00000 n +0000755248 00000 n +0000755435 00000 n +0000755622 00000 n +0000755809 00000 n +0000755995 00000 n +0000756181 00000 n +0000756367 00000 n +0000756554 00000 n +0000756740 00000 n +0000756925 00000 n +0000757110 00000 n +0000757297 00000 n +0000757484 00000 n +0000757670 00000 n +0000757855 00000 n +0000758042 00000 n +0000758229 00000 n +0000758415 00000 n +0000758600 00000 n +0000759098 00000 n +0000753962 00000 n +0000751657 00000 n +0000758786 00000 n +0000759036 00000 n +0001820406 00000 n +0000761946 00000 n +0000762131 00000 n +0000762318 00000 n +0000762505 00000 n +0000762692 00000 n +0000762879 00000 n +0000763066 00000 n +0000763251 00000 n +0000763436 00000 n +0000763622 00000 n +0000763809 00000 n +0000763995 00000 n +0000764180 00000 n +0000764367 00000 n +0000764554 00000 n +0000764740 00000 n +0000764925 00000 n +0000765112 00000 n +0000765299 00000 n +0000765486 00000 n +0000765671 00000 n +0000765858 00000 n +0000766294 00000 n +0000761613 00000 n +0000759359 00000 n +0000766044 00000 n +0000766232 00000 n +0000767893 00000 n +0000768080 00000 n +0000768267 00000 n +0000768454 00000 n +0000768641 00000 n +0000768828 00000 n +0000769015 00000 n +0000769199 00000 n +0000769385 00000 n +0000769759 00000 n +0000767677 00000 n +0000766542 00000 n +0000769571 00000 n +0000771727 00000 n +0000771911 00000 n +0000772098 00000 n +0000772536 00000 n +0000771565 00000 n +0000769991 00000 n +0000772285 00000 n +0000772348 00000 n +0000774416 00000 n +0000774607 00000 n +0000774794 00000 n +0000774977 00000 n +0000775164 00000 n +0000777833 00000 n +0000778020 00000 n +0000778207 00000 n +0000775841 00000 n +0000774236 00000 n +0000772782 00000 n +0000775342 00000 n +0000775405 00000 n +0000775593 00000 n +0000775779 00000 n +0000778394 00000 n +0000778583 00000 n +0000778768 00000 n +0000778949 00000 n +0000779509 00000 n +0000777635 00000 n +0000776047 00000 n +0000779134 00000 n +0000779259 00000 n +0000779446 00000 n +0000782406 00000 n +0000781480 00000 n +0000781658 00000 n +0000781845 00000 n +0000782032 00000 n +0000782656 00000 n +0000781309 00000 n +0000779729 00000 n +0000782219 00000 n +0000782531 00000 n +0001820531 00000 n +0000783898 00000 n +0000784094 00000 n +0000784251 00000 n +0000784429 00000 n +0000784626 00000 n +0000784783 00000 n +0000787606 00000 n +0000787806 00000 n +0000787993 00000 n +0000788178 00000 n +0000788365 00000 n +0000785644 00000 n +0000783709 00000 n +0000782876 00000 n +0000784959 00000 n +0000785084 00000 n +0000785146 00000 n +0000785396 00000 n +0000785459 00000 n +0000788551 00000 n +0000788727 00000 n +0000788914 00000 n +0000789101 00000 n +0000789287 00000 n +0000789974 00000 n +0000787381 00000 n +0000785822 00000 n +0000789474 00000 n +0000789599 00000 n +0000789786 00000 n +0000789911 00000 n +0000791561 00000 n +0000791761 00000 n +0000791948 00000 n +0000792133 00000 n +0000792320 00000 n +0000792507 00000 n +0000792685 00000 n +0000792871 00000 n +0000793058 00000 n +0000793244 00000 n +0000793931 00000 n +0000791336 00000 n +0000790166 00000 n +0000793431 00000 n +0000793619 00000 n +0000793806 00000 n +0000796327 00000 n +0000796533 00000 n +0000796718 00000 n +0000796904 00000 n +0000797091 00000 n +0000797296 00000 n +0000797482 00000 n +0000797669 00000 n +0000797855 00000 n +0000798042 00000 n +0000798248 00000 n +0000798435 00000 n +0000798621 00000 n +0000798806 00000 n +0000798992 00000 n +0000799198 00000 n +0000799385 00000 n +0000799569 00000 n +0000799754 00000 n +0000799939 00000 n +0000802581 00000 n +0000802768 00000 n +0000802955 00000 n +0000800492 00000 n +0000796012 00000 n +0000794123 00000 n +0000800116 00000 n +0000800179 00000 n +0000800367 00000 n +0000804013 00000 n +0000808059 00000 n +0000807872 00000 n +0000804199 00000 n +0000803142 00000 n +0000803329 00000 n +0000803515 00000 n +0000803702 00000 n +0000804387 00000 n +0000802383 00000 n +0000800740 00000 n +0000803888 00000 n +0000804138 00000 n +0000804324 00000 n +0000806320 00000 n +0000806506 00000 n +0000806693 00000 n +0000806879 00000 n +0000807066 00000 n +0000807249 00000 n +0000807436 00000 n +0000807622 00000 n +0000808184 00000 n +0000806113 00000 n +0000804593 00000 n +0000807809 00000 n +0000807996 00000 n +0001820656 00000 n +0000005755 00000 f +0000005756 00000 f +0000005757 00000 f +0000005758 00000 f +0000005759 00000 f +0000005815 00000 f +0000810709 00000 n +0000810911 00000 n +0000811113 00000 n +0000811314 00000 n +0000811520 00000 n +0000811707 00000 n +0000811893 00000 n +0000812080 00000 n +0000812285 00000 n +0000812472 00000 n +0000812659 00000 n +0000812845 00000 n +0000813032 00000 n +0000813237 00000 n +0000813424 00000 n +0000813611 00000 n +0000813797 00000 n +0000813984 00000 n +0000814190 00000 n +0000814377 00000 n +0000814562 00000 n +0000814748 00000 n +0000814934 00000 n +0000817718 00000 n +0000817905 00000 n +0000818092 00000 n +0000815612 00000 n +0000810367 00000 n +0000808404 00000 n +0000815112 00000 n +0000815175 00000 n +0000815363 00000 n +0000815550 00000 n +0001108916 00000 n +0000824183 00000 n +0000819400 00000 n +0000819213 00000 n +0000818279 00000 n +0000818466 00000 n +0000818653 00000 n +0000818838 00000 n +0000821894 00000 n +0000822081 00000 n +0000822268 00000 n +0000822455 00000 n +0000819462 00000 n +0000817520 00000 n +0000815860 00000 n +0000819025 00000 n +0000819150 00000 n +0000819337 00000 n +0000822642 00000 n +0000822829 00000 n +0000823016 00000 n +0000823203 00000 n +0000005816 00000 f +0000005817 00000 f +0000005818 00000 f +0000005819 00000 f +0000005820 00000 f +0000000000 00000 f +0000823390 00000 n +0000823592 00000 n +0000823794 00000 n +0000824371 00000 n +0000821660 00000 n +0000819668 00000 n +0000823995 00000 n +0000824120 00000 n +0000824308 00000 n +0000826721 00000 n +0000826926 00000 n +0000827113 00000 n +0000827300 00000 n +0000827487 00000 n +0000827672 00000 n +0000827877 00000 n +0000828063 00000 n +0000828249 00000 n +0000828434 00000 n +0000828640 00000 n +0000828824 00000 n +0000829010 00000 n +0000829195 00000 n +0000829401 00000 n +0000829588 00000 n +0000829775 00000 n +0000829962 00000 n +0000830149 00000 n +0000830355 00000 n +0000830541 00000 n +0000830728 00000 n +0000830914 00000 n +0000831101 00000 n +0000831287 00000 n +0000831493 00000 n +0000831679 00000 n +0000831866 00000 n +0000832053 00000 n +0000832259 00000 n +0000832445 00000 n +0000832632 00000 n +0000832819 00000 n +0000833006 00000 n +0000833191 00000 n +0000833368 00000 n +0000835861 00000 n +0000836048 00000 n +0000836235 00000 n +0000833858 00000 n +0000826262 00000 n +0000824591 00000 n +0000833547 00000 n +0000833733 00000 n +0000837294 00000 n +0000837668 00000 n +0000840917 00000 n +0000841104 00000 n +0000837480 00000 n +0000846877 00000 n +0000847065 00000 n +0000836422 00000 n +0000836609 00000 n +0000836795 00000 n +0000836982 00000 n +0000839428 00000 n +0000839611 00000 n +0000839798 00000 n +0000837730 00000 n +0000835663 00000 n +0000834064 00000 n +0000837169 00000 n +0000837419 00000 n +0000837605 00000 n +0000839985 00000 n +0000840170 00000 n +0000840356 00000 n +0000840543 00000 n +0000842120 00000 n +0000842307 00000 n +0000842494 00000 n +0000842681 00000 n +0000841166 00000 n +0000839230 00000 n +0000837908 00000 n +0000840729 00000 n +0000840854 00000 n +0000841041 00000 n +0001820781 00000 n +0000842993 00000 n +0000841949 00000 n +0000841344 00000 n +0000842868 00000 n +0000845075 00000 n +0000845259 00000 n +0000845446 00000 n +0000845632 00000 n +0000845819 00000 n +0000846006 00000 n +0000846191 00000 n +0000846378 00000 n +0000846564 00000 n +0000847190 00000 n +0000844859 00000 n +0000843143 00000 n +0000846751 00000 n +0000846814 00000 n +0000847002 00000 n +0000849389 00000 n +0000849595 00000 n +0000849801 00000 n +0000850007 00000 n +0000850213 00000 n +0000850419 00000 n +0000850625 00000 n +0000850831 00000 n +0000851037 00000 n +0000851243 00000 n +0000851449 00000 n +0000851655 00000 n +0000851861 00000 n +0000852067 00000 n +0000852273 00000 n +0000852479 00000 n +0000852685 00000 n +0000852891 00000 n +0000853097 00000 n +0000853302 00000 n +0000853508 00000 n +0000856903 00000 n +0000857109 00000 n +0000857296 00000 n +0000857483 00000 n +0000857670 00000 n +0000857876 00000 n +0000858062 00000 n +0000858249 00000 n +0000858434 00000 n +0000858620 00000 n +0000858806 00000 n +0000859012 00000 n +0000859198 00000 n +0000859385 00000 n +0000854653 00000 n +0000849065 00000 n +0000847368 00000 n +0000853712 00000 n +0000853775 00000 n +0000853964 00000 n +0000854027 00000 n +0000854090 00000 n +0000854153 00000 n +0000854216 00000 n +0000854279 00000 n +0000854342 00000 n +0000854405 00000 n +0000854468 00000 n +0000854530 00000 n +0000854593 00000 n +0000859572 00000 n +0000859758 00000 n +0000859964 00000 n +0000860151 00000 n +0000860338 00000 n +0000860524 00000 n +0000860729 00000 n +0000860914 00000 n +0000861101 00000 n +0000861287 00000 n +0000861493 00000 n +0000861680 00000 n +0000861867 00000 n +0000862054 00000 n +0000862241 00000 n +0000862447 00000 n +0000862634 00000 n +0000862821 00000 n +0000863008 00000 n +0000863195 00000 n +0000863380 00000 n +0000863558 00000 n +0000863739 00000 n +0000863926 00000 n +0000864113 00000 n +0000864677 00000 n +0000856417 00000 n +0000854845 00000 n +0000864300 00000 n +0000864363 00000 n +0000864552 00000 n +0000868310 00000 n +0000876039 00000 n +0000868499 00000 n +0000871809 00000 n +0000871998 00000 n +0000876228 00000 n +0000866880 00000 n +0000867067 00000 n +0000867254 00000 n +0000867441 00000 n +0000867628 00000 n +0000867811 00000 n +0000867998 00000 n +0000868688 00000 n +0000866682 00000 n +0000864883 00000 n +0000868184 00000 n +0000868247 00000 n +0000868436 00000 n +0000868625 00000 n +0000870252 00000 n +0000870437 00000 n +0000870624 00000 n +0000870811 00000 n +0000870998 00000 n +0000871185 00000 n +0000871372 00000 n +0000871559 00000 n +0000872124 00000 n +0000870045 00000 n +0000868866 00000 n +0000871746 00000 n +0000871935 00000 n +0001820906 00000 n +0000874236 00000 n +0000874420 00000 n +0000874607 00000 n +0000874793 00000 n +0000874980 00000 n +0000875167 00000 n +0000875353 00000 n +0000875540 00000 n +0000875726 00000 n +0000876354 00000 n +0000874020 00000 n +0000872302 00000 n +0000875913 00000 n +0000875976 00000 n +0000876165 00000 n +0000878294 00000 n +0000878495 00000 n +0000878666 00000 n +0000878844 00000 n +0000881609 00000 n +0000881810 00000 n +0000879592 00000 n +0000878123 00000 n +0000876532 00000 n +0000879025 00000 n +0000879088 00000 n +0000879277 00000 n +0000879340 00000 n +0000881982 00000 n +0000882160 00000 n +0000882341 00000 n +0000882527 00000 n +0000882713 00000 n +0000882900 00000 n +0000883087 00000 n +0000883274 00000 n +0000883461 00000 n +0000883648 00000 n +0000883835 00000 n +0000884021 00000 n +0000884207 00000 n +0000884394 00000 n +0000884581 00000 n +0000884768 00000 n +0000884955 00000 n +0000885142 00000 n +0000885329 00000 n +0000885514 00000 n +0000889019 00000 n +0000889205 00000 n +0000889390 00000 n +0000889577 00000 n +0000889764 00000 n +0000889950 00000 n +0000886139 00000 n +0000881276 00000 n +0000879770 00000 n +0000885699 00000 n +0000885762 00000 n +0000885825 00000 n +0000886077 00000 n +0000919241 00000 n +0000950559 00000 n +0000982899 00000 n +0000950370 00000 n +0000919424 00000 n +0000961342 00000 n +0000973388 00000 n +0000890136 00000 n +0000890323 00000 n +0000890508 00000 n +0000890695 00000 n +0000890882 00000 n +0000891067 00000 n +0000891253 00000 n +0000891440 00000 n +0000891627 00000 n +0000891814 00000 n +0000892001 00000 n +0000892188 00000 n +0000892375 00000 n +0000892561 00000 n +0000892748 00000 n +0000892935 00000 n +0000893120 00000 n +0000893305 00000 n +0000893492 00000 n +0000893679 00000 n +0000893864 00000 n +0000894050 00000 n +0000894237 00000 n +0000894424 00000 n +0000894611 00000 n +0000894798 00000 n +0000894985 00000 n +0000895171 00000 n +0000895358 00000 n +0000895545 00000 n +0000895732 00000 n +0000895919 00000 n +0000896106 00000 n +0000896292 00000 n +0000896478 00000 n +0000896664 00000 n +0000896849 00000 n +0000897035 00000 n +0000897221 00000 n +0000897408 00000 n +0000897595 00000 n +0000897782 00000 n +0000897969 00000 n +0000898156 00000 n +0000898343 00000 n +0000898530 00000 n +0000898717 00000 n +0000898902 00000 n +0000899089 00000 n +0000899276 00000 n +0000899463 00000 n +0000899650 00000 n +0000899837 00000 n +0000900024 00000 n +0000900211 00000 n +0000900398 00000 n +0000900585 00000 n +0000900771 00000 n +0000900956 00000 n +0000901141 00000 n +0000901326 00000 n +0000901509 00000 n +0000901694 00000 n +0000904346 00000 n +0000904532 00000 n +0000904719 00000 n +0000901942 00000 n +0000888263 00000 n +0000886345 00000 n +0000901879 00000 n +0000970596 00000 n +0000922574 00000 n +0000919613 00000 n +0000945206 00000 n +0000976831 00000 n +0000916382 00000 n +0000916571 00000 n +0000954049 00000 n +0000964692 00000 n +0000961153 00000 n +0000986127 00000 n +0000958178 00000 n +0000968327 00000 n +0000982711 00000 n +0000954238 00000 n +0000979706 00000 n +0000976642 00000 n +0000933411 00000 n +0000930578 00000 n +0000957989 00000 n +0000904906 00000 n +0000905093 00000 n +0000905280 00000 n +0000905467 00000 n +0000905653 00000 n +0000905839 00000 n +0000906026 00000 n +0000906211 00000 n +0000906397 00000 n +0000906583 00000 n +0000906769 00000 n +0000906954 00000 n +0000907141 00000 n +0000907327 00000 n +0000907514 00000 n +0000907701 00000 n +0000907887 00000 n +0000908074 00000 n +0000908261 00000 n +0000908447 00000 n +0000908633 00000 n +0000908820 00000 n +0000909007 00000 n +0000909194 00000 n +0000909380 00000 n +0000909567 00000 n +0000909754 00000 n +0000909940 00000 n +0000910127 00000 n +0000910314 00000 n +0000910501 00000 n +0000910688 00000 n +0000910875 00000 n +0000911061 00000 n +0000911247 00000 n +0000911433 00000 n +0000911620 00000 n +0000911807 00000 n +0000911994 00000 n +0000912180 00000 n +0000912367 00000 n +0000912554 00000 n +0000912741 00000 n +0000912928 00000 n +0000913115 00000 n +0000915321 00000 n +0000915508 00000 n +0000915695 00000 n +0000913417 00000 n +0000903779 00000 n +0000902106 00000 n +0000913291 00000 n +0000930389 00000 n +0000942201 00000 n +0000939472 00000 n +0000927270 00000 n +0000942014 00000 n +0000927458 00000 n +0000924817 00000 n +0000979517 00000 n +0000970784 00000 n +0000947609 00000 n +0000933600 00000 n +0000936331 00000 n +0000936142 00000 n +0000947798 00000 n +0000939284 00000 n +0000973576 00000 n +0000986315 00000 n +0000915882 00000 n +0000916069 00000 n +0000916759 00000 n +0000915141 00000 n +0000913623 00000 n +0000916256 00000 n +0000916508 00000 n +0000916696 00000 n +0001821031 00000 n +0000918617 00000 n +0000918804 00000 n +0000918991 00000 n +0000921639 00000 n +0000919675 00000 n +0000918455 00000 n +0000916937 00000 n +0000919178 00000 n +0000919363 00000 n +0000919550 00000 n +0000921826 00000 n +0000922013 00000 n +0000922200 00000 n +0000922700 00000 n +0000921468 00000 n +0000919881 00000 n +0000922385 00000 n +0000922511 00000 n +0000924319 00000 n +0000924504 00000 n +0000924942 00000 n +0000924166 00000 n +0000922878 00000 n +0000924691 00000 n +0000924754 00000 n +0000926773 00000 n +0000926958 00000 n +0000929456 00000 n +0000929639 00000 n +0000927520 00000 n +0000926620 00000 n +0000925134 00000 n +0000927144 00000 n +0000927207 00000 n +0000927395 00000 n +0000929826 00000 n +0000930013 00000 n +0000932474 00000 n +0000932661 00000 n +0000930640 00000 n +0000929285 00000 n +0000927698 00000 n +0000930200 00000 n +0000930326 00000 n +0000930515 00000 n +0000932848 00000 n +0000933035 00000 n +0000935392 00000 n +0000933662 00000 n +0000932303 00000 n +0000930818 00000 n +0000933222 00000 n +0000933348 00000 n +0000933537 00000 n +0001821156 00000 n +0000935579 00000 n +0000935766 00000 n +0000938165 00000 n +0000938352 00000 n +0000936393 00000 n +0000935230 00000 n +0000933840 00000 n +0000935953 00000 n +0000936079 00000 n +0000936268 00000 n +0000938539 00000 n +0000938726 00000 n +0000938912 00000 n +0000941331 00000 n +0000939598 00000 n +0000937985 00000 n +0000936571 00000 n +0000939095 00000 n +0000939221 00000 n +0000939409 00000 n +0000941518 00000 n +0000941703 00000 n +0000944277 00000 n +0000944464 00000 n +0000942263 00000 n +0000941169 00000 n +0000939776 00000 n +0000941889 00000 n +0000941952 00000 n +0000942138 00000 n +0000944651 00000 n +0000944838 00000 n +0000945395 00000 n +0000944106 00000 n +0000942441 00000 n +0000945017 00000 n +0000945143 00000 n +0000945332 00000 n +0001337273 00000 n +0000946985 00000 n +0000947172 00000 n +0000947359 00000 n +0000947924 00000 n +0000946823 00000 n +0000945573 00000 n +0000947546 00000 n +0000947735 00000 n +0000949685 00000 n +0000949871 00000 n +0000950057 00000 n +0000950685 00000 n +0000949523 00000 n +0000948130 00000 n +0000950244 00000 n +0000950307 00000 n +0000950496 00000 n +0001821281 00000 n +0000952802 00000 n +0000952989 00000 n +0000953176 00000 n +0000953363 00000 n +0000953549 00000 n +0000953736 00000 n +0000954364 00000 n +0000952613 00000 n +0000950863 00000 n +0000953923 00000 n +0000953986 00000 n +0000954175 00000 n +0000956554 00000 n +0000956741 00000 n +0000956928 00000 n +0000957115 00000 n +0000957302 00000 n +0000957489 00000 n +0000957676 00000 n +0000958304 00000 n +0000956356 00000 n +0000954556 00000 n +0000957863 00000 n +0000957926 00000 n +0000958115 00000 n +0000960466 00000 n +0000960653 00000 n +0000960840 00000 n +0000963631 00000 n +0000963818 00000 n +0000961468 00000 n +0000960304 00000 n +0000958496 00000 n +0000961027 00000 n +0000961090 00000 n +0000961279 00000 n +0000964005 00000 n +0000964192 00000 n +0000964379 00000 n +0000964817 00000 n +0000963451 00000 n +0000961688 00000 n +0000964566 00000 n +0000964629 00000 n +0000967453 00000 n +0000967640 00000 n +0000967827 00000 n +0000968014 00000 n +0000968516 00000 n +0000967282 00000 n +0000964995 00000 n +0000968201 00000 n +0000968264 00000 n +0000968453 00000 n +0000970159 00000 n +0000970346 00000 n +0000970910 00000 n +0000970006 00000 n +0000968708 00000 n +0000970533 00000 n +0000970721 00000 n +0001821406 00000 n +0000972703 00000 n +0000972890 00000 n +0000973075 00000 n +0000973702 00000 n +0000972541 00000 n +0000971088 00000 n +0000973262 00000 n +0000973325 00000 n +0000973514 00000 n +0000975581 00000 n +0000975768 00000 n +0000975955 00000 n +0000976142 00000 n +0000976329 00000 n +0000976957 00000 n +0000975401 00000 n +0000973880 00000 n +0000976516 00000 n +0000976579 00000 n +0000976768 00000 n +0000978830 00000 n +0000979017 00000 n +0000979204 00000 n +0000979832 00000 n +0000978668 00000 n +0000977135 00000 n +0000979391 00000 n +0000979454 00000 n +0000979643 00000 n +0000982025 00000 n +0000982211 00000 n +0000982398 00000 n +0000985067 00000 n +0000985254 00000 n +0000983025 00000 n +0000981863 00000 n +0000980024 00000 n +0000982585 00000 n +0000982648 00000 n +0000982836 00000 n +0000985441 00000 n +0000985628 00000 n +0000985814 00000 n +0000988507 00000 n +0000988694 00000 n +0000986441 00000 n +0000984887 00000 n +0000983245 00000 n +0000986001 00000 n +0000986064 00000 n +0000986252 00000 n +0000988881 00000 n +0000989045 00000 n +0000989232 00000 n +0000989418 00000 n +0000989605 00000 n +0000989792 00000 n +0000989979 00000 n +0000990166 00000 n +0000990353 00000 n +0000990540 00000 n +0000990726 00000 n +0000990912 00000 n +0000991098 00000 n +0000991283 00000 n +0000994774 00000 n +0000994961 00000 n +0000995148 00000 n +0000995335 00000 n +0000995521 00000 n +0000995708 00000 n +0000995895 00000 n +0000996082 00000 n +0000991909 00000 n +0000988228 00000 n +0000986633 00000 n +0000991468 00000 n +0000991531 00000 n +0000991720 00000 n +0000991783 00000 n +0000991846 00000 n +0001821531 00000 n +0001023023 00000 n +0001022897 00000 n +0001058367 00000 n +0001026344 00000 n +0001092248 00000 n +0001058178 00000 n +0000996268 00000 n +0000996454 00000 n +0000996640 00000 n +0000996826 00000 n +0000997012 00000 n +0000997199 00000 n +0000997386 00000 n +0000997572 00000 n +0000997759 00000 n +0000997946 00000 n +0000998131 00000 n +0000998317 00000 n +0000998503 00000 n +0000998689 00000 n +0000998876 00000 n +0000999063 00000 n +0000999250 00000 n +0000999437 00000 n +0000999624 00000 n +0000999811 00000 n +0000999998 00000 n +0001000185 00000 n +0001000372 00000 n +0001000559 00000 n +0001000746 00000 n +0001000933 00000 n +0001001120 00000 n +0001001307 00000 n +0001001493 00000 n +0001001679 00000 n +0001001865 00000 n +0001002051 00000 n +0001002238 00000 n +0001002424 00000 n +0001002611 00000 n +0001002798 00000 n +0001002985 00000 n +0001003172 00000 n +0001003359 00000 n +0001003545 00000 n +0001003731 00000 n +0001003918 00000 n +0001004104 00000 n +0001004290 00000 n +0001004477 00000 n +0001004664 00000 n +0001004851 00000 n +0001005038 00000 n +0001005225 00000 n +0001005412 00000 n +0001005599 00000 n +0001005786 00000 n +0001005973 00000 n +0001006160 00000 n +0001006345 00000 n +0001006532 00000 n +0001006719 00000 n +0001006906 00000 n +0001007092 00000 n +0001007278 00000 n +0001007462 00000 n +0001007647 00000 n +0001010380 00000 n +0001010566 00000 n +0001010752 00000 n +0001007895 00000 n +0000994009 00000 n +0000992101 00000 n +0001007832 00000 n +0001029217 00000 n +0001071432 00000 n +0001052822 00000 n +0001023337 00000 n +0001026157 00000 n +0001086179 00000 n +0001061001 00000 n +0001074037 00000 n +0001068058 00000 n +0001092060 00000 n +0001064136 00000 n +0001095476 00000 n +0001067871 00000 n +0001089055 00000 n +0001085990 00000 n +0001041278 00000 n +0001041091 00000 n +0001064325 00000 n +0001038225 00000 n +0001052633 00000 n +0001010939 00000 n +0001011124 00000 n +0001011310 00000 n +0001011496 00000 n +0001011682 00000 n +0001011867 00000 n +0001012054 00000 n +0001012239 00000 n +0001012425 00000 n +0001012611 00000 n +0001012795 00000 n +0001012982 00000 n +0001013167 00000 n +0001013353 00000 n +0001013540 00000 n +0001013727 00000 n +0001013913 00000 n +0001014100 00000 n +0001014287 00000 n +0001014473 00000 n +0001014660 00000 n +0001014846 00000 n +0001015033 00000 n +0001015220 00000 n +0001015407 00000 n +0001015594 00000 n +0001015781 00000 n +0001015968 00000 n +0001016155 00000 n +0001016342 00000 n +0001016529 00000 n +0001016716 00000 n +0001016903 00000 n +0001017090 00000 n +0001017277 00000 n +0001017462 00000 n +0001017646 00000 n +0001017833 00000 n +0001018019 00000 n +0001018206 00000 n +0001018392 00000 n +0001018579 00000 n +0001018764 00000 n +0001018950 00000 n +0001019136 00000 n +0001019323 00000 n +0001019509 00000 n +0001019696 00000 n +0001019883 00000 n +0001020068 00000 n +0001020253 00000 n +0001020501 00000 n +0001009759 00000 n +0001008059 00000 n +0001020438 00000 n +0001049714 00000 n +0001035457 00000 n +0001049903 00000 n +0001038036 00000 n +0001035268 00000 n +0001088866 00000 n +0001080131 00000 n +0001055387 00000 n +0001043884 00000 n +0001046782 00000 n +0001044073 00000 n +0001055576 00000 n +0001046971 00000 n +0001082735 00000 n +0001079943 00000 n +0001032317 00000 n +0001029405 00000 n +0001077673 00000 n +0001082923 00000 n +0001095664 00000 n +0001021969 00000 n +0001022147 00000 n +0001022334 00000 n +0001022521 00000 n +0001023463 00000 n +0001021798 00000 n +0001020679 00000 n +0001022708 00000 n +0001025470 00000 n +0001025657 00000 n +0001025844 00000 n +0001026533 00000 n +0001025308 00000 n +0001023627 00000 n +0001026031 00000 n +0001026094 00000 n +0001026283 00000 n +0001026470 00000 n +0001028409 00000 n +0001028595 00000 n +0001028782 00000 n +0001028969 00000 n +0001029531 00000 n +0001028238 00000 n +0001026711 00000 n +0001029154 00000 n +0001029342 00000 n +0001031818 00000 n +0001032005 00000 n +0001032506 00000 n +0001031665 00000 n +0001029737 00000 n +0001032191 00000 n +0001032254 00000 n +0001032443 00000 n +0001821656 00000 n +0001034461 00000 n +0001034646 00000 n +0001034833 00000 n +0001035018 00000 n +0001035646 00000 n +0001034290 00000 n +0001032684 00000 n +0001035205 00000 n +0001035394 00000 n +0001035583 00000 n +0001037228 00000 n +0001037413 00000 n +0001037600 00000 n +0001037787 00000 n +0001038351 00000 n +0001037057 00000 n +0001035838 00000 n +0001037973 00000 n +0001038162 00000 n +0001040217 00000 n +0001040404 00000 n +0001040591 00000 n +0001040778 00000 n +0001041404 00000 n +0001040046 00000 n +0001038529 00000 n +0001040965 00000 n +0001041028 00000 n +0001041217 00000 n +0001043198 00000 n +0001043385 00000 n +0001043572 00000 n +0001044199 00000 n +0001043036 00000 n +0001041582 00000 n +0001043758 00000 n +0001043821 00000 n +0001044010 00000 n +0001045908 00000 n +0001046095 00000 n +0001046282 00000 n +0001046469 00000 n +0001047097 00000 n +0001045737 00000 n +0001044377 00000 n +0001046656 00000 n +0001046719 00000 n +0001046908 00000 n +0001048846 00000 n +0001049030 00000 n +0001049217 00000 n +0001049402 00000 n +0001050028 00000 n +0001048675 00000 n +0001047275 00000 n +0001049588 00000 n +0001049651 00000 n +0001049840 00000 n +0001821781 00000 n +0001051948 00000 n +0001052135 00000 n +0001052322 00000 n +0001052948 00000 n +0001051786 00000 n +0001050206 00000 n +0001052507 00000 n +0001052570 00000 n +0001052759 00000 n +0001054894 00000 n +0001055074 00000 n +0001057428 00000 n +0001057615 00000 n +0001055638 00000 n +0001054741 00000 n +0001053126 00000 n +0001055261 00000 n +0001055324 00000 n +0001055513 00000 n +0001057802 00000 n +0001059940 00000 n +0001060127 00000 n +0001058493 00000 n +0001057266 00000 n +0001055844 00000 n +0001057989 00000 n +0001058115 00000 n +0001058304 00000 n +0001060314 00000 n +0001060501 00000 n +0001060688 00000 n +0001061127 00000 n +0001059760 00000 n +0001058671 00000 n +0001060875 00000 n +0001060938 00000 n +0001063265 00000 n +0001063451 00000 n +0001063638 00000 n +0001063825 00000 n +0001066624 00000 n +0001066811 00000 n +0001064450 00000 n +0001063094 00000 n +0001061305 00000 n +0001064010 00000 n +0001064073 00000 n +0001064262 00000 n +0001066998 00000 n +0001067185 00000 n +0001067372 00000 n +0001067559 00000 n +0001070308 00000 n +0001070495 00000 n +0001070682 00000 n +0001068120 00000 n +0001066435 00000 n +0001064642 00000 n +0001067745 00000 n +0001067808 00000 n +0001067996 00000 n +0001821906 00000 n +0001070869 00000 n +0001071056 00000 n +0001071621 00000 n +0001070128 00000 n +0001068312 00000 n +0001071243 00000 n +0001071369 00000 n +0001071558 00000 n +0001073413 00000 n +0001073600 00000 n +0001073787 00000 n +0001074163 00000 n +0001073251 00000 n +0001071841 00000 n +0001073974 00000 n +0001076799 00000 n +0001076986 00000 n +0001077173 00000 n +0001077360 00000 n +0001077862 00000 n +0001076628 00000 n +0001074341 00000 n +0001077547 00000 n +0001077610 00000 n +0001077799 00000 n +0001079506 00000 n +0001079693 00000 n +0001080257 00000 n +0001079353 00000 n +0001078054 00000 n +0001079880 00000 n +0001080068 00000 n +0001082050 00000 n +0001082237 00000 n +0001082422 00000 n +0001083049 00000 n +0001081888 00000 n +0001080435 00000 n +0001082609 00000 n +0001082672 00000 n +0001082861 00000 n +0001084929 00000 n +0001085116 00000 n +0001085303 00000 n +0001085490 00000 n +0001085677 00000 n +0001086305 00000 n +0001084749 00000 n +0001083227 00000 n +0001085864 00000 n +0001085927 00000 n +0001086116 00000 n +0001822031 00000 n +0001088179 00000 n +0001088366 00000 n +0001088553 00000 n +0001089181 00000 n +0001088017 00000 n +0001086483 00000 n +0001088740 00000 n +0001088803 00000 n +0001088992 00000 n +0001091374 00000 n +0001091560 00000 n +0001091747 00000 n +0001094416 00000 n +0001094603 00000 n +0001092374 00000 n +0001091212 00000 n +0001089373 00000 n +0001091934 00000 n +0001091997 00000 n +0001092185 00000 n +0001094790 00000 n +0001094977 00000 n +0001095163 00000 n +0001097737 00000 n +0001097924 00000 n +0001095790 00000 n +0001094236 00000 n +0001092594 00000 n +0001095350 00000 n +0001095413 00000 n +0001095601 00000 n +0001098111 00000 n +0001098304 00000 n +0001098497 00000 n +0001098690 00000 n +0001098843 00000 n +0001101395 00000 n +0001099647 00000 n +0001097539 00000 n +0001095982 00000 n +0001099019 00000 n +0001099082 00000 n +0001099270 00000 n +0001099333 00000 n +0001099396 00000 n +0001099459 00000 n +0001101588 00000 n +0001101780 00000 n +0001101973 00000 n +0001102125 00000 n +0001102303 00000 n +0001102506 00000 n +0001102692 00000 n +0001102879 00000 n +0001103063 00000 n +0001103248 00000 n +0001103433 00000 n +0001103618 00000 n +0001103803 00000 n +0001103988 00000 n +0001104173 00000 n +0001106504 00000 n +0001106682 00000 n +0001104986 00000 n +0001101116 00000 n +0001099839 00000 n +0001104357 00000 n +0001104483 00000 n +0001104609 00000 n +0001104671 00000 n +0001104923 00000 n +0001106863 00000 n +0001107050 00000 n +0001107237 00000 n +0001107424 00000 n +0001107611 00000 n +0001107798 00000 n +0001107983 00000 n +0001108168 00000 n +0001108353 00000 n +0001108540 00000 n +0001109042 00000 n +0001106261 00000 n +0001105206 00000 n +0001108727 00000 n +0001822156 00000 n +0001111619 00000 n +0001111822 00000 n +0001112008 00000 n +0001112195 00000 n +0001112381 00000 n +0001112568 00000 n +0001112755 00000 n +0001112942 00000 n +0001113129 00000 n +0001113316 00000 n +0001113503 00000 n +0001113688 00000 n +0001113865 00000 n +0001116827 00000 n +0001117014 00000 n +0001117200 00000 n +0001117387 00000 n +0001117574 00000 n +0001117761 00000 n +0001117947 00000 n +0001118133 00000 n +0001118319 00000 n +0001118506 00000 n +0001114422 00000 n +0001111367 00000 n +0001109220 00000 n +0001114044 00000 n +0001114107 00000 n +0001114296 00000 n +0001118819 00000 n +0001119070 00000 n +0001116602 00000 n +0001114642 00000 n +0001118693 00000 n +0001118945 00000 n +0001120364 00000 n +0001120571 00000 n +0001120749 00000 n +0001120927 00000 n +0001121134 00000 n +0001121312 00000 n +0001123740 00000 n +0001123949 00000 n +0001124134 00000 n +0001122180 00000 n +0001120175 00000 n +0001119304 00000 n +0001121488 00000 n +0001121614 00000 n +0001121677 00000 n +0001121929 00000 n +0001121992 00000 n +0001124319 00000 n +0001124531 00000 n +0001124717 00000 n +0001124895 00000 n +0001125081 00000 n +0001125709 00000 n +0001123533 00000 n +0001122358 00000 n +0001125268 00000 n +0001125394 00000 n +0001125583 00000 n +0001128193 00000 n +0001127882 00000 n +0001128508 00000 n +0001127738 00000 n +0001125901 00000 n +0001128067 00000 n +0001128130 00000 n +0001128319 00000 n +0001130352 00000 n +0001130564 00000 n +0001130776 00000 n +0001130988 00000 n +0001131199 00000 n +0001131409 00000 n +0001131619 00000 n +0001131829 00000 n +0001132015 00000 n +0001132201 00000 n +0001132413 00000 n +0001132599 00000 n +0001132777 00000 n +0001132964 00000 n +0001133969 00000 n +0001130091 00000 n +0001128728 00000 n +0001133151 00000 n +0001133214 00000 n +0001133277 00000 n +0001133340 00000 n +0001133403 00000 n +0001133466 00000 n +0001133529 00000 n +0001133592 00000 n +0001133655 00000 n +0001133844 00000 n +0001822281 00000 n +0001136483 00000 n +0001136172 00000 n +0001136798 00000 n +0001136028 00000 n +0001134147 00000 n +0001136357 00000 n +0001136420 00000 n +0001136609 00000 n +0001138253 00000 n +0001138472 00000 n +0001138650 00000 n +0001138831 00000 n +0001139051 00000 n +0001139229 00000 n +0001140036 00000 n +0001138064 00000 n +0001137018 00000 n +0001139408 00000 n +0001139471 00000 n +0001139534 00000 n +0001139786 00000 n +0001139849 00000 n +0001142231 00000 n +0001142417 00000 n +0001142636 00000 n +0001142823 00000 n +0001143041 00000 n +0001143227 00000 n +0001143412 00000 n +0001143631 00000 n +0001143818 00000 n +0001144037 00000 n +0001144222 00000 n +0001144409 00000 n +0001144595 00000 n +0001144782 00000 n +0001145000 00000 n +0001145187 00000 n +0001145374 00000 n +0001145592 00000 n +0001145779 00000 n +0001145965 00000 n +0001146184 00000 n +0001146370 00000 n +0001146557 00000 n +0001146743 00000 n +0001146921 00000 n +0001149254 00000 n +0001149439 00000 n +0001147351 00000 n +0001141871 00000 n +0001140214 00000 n +0001147100 00000 n +0001147226 00000 n +0001150126 00000 n +0001155472 00000 n +0001152948 00000 n +0001160473 00000 n +0001150503 00000 n +0001150315 00000 n +0001155661 00000 n +0001149626 00000 n +0001149813 00000 n +0001152199 00000 n +0001152386 00000 n +0001150565 00000 n +0001149083 00000 n +0001147529 00000 n +0001150000 00000 n +0001150252 00000 n +0001150441 00000 n +0001152573 00000 n +0001153074 00000 n +0001152037 00000 n +0001150743 00000 n +0001152760 00000 n +0001152886 00000 n +0001154787 00000 n +0001154974 00000 n +0001155161 00000 n +0001156635 00000 n +0001156822 00000 n +0001155787 00000 n +0001154625 00000 n +0001153252 00000 n +0001155346 00000 n +0001155409 00000 n +0001155598 00000 n +0001822406 00000 n +0001157072 00000 n +0001156482 00000 n +0001155965 00000 n +0001157009 00000 n +0001159599 00000 n +0001159786 00000 n +0001159973 00000 n +0001160160 00000 n +0001160724 00000 n +0001159428 00000 n +0001157222 00000 n +0001160347 00000 n +0001160410 00000 n +0001160599 00000 n +0001162961 00000 n +0001163147 00000 n +0001163366 00000 n +0001163553 00000 n +0001163771 00000 n +0001163957 00000 n +0001164142 00000 n +0001164361 00000 n +0001164548 00000 n +0001164767 00000 n +0001164952 00000 n +0001165139 00000 n +0001165324 00000 n +0001165510 00000 n +0001165729 00000 n +0001165916 00000 n +0001166102 00000 n +0001166320 00000 n +0001166507 00000 n +0001166693 00000 n +0001166910 00000 n +0001167096 00000 n +0001167283 00000 n +0001167470 00000 n +0001167648 00000 n +0001167829 00000 n +0001168014 00000 n +0001168641 00000 n +0001162583 00000 n +0001160944 00000 n +0001168201 00000 n +0001168327 00000 n +0001168516 00000 n +0001176012 00000 n +0001173488 00000 n +0001181012 00000 n +0001171575 00000 n +0001171386 00000 n +0001176201 00000 n +0001170515 00000 n +0001170701 00000 n +0001170887 00000 n +0001171073 00000 n +0001171700 00000 n +0001170344 00000 n +0001168833 00000 n +0001171260 00000 n +0001171323 00000 n +0001171512 00000 n +0001173176 00000 n +0001173614 00000 n +0001173032 00000 n +0001171878 00000 n +0001173362 00000 n +0001173425 00000 n +0001175327 00000 n +0001175514 00000 n +0001175701 00000 n +0001177175 00000 n +0001177362 00000 n +0001176327 00000 n +0001175165 00000 n +0001173792 00000 n +0001175886 00000 n +0001175949 00000 n +0001176138 00000 n +0001822531 00000 n +0001177612 00000 n +0001177022 00000 n +0001176505 00000 n +0001177549 00000 n +0001180138 00000 n +0001180325 00000 n +0001180512 00000 n +0001180699 00000 n +0001181263 00000 n +0001179967 00000 n +0001177762 00000 n +0001180886 00000 n +0001180949 00000 n +0001181138 00000 n +0001183096 00000 n +0001183291 00000 n +0001183478 00000 n +0001183663 00000 n +0001183849 00000 n +0001184035 00000 n +0001184221 00000 n +0001184408 00000 n +0001184586 00000 n +0001184773 00000 n +0001184960 00000 n +0001185147 00000 n +0001185334 00000 n +0001185521 00000 n +0001186149 00000 n +0001182835 00000 n +0001181483 00000 n +0001185708 00000 n +0001185834 00000 n +0001186023 00000 n +0001188419 00000 n +0001188615 00000 n +0001188802 00000 n +0001188988 00000 n +0001189175 00000 n +0001189362 00000 n +0001189549 00000 n +0001189736 00000 n +0001192627 00000 n +0001192814 00000 n +0001192997 00000 n +0001193184 00000 n +0001193371 00000 n +0001193558 00000 n +0001190290 00000 n +0001188212 00000 n +0001186355 00000 n +0001189912 00000 n +0001189975 00000 n +0001190164 00000 n +0001193871 00000 n +0001195926 00000 n +0001194186 00000 n +0001192438 00000 n +0001190510 00000 n +0001193745 00000 n +0001193997 00000 n +0001196132 00000 n +0001196338 00000 n +0001197017 00000 n +0001195764 00000 n +0001194434 00000 n +0001196514 00000 n +0001196577 00000 n +0001196766 00000 n +0001196892 00000 n +0001196955 00000 n +0001822656 00000 n +0001198851 00000 n +0001199058 00000 n +0001199264 00000 n +0001199471 00000 n +0001200150 00000 n +0001198680 00000 n +0001197195 00000 n +0001199647 00000 n +0001199773 00000 n +0001199961 00000 n +0001200024 00000 n +0001201944 00000 n +0001202133 00000 n +0001202322 00000 n +0001202447 00000 n +0001201695 00000 n +0001200328 00000 n +0001201818 00000 n +0001202259 00000 n +0001204292 00000 n +0001204491 00000 n +0001204676 00000 n +0001204863 00000 n +0001205062 00000 n +0001205261 00000 n +0001205447 00000 n +0001205633 00000 n +0001205819 00000 n +0001206018 00000 n +0001206216 00000 n +0001206403 00000 n +0001206590 00000 n +0001206777 00000 n +0001206975 00000 n +0001207161 00000 n +0001207348 00000 n +0001207547 00000 n +0001207745 00000 n +0001207932 00000 n +0001208119 00000 n +0001208306 00000 n +0001208505 00000 n +0001208691 00000 n +0001208876 00000 n +0001211880 00000 n +0001212050 00000 n +0001212215 00000 n +0001209450 00000 n +0001203932 00000 n +0001202625 00000 n +0001209073 00000 n +0001209136 00000 n +0001209324 00000 n +0001209387 00000 n +0001220284 00000 n +0001216916 00000 n +0001213269 00000 n +0001216728 00000 n +0001213143 00000 n +0001220469 00000 n +0001220658 00000 n +0001223751 00000 n +0001212393 00000 n +0001212580 00000 n +0001212767 00000 n +0001213458 00000 n +0001211691 00000 n +0001209628 00000 n +0001212954 00000 n +0001815798 00000 n +0001213395 00000 n +0001215731 00000 n +0001215918 00000 n +0001216104 00000 n +0001216291 00000 n +0001216478 00000 n +0001217105 00000 n +0001215551 00000 n +0001213744 00000 n +0001216665 00000 n +0001815067 00000 n +0001216853 00000 n +0001217042 00000 n +0001219089 00000 n +0001219275 00000 n +0001219462 00000 n +0001219661 00000 n +0001219848 00000 n +0001220034 00000 n +0001223188 00000 n +0001223375 00000 n +0001220720 00000 n +0001218900 00000 n +0001217376 00000 n +0001220221 00000 n +0001220406 00000 n +0001220595 00000 n +0001822781 00000 n +0001226521 00000 n +0001226719 00000 n +0001226918 00000 n +0001227117 00000 n +0001227287 00000 n +0001224002 00000 n +0001223035 00000 n +0001220965 00000 n +0001223562 00000 n +0001223688 00000 n +0001227452 00000 n +0001228258 00000 n +0001226332 00000 n +0001224275 00000 n +0001227630 00000 n +0001227693 00000 n +0001227756 00000 n +0001227944 00000 n +0001228070 00000 n +0001229565 00000 n +0001229770 00000 n +0001229938 00000 n +0001230116 00000 n +0001230321 00000 n +0001230490 00000 n +0001232767 00000 n +0001231358 00000 n +0001229376 00000 n +0001228517 00000 n +0001230666 00000 n +0001230792 00000 n +0001230855 00000 n +0001231107 00000 n +0001231170 00000 n +0001232974 00000 n +0001233138 00000 n +0001233310 00000 n +0001233488 00000 n +0001233669 00000 n +0001233877 00000 n +0001234041 00000 n +0001234213 00000 n +0001234391 00000 n +0001237004 00000 n +0001237200 00000 n +0001237429 00000 n +0001237657 00000 n +0001237886 00000 n +0001235261 00000 n +0001232542 00000 n +0001231536 00000 n +0001234570 00000 n +0001234696 00000 n +0001234759 00000 n +0001235010 00000 n +0001235073 00000 n +0001238115 00000 n +0001238293 00000 n +0001239369 00000 n +0001236806 00000 n +0001235439 00000 n +0001238487 00000 n +0001238613 00000 n +0001238802 00000 n +0001238928 00000 n +0001238991 00000 n +0001239054 00000 n +0001239116 00000 n +0001239180 00000 n +0001241503 00000 n +0001241694 00000 n +0001241881 00000 n +0001242067 00000 n +0001242254 00000 n +0001242443 00000 n +0001242630 00000 n +0001242817 00000 n +0001243003 00000 n +0001243190 00000 n +0001243368 00000 n +0001243555 00000 n +0001243742 00000 n +0001244370 00000 n +0001241251 00000 n +0001239533 00000 n +0001243929 00000 n +0001243992 00000 n +0001244181 00000 n +0001244307 00000 n +0001822906 00000 n +0001249324 00000 n +0001246641 00000 n +0001246828 00000 n +0001247014 00000 n +0001247201 00000 n +0001247387 00000 n +0001247578 00000 n +0001247769 00000 n +0001247956 00000 n +0001248142 00000 n +0001248329 00000 n +0001248518 00000 n +0001248704 00000 n +0001248890 00000 n +0001249076 00000 n +0001249824 00000 n +0001246380 00000 n +0001244590 00000 n +0001249261 00000 n +0001249446 00000 n +0001249635 00000 n +0001249698 00000 n +0001249761 00000 n +0001253422 00000 n +0001253610 00000 n +0001251746 00000 n +0001251924 00000 n +0001252111 00000 n +0001252298 00000 n +0001252485 00000 n +0001252672 00000 n +0001252859 00000 n +0001253046 00000 n +0001253736 00000 n +0001251539 00000 n +0001250044 00000 n +0001253233 00000 n +0001253548 00000 n +0001255874 00000 n +0001256065 00000 n +0001256252 00000 n +0001256439 00000 n +0001256630 00000 n +0001256816 00000 n +0001257002 00000 n +0001257189 00000 n +0001260026 00000 n +0001260213 00000 n +0001257870 00000 n +0001255667 00000 n +0001253914 00000 n +0001257367 00000 n +0001257430 00000 n +0001257619 00000 n +0001257808 00000 n +0001261148 00000 n +0001260400 00000 n +0001260586 00000 n +0001260773 00000 n +0001261274 00000 n +0001259846 00000 n +0001258062 00000 n +0001260959 00000 n +0001261085 00000 n +0001263275 00000 n +0001263466 00000 n +0001263653 00000 n +0001263840 00000 n +0001264030 00000 n +0001264216 00000 n +0001264402 00000 n +0001264589 00000 n +0001267426 00000 n +0001267613 00000 n +0001265270 00000 n +0001263068 00000 n +0001261466 00000 n +0001264767 00000 n +0001264830 00000 n +0001265019 00000 n +0001265208 00000 n +0001268548 00000 n +0001267800 00000 n +0001267986 00000 n +0001268173 00000 n +0001268674 00000 n +0001267246 00000 n +0001265462 00000 n +0001268359 00000 n +0001268485 00000 n +0001823031 00000 n +0001270630 00000 n +0001270825 00000 n +0001271012 00000 n +0001271198 00000 n +0001273922 00000 n +0001274109 00000 n +0001271879 00000 n +0001270459 00000 n +0001268866 00000 n +0001271376 00000 n +0001271439 00000 n +0001271628 00000 n +0001271817 00000 n +0001274296 00000 n +0001274490 00000 n +0001274676 00000 n +0001275239 00000 n +0001273742 00000 n +0001272099 00000 n +0001274861 00000 n +0001274987 00000 n +0001275176 00000 n +0001278054 00000 n +0001277313 00000 n +0001277491 00000 n +0001277678 00000 n +0001278305 00000 n +0001277151 00000 n +0001275459 00000 n +0001277865 00000 n +0001278180 00000 n +0001279537 00000 n +0001279732 00000 n +0001279898 00000 n +0001280076 00000 n +0001280271 00000 n +0001280437 00000 n +0001282848 00000 n +0001283048 00000 n +0001283235 00000 n +0001283422 00000 n +0001281305 00000 n +0001279348 00000 n +0001278497 00000 n +0001280613 00000 n +0001280739 00000 n +0001280802 00000 n +0001281054 00000 n +0001281117 00000 n +0001283613 00000 n +0001283791 00000 n +0001283977 00000 n +0001284164 00000 n +0001284795 00000 n +0001282641 00000 n +0001281483 00000 n +0001284355 00000 n +0001284481 00000 n +0001284669 00000 n +0001286878 00000 n +0001287078 00000 n +0001287265 00000 n +0001287452 00000 n +0001287643 00000 n +0001287821 00000 n +0001288008 00000 n +0001288195 00000 n +0001288951 00000 n +0001286671 00000 n +0001284987 00000 n +0001288385 00000 n +0001288448 00000 n +0001288637 00000 n +0001288825 00000 n +0001823156 00000 n +0001290991 00000 n +0001291182 00000 n +0001291374 00000 n +0001291561 00000 n +0001292306 00000 n +0001290820 00000 n +0001289143 00000 n +0001291739 00000 n +0001291802 00000 n +0001291991 00000 n +0001292180 00000 n +0001295332 00000 n +0001294273 00000 n +0001294460 00000 n +0001294651 00000 n +0001294843 00000 n +0001295030 00000 n +0001295773 00000 n +0001294093 00000 n +0001292526 00000 n +0001295206 00000 n +0001295269 00000 n +0001295458 00000 n +0001295647 00000 n +0001297793 00000 n +0001297981 00000 n +0001297480 00000 n +0001298296 00000 n +0001297336 00000 n +0001295993 00000 n +0001297667 00000 n +0001297919 00000 n +0001298107 00000 n +0001300169 00000 n +0001300353 00000 n +0001300540 00000 n +0001300727 00000 n +0001300914 00000 n +0001301110 00000 n +0001301294 00000 n +0001301480 00000 n +0001301667 00000 n +0001301854 00000 n +0001302037 00000 n +0001302223 00000 n +0001302407 00000 n +0001302593 00000 n +0001302777 00000 n +0001302964 00000 n +0001303151 00000 n +0001303337 00000 n +0001303515 00000 n +0001303702 00000 n +0001303888 00000 n +0001304075 00000 n +0001304647 00000 n +0001299836 00000 n +0001298502 00000 n +0001304271 00000 n +0001304334 00000 n +0001304523 00000 n +0001310550 00000 n +0001307416 00000 n +0001310738 00000 n +0001306730 00000 n +0001306917 00000 n +0001307103 00000 n +0001307604 00000 n +0001306568 00000 n +0001304853 00000 n +0001307290 00000 n +0001307353 00000 n +0001307541 00000 n +0001309366 00000 n +0001309553 00000 n +0001309739 00000 n +0001309926 00000 n +0001310113 00000 n +0001310300 00000 n +0001310864 00000 n +0001309177 00000 n +0001307796 00000 n +0001310487 00000 n +0001310675 00000 n +0001823281 00000 n +0001313199 00000 n +0001313383 00000 n +0001313570 00000 n +0001313757 00000 n +0001313944 00000 n +0001314139 00000 n +0001314323 00000 n +0001314509 00000 n +0001314696 00000 n +0001314883 00000 n +0001315067 00000 n +0001315254 00000 n +0001315439 00000 n +0001315626 00000 n +0001315810 00000 n +0001315997 00000 n +0001316184 00000 n +0001316370 00000 n +0001318883 00000 n +0001319070 00000 n +0001319257 00000 n +0001319444 00000 n +0001316922 00000 n +0001312902 00000 n +0001311056 00000 n +0001316546 00000 n +0001316609 00000 n +0001316796 00000 n +0001320326 00000 n +0001323295 00000 n +0001320514 00000 n +0001323484 00000 n +0001319639 00000 n +0001319826 00000 n +0001320013 00000 n +0001320639 00000 n +0001318685 00000 n +0001317128 00000 n +0001320200 00000 n +0001320452 00000 n +0001322609 00000 n +0001322796 00000 n +0001322982 00000 n +0001325514 00000 n +0001325701 00000 n +0001325888 00000 n +0001323546 00000 n +0001322447 00000 n +0001320831 00000 n +0001323169 00000 n +0001323232 00000 n +0001323421 00000 n +0001326075 00000 n +0001326267 00000 n +0001328702 00000 n +0001326959 00000 n +0001325334 00000 n +0001323738 00000 n +0001326457 00000 n +0001326583 00000 n +0001326771 00000 n +0001326834 00000 n +0001326897 00000 n +0001328854 00000 n +0001329032 00000 n +0001329224 00000 n +0001329416 00000 n +0001329568 00000 n +0001332643 00000 n +0001332826 00000 n +0001332990 00000 n +0001333174 00000 n +0001333338 00000 n +0001333522 00000 n +0001333686 00000 n +0001330376 00000 n +0001328513 00000 n +0001327193 00000 n +0001329746 00000 n +0001329998 00000 n +0001330061 00000 n +0001330124 00000 n +0001333870 00000 n +0001334054 00000 n +0001334240 00000 n +0001334426 00000 n +0001334612 00000 n +0001334799 00000 n +0001334984 00000 n +0001335168 00000 n +0001335355 00000 n +0001335541 00000 n +0001335725 00000 n +0001335910 00000 n +0001336088 00000 n +0001336275 00000 n +0001336461 00000 n +0001336648 00000 n +0001336835 00000 n +0001337399 00000 n +0001332292 00000 n +0001330568 00000 n +0001337022 00000 n +0001337085 00000 n +0001823406 00000 n +0001344918 00000 n +0001342468 00000 n +0001347855 00000 n +0001344729 00000 n +0001342279 00000 n +0001339488 00000 n +0001339175 00000 n +0001339614 00000 n +0001339031 00000 n +0001337591 00000 n +0001339362 00000 n +0001339425 00000 n +0001341615 00000 n +0001341802 00000 n +0001341989 00000 n +0001342594 00000 n +0001341453 00000 n +0001339820 00000 n +0001342153 00000 n +0001342216 00000 n +0001342405 00000 n +0001344440 00000 n +0001345107 00000 n +0001344296 00000 n +0001342814 00000 n +0001344603 00000 n +0001344666 00000 n +0001344855 00000 n +0001345044 00000 n +0001346894 00000 n +0001347058 00000 n +0001347242 00000 n +0001347426 00000 n +0001347610 00000 n +0001350770 00000 n +0001350954 00000 n +0001351141 00000 n +0001351328 00000 n +0001351515 00000 n +0001351701 00000 n +0001351885 00000 n +0001352068 00000 n +0001352232 00000 n +0001352416 00000 n +0001348482 00000 n +0001346714 00000 n +0001345299 00000 n +0001347792 00000 n +0001347979 00000 n +0001348168 00000 n +0001348231 00000 n +0001348294 00000 n +0001348357 00000 n +0001348420 00000 n +0001352579 00000 n +0001352763 00000 n +0001352926 00000 n +0001353110 00000 n +0001353294 00000 n +0001353481 00000 n +0001353667 00000 n +0001353851 00000 n +0001354037 00000 n +0001354215 00000 n +0001354402 00000 n +0001354589 00000 n +0001354776 00000 n +0001354963 00000 n +0001355527 00000 n +0001350419 00000 n +0001348674 00000 n +0001355150 00000 n +0001355213 00000 n +0001355401 00000 n +0001363049 00000 n +0001360599 00000 n +0001365855 00000 n +0001362860 00000 n +0001360410 00000 n +0001357618 00000 n +0001357305 00000 n +0001357744 00000 n +0001357161 00000 n +0001355719 00000 n +0001357492 00000 n +0001357555 00000 n +0001823531 00000 n +0001359746 00000 n +0001359933 00000 n +0001360120 00000 n +0001360725 00000 n +0001359584 00000 n +0001357950 00000 n +0001360284 00000 n +0001360347 00000 n +0001360536 00000 n +0001362571 00000 n +0001363238 00000 n +0001362427 00000 n +0001360945 00000 n +0001362734 00000 n +0001362797 00000 n +0001362986 00000 n +0001363175 00000 n +0001365113 00000 n +0001365277 00000 n +0001365467 00000 n +0001365616 00000 n +0001366419 00000 n +0001364942 00000 n +0001363430 00000 n +0001365792 00000 n +0001365979 00000 n +0001366168 00000 n +0001366231 00000 n +0001368580 00000 n +0001368770 00000 n +0001368919 00000 n +0001369097 00000 n +0001369291 00000 n +0001369477 00000 n +0001369664 00000 n +0001369850 00000 n +0001370036 00000 n +0001370222 00000 n +0001370408 00000 n +0001370602 00000 n +0001370789 00000 n +0001370976 00000 n +0001371161 00000 n +0001371346 00000 n +0001371540 00000 n +0001371725 00000 n +0001371912 00000 n +0001372098 00000 n +0001372291 00000 n +0001372478 00000 n +0001372665 00000 n +0001372856 00000 n +0001373040 00000 n +0001373225 00000 n +0001376770 00000 n +0001376963 00000 n +0001377150 00000 n +0001377337 00000 n +0001377524 00000 n +0001377710 00000 n +0001377904 00000 n +0001378091 00000 n +0001378278 00000 n +0001378472 00000 n +0001378659 00000 n +0001378846 00000 n +0001373913 00000 n +0001368211 00000 n +0001366625 00000 n +0001373409 00000 n +0001373535 00000 n +0001373598 00000 n +0001373850 00000 n +0001381454 00000 n +0001385222 00000 n +0001396186 00000 n +0001395997 00000 n +0001388958 00000 n +0001379033 00000 n +0001379227 00000 n +0001379414 00000 n +0001379601 00000 n +0001379788 00000 n +0001379966 00000 n +0001380147 00000 n +0001380334 00000 n +0001380521 00000 n +0001380708 00000 n +0001380895 00000 n +0001381082 00000 n +0001381642 00000 n +0001376419 00000 n +0001374161 00000 n +0001381265 00000 n +0001381580 00000 n +0001392819 00000 n +0001388580 00000 n +0001388769 00000 n +0001399021 00000 n +0001384413 00000 n +0001384599 00000 n +0001384786 00000 n +0001384972 00000 n +0001385411 00000 n +0001384242 00000 n +0001381957 00000 n +0001385159 00000 n +0001385348 00000 n +0001823656 00000 n +0001387586 00000 n +0001387772 00000 n +0001387959 00000 n +0001388144 00000 n +0001388331 00000 n +0001391321 00000 n +0001391508 00000 n +0001391695 00000 n +0001389020 00000 n +0001387406 00000 n +0001385684 00000 n +0001388517 00000 n +0001388706 00000 n +0001388895 00000 n +0001391882 00000 n +0001392069 00000 n +0001392256 00000 n +0001392443 00000 n +0001393008 00000 n +0001391123 00000 n +0001389253 00000 n +0001392630 00000 n +0001392756 00000 n +0001392945 00000 n +0001395001 00000 n +0001395187 00000 n +0001395374 00000 n +0001395561 00000 n +0001395747 00000 n +0001396312 00000 n +0001394821 00000 n +0001393254 00000 n +0001395934 00000 n +0001396123 00000 n +0001398334 00000 n +0001398521 00000 n +0001398708 00000 n +0001401733 00000 n +0001401927 00000 n +0001402113 00000 n +0001402300 00000 n +0001402487 00000 n +0001402674 00000 n +0001402861 00000 n +0001399336 00000 n +0001398172 00000 n +0001396558 00000 n +0001398895 00000 n +0001398958 00000 n +0001399147 00000 n +0001403048 00000 n +0001403242 00000 n +0001403428 00000 n +0001403614 00000 n +0001403800 00000 n +0001403986 00000 n +0001404180 00000 n +0001404367 00000 n +0001404554 00000 n +0001404747 00000 n +0001404934 00000 n +0001405121 00000 n +0001405308 00000 n +0001405502 00000 n +0001405687 00000 n +0001405874 00000 n +0001406060 00000 n +0001406254 00000 n +0001406440 00000 n +0001406627 00000 n +0001406813 00000 n +0001407006 00000 n +0001407193 00000 n +0001407380 00000 n +0001407574 00000 n +0001407761 00000 n +0001407947 00000 n +0001408133 00000 n +0001408318 00000 n +0001408512 00000 n +0001408698 00000 n +0001408885 00000 n +0001409072 00000 n +0001409250 00000 n +0001412347 00000 n +0001412534 00000 n +0001412721 00000 n +0001412908 00000 n +0001413095 00000 n +0001413282 00000 n +0001409745 00000 n +0001401229 00000 n +0001399528 00000 n +0001409431 00000 n +0001409494 00000 n +0001409683 00000 n +0001414405 00000 n +0001417763 00000 n +0001417952 00000 n +0001428628 00000 n +0001421707 00000 n +0001425307 00000 n +0001425122 00000 n +0001428816 00000 n +0001413469 00000 n +0001413656 00000 n +0001413843 00000 n +0001414030 00000 n +0001414530 00000 n +0001412122 00000 n +0001409979 00000 n +0001414216 00000 n +0001414342 00000 n +0001823781 00000 n +0001417264 00000 n +0001417451 00000 n +0001420397 00000 n +0001420584 00000 n +0001420771 00000 n +0001418014 00000 n +0001417111 00000 n +0001414803 00000 n +0001417637 00000 n +0001417700 00000 n +0001417889 00000 n +0001420958 00000 n +0001421145 00000 n +0001421331 00000 n +0001421895 00000 n +0001420208 00000 n +0001418287 00000 n +0001421518 00000 n +0001421644 00000 n +0001421832 00000 n +0001423938 00000 n +0001424125 00000 n +0001424312 00000 n +0001424499 00000 n +0001424685 00000 n +0001424872 00000 n +0001425496 00000 n +0001423749 00000 n +0001422141 00000 n +0001425059 00000 n +0001425244 00000 n +0001425433 00000 n +0001427445 00000 n +0001427631 00000 n +0001427818 00000 n +0001428004 00000 n +0001428191 00000 n +0001428378 00000 n +0001428942 00000 n +0001427256 00000 n +0001425714 00000 n +0001428565 00000 n +0001428753 00000 n +0001431447 00000 n +0001431633 00000 n +0001431818 00000 n +0001432004 00000 n +0001432190 00000 n +0001432376 00000 n +0001432562 00000 n +0001432748 00000 n +0001432934 00000 n +0001433119 00000 n +0001433306 00000 n +0001433491 00000 n +0001433678 00000 n +0001433865 00000 n +0001434051 00000 n +0001434237 00000 n +0001434736 00000 n +0001431168 00000 n +0001429188 00000 n +0001434421 00000 n +0001434484 00000 n +0001434673 00000 n +0001816520 00000 n +0001445998 00000 n +0001444120 00000 n +0001444309 00000 n +0001437340 00000 n +0001439552 00000 n +0001446186 00000 n +0001446374 00000 n +0001442228 00000 n +0001439363 00000 n +0001442039 00000 n +0001437025 00000 n +0001437214 00000 n +0001436471 00000 n +0001436649 00000 n +0001437402 00000 n +0001436318 00000 n +0001434942 00000 n +0001436836 00000 n +0001437151 00000 n +0001823906 00000 n +0001438987 00000 n +0001439678 00000 n +0001438843 00000 n +0001437594 00000 n +0001439174 00000 n +0001439300 00000 n +0001439489 00000 n +0001441539 00000 n +0001441726 00000 n +0001442353 00000 n +0001441386 00000 n +0001439856 00000 n +0001441913 00000 n +0001441976 00000 n +0001442165 00000 n +0001444498 00000 n +0001443871 00000 n +0001442545 00000 n +0001443994 00000 n +0001444057 00000 n +0001444246 00000 n +0001444435 00000 n +0001446436 00000 n +0001445812 00000 n +0001444704 00000 n +0001445935 00000 n +0001446123 00000 n +0001446312 00000 n +0001448246 00000 n +0001448431 00000 n +0001448617 00000 n +0001448802 00000 n +0001448988 00000 n +0001449174 00000 n +0001449360 00000 n +0001449546 00000 n +0001452228 00000 n +0001452414 00000 n +0001452598 00000 n +0001452785 00000 n +0001452971 00000 n +0001453157 00000 n +0001453343 00000 n +0001453528 00000 n +0001450233 00000 n +0001448039 00000 n +0001446614 00000 n +0001449730 00000 n +0001449856 00000 n +0001450045 00000 n +0001450107 00000 n +0001450170 00000 n +0001463422 00000 n +0001461484 00000 n +0001463233 00000 n +0001456395 00000 n +0001458558 00000 n +0001465064 00000 n +0001465253 00000 n +0001453714 00000 n +0001453900 00000 n +0001454078 00000 n +0001454705 00000 n +0001451994 00000 n +0001450439 00000 n +0001454265 00000 n +0001454454 00000 n +0001454580 00000 n +0001454643 00000 n +0001824031 00000 n +0001461295 00000 n +0001456584 00000 n +0001458746 00000 n +0001458182 00000 n +0001456646 00000 n +0001456083 00000 n +0001454897 00000 n +0001456206 00000 n +0001456332 00000 n +0001456521 00000 n +0001460797 00000 n +0001460984 00000 n +0001458871 00000 n +0001458038 00000 n +0001456824 00000 n +0001458369 00000 n +0001458495 00000 n +0001458683 00000 n +0001461610 00000 n +0001460644 00000 n +0001459049 00000 n +0001461170 00000 n +0001461233 00000 n +0001461421 00000 n +0001463610 00000 n +0001462984 00000 n +0001461816 00000 n +0001463107 00000 n +0001463170 00000 n +0001463359 00000 n +0001463547 00000 n +0001465504 00000 n +0001464878 00000 n +0001463816 00000 n +0001465001 00000 n +0001465190 00000 n +0001465379 00000 n +0001466646 00000 n +0001466838 00000 n +0001466990 00000 n +0001467168 00000 n +0001467359 00000 n +0001467511 00000 n +0001470642 00000 n +0001470829 00000 n +0001468378 00000 n +0001466457 00000 n +0001465682 00000 n +0001467687 00000 n +0001467813 00000 n +0001467876 00000 n +0001468127 00000 n +0001468190 00000 n +0001824156 00000 n +0001471015 00000 n +0001471201 00000 n +0001471388 00000 n +0001471575 00000 n +0001471761 00000 n +0001471948 00000 n +0001472135 00000 n +0001472320 00000 n +0001472507 00000 n +0001472693 00000 n +0001472879 00000 n +0001473066 00000 n +0001473253 00000 n +0001473439 00000 n +0001473626 00000 n +0001473813 00000 n +0001474000 00000 n +0001474187 00000 n +0001474374 00000 n +0001474561 00000 n +0001474747 00000 n +0001474933 00000 n +0001475119 00000 n +0001475304 00000 n +0001475490 00000 n +0001475677 00000 n +0001475864 00000 n +0001476049 00000 n +0001476236 00000 n +0001476423 00000 n +0001476610 00000 n +0001476797 00000 n +0001476982 00000 n +0001477169 00000 n +0001477356 00000 n +0001477543 00000 n +0001477730 00000 n +0001477916 00000 n +0001478103 00000 n +0001478290 00000 n +0001478477 00000 n +0001478662 00000 n +0001478849 00000 n +0001479034 00000 n +0001479220 00000 n +0001479406 00000 n +0001479593 00000 n +0001479780 00000 n +0001479966 00000 n +0001480153 00000 n +0001480339 00000 n +0001480525 00000 n +0001480710 00000 n +0001480895 00000 n +0001483475 00000 n +0001483661 00000 n +0001483848 00000 n +0001484033 00000 n +0001484218 00000 n +0001484405 00000 n +0001484590 00000 n +0001484774 00000 n +0001484959 00000 n +0001485146 00000 n +0001481269 00000 n +0001470003 00000 n +0001468556 00000 n +0001481080 00000 n +0001481206 00000 n +0001490020 00000 n +0001490207 00000 n +0001499608 00000 n +0001505672 00000 n +0001505860 00000 n +0001499419 00000 n +0001518050 00000 n +0001487381 00000 n +0001511978 00000 n +0001517861 00000 n +0001508574 00000 n +0001514889 00000 n +0001514700 00000 n +0001493463 00000 n +0001499230 00000 n +0001502818 00000 n +0001508763 00000 n +0001485333 00000 n +0001485520 00000 n +0001485707 00000 n +0001485893 00000 n +0001486080 00000 n +0001486266 00000 n +0001486453 00000 n +0001486631 00000 n +0001486818 00000 n +0001487005 00000 n +0001487570 00000 n +0001483160 00000 n +0001481447 00000 n +0001487192 00000 n +0001487507 00000 n +0001496667 00000 n +0001502629 00000 n +0001493275 00000 n +0001520978 00000 n +0001512167 00000 n +0001514511 00000 n +0001490395 00000 n +0001489397 00000 n +0001489584 00000 n +0001489771 00000 n +0001492526 00000 n +0001490457 00000 n +0001489235 00000 n +0001487748 00000 n +0001489957 00000 n +0001490145 00000 n +0001490332 00000 n +0001492713 00000 n +0001492899 00000 n +0001495546 00000 n +0001495731 00000 n +0001495918 00000 n +0001493525 00000 n +0001492364 00000 n +0001490663 00000 n +0001493086 00000 n +0001493212 00000 n +0001493400 00000 n +0001496105 00000 n +0001496292 00000 n +0001496856 00000 n +0001495366 00000 n +0001493731 00000 n +0001496478 00000 n +0001496604 00000 n +0001496793 00000 n +0001498423 00000 n +0001498608 00000 n +0001498795 00000 n +0001498980 00000 n +0001501511 00000 n +0001501696 00000 n +0001499670 00000 n +0001498252 00000 n +0001497034 00000 n +0001499167 00000 n +0001499356 00000 n +0001499545 00000 n +0001824281 00000 n +0001501883 00000 n +0001502067 00000 n +0001502254 00000 n +0001504552 00000 n +0001504737 00000 n +0001504924 00000 n +0001502880 00000 n +0001501331 00000 n +0001499862 00000 n +0001502440 00000 n +0001502566 00000 n +0001502755 00000 n +0001505111 00000 n +0001505296 00000 n +0001507640 00000 n +0001507825 00000 n +0001505922 00000 n +0001504372 00000 n +0001503086 00000 n +0001505483 00000 n +0001505609 00000 n +0001505798 00000 n +0001508012 00000 n +0001508199 00000 n +0001510733 00000 n +0001510920 00000 n +0001508889 00000 n +0001507469 00000 n +0001506100 00000 n +0001508385 00000 n +0001508511 00000 n +0001508700 00000 n +0001511107 00000 n +0001511294 00000 n +0001511480 00000 n +0001511667 00000 n +0001512292 00000 n +0001510544 00000 n +0001509067 00000 n +0001511852 00000 n +0001511915 00000 n +0001512104 00000 n +0001514012 00000 n +0001514198 00000 n +0001516738 00000 n +0001516925 00000 n +0001517112 00000 n +0001514951 00000 n +0001513859 00000 n +0001512470 00000 n +0001514385 00000 n +0001514448 00000 n +0001514637 00000 n +0001514826 00000 n +0001517299 00000 n +0001517485 00000 n +0001520292 00000 n +0001520479 00000 n +0001520666 00000 n +0001518176 00000 n +0001516558 00000 n +0001515129 00000 n +0001517672 00000 n +0001517798 00000 n +0001517987 00000 n +0001824406 00000 n +0001523726 00000 n +0001521293 00000 n +0001520130 00000 n +0001518354 00000 n +0001520852 00000 n +0001520915 00000 n +0001521104 00000 n +0001523912 00000 n +0001524099 00000 n +0001524285 00000 n +0001524471 00000 n +0001524658 00000 n +0001524845 00000 n +0001525031 00000 n +0001525218 00000 n +0001525405 00000 n +0001525591 00000 n +0001525778 00000 n +0001525965 00000 n +0001526151 00000 n +0001526338 00000 n +0001526525 00000 n +0001526711 00000 n +0001526897 00000 n +0001527084 00000 n +0001527270 00000 n +0001527457 00000 n +0001527644 00000 n +0001527831 00000 n +0001528018 00000 n +0001528205 00000 n +0001528392 00000 n +0001528578 00000 n +0001528765 00000 n +0001528952 00000 n +0001529139 00000 n +0001529324 00000 n +0001529511 00000 n +0001529698 00000 n +0001529885 00000 n +0001530072 00000 n +0001530257 00000 n +0001530444 00000 n +0001530631 00000 n +0001530818 00000 n +0001531005 00000 n +0001531191 00000 n +0001531378 00000 n +0001531565 00000 n +0001531752 00000 n +0001531938 00000 n +0001532125 00000 n +0001532311 00000 n +0001532498 00000 n +0001532684 00000 n +0001532871 00000 n +0001533057 00000 n +0001533243 00000 n +0001533430 00000 n +0001533617 00000 n +0001533804 00000 n +0001533991 00000 n +0001534178 00000 n +0001534364 00000 n +0001534548 00000 n +0001534734 00000 n +0001534920 00000 n +0001535107 00000 n +0001535293 00000 n +0001535479 00000 n +0001535665 00000 n +0001535850 00000 n +0001536035 00000 n +0001536220 00000 n +0001538566 00000 n +0001538753 00000 n +0001538939 00000 n +0001539125 00000 n +0001539312 00000 n +0001536657 00000 n +0001522979 00000 n +0001521513 00000 n +0001536405 00000 n +0001536468 00000 n +0001536594 00000 n +0001540613 00000 n +0001543263 00000 n +0001552637 00000 n +0001558703 00000 n +0001558891 00000 n +0001552448 00000 n +0001571085 00000 n +0001540424 00000 n +0001565004 00000 n +0001570896 00000 n +0001561606 00000 n +0001567924 00000 n +0001567735 00000 n +0001546710 00000 n +0001555847 00000 n +0001561795 00000 n +0001573930 00000 n +0001549701 00000 n +0001549888 00000 n +0001555658 00000 n +0001546521 00000 n +0001539498 00000 n +0001539676 00000 n +0001539861 00000 n +0001540048 00000 n +0001542513 00000 n +0001540675 00000 n +0001538350 00000 n +0001536807 00000 n +0001540235 00000 n +0001540550 00000 n +0001565193 00000 n +0001567546 00000 n +0001543452 00000 n +0001542700 00000 n +0001542887 00000 n +0001545651 00000 n +0001543576 00000 n +0001542351 00000 n +0001540853 00000 n +0001543074 00000 n +0001543200 00000 n +0001543389 00000 n +0001545838 00000 n +0001546025 00000 n +0001546212 00000 n +0001548829 00000 n +0001549016 00000 n +0001546836 00000 n +0001545480 00000 n +0001543782 00000 n +0001546395 00000 n +0001546458 00000 n +0001546647 00000 n +0001549203 00000 n +0001549388 00000 n +0001551515 00000 n +0001551700 00000 n +0001549950 00000 n +0001548658 00000 n +0001547042 00000 n +0001549575 00000 n +0001549638 00000 n +0001549825 00000 n +0001824531 00000 n +0001551887 00000 n +0001552072 00000 n +0001554540 00000 n +0001554725 00000 n +0001552699 00000 n +0001551344 00000 n +0001550128 00000 n +0001552259 00000 n +0001552385 00000 n +0001552574 00000 n +0001554912 00000 n +0001555096 00000 n +0001555283 00000 n +0001557583 00000 n +0001557768 00000 n +0001557955 00000 n +0001555909 00000 n +0001554360 00000 n +0001552891 00000 n +0001555469 00000 n +0001555595 00000 n +0001555784 00000 n +0001558142 00000 n +0001558327 00000 n +0001560672 00000 n +0001560857 00000 n +0001558953 00000 n +0001557403 00000 n +0001556115 00000 n +0001558514 00000 n +0001558640 00000 n +0001558829 00000 n +0001561044 00000 n +0001561231 00000 n +0001563759 00000 n +0001563946 00000 n +0001561921 00000 n +0001560501 00000 n +0001559131 00000 n +0001561417 00000 n +0001561543 00000 n +0001561732 00000 n +0001564133 00000 n +0001564320 00000 n +0001564506 00000 n +0001564693 00000 n +0001565318 00000 n +0001563570 00000 n +0001562099 00000 n +0001564878 00000 n +0001564941 00000 n +0001565130 00000 n +0001567047 00000 n +0001567233 00000 n +0001569773 00000 n +0001569960 00000 n +0001570147 00000 n +0001567986 00000 n +0001566894 00000 n +0001565496 00000 n +0001567420 00000 n +0001567483 00000 n +0001567672 00000 n +0001567861 00000 n +0001824656 00000 n +0001570334 00000 n +0001570520 00000 n +0001573244 00000 n +0001573431 00000 n +0001573618 00000 n +0001571211 00000 n +0001569593 00000 n +0001568164 00000 n +0001570707 00000 n +0001570833 00000 n +0001571022 00000 n +0001574244 00000 n +0001573082 00000 n +0001571389 00000 n +0001573804 00000 n +0001573867 00000 n +0001574056 00000 n +0001575509 00000 n +0001575702 00000 n +0001575854 00000 n +0001576032 00000 n +0001576225 00000 n +0001576378 00000 n +0001577123 00000 n +0001575320 00000 n +0001574450 00000 n +0001576556 00000 n +0001576619 00000 n +0001576682 00000 n +0001576934 00000 n +0001577301 00000 n +0001577327 00000 n +0001577353 00000 n +0001577385 00000 n +0001577531 00000 n +0001577988 00000 n +0001578108 00000 n +0001578200 00000 n +0001814136 00000 n +0001578226 00000 n +0001578562 00000 n +0001579212 00000 n +0001579397 00000 n +0001579429 00000 n +0001579455 00000 n +0001579803 00000 n +0001580377 00000 n +0001581033 00000 n +0001581682 00000 n +0001582293 00000 n +0001582792 00000 n +0001583184 00000 n +0001583496 00000 n +0001583972 00000 n +0001584855 00000 n +0001592850 00000 n +0001593246 00000 n +0001600364 00000 n +0001600608 00000 n +0001613023 00000 n +0001613341 00000 n +0001620458 00000 n +0001620680 00000 n +0001628919 00000 n +0001629149 00000 n +0001639040 00000 n +0001639314 00000 n +0001649566 00000 n +0001649825 00000 n +0001663471 00000 n +0001663817 00000 n +0001670985 00000 n +0001671211 00000 n +0001678962 00000 n +0001679220 00000 n +0001687333 00000 n +0001687602 00000 n +0001695002 00000 n +0001695247 00000 n +0001703178 00000 n +0001703457 00000 n +0001710476 00000 n +0001710707 00000 n +0001717996 00000 n +0001718248 00000 n +0001725377 00000 n +0001725611 00000 n +0001732678 00000 n +0001732908 00000 n +0001751781 00000 n +0001752347 00000 n +0001765004 00000 n +0001765398 00000 n +0001778057 00000 n +0001778502 00000 n +0001789157 00000 n +0001789503 00000 n +0001802296 00000 n +0001802897 00000 n +0001813645 00000 n +0001824763 00000 n +0001824889 00000 n +0001825015 00000 n +0001825141 00000 n +0001825267 00000 n +0001825393 00000 n +0001825519 00000 n +0001825645 00000 n +0001825771 00000 n +0001825888 00000 n +0001826015 00000 n +0001826115 00000 n +0001826189 00000 n +0001892802 00000 n +0001893042 00000 n +0001893219 00000 n +0001893393 00000 n +0001893562 00000 n +0001893745 00000 n +0001894023 00000 n +0001894510 00000 n +0001895000 00000 n +0001895424 00000 n +0001895923 00000 n +0001896382 00000 n +0001896915 00000 n +0001897466 00000 n +0001897949 00000 n +0001898302 00000 n +0001898731 00000 n +0001899264 00000 n +0001899675 00000 n +0001900173 00000 n +0001900550 00000 n +0001900851 00000 n +0001901165 00000 n +0001901514 00000 n +0001901846 00000 n +0001902136 00000 n +0001902611 00000 n +0001903054 00000 n +0001903637 00000 n +0001904092 00000 n +0001904495 00000 n +0001905020 00000 n +0001905603 00000 n +0001906186 00000 n +0001906769 00000 n +0001907386 00000 n +0001908003 00000 n +0001908502 00000 n +0001908963 00000 n +0001909428 00000 n +0001909893 00000 n +0001910358 00000 n +0001910823 00000 n +0001911288 00000 n +0001911753 00000 n +0001912184 00000 n +0001912649 00000 n +0001913114 00000 n +0001913579 00000 n +0001914044 00000 n +0001914509 00000 n +0001914974 00000 n +0001915439 00000 n +0001915888 00000 n +0001916367 00000 n +0001916841 00000 n +0001917321 00000 n +0001917986 00000 n +0001918623 00000 n +0001919276 00000 n +0001919963 00000 n +0001920581 00000 n +0001921003 00000 n +0001921562 00000 n +0001922123 00000 n +0001922552 00000 n +0001922735 00000 n +0001922918 00000 n +0001923103 00000 n +0001923287 00000 n +0001923472 00000 n +0001923656 00000 n +0001923841 00000 n +0001924025 00000 n +0001924210 00000 n +0001924394 00000 n +0001924579 00000 n +0001924762 00000 n +0001924945 00000 n +0001925130 00000 n +0001925314 00000 n +0001925499 00000 n +0001925683 00000 n +0001925868 00000 n +0001926050 00000 n +0001926235 00000 n +0001926419 00000 n +0001926604 00000 n +0001926788 00000 n +0001926973 00000 n +0001927156 00000 n +0001927339 00000 n +0001927524 00000 n +0001927708 00000 n +0001927893 00000 n +0001928077 00000 n +0001928262 00000 n +0001928446 00000 n +0001928631 00000 n +0001928815 00000 n +0001929000 00000 n +0001929183 00000 n +0001929362 00000 n +0001929539 00000 n +0001929715 00000 n +0001929892 00000 n +0001930067 00000 n +0001930242 00000 n +0001930419 00000 n +0001930595 00000 n +0001930772 00000 n +0001930948 00000 n +0001931125 00000 n +0001931301 00000 n +0001931478 00000 n +0001931851 00000 n +0001932438 00000 n +0001933053 00000 n +0001933448 00000 n +0001933892 00000 n +0001934288 00000 n +0001934622 00000 n +0001934839 00000 n +0001935055 00000 n +0001935272 00000 n +0001935488 00000 n +0001935700 00000 n +0001935908 00000 n +0001936117 00000 n +0001936325 00000 n +0001936534 00000 n +0001936742 00000 n +0001936951 00000 n +0001937158 00000 n +0001937365 00000 n +0001937574 00000 n +0001937782 00000 n +0001937991 00000 n +0001938199 00000 n +0001938408 00000 n +0001938616 00000 n +0001938825 00000 n +0001939023 00000 n +0001939240 00000 n +0001939457 00000 n +0001939676 00000 n +0001939894 00000 n +0001940113 00000 n +0001940335 00000 n +0001940560 00000 n +0001940783 00000 n +0001941008 00000 n +0001941231 00000 n +0001941456 00000 n +0001941678 00000 n +0001941900 00000 n +0001942125 00000 n +0001942348 00000 n +0001942567 00000 n +0001942764 00000 n +0001942968 00000 n +0001943179 00000 n +0001943382 00000 n +0001943702 00000 n +0001944081 00000 n +0001944504 00000 n +0001944929 00000 n +0001945318 00000 n +0001945564 00000 n +0001945823 00000 n +0001946082 00000 n +0001946341 00000 n +0001946597 00000 n +0001946856 00000 n +0001947115 00000 n +0001947372 00000 n +0001947631 00000 n +0001947891 00000 n +0001948152 00000 n +0001948417 00000 n +0001948682 00000 n +0001948943 00000 n +0001949208 00000 n +0001949473 00000 n +0001949735 00000 n +0001949997 00000 n +0001950262 00000 n +0001950524 00000 n +0001950786 00000 n +0001951051 00000 n +0001951316 00000 n +0001951577 00000 n +0001951842 00000 n +0001952107 00000 n +0001952368 00000 n +0001952627 00000 n +0001952868 00000 n +0001953117 00000 n +0001953363 00000 n +0001953618 00000 n +0001953915 00000 n +0001954214 00000 n +0001954510 00000 n +0001954809 00000 n +0001955108 00000 n +0001955404 00000 n +0001955701 00000 n +0001956000 00000 n +0001956299 00000 n +0001956603 00000 n +0001956902 00000 n +0001957215 00000 n +0001957527 00000 n +0001957840 00000 n +0001958152 00000 n +0001958465 00000 n +0001958777 00000 n +0001959085 00000 n +0001959392 00000 n +0001959705 00000 n +0001960017 00000 n +0001960330 00000 n +0001960642 00000 n +0001960955 00000 n +0001961267 00000 n +0001961574 00000 n +0001961874 00000 n +0001962179 00000 n +0001962484 00000 n +0001962789 00000 n +0001963094 00000 n +0001963399 00000 n +0001963700 00000 n +0001964005 00000 n +0001964301 00000 n +0001964606 00000 n +0001964911 00000 n +0001965211 00000 n +0001965511 00000 n +0001965816 00000 n +0001966121 00000 n +0001966426 00000 n +0001966731 00000 n +0001967038 00000 n +0001967346 00000 n +0001967653 00000 n +0001967961 00000 n +0001968261 00000 n +0001968572 00000 n +0001968883 00000 n +0001969194 00000 n +0001969499 00000 n +0001969810 00000 n +0001970121 00000 n +0001970432 00000 n +0001970737 00000 n +0001971110 00000 n +0001971517 00000 n +0001971958 00000 n +0001972361 00000 n +0001972573 00000 n +0001972790 00000 n +0001973005 00000 n +0001973220 00000 n +0001973437 00000 n +0001973653 00000 n +0001973870 00000 n +0001974086 00000 n +0001974303 00000 n +0001974519 00000 n +0001974736 00000 n +0001974952 00000 n +0001975169 00000 n +0001975384 00000 n +0001975599 00000 n +0001975816 00000 n +0001976032 00000 n +0001976249 00000 n +0001976463 00000 n +0001976680 00000 n +0001976896 00000 n +0001977113 00000 n +0001977329 00000 n +0001977546 00000 n +0001977762 00000 n +0001977979 00000 n +0001978194 00000 n +0001978409 00000 n +0001978626 00000 n +0001978842 00000 n +0001979059 00000 n +0001979275 00000 n +0001979492 00000 n +0001979708 00000 n +0001979925 00000 n +0001980141 00000 n +0001980358 00000 n +0001980570 00000 n +0001980787 00000 n +0001981002 00000 n +0001981217 00000 n +0001981434 00000 n +0001981645 00000 n +0001981853 00000 n +0001982062 00000 n +0001982270 00000 n +0001982479 00000 n +0001982686 00000 n +0001982893 00000 n +0001983102 00000 n +0001983310 00000 n +0001983519 00000 n +0001983727 00000 n +0001983936 00000 n +0001984306 00000 n +0001984827 00000 n +0001985280 00000 n +0001985743 00000 n +0001986200 00000 n +0001986589 00000 n +0001987046 00000 n +0001987503 00000 n +0001987850 00000 n +0001988315 00000 n +0001988780 00000 n +0001989245 00000 n +0001989710 00000 n +0001990107 00000 n +0001990572 00000 n +0001991037 00000 n +0001991502 00000 n +0001991929 00000 n +0001992087 00000 n +0001992297 00000 n +0001992472 00000 n +0001992648 00000 n +0001992789 00000 n +0001993009 00000 n +0001993216 00000 n +0001993404 00000 n +0001993598 00000 n +0001993801 00000 n +0001993986 00000 n +0001994104 00000 n +0001994221 00000 n +0001994339 00000 n +0001994457 00000 n +0001994575 00000 n +0001994692 00000 n +0001994808 00000 n +0001994924 00000 n +0001995084 00000 n +0001995219 00000 n +0001995343 00000 n +0001995466 00000 n +0001995591 00000 n +0001995719 00000 n +0001995847 00000 n +0001995973 00000 n +0001996104 00000 n +0001996242 00000 n +0001996380 00000 n +0001996518 00000 n +0001996656 00000 n +0001996792 00000 n +0001996933 00000 n +0001997081 00000 n +0001997231 00000 n +0001997381 00000 n +0001997530 00000 n +0001997677 00000 n +0001997825 00000 n +0001997973 00000 n +0001998122 00000 n +0001998288 00000 n +0001998442 00000 n +0001998568 00000 n +0001998694 00000 n +0001998820 00000 n +0001998946 00000 n +0001999072 00000 n +0001999197 00000 n +0001999322 00000 n +0001999445 00000 n +0001999600 00000 n +0001999787 00000 n +0001999975 00000 n +0002000124 00000 n +0002000294 00000 n +0002000466 00000 n +0002000583 00000 n +0002000704 00000 n +0002000837 00000 n +0002000981 00000 n +0002001131 00000 n +0002001269 00000 n +0002001426 00000 n +0002001584 00000 n +0002001716 00000 n +0002001873 00000 n +0002001994 00000 n +0002002034 00000 n +0002002217 00000 n +trailer +<< /Size 9354 +/Root 9352 0 R +/Info 9353 0 R +/ID [<D467BB00AE1CAAC1709E5CDEDC3D88BB> <D467BB00AE1CAAC1709E5CDEDC3D88BB>] >> +startxref +2002493 +%%EOF diff --git a/doc/doxygen/src/RcdMathLib.doxyfile b/doc/doxygen/src/RcdMathLib.doxyfile new file mode 100644 index 0000000000000000000000000000000000000000..98a14103e4933b09b847215c4cb46dc3599515dc --- /dev/null +++ b/doc/doxygen/src/RcdMathLib.doxyfile @@ -0,0 +1,2585 @@ +# Doxyfile 1.8.16 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "RcdMathLib_doc" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "Open Source Library for Linear and Non-linear Algebra" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = ./.. + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = NO + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = YES + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is +# Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 1 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# (including Cygwin) ands Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = YES + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if <section_label> ... \endif and \cond <section_label> +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = . \ + .\..\..\..\..\RcdMathLib \ + .\..\..\..\linear_algebra\doc.txt \ + .\..\..\..\linear_algebra\basic_operations\doc.txt \ + .\..\..\..\linear_algebra\matrix_decompositions\doc.txt \ + .\..\..\..\linear_algebra\utilities\doc.txt \ + .\..\..\..\linear_algebra\pseudo_inverse\doc.txt \ + .\..\..\..\linear_algebra\solve_linear_equations\doc.txt \ + .\..\..\..\localization\doc.txt \ + .\..\..\..\localization\position_algos\doc.txt \ + .\..\..\..\localization\position_algos\distance_based\doc.txt \ + .\..\..\..\localization\position_algos\magnetic_based\doc.txt \ + .\..\..\..\localization\position_algos\pos_algos_common\doc.txt \ + .\..\..\..\localization\position_optimization\doc.txt \ + .\..\..\..\non_linear_algebra\doc.txt \ + .\..\..\..\non_linear_algebra\solve_non_linear_equations\doc.txt \ + .\..\..\..\non_linear_algebra\optimization\doc.txt \ + .\..\..\..\examples\doc.txt + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f \ + *.for \ + *.tcl \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = ./figures/ + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# <filter> <input-file> +# +# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files +# were built. This is equivalent to specifying the "-p" option to a clang tool, +# such as clang-check. These options will then be passed to the parser. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: https://developer.apple.com/xcode/), introduced with OSX +# 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use <access key> + S +# (what the <access key> is depends on the OS and browser, but it is typically +# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down +# key> to jump into the search results window, the results can be navigated +# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel +# the search. The filter options can be selected when the cursor is inside the +# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> +# to select a filter and <Enter> or <escape> to activate or cancel the filter +# option. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a web server instead of a web client using Javascript. There +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SERVER_BASED_SEARCH = NO + +# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain the +# search results. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: https://xapian.org/). +# +# See the section "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH = NO + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will return the search results when EXTERNAL_SEARCH is enabled. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: https://xapian.org/). See the section "External Indexing and +# Searching" for details. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. +# The default file is: searchdata.xml. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of +# to a relative location where the documentation can be found. The format is: +# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTRA_SEARCH_MAPPINGS = + +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# The default value is: YES. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. +# +# Note that when not enabling USE_PDFLATEX the default is latex when enabling +# USE_PDFLATEX the default is pdflatex and when in the later case latex is +# chosen this is overwritten by pdflatex. For specific output languages the +# default can have been set differently, this depends on the implementation of +# the output language. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_CMD_NAME = + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate +# index for LaTeX. +# Note: This tag is used in the Makefile / make.bat. +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file +# (.tex). +# The default file is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +MAKEINDEX_CMD_NAME = makeindex + +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to +# generate index for LaTeX. In case there is no backslash (\) as first character +# it will be automatically added in the LaTeX code. +# Note: This tag is used in the generated output file (.tex). +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. +# The default value is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_MAKEINDEX_CMD = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used by the +# printer. +# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x +# 14 inches) and executive (7.25 x 10.5 inches). +# The default value is: a4. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} +# If left blank no extra packages will be included. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +EXTRA_PACKAGES = amsmath \ + svg + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the +# generated LaTeX document. The header should contain everything until the first +# chapter. If it is left blank doxygen will generate a standard header. See +# section "Doxygen usage" for information on how to let doxygen write the +# default header to a separate file. +# +# Note: Only use a user-defined header if you know what you are doing! The +# following commands have a special meaning inside the header: $title, +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the +# generated LaTeX document. The footer should contain everything after the last +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. +# +# Note: Only use a user-defined footer if you know what you are doing! +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_FOOTER = + +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the LATEX_OUTPUT output +# directory. Note that the files will be copied as-is; there are no commands or +# markers available. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is +# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will +# contain links (just like the HTML output) instead of page references. This +# makes the output suitable for online browsing using a PDF viewer. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES, to get a +# higher quality PDF documentation. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode +# command to the generated LaTeX files. This will instruct LaTeX to keep running +# if errors occur, instead of asking the user for help. This option is also used +# when generating formulas in HTML. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BATCHMODE = NO + +# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# index chapters (such as File Index, Compound Index, etc.) in the output. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HIDE_INDICES = NO + +# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source +# code with syntax highlighting in the LaTeX output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. See +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# The default value is: plain. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BIB_STYLE = plain + +# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_TIMESTAMP = NO + +# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) +# path from which the emoji images will be read. If a relative path is entered, +# it will be relative to the LATEX_OUTPUT directory. If left blank the +# LATEX_OUTPUT directory will be used. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EMOJI_DIRECTORY = + +#--------------------------------------------------------------------------- +# Configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# RTF output is optimized for Word 97 and may not look too pretty with other RTF +# readers/editors. +# The default value is: NO. + +GENERATE_RTF = YES + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: rtf. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will +# contain hyperlink fields. The RTF file will contain links (just like the HTML +# output) instead of page references. This makes the output suitable for online +# browsing using Word or some other Word compatible readers that support those +# fields. +# +# Note: WordPad (write) and others do not support links. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# configuration file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. +# +# See also section "Doxygen usage" for information on how to generate the +# default style sheet that doxygen normally uses. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an RTF document. Syntax is +# similar to doxygen's configuration file. A template extensions file can be +# generated using doxygen -e rtf extensionFile. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_EXTENSIONS_FILE = + +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# classes and files. +# The default value is: NO. + +GENERATE_MAN = YES + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. A directory man3 will be created inside the directory specified by +# MAN_OUTPUT. +# The default directory is: man. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to the generated +# man pages. In case the manual section does not start with a number, the number +# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is +# optional. +# The default value is: .3. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_EXTENSION = .3 + +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + +# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# will generate one additional man file for each entity documented in the real +# man page(s). These additional files only source the real man page, but without +# them the man command would be unable to find the correct page. +# The default value is: NO. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# captures the structure of the code including all documentation. +# The default value is: NO. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: xml. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_OUTPUT = xml + +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# listings (including syntax highlighting and cross-referencing information) to +# the XML output. Note that enabling this will significantly increase the size +# of the XML output. +# The default value is: YES. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_PROGRAMLISTING = YES + +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# namespace members in file scope as well, matching the HTML output. +# The default value is: NO. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_NS_MEMB_FILE_SCOPE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- + +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# that can be used to generate PDF. +# The default value is: NO. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. +# The default directory is: docbook. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_OUTPUT = docbook + +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + +#--------------------------------------------------------------------------- +# Configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# the structure of the code including all documentation. Note that this feature +# is still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# file that captures the structure of the code including all documentation. +# +# Note that this feature is still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI +# output from the Perl module output. +# The default value is: NO. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# formatted so it can be parsed by a human reader. This is useful if you want to +# understand what is going on. On the other hand, if this tag is set to NO, the +# size of the Perl module output will be much smaller and Perl will parse it +# just the same. +# The default value is: YES. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file are +# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful +# so different doxyrules.make files included by the same Makefile don't +# overwrite each other's variables. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# C-preprocessor directives found in the sources and include files. +# The default value is: YES. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be +# performed. Macro expansion can be done in a controlled way by setting +# EXPAND_ONLY_PREDEF to YES. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then +# the macro expansion is limited to the macros specified with the PREDEFINED and +# EXPAND_AS_DEFINED tags. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# INCLUDE_PATH will be searched if a #include is found. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by the +# preprocessor. +# This tag requires that the tag SEARCH_INCLUDES is set to YES. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will be +# used. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that are +# defined before the preprocessor is started (similar to the -D option of e.g. +# gcc). The argument of the tag is a list of macros of the form: name or +# name=definition (no spaces). If the definition and the "=" are omitted, "=1" +# is assumed. To prevent a macro definition from being undefined via #undef or +# recursively expanded use the := operator instead of the = operator. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this +# tag can be used to specify a list of macro names that should be expanded. The +# macro definition that is found in the sources will be used. Use the PREDEFINED +# tag if you want to use a different macro definition that overrules the +# definition found in the source code. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not +# removed. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tag files. For each tag +# file the location of the external documentation should be added. The format of +# a tag file without this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where loc1 and loc2 can be relative or absolute paths or URLs. See the +# section "Linking to external documentation" for more information about the use +# of tag files. +# Note: Each tag file must have a unique name (where the name does NOT include +# the path). If a tag file is not located in the directory in which doxygen is +# run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# tag file that is based on the input files it reads. See section "Linking to +# external documentation" for more information about the usage of tag files. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. +# The default value is: NO. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be +# listed. +# The default value is: YES. + +EXTERNAL_GROUPS = YES + +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# the related pages index. If set to NO, only the current project's pages will +# be listed. +# The default value is: YES. + +EXTERNAL_PAGES = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram +# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to +# NO turns the diagrams off. Note that this option also works with HAVE_DOT +# disabled, but it is recommended to install and use dot, since it yields more +# powerful graphs. +# The default value is: YES. + +CLASS_DIAGRAMS = NO + +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. + +DIA_PATH = + +# If set to YES the inheritance and collaboration graphs will hide inheritance +# and usage relations if the target is undocumented or is not a class. +# The default value is: YES. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz (see: +# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# Bell Labs. The other options in this section have no effect if this option is +# set to NO +# The default value is: NO. + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed +# to run in parallel. When set to 0 doxygen will base this on the number of +# processors available in the system. You can set it explicitly to a value +# larger than 0 to get control over the balance between CPU load and processing +# speed. +# Minimum value: 0, maximum value: 32, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NUM_THREADS = 0 + +# When you want a differently looking font in the dot files that doxygen +# generates you can specify the font name using DOT_FONTNAME. You need to make +# sure dot is able to find the font, which can be done by putting it in a +# standard location or by setting the DOTFONTPATH environment variable or by +# setting DOT_FONTPATH to the directory containing the font. +# The default value is: Helvetica. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of +# dot graphs. +# Minimum value: 4, maximum value: 24, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the default font as specified with +# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set +# the path where dot can find it using this tag. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTPATH = + +# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for +# each documented class showing the direct and indirect inheritance relations. +# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# graph for each documented class showing the direct and indirect implementation +# dependencies (inheritance, containment, and class references variables) of the +# class with other documented classes. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# groups, showing the direct groups dependencies. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside the +# class node. If there are many fields or methods and many nodes the graph may +# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the +# number of items for each type to make the size more manageable. Set this to 0 +# for no limit. Note that the threshold may be exceeded by 50% before the limit +# is enforced. So when you set the threshold to 10, up to 15 fields may appear, +# but if the number exceeds 15, the total amount of fields shown is limited to +# 10. +# Minimum value: 0, maximum value: 100, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LIMIT_NUM_FIELDS = 10 + +# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and +# collaboration graphs will show the relations between templates and their +# instances. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +TEMPLATE_RELATIONS = NO + +# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to +# YES then doxygen will generate a graph for each documented file showing the +# direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDE_GRAPH = YES + +# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are +# set to YES then doxygen will generate a graph for each documented file showing +# the direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# hierarchy of all classes instead of a textual one. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# dependencies a directory has on other directories in a graphical way. The +# dependency relations are determined by the #include relations between the +# files in the directories. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. For an explanation of the image formats see the section +# output formats in the documentation of the dot tool (Graphviz (see: +# http://www.graphviz.org/)). +# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order +# to make the SVG files visible in IE 9+ (other browsers do not have this +# requirement). +# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo, +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. +# The default value is: png. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# +# Note that this requires a modern browser other than Internet Explorer. Tested +# and working are Firefox, Chrome, Safari, and Opera. +# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make +# the SVG files visible. Older versions of IE do not have SVG support. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +INTERACTIVE_SVG = NO + +# The DOT_PATH tag can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the \dotfile +# command). +# This tag requires that the tag HAVE_DOT is set to YES. + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = + +# The DIAFILE_DIRS tag can be used to specify one or more directories that +# contain dia files that are included in the documentation (see the \diafile +# command). + +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. + +PLANTUML_JAR_PATH = + +# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for plantuml. + +PLANTUML_CFG_FILE = + +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes +# that will be shown in the graph. If the number of nodes in a graph becomes +# larger than this value, doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that doxygen if the number of direct +# children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that +# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. +# Minimum value: 0, maximum value: 10000, default value: 50. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs +# generated by dot. A depth value of 3 means that only nodes reachable from the +# root by following a path via at most 3 edges will be shown. Nodes that lay +# further from the root node will be omitted. Note that setting this option to 1 +# or 2 may greatly reduce the computation time needed for large code bases. Also +# note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. +# Minimum value: 0, maximum value: 1000, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not seem +# to support this out of the box. +# +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) support +# this, this feature is disabled by default. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# explaining the meaning of the various boxes and arrows in the dot generated +# graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# files that are used to generate the various graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_CLEANUP = YES diff --git a/doc/doxygen/src/RcdMathLib.doxyfile.bak b/doc/doxygen/src/RcdMathLib.doxyfile.bak new file mode 100644 index 0000000000000000000000000000000000000000..98a14103e4933b09b847215c4cb46dc3599515dc --- /dev/null +++ b/doc/doxygen/src/RcdMathLib.doxyfile.bak @@ -0,0 +1,2585 @@ +# Doxyfile 1.8.16 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "RcdMathLib_doc" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "Open Source Library for Linear and Non-linear Algebra" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = ./.. + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = NO + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = YES + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is +# Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 1 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# (including Cygwin) ands Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = YES + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if <section_label> ... \endif and \cond <section_label> +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = . \ + .\..\..\..\..\RcdMathLib \ + .\..\..\..\linear_algebra\doc.txt \ + .\..\..\..\linear_algebra\basic_operations\doc.txt \ + .\..\..\..\linear_algebra\matrix_decompositions\doc.txt \ + .\..\..\..\linear_algebra\utilities\doc.txt \ + .\..\..\..\linear_algebra\pseudo_inverse\doc.txt \ + .\..\..\..\linear_algebra\solve_linear_equations\doc.txt \ + .\..\..\..\localization\doc.txt \ + .\..\..\..\localization\position_algos\doc.txt \ + .\..\..\..\localization\position_algos\distance_based\doc.txt \ + .\..\..\..\localization\position_algos\magnetic_based\doc.txt \ + .\..\..\..\localization\position_algos\pos_algos_common\doc.txt \ + .\..\..\..\localization\position_optimization\doc.txt \ + .\..\..\..\non_linear_algebra\doc.txt \ + .\..\..\..\non_linear_algebra\solve_non_linear_equations\doc.txt \ + .\..\..\..\non_linear_algebra\optimization\doc.txt \ + .\..\..\..\examples\doc.txt + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f \ + *.for \ + *.tcl \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = ./figures/ + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# <filter> <input-file> +# +# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files +# were built. This is equivalent to specifying the "-p" option to a clang tool, +# such as clang-check. These options will then be passed to the parser. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: https://developer.apple.com/xcode/), introduced with OSX +# 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use <access key> + S +# (what the <access key> is depends on the OS and browser, but it is typically +# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down +# key> to jump into the search results window, the results can be navigated +# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel +# the search. The filter options can be selected when the cursor is inside the +# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> +# to select a filter and <Enter> or <escape> to activate or cancel the filter +# option. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a web server instead of a web client using Javascript. There +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SERVER_BASED_SEARCH = NO + +# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain the +# search results. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: https://xapian.org/). +# +# See the section "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH = NO + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will return the search results when EXTERNAL_SEARCH is enabled. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: https://xapian.org/). See the section "External Indexing and +# Searching" for details. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. +# The default file is: searchdata.xml. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of +# to a relative location where the documentation can be found. The format is: +# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTRA_SEARCH_MAPPINGS = + +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# The default value is: YES. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. +# +# Note that when not enabling USE_PDFLATEX the default is latex when enabling +# USE_PDFLATEX the default is pdflatex and when in the later case latex is +# chosen this is overwritten by pdflatex. For specific output languages the +# default can have been set differently, this depends on the implementation of +# the output language. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_CMD_NAME = + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate +# index for LaTeX. +# Note: This tag is used in the Makefile / make.bat. +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file +# (.tex). +# The default file is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +MAKEINDEX_CMD_NAME = makeindex + +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to +# generate index for LaTeX. In case there is no backslash (\) as first character +# it will be automatically added in the LaTeX code. +# Note: This tag is used in the generated output file (.tex). +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. +# The default value is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_MAKEINDEX_CMD = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used by the +# printer. +# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x +# 14 inches) and executive (7.25 x 10.5 inches). +# The default value is: a4. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} +# If left blank no extra packages will be included. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +EXTRA_PACKAGES = amsmath \ + svg + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the +# generated LaTeX document. The header should contain everything until the first +# chapter. If it is left blank doxygen will generate a standard header. See +# section "Doxygen usage" for information on how to let doxygen write the +# default header to a separate file. +# +# Note: Only use a user-defined header if you know what you are doing! The +# following commands have a special meaning inside the header: $title, +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the +# generated LaTeX document. The footer should contain everything after the last +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. +# +# Note: Only use a user-defined footer if you know what you are doing! +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_FOOTER = + +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the LATEX_OUTPUT output +# directory. Note that the files will be copied as-is; there are no commands or +# markers available. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is +# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will +# contain links (just like the HTML output) instead of page references. This +# makes the output suitable for online browsing using a PDF viewer. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES, to get a +# higher quality PDF documentation. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode +# command to the generated LaTeX files. This will instruct LaTeX to keep running +# if errors occur, instead of asking the user for help. This option is also used +# when generating formulas in HTML. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BATCHMODE = NO + +# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# index chapters (such as File Index, Compound Index, etc.) in the output. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HIDE_INDICES = NO + +# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source +# code with syntax highlighting in the LaTeX output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. See +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# The default value is: plain. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BIB_STYLE = plain + +# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_TIMESTAMP = NO + +# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) +# path from which the emoji images will be read. If a relative path is entered, +# it will be relative to the LATEX_OUTPUT directory. If left blank the +# LATEX_OUTPUT directory will be used. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EMOJI_DIRECTORY = + +#--------------------------------------------------------------------------- +# Configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# RTF output is optimized for Word 97 and may not look too pretty with other RTF +# readers/editors. +# The default value is: NO. + +GENERATE_RTF = YES + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: rtf. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will +# contain hyperlink fields. The RTF file will contain links (just like the HTML +# output) instead of page references. This makes the output suitable for online +# browsing using Word or some other Word compatible readers that support those +# fields. +# +# Note: WordPad (write) and others do not support links. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# configuration file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. +# +# See also section "Doxygen usage" for information on how to generate the +# default style sheet that doxygen normally uses. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an RTF document. Syntax is +# similar to doxygen's configuration file. A template extensions file can be +# generated using doxygen -e rtf extensionFile. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_EXTENSIONS_FILE = + +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# classes and files. +# The default value is: NO. + +GENERATE_MAN = YES + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. A directory man3 will be created inside the directory specified by +# MAN_OUTPUT. +# The default directory is: man. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to the generated +# man pages. In case the manual section does not start with a number, the number +# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is +# optional. +# The default value is: .3. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_EXTENSION = .3 + +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + +# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# will generate one additional man file for each entity documented in the real +# man page(s). These additional files only source the real man page, but without +# them the man command would be unable to find the correct page. +# The default value is: NO. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# captures the structure of the code including all documentation. +# The default value is: NO. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: xml. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_OUTPUT = xml + +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# listings (including syntax highlighting and cross-referencing information) to +# the XML output. Note that enabling this will significantly increase the size +# of the XML output. +# The default value is: YES. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_PROGRAMLISTING = YES + +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# namespace members in file scope as well, matching the HTML output. +# The default value is: NO. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_NS_MEMB_FILE_SCOPE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- + +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# that can be used to generate PDF. +# The default value is: NO. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. +# The default directory is: docbook. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_OUTPUT = docbook + +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + +#--------------------------------------------------------------------------- +# Configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# the structure of the code including all documentation. Note that this feature +# is still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# file that captures the structure of the code including all documentation. +# +# Note that this feature is still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI +# output from the Perl module output. +# The default value is: NO. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# formatted so it can be parsed by a human reader. This is useful if you want to +# understand what is going on. On the other hand, if this tag is set to NO, the +# size of the Perl module output will be much smaller and Perl will parse it +# just the same. +# The default value is: YES. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file are +# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful +# so different doxyrules.make files included by the same Makefile don't +# overwrite each other's variables. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# C-preprocessor directives found in the sources and include files. +# The default value is: YES. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be +# performed. Macro expansion can be done in a controlled way by setting +# EXPAND_ONLY_PREDEF to YES. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then +# the macro expansion is limited to the macros specified with the PREDEFINED and +# EXPAND_AS_DEFINED tags. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# INCLUDE_PATH will be searched if a #include is found. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by the +# preprocessor. +# This tag requires that the tag SEARCH_INCLUDES is set to YES. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will be +# used. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that are +# defined before the preprocessor is started (similar to the -D option of e.g. +# gcc). The argument of the tag is a list of macros of the form: name or +# name=definition (no spaces). If the definition and the "=" are omitted, "=1" +# is assumed. To prevent a macro definition from being undefined via #undef or +# recursively expanded use the := operator instead of the = operator. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this +# tag can be used to specify a list of macro names that should be expanded. The +# macro definition that is found in the sources will be used. Use the PREDEFINED +# tag if you want to use a different macro definition that overrules the +# definition found in the source code. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not +# removed. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tag files. For each tag +# file the location of the external documentation should be added. The format of +# a tag file without this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where loc1 and loc2 can be relative or absolute paths or URLs. See the +# section "Linking to external documentation" for more information about the use +# of tag files. +# Note: Each tag file must have a unique name (where the name does NOT include +# the path). If a tag file is not located in the directory in which doxygen is +# run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# tag file that is based on the input files it reads. See section "Linking to +# external documentation" for more information about the usage of tag files. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. +# The default value is: NO. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be +# listed. +# The default value is: YES. + +EXTERNAL_GROUPS = YES + +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# the related pages index. If set to NO, only the current project's pages will +# be listed. +# The default value is: YES. + +EXTERNAL_PAGES = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram +# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to +# NO turns the diagrams off. Note that this option also works with HAVE_DOT +# disabled, but it is recommended to install and use dot, since it yields more +# powerful graphs. +# The default value is: YES. + +CLASS_DIAGRAMS = NO + +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. + +DIA_PATH = + +# If set to YES the inheritance and collaboration graphs will hide inheritance +# and usage relations if the target is undocumented or is not a class. +# The default value is: YES. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz (see: +# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# Bell Labs. The other options in this section have no effect if this option is +# set to NO +# The default value is: NO. + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed +# to run in parallel. When set to 0 doxygen will base this on the number of +# processors available in the system. You can set it explicitly to a value +# larger than 0 to get control over the balance between CPU load and processing +# speed. +# Minimum value: 0, maximum value: 32, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NUM_THREADS = 0 + +# When you want a differently looking font in the dot files that doxygen +# generates you can specify the font name using DOT_FONTNAME. You need to make +# sure dot is able to find the font, which can be done by putting it in a +# standard location or by setting the DOTFONTPATH environment variable or by +# setting DOT_FONTPATH to the directory containing the font. +# The default value is: Helvetica. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of +# dot graphs. +# Minimum value: 4, maximum value: 24, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the default font as specified with +# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set +# the path where dot can find it using this tag. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTPATH = + +# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for +# each documented class showing the direct and indirect inheritance relations. +# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# graph for each documented class showing the direct and indirect implementation +# dependencies (inheritance, containment, and class references variables) of the +# class with other documented classes. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# groups, showing the direct groups dependencies. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside the +# class node. If there are many fields or methods and many nodes the graph may +# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the +# number of items for each type to make the size more manageable. Set this to 0 +# for no limit. Note that the threshold may be exceeded by 50% before the limit +# is enforced. So when you set the threshold to 10, up to 15 fields may appear, +# but if the number exceeds 15, the total amount of fields shown is limited to +# 10. +# Minimum value: 0, maximum value: 100, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LIMIT_NUM_FIELDS = 10 + +# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and +# collaboration graphs will show the relations between templates and their +# instances. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +TEMPLATE_RELATIONS = NO + +# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to +# YES then doxygen will generate a graph for each documented file showing the +# direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDE_GRAPH = YES + +# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are +# set to YES then doxygen will generate a graph for each documented file showing +# the direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# hierarchy of all classes instead of a textual one. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# dependencies a directory has on other directories in a graphical way. The +# dependency relations are determined by the #include relations between the +# files in the directories. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. For an explanation of the image formats see the section +# output formats in the documentation of the dot tool (Graphviz (see: +# http://www.graphviz.org/)). +# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order +# to make the SVG files visible in IE 9+ (other browsers do not have this +# requirement). +# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo, +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. +# The default value is: png. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# +# Note that this requires a modern browser other than Internet Explorer. Tested +# and working are Firefox, Chrome, Safari, and Opera. +# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make +# the SVG files visible. Older versions of IE do not have SVG support. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +INTERACTIVE_SVG = NO + +# The DOT_PATH tag can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the \dotfile +# command). +# This tag requires that the tag HAVE_DOT is set to YES. + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = + +# The DIAFILE_DIRS tag can be used to specify one or more directories that +# contain dia files that are included in the documentation (see the \diafile +# command). + +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. + +PLANTUML_JAR_PATH = + +# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for plantuml. + +PLANTUML_CFG_FILE = + +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes +# that will be shown in the graph. If the number of nodes in a graph becomes +# larger than this value, doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that doxygen if the number of direct +# children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that +# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. +# Minimum value: 0, maximum value: 10000, default value: 50. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs +# generated by dot. A depth value of 3 means that only nodes reachable from the +# root by following a path via at most 3 edges will be shown. Nodes that lay +# further from the root node will be omitted. Note that setting this option to 1 +# or 2 may greatly reduce the computation time needed for large code bases. Also +# note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. +# Minimum value: 0, maximum value: 1000, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not seem +# to support this out of the box. +# +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) support +# this, this feature is disabled by default. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# explaining the meaning of the various boxes and arrows in the dot generated +# graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# files that are used to generate the various graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_CLEANUP = YES diff --git a/doc/doxygen/src/creating-an-application.md b/doc/doxygen/src/creating-an-application.md new file mode 100644 index 0000000000000000000000000000000000000000..0980343e43fed2d585f3768783b6880ee8888ae6 --- /dev/null +++ b/doc/doxygen/src/creating-an-application.md @@ -0,0 +1,113 @@ +Creating an application {#creating-an-application} +======================= +\author Zakaria Kasmi + +[TOC] + +An application can be created for full-fledged or resource-limited devices. + +Creating an application for full-fledged devices {#creating-an-application-full-fledge} +================================================ +We recommend to use the [Eclipse IDE] (https://www.eclipse.org/) for C/C++ Developers for creating +own application. The simplest way to write your own application, is to put your *.c and *.h files under the +`src` directory. Another way is to create a directory containing the multiple C file(s) with your +source code. The header files can be imported in the Eclipse IDE by opening Project->Properties and +selecting ''C/C++ General->Paths and Symbols->Languages->GNU C'' from the Selection Wizard. Click the ''Add..'' +button to browse to the header-directory and the select the ''Apply'' and ''OK'' buttons. The users can be +oriented to the main.c and the examples under the src-directory. + + +Creating an application for resource-limited devices {#creating-an-application-res-lim} +==================================================== +To create your own application for a resource limited device you need to create a directory +containing one or multiple C file(s) with your source code and a Makefile. An example Makefile is +available in the `src` folder of the [RcdMathLib repository] +(https://git.imp.fu-berlin.de/zkasmi/my_lib_full_fledged_devices/tree/master/RcdMathLib_app). + +The main function {#the-main-function} +================= +RIOT starts two threads the idle and main threads after the board is initialized. +The idle thread has the lowest priority while the main thread has a priority that +is in the middle between the lowest and the highest available priorities. The main +thread is the first that runs and calls the `main()` function. +This function needs to be defined in the source code of each application +(typically located in the `main.c` file). + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.c} +#include <stdio.h> + +#include "matrix_test.h" +#include "vector_test.h" + +int main(void) +{ + puts("RcdMathLib Application!"); + // Test the basic operations module; + matrix_test(); + vector_test(); + + return EXIT_SUCCESS; +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The above C code shows an application testing the basic operations sub-modules. +This application run operations of the vector and matrix sub-modules. + +The application's Makefile {#the-applications-makefile} +========================== +The minimal Makefile {#the-minimal-makefile} +-------------------- +At minimum the Makefile of an application (see @ref getting-started) needs to +define the following macros: + * `APPLICATION`: contains the name of your application + * `RIOTBASE`: specifies the path to your copy of the RIOT repository (note, + the `$(CURDIR)` macro can be used to give a relative path) + * `RCDMATHLIB`: specifies the path to the copy of the RcdMathLib repository (note, + the `$(CURDIR)` macro can be used to give a relative path) + * `USEMODULE`: specifies the module of the RcdMathLib that you may want to use + +The `BOARD` macro is also required and recommended to be set to `native` by +default, but is recommended to be overridable with the `?=` operator. +Additionally, it is required to include the `Makefile.include` from the RcdMathLib and from the +`RIOTBASE`. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.mk} +# Set the name of your application: +APPLICATION = foobar + +# If no BOARD is found in the environment, use this default: +BOARD ?= native + +# This has to be the absolute path to the RcdMathLib base directory: +RCDMATHLIB ?= $(CURDIR)/../RcdMathLib + +# This has to be the absolute path to the RIOT base directory: +RIOTBASE ?= $(CURDIR)/../../RIOT + + +include $(RCDMATHLIB)/Makefile.include +include $(RIOTBASE)/Makefile.include +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Including modules {#including-modules} +----------------- +The modules of the RcdMathLib as well as of the RcdMathLib can be included. +In order to use additional modules, such as a particular driver or a system library, the modules' +names must be appended to the USEMODULE variable. For example, to build an application using the SHT11 +temperature sensor and UDP/IPv6 functionalities, the Makefile needs to contain the following lines: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.mk} +USEMODULE += sht11 +USEMODULE += gnrc_ipv6_default +USEMODULE += gnrc_udp +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For example, to create an application using the matrix decompositions, the pseudo-inverse, and solving +linear equations sub-modules, the Makefile must comprise the following lines: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.mk} +USEMODULE += matrix_decompositions +USEMODULE += pseudo_inverse +USEMODULE += utilities +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + diff --git a/doc/doxygen/src/creating-modules.md b/doc/doxygen/src/creating-modules.md new file mode 100644 index 0000000000000000000000000000000000000000..42510a8dbc681c7a603f757cdb0b4174347d647f --- /dev/null +++ b/doc/doxygen/src/creating-modules.md @@ -0,0 +1,64 @@ +Creating modules {#creating-modules} +================ + +\author Zakaria Kasmi + +[TOC] + +Well-defined units of code in the RcdMathLib that provide a set of features are encapsulated in a +module. RcdMathLib is module-based and composed of the following main modules: + +* Linear algebra module +* Non-Linear algebra module +* Localization module + +Each main module includes sub-modules, for more details see +@ref structure "The structure of the RcdMathLib". + +@note The following chapters concerning only resource-limited devices. + +The general structure {#the-general-structure} +===================== +Modules are directories containing source and header files as well as a Makefile. +Furthermore, their API can be defined in one or more header files, residing in the include path of +their super-module. + +For example, the matrix sub-module is implemented in the @ref basic_operations sub-module, in the +`linear_algebra/basic_operations` directory. Its API is defined in +`linear_algebra/basic_operations/matrix.h`. + +A module's Makefile just needs to include `Makefile.base` in the RIOT repository as well as +`Makefile.base` and `Makefile.include` in the RcdMathLib repository: + +~~~~~~~~~~~~~~~~~~~ {.mk} +include $(RIOTBASE)/Makefile.base +include $(RCDMATHLIB)/linear_algebra/matrix_decompositions/Makefile.include +include $(RCDMATHLIB)/linear_algebra/matrix_decompositions/Makefile.dep +~~~~~~~~~~~~~~~~~~~ + +The `Makefile.base` and `Makefile.include` macros in the example above are includes for +the linear algebra module. + +If your module's name differs from the name of the directory it resides in you +need to set the `MODULE` macro in addition. + +The `Makefile.dep` serves to define dependencies and the `Makefile.include` to append target +specific information to variables like INCLUDES. Modules can be used by adding their name to the +`USEMODULE` macro of the application's Makefile. + + +Module dependencies +=================== +The module may depend on other modules to minimize code duplication. These +dependencies are defined in `Makefile.dep` with the following syntax: + +~~~~~~~~~~~~~~~~~~~ {.mk} +ifneq (,$(filter your_module,$(USEMODULE))) # if module in USEMODULE + USEMODULE += dep1 # add dependencies to USEMODULE + USEMODULE += dep2 +endif +~~~~~~~~~~~~~~~~~~~ + +@note `Makefile.dep` is processed only once therefore, the dependency block for a module must be +added *before* dependencies pull in their dependencies. + diff --git a/doc/doxygen/src/figures/soft_architecture_01_09_2019.pdf b/doc/doxygen/src/figures/soft_architecture_01_09_2019.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9a462ab4d93972fa9fb1362503005b7c3f072808 Binary files /dev/null and b/doc/doxygen/src/figures/soft_architecture_01_09_2019.pdf differ diff --git a/doc/doxygen/src/figures/soft_architecture_01_09_2019.svg b/doc/doxygen/src/figures/soft_architecture_01_09_2019.svg new file mode 100644 index 0000000000000000000000000000000000000000..ff037a6bb0ba22fa2d0f451871709eba846c3184 --- /dev/null +++ b/doc/doxygen/src/figures/soft_architecture_01_09_2019.svg @@ -0,0 +1,2003 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="svg2" + xml:space="preserve" + width="1186.1445" + height="418.25763" + viewBox="0 0 1186.1445 418.2576" + sodipodi:docname="soft_architecture_01_09_2019.svg" + inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6"><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath24"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path22" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath36"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path34" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path50" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath68"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path66" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath84"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path82" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath98"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path96" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath114"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path112" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath128"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path126" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath144"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path142" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath156"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path154" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath172"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path170" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath188"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path186" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath204"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path202" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath218"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path216" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath234"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path232" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath248"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path246" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath264"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path262" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath276"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path274" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath292"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path290" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath308"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path306" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath320"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path318" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath336"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path334" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath348"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path346" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath364"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path362" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath376"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path374" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath392"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path390" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath404"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path402" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath420"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path418" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath432"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path430" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath448"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path446" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath460"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path458" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath476"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path474" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath488"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path486" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath504"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path502" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath518"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path516" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath534"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path532" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath548"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path546" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath564"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path562" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath576"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path574" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath592"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path590" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath604"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path602" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath620"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path618" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath632"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path630" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath648"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path646" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath662"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path660" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath678"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path676" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath692"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path690" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath708"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path706" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath720"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path718" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath736"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path734" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath748"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path746" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath764"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path762" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath776"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path774" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath792"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path790" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath808"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path806" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath824"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path822" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath836"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path834" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath852"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path850" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath864"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path862" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath880"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path878" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath892"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path890" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath908"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path906" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath920"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path918" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath936"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path934" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath948"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path946" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath964"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path962" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath978"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path976" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath994"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path992" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1008"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1006" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1024"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1022" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1036"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1034" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1052"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1050" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1064"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1062" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1080"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1078" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1092"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1090" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1108"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1106" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1122"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1120" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1138"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1136" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1152"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1150" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1168"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1166" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1180"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1178" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1196"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1194" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1210"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1208" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1226"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1224" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1240"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1238" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1256"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1254" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1268"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1266" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1284"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1282" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1298"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1296" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1314"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1312" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1328"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1326" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1344"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1342" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1356"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1354" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1372"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1370" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1386"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1384" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1402"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1400" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1416"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1414" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1432"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1430" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1444"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1442" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1460"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1458" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1474"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1472" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1490"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1488" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1504"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1502" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1520"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1518" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1532"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1530" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1548"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1546" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1562"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1560" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1578"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1576" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1592"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1590" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1608"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1606" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1620"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1618" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1636"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1634" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1650"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1648" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1666"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1664" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1680"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1678" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1696"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1694" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1708"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1706" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1724"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1722" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1738"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1736" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1754"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1752" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1768"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1766" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1784"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1782" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1796"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1794" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1812"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1810" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1826"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1824" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1842"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1840" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1856"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1854" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1872"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1870" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1884"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1882" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1900"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1898" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1916"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1914" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1932"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1930" + inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1600" + inkscape:window-height="837" + id="namedview4" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.9" + inkscape:cx="302.25914" + inkscape:cy="209.21945" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="g10" /><g + id="g10" + inkscape:groupmode="layer" + inkscape:label="soft_architecture_01_09_2019" + transform="matrix(1.3333333,0,0,1.3333333,-7207.5942,-2541.5378)"><g + id="g12" /><g + id="g14" + transform="matrix(0.07602841,0,0,0.07602841,5405.6958,1906.1534)"><g + id="g16"><g + id="g18"><g + id="g20" + clip-path="url(#clipPath24)"><g + id="g26"><g + id="g28"><g + id="g30"><g + id="g32" + clip-path="url(#clipPath36)"><g + id="g38"><g + id="g40" + transform="scale(1,-1)"><path + d="m -540,1496.973 h 12365.859 v -5892.66 H -540 Z" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path42" + inkscape:connector-curvature="0" /></g></g></g></g></g></g></g></g></g><g + id="g44"><g + id="g46"><g + id="g48" + clip-path="url(#clipPath52)"><g + id="g54"><g + id="g56" + transform="scale(1,-1)"><path + d="M 3237.129,-4112.227 7545.871,-16.156 11693.18,-4112.227 Z" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path58" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g60"><g + id="g62"><g + id="g64" + clip-path="url(#clipPath68)"><g + id="g70"><g + id="g72" + transform="scale(1,-1)"><path + d="m 3683.109,-3688.246 h 7580.789" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path74" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g76"><g + id="g78"><g + id="g80" + clip-path="url(#clipPath84)"><g + id="g86"><path + d="m 5698.039,4036.637 h 480.422 v -272.582 l 8.5,8.5 v 272.582 l -8.5,-8.5 8.5,8.5 h -480.422 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path88" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g90"><g + id="g92"><g + id="g94" + clip-path="url(#clipPath98)"><g + id="g100"><g + id="g102" + transform="scale(1,-1)"><path + d="m 5698.039,-4036.637 h 480.422 v 272.582 l 8.5,-8.5 v -272.582 l -8.5,8.5 8.5,-8.5 h -480.422 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path104" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g106"><g + id="g108"><g + id="g110" + clip-path="url(#clipPath114)"><g + id="g116"><path + d="m 5698.039,3764.055 h 480.422 v 272.582 h -480.422 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path118" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g120"><g + id="g122"><g + id="g124" + clip-path="url(#clipPath128)"><g + id="g130"><g + id="g132" + transform="scale(1,-1)"><path + d="m 5698.039,-3764.055 h 480.422 v -272.582 h -480.422 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path134" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g136"><g + id="g138"><g + id="g140" + clip-path="url(#clipPath144)"><g + id="g146"><g + id="g148"><g + id="g150"><g + id="g152" + clip-path="url(#clipPath156)"><g + id="g158"><text + transform="translate(5755.9699,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text162"><tspan + x="0 128.37306 194.66245 240.52426 286.38611" + y="0" + sodipodi:role="line" + id="tspan160">Utils</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g164"><g + id="g166"><g + id="g168" + clip-path="url(#clipPath172)"><g + id="g174"><g + id="g176" + transform="scale(1,-1)"><path + d="M 5625.23,-1841.996 H 9394.551" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path178" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g180"><g + id="g182"><g + id="g184" + clip-path="url(#clipPath188)"><g + id="g190"><g + id="g192" + transform="scale(1,-1)"><path + d="M 6475.391,-1033.797 H 8576.238" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path194" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g196"><g + id="g198"><g + id="g200" + clip-path="url(#clipPath204)"><g + id="g206"><path + d="M 6940.34,941.895 H 8105.391 V 669.316 l 8.5,8.5 v 272.579 l -8.5,-8.5 8.5,8.5 H 6948.852 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path208" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g210"><g + id="g212"><g + id="g214" + clip-path="url(#clipPath218)"><g + id="g220"><g + id="g222" + transform="scale(1,-1)"><path + d="m 6940.34,-941.895 h 1165.051 v 272.579 l 8.5,-8.5 v -272.579 l -8.5,8.5 8.5,-8.5 H 6948.852 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path224" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g226"><g + id="g228"><g + id="g230" + clip-path="url(#clipPath234)"><g + id="g236"><path + d="M 6940.34,669.316 H 8105.379 V 941.894 H 6940.34 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path238" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g240"><g + id="g242"><g + id="g244" + clip-path="url(#clipPath248)"><g + id="g250"><g + id="g252" + transform="scale(1,-1)"><path + d="M 6940.34,-669.316 H 8105.379 V -941.894 H 6940.34 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path254" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g256"><g + id="g258"><g + id="g260" + clip-path="url(#clipPath264)"><g + id="g266"><g + id="g268"><g + id="g270"><g + id="g272" + clip-path="url(#clipPath276)"><g + id="g278"><text + transform="translate(7023.4698,865.90536)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text282"><tspan + x="0 115.75606 220.297 325.43875 371.30057 417.16241 501.67636 597.00488 663.89502 709.7569 815.29919 920.44092" + y="0" + sodipodi:role="line" + id="tspan280">Applications</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g284"><g + id="g286"><g + id="g288" + clip-path="url(#clipPath292)"><g + id="g294"><g + id="g296" + transform="scale(1,-1)"><path + d="M 3654.988,-3687.023 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path298" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g300"><g + id="g302"><g + id="g304" + clip-path="url(#clipPath308)"><g + id="g310"><g + id="g312"><g + id="g314"><g + id="g316" + clip-path="url(#clipPath320)"><g + id="g322"><text + transform="translate(3.300001,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text326"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 585.38922 630.65021 720.97198 820.50616 904.0188 970.90894 1076.4513 1146.1453 1196.0125 1241.2734 1337.2028 1442.3445 1547.4863 1591.9462 1687.8756 1733.7374 1827.8643 1927.3984 2032.5402 2102.2341 2197.3625 2243.2244 2327.7383 2372.9993 2478.5415 2583.6833 2683.2175 2752.9114 2848.8408 2915.731 2961.5928 3067.135 3171.676" + y="0" + sodipodi:role="line" + id="tspan324">Matrix, vector, and algebraic operations</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g328"><g + id="g330"><g + id="g332" + clip-path="url(#clipPath336)"><g + id="g338"><g + id="g340"><g + id="g342"><g + id="g344" + clip-path="url(#clipPath348)"><g + id="g350"><text + transform="translate(972.04998,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text354"><tspan + x="0 91.923927 197.46622 243.32805 333.64981 379.51166 484.05258 578.1795 623.44049 728.98279 790.06512 834.72534 994.54083 1099.6826 1145.5444 1212.4346 1258.2964 1348.6182 1444.5475 1513.2401 1559.1019 1655.0312 1760.173 1827.0632 1872.3242 1918.186 1963.447 2068.5889 2168.123 2264.0522 2333.7463 2379.0073 2474.9368 2580.0784 2684.6194 2729.8804 2835.0222 2940.5645" + y="0" + sodipodi:role="line" + id="tspan352">Solving of multivariant linear and non</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g356"><g + id="g358"><g + id="g360" + clip-path="url(#clipPath364)"><g + id="g366"><g + id="g368"><g + id="g370"><g + id="g372" + clip-path="url(#clipPath376)"><g + id="g378"><text + transform="translate(4020.2699,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text382"><tspan + x="0" + y="0" + id="tspan380">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g384"><g + id="g386"><g + id="g388" + clip-path="url(#clipPath392)"><g + id="g394"><g + id="g396"><g + id="g398"><g + id="g400" + clip-path="url(#clipPath404)"><g + id="g406"><text + transform="translate(4081.4999,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text410"><tspan + x="0 45.861832 91.723663 196.8654 295.59851 391.52786 461.2218" + y="0" + sodipodi:role="line" + id="tspan408">linear </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g412"><g + id="g414"><g + id="g416" + clip-path="url(#clipPath420)"><g + id="g422"><g + id="g424"><g + id="g426"><g + id="g428" + clip-path="url(#clipPath432)"><g + id="g434"><text + transform="translate(1401.18,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text438"><tspan + x="0 99.534187 204.67593 309.81769 405.74701 472.63721 517.69794 623.24023 728.38196 773.64301 851.94855 942.47064 1019.9751 1086.8652 1186.3994 1346.215 1424.5205 1469.7815 1530.4634 1614.5768 1711.3071 1803.2311 1881.5366 1926.7976 2063.3818 2108.6428" + y="0" + sodipodi:role="line" + id="tspan436">equation systems (LESs & N</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g440"><g + id="g442"><g + id="g444" + clip-path="url(#clipPath448)"><g + id="g450"><g + id="g452"><g + id="g454"><g + id="g456" + clip-path="url(#clipPath460)"><g + id="g462"><text + transform="translate(3640.5799,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text466"><tspan + x="0" + y="0" + id="tspan464">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g468"><g + id="g470"><g + id="g472" + clip-path="url(#clipPath476)"><g + id="g478"><g + id="g480"><g + id="g482"><g + id="g484" + clip-path="url(#clipPath488)"><g + id="g490"><text + transform="translate(3701.7999,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text494"><tspan + x="0 84.113403 181.84515 273.76907 352.07465" + y="0" + sodipodi:role="line" + id="tspan492">LESs)</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g496"><g + id="g498"><g + id="g500" + clip-path="url(#clipPath504)"><g + id="g506"><path + d="m 4987.281,2778.254 h 2588.078 v -272.578 l 8.512,8.5 v 272.578 l -8.512,-8.5 8.512,8.5 h -2588.09 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path508" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g510"><g + id="g512"><g + id="g514" + clip-path="url(#clipPath518)"><g + id="g520"><g + id="g522" + transform="scale(1,-1)"><path + d="m 4987.281,-2778.254 h 2588.078 v 272.578 l 8.512,-8.5 v -272.578 l -8.512,8.5 8.512,-8.5 h -2588.09 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path524" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g526"><g + id="g528"><g + id="g530" + clip-path="url(#clipPath534)"><g + id="g536"><path + d="m 4987.281,2505.676 h 2588.09 v 272.578 h -2588.09 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path538" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g540"><g + id="g542"><g + id="g544" + clip-path="url(#clipPath548)"><g + id="g550"><g + id="g552" + transform="scale(1,-1)"><path + d="m 4987.281,-2505.676 h 2588.09 v -272.578 h -2588.09 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path554" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g556"><g + id="g558"><g + id="g560" + clip-path="url(#clipPath564)"><g + id="g566"><g + id="g568"><g + id="g570"><g + id="g572" + clip-path="url(#clipPath576)"><g + id="g578"><text + transform="translate(4996.2999,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text582"><tspan + x="0 91.923927 197.46622 243.32805 333.64981 432.18265 477.44366 637.25916 742.40088 788.2627 834.12457 924.44629 1019.7748 1089.4688 1135.3306 1231.26 1336.4017 1403.2919 1448.5529 1532.6663 1629.5969 1721.5209 1799.8265 1845.0875 1981.6716 2026.9326" + y="0" + sodipodi:role="line" + id="tspan580">Solve mulivariant LESs & N</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g584"><g + id="g586"><g + id="g588" + clip-path="url(#clipPath592)"><g + id="g594"><g + id="g596"><g + id="g598"><g + id="g600" + clip-path="url(#clipPath604)"><g + id="g606"><text + transform="translate(7154.0498,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text610"><tspan + x="0" + y="0" + id="tspan608">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g612"><g + id="g614"><g + id="g616" + clip-path="url(#clipPath620)"><g + id="g622"><g + id="g624"><g + id="g626"><g + id="g628" + clip-path="url(#clipPath632)"><g + id="g634"><text + transform="translate(7215.2998,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text638"><tspan + x="0 84.113403 181.84515 273.76907" + y="0" + sodipodi:role="line" + id="tspan636">LESs</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g640"><g + id="g642"><g + id="g644" + clip-path="url(#clipPath648)"><g + id="g650"><path + d="m 6087.379,3148.934 h 2877.922 v -272.579 l 8.5,8.512 v 272.578 l -8.5,-8.511 8.5,8.511 H 6095.879 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path652" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g654"><g + id="g656"><g + id="g658" + clip-path="url(#clipPath662)"><g + id="g664"><g + id="g666" + transform="scale(1,-1)"><path + d="m 6087.379,-3148.934 h 2877.922 v 272.579 l 8.5,-8.512 v -272.578 l -8.5,8.511 8.5,-8.511 H 6095.879 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path668" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g670"><g + id="g672"><g + id="g674" + clip-path="url(#clipPath678)"><g + id="g680"><path + d="m 6087.379,2876.355 h 2877.922 v 272.578 H 6087.379 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path682" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g684"><g + id="g686"><g + id="g688" + clip-path="url(#clipPath692)"><g + id="g694"><g + id="g696" + transform="scale(1,-1)"><path + d="m 6087.379,-2876.355 h 2877.922 v -272.578 H 6087.379 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path698" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g700"><g + id="g702"><g + id="g704" + clip-path="url(#clipPath708)"><g + id="g710"><g + id="g712"><g + id="g714"><g + id="g716" + clip-path="url(#clipPath720)"><g + id="g722"><text + transform="translate(6901.4498,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text726"><tspan + x="0 103.33932 181.64488 281.17908 386.32083 490.86176" + y="0" + sodipodi:role="line" + id="tspan724">Pseudo</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g728"><g + id="g730"><g + id="g732" + clip-path="url(#clipPath736)"><g + id="g738"><g + id="g740"><g + id="g742"><g + id="g744" + clip-path="url(#clipPath748)"><g + id="g750"><text + transform="translate(7498.1698,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text754"><tspan + x="0" + y="0" + id="tspan752">-</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g756"><g + id="g758"><g + id="g760" + clip-path="url(#clipPath764)"><g + id="g766"><g + id="g768"><g + id="g770"><g + id="g772" + clip-path="url(#clipPath776)"><g + id="g778"><text + transform="translate(7559.3998,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text782"><tspan + x="0 50.267769 155.40952 245.73129 344.46439 414.15836 492.46393" + y="0" + sodipodi:role="line" + id="tspan780">Inverse</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g784"><g + id="g786"><g + id="g788" + clip-path="url(#clipPath792)"><g + id="g794"><g + id="g796" + transform="scale(1,-1)"><path + d="M 5625.23,-1841.996 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path798" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g800"><g + id="g802"><g + id="g804" + clip-path="url(#clipPath808)"><g + id="g810"><g + id="g812" + transform="scale(1,-1)"><path + d="M 6475.391,-1033.797 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path814" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g816"><g + id="g818"><g + id="g820" + clip-path="url(#clipPath824)"><g + id="g826"><g + id="g828"><g + id="g830"><g + id="g832" + clip-path="url(#clipPath836)"><g + id="g838"><text + transform="translate(1113.25,2084.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text842"><tspan + x="0 123.16605 222.70024 289.59042 389.1246 458.81857 618.63403 664.49585 768.43597 864.3653 931.25549 977.11731 1082.6597 1187.8014 1232.2614 1337.8036 1398.886 1444.147 1540.0763 1645.218 1690.479 1785.6073 1890.749 1995.8909 2065.5847 2170.5264 2257.2432 2303.105 2462.9204 2558.8499 2625.74 2725.2742 2769.9343 2830.6162 2908.9216 2975.812 3071.7412 3140.8345 3207.7246 3268.4065" + y="0" + sodipodi:role="line" + id="tspan840">Determination of an approximate (start) </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g844"><g + id="g846"><g + id="g848" + clip-path="url(#clipPath852)"><g + id="g854"><g + id="g856"><g + id="g858"><g + id="g860" + clip-path="url(#clipPath864)"><g + id="g866"><text + transform="translate(2420.1699,2324.8053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text870"><tspan + x="0 105.14175 210.68404 288.98959 334.85144 401.74161 447.60345 552.14441" + y="0" + sodipodi:role="line" + id="tspan868">position</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g872"><g + id="g874"><g + id="g876" + clip-path="url(#clipPath880)"><g + id="g882"><g + id="g884"><g + id="g886"><g + id="g888" + clip-path="url(#clipPath892)"><g + id="g894"><text + transform="translate(15.220001,1479.7053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text898"><tspan + x="0 103.33932 208.88161 287.18716 333.04901 399.13812 444.99994 550.54224 655.68396 700.94501 806.4873 911.62903 977.51788 1023.3797 1183.1952 1229.057 1308.1636 1404.093 1470.9832 1516.845 1622.3872 1726.9282" + y="0" + sodipodi:role="line" + id="tspan896">Position optimization:</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g900"><g + id="g902"><g + id="g904" + clip-path="url(#clipPath908)"><g + id="g910"><g + id="g912"><g + id="g914"><g + id="g916" + clip-path="url(#clipPath920)"><g + id="g922"><text + transform="translate(1800.78,3133.9253)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text926"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 580.78302 626.64484 731.78656 822.10834 920.84143 990.5354 1068.8409 1168.3751 1213.6362 1297.5493 1403.0916 1562.9071 1668.0488 1773.1906 1840.0808 1936.0101 2002.9003 2048.7622 2153.303 2258.4448" + y="0" + sodipodi:role="line" + id="tspan924">Matrix inverse computation </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g928"><g + id="g930"><g + id="g932" + clip-path="url(#clipPath936)"><g + id="g938"><g + id="g940"><g + id="g942"><g + id="g944" + clip-path="url(#clipPath948)"><g + id="g950"><text + transform="translate(1671.32,3517.1453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text954"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 580.78302 685.92474 785.45892 869.9729 974.91437 1134.7299 1239.8716 1345.4138 1423.7195 1468.58 1535.4701 1581.3319 1686.8741 1792.016 1870.3215" + y="0" + sodipodi:role="line" + id="tspan952">Matrix decompositions </tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g956"><g + id="g958"><g + id="g960" + clip-path="url(#clipPath964)"><g + id="g966"><path + d="m 7147.168,1784.824 h 816.48 v -272.578 l 8.512,8.508 v 272.582 l -8.512,-8.512 8.512,8.512 h -816.492 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path968" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g970"><g + id="g972"><g + id="g974" + clip-path="url(#clipPath978)"><g + id="g980"><g + id="g982" + transform="scale(1,-1)"><path + d="m 7147.168,-1784.824 h 816.48 v 272.578 l 8.512,-8.508 v -272.582 l -8.512,8.512 8.512,-8.512 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path984" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g986"><g + id="g988"><g + id="g990" + clip-path="url(#clipPath994)"><g + id="g996"><path + d="m 7147.168,1512.246 h 816.492 v 272.578 h -816.492 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path998" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1000"><g + id="g1002"><g + id="g1004" + clip-path="url(#clipPath1008)"><g + id="g1010"><g + id="g1012" + transform="scale(1,-1)"><path + d="m 7147.168,-1512.246 h 816.492 v -272.578 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1014" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1016"><g + id="g1018"><g + id="g1020" + clip-path="url(#clipPath1024)"><g + id="g1026"><g + id="g1028"><g + id="g1030"><g + id="g1032" + clip-path="url(#clipPath1036)"><g + id="g1038"><text + transform="translate(7261.8498,1708.9553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1042"><tspan + x="0 171.03058 294.19662 417.36267" + y="0" + sodipodi:role="line" + id="tspan1040">MDDM</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1044"><g + id="g1046"><g + id="g1048" + clip-path="url(#clipPath1052)"><g + id="g1054"><g + id="g1056"><g + id="g1058"><g + id="g1060" + clip-path="url(#clipPath1064)"><g + id="g1066"><text + transform="translate(4048.9699,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1070"><tspan + x="0 132.57874 237.72049 304.61066 349.87167 509.68713 555.54895 634.65564 729.98413 796.87433 842.73615 948.27844 1053.4202 1098.6813 1194.6106 1240.4724 1333.5979 1439.1403 1508.8342 1554.696 1621.5862 1726.7279 1886.5433" + y="0" + sodipodi:role="line" + id="tspan1068">Optimization algorithms</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1072"><g + id="g1074"><g + id="g1076" + clip-path="url(#clipPath1080)"><g + id="g1082"><g + id="g1084"><g + id="g1086"><g + id="g1088" + clip-path="url(#clipPath1092)"><g + id="g1094"><text + transform="translate(2089.6499,1708.9553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1098"><tspan + x="0 171.03058 276.17233 321.43335 388.32352 434.18536 539.32709 635.25641 702.14661 807.28839 851.74829 956.89008 1002.7519 1081.0575 1147.9476 1243.877 1349.0187 1433.5326 1533.0669 1577.7271 1682.8688 1782.403 1849.2932 1948.8274 2032.34 2099.2302 2145.092 2250.6343 2355.7759 2401.0371 2496.9663 2602.1082 2707.2498 2752.511 2911.325 2957.1868 3024.0769 3069.9387 3163.4648 3259.3943 3326.2844 3372.1462 3477.6885" + y="0" + sodipodi:role="line" + id="tspan1096">Multipath distance detection and mitigation</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1100"><g + id="g1102"><g + id="g1104" + clip-path="url(#clipPath1108)"><g + id="g1110"><path + d="m 7021.051,3534.406 h 1066.711 v -272.582 l 8.5,8.512 v 272.578 l -8.5,-8.508 8.5,8.508 H 7029.559 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1112" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1114"><g + id="g1116"><g + id="g1118" + clip-path="url(#clipPath1122)"><g + id="g1124"><g + id="g1126" + transform="scale(1,-1)"><path + d="m 7021.051,-3534.406 h 1066.711 v 272.582 l 8.5,-8.512 v -272.578 l -8.5,8.508 8.5,-8.508 H 7029.559 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1128" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1130"><g + id="g1132"><g + id="g1134" + clip-path="url(#clipPath1138)"><g + id="g1140"><path + d="M 7021.051,3261.824 H 8087.75 v 272.582 H 7021.051 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1142" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1144"><g + id="g1146"><g + id="g1148" + clip-path="url(#clipPath1152)"><g + id="g1154"><g + id="g1156" + transform="scale(1,-1)"><path + d="M 7021.051,-3261.824 H 8087.75 v -272.582 H 7021.051 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1158" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1160"><g + id="g1162"><g + id="g1164" + clip-path="url(#clipPath1168)"><g + id="g1170"><g + id="g1172"><g + id="g1174"><g + id="g1176" + clip-path="url(#clipPath1180)"><g + id="g1182"><text + transform="translate(7033.0498,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1186"><tspan + x="0 124.76821 230.3105 335.45224 413.75781 513.29199 617.63269 723.17499 769.0368 874.17853 973.71271" + y="0" + sodipodi:role="line" + id="tspan1184">Householder</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1188"><g + id="g1190"><g + id="g1192" + clip-path="url(#clipPath1196)"><g + id="g1198"><path + d="m 8465.039,3534.406 h 806.102 v -272.582 l 8.507,8.512 v 272.578 l -8.507,-8.508 8.507,8.508 h -806.097 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1200" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1202"><g + id="g1204"><g + id="g1206" + clip-path="url(#clipPath1210)"><g + id="g1212"><g + id="g1214" + transform="scale(1,-1)"><path + d="m 8465.039,-3534.406 h 806.102 v 272.582 l 8.507,-8.512 v -272.578 l -8.507,8.508 8.507,-8.508 h -806.097 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1216" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1218"><g + id="g1220"><g + id="g1222" + clip-path="url(#clipPath1226)"><g + id="g1228"><path + d="m 8465.039,3261.824 h 806.102 v 272.582 h -806.102 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1230" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1232"><g + id="g1234"><g + id="g1236" + clip-path="url(#clipPath1240)"><g + id="g1242"><g + id="g1244" + transform="scale(1,-1)"><path + d="m 8465.039,-3261.824 h 806.102 v -272.582 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1246" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1248"><g + id="g1250"><g + id="g1252" + clip-path="url(#clipPath1256)"><g + id="g1258"><g + id="g1260"><g + id="g1262"><g + id="g1264" + clip-path="url(#clipPath1268)"><g + id="g1270"><text + transform="translate(8596.0498,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1274"><tspan + x="0 126.1701 172.03194 262.3537 361.88788 467.02963" + y="0" + sodipodi:role="line" + id="tspan1272">Givens</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1276"><g + id="g1278"><g + id="g1280" + clip-path="url(#clipPath1284)"><g + id="g1286"><path + d="m 5837.668,3534.406 h 806.102 v -272.582 l 8.5,8.512 v 272.578 l -8.5,-8.508 8.5,8.508 h -806.102 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1288" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1290"><g + id="g1292"><g + id="g1294" + clip-path="url(#clipPath1298)"><g + id="g1300"><g + id="g1302" + transform="scale(1,-1)"><path + d="m 5837.668,-3534.406 h 806.102 v 272.582 l 8.5,-8.512 v -272.578 l -8.5,8.508 8.5,-8.508 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1304" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1306"><g + id="g1308"><g + id="g1310" + clip-path="url(#clipPath1314)"><g + id="g1316"><path + d="m 5837.668,3261.824 h 806.102 v 272.582 h -806.102 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1318" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1320"><g + id="g1322"><g + id="g1324" + clip-path="url(#clipPath1328)"><g + id="g1330"><g + id="g1332" + transform="scale(1,-1)"><path + d="m 5837.668,-3261.824 h 806.102 v -272.582 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1334" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1336"><g + id="g1338"><g + id="g1340" + clip-path="url(#clipPath1344)"><g + id="g1346"><g + id="g1348"><g + id="g1350"><g + id="g1352" + clip-path="url(#clipPath1356)"><g + id="g1358"><text + transform="translate(6076.9198,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1362"><tspan + x="0 91.923927 205.47702" + y="0" + sodipodi:role="line" + id="tspan1360">SVD</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1364"><g + id="g1366"><g + id="g1368" + clip-path="url(#clipPath1372)"><g + id="g1374"><path + d="M 6592.641,2233.094 H 8518.18 v -272.578 l 8.5,8.5 v 272.578 l -8.5,-8.5 8.5,8.5 H 6601.141 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1376" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1378"><g + id="g1380"><g + id="g1382" + clip-path="url(#clipPath1386)"><g + id="g1388"><g + id="g1390" + transform="scale(1,-1)"><path + d="M 6592.641,-2233.094 H 8518.18 v 272.578 l 8.5,-8.5 v -272.578 l -8.5,8.5 8.5,-8.5 H 6601.141 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1392" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1394"><g + id="g1396"><g + id="g1398" + clip-path="url(#clipPath1402)"><g + id="g1404"><path + d="M 6592.641,1960.516 H 8518.18 v 272.578 H 6592.641 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1406" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1408"><g + id="g1410"><g + id="g1412" + clip-path="url(#clipPath1416)"><g + id="g1418"><g + id="g1420" + transform="scale(1,-1)"><path + d="M 6592.641,-1960.516 H 8518.18 v -272.578 H 6592.641 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1422" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1424"><g + id="g1426"><g + id="g1428" + clip-path="url(#clipPath1432)"><g + id="g1434"><g + id="g1436"><g + id="g1438"><g + id="g1440" + clip-path="url(#clipPath1444)"><g + id="g1446"><text + transform="translate(6609.7998,2157.2753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1450"><tspan + x="0 84.113403 189.65569 273.36856 369.29788 415.1597 461.02155 540.12817 636.0575 702.94769 748.80951 854.35181 958.89276 1004.1537 1119.9098 1165.7716 1259.2977 1364.8401 1434.5341 1480.3959 1547.286 1651.6267 1811.4421" + y="0" + sodipodi:role="line" + id="tspan1448">Localization Algorithms</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1452"><g + id="g1454"><g + id="g1456" + clip-path="url(#clipPath1460)"><g + id="g1462"><path + d="m 7643.891,2778.254 h 2368.8 v -272.578 l 8.5,8.5 v 272.578 l -8.5,-8.5 8.5,8.5 H 7652.398 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1464" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1466"><g + id="g1468"><g + id="g1470" + clip-path="url(#clipPath1474)"><g + id="g1476"><g + id="g1478" + transform="scale(1,-1)"><path + d="m 7643.891,-2778.254 h 2368.8 v 272.578 l 8.5,-8.5 v -272.578 l -8.5,8.5 8.5,-8.5 H 7652.398 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1480" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1482"><g + id="g1484"><g + id="g1486" + clip-path="url(#clipPath1490)"><g + id="g1492"><path + d="m 7643.891,2505.676 h 2368.789 v 272.578 H 7643.891 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1494" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1496"><g + id="g1498"><g + id="g1500" + clip-path="url(#clipPath1504)"><g + id="g1506"><g + id="g1508" + transform="scale(1,-1)"><path + d="m 7643.891,-2505.676 h 2368.789 v -272.578 H 7643.891 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1510" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1512"><g + id="g1514"><g + id="g1516" + clip-path="url(#clipPath1520)"><g + id="g1522"><g + id="g1524"><g + id="g1526"><g + id="g1528" + clip-path="url(#clipPath1532)"><g + id="g1534"><text + transform="translate(7671.5298,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1538"><tspan + x="0 132.57874 237.72049 304.61066 349.87167 509.68713 555.54895 634.65564 729.98413 796.87433 842.73615 948.27844 1053.4202 1098.6813 1235.2654 1280.5264 1386.2689 1491.4106 1561.1046 1651.4264 1750.9606 1796.2217 1887.3445 1933.2063 2000.0964 2066.9866 2112.8484 2217.9902" + y="0" + sodipodi:role="line" + id="tspan1536">Optimization & Curve Fitting</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1540"><g + id="g1542"><g + id="g1544" + clip-path="url(#clipPath1548)"><g + id="g1550"><path + d="m 7680.191,1385.516 h 816.477 v -272.571 l 8.512,8.5 v 272.578 l -8.512,-8.507 8.512,8.507 h -816.489 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1552" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1554"><g + id="g1556"><g + id="g1558" + clip-path="url(#clipPath1562)"><g + id="g1564"><g + id="g1566" + transform="scale(1,-1)"><path + d="m 7680.191,-1385.516 h 816.477 v 272.571 l 8.512,-8.5 v -272.578 l -8.512,8.507 8.512,-8.507 h -816.489 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1568" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1570"><g + id="g1572"><g + id="g1574" + clip-path="url(#clipPath1578)"><g + id="g1580"><path + d="m 7680.191,1112.934 h 816.488 v 272.582 h -816.488 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1582" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1584"><g + id="g1586"><g + id="g1588" + clip-path="url(#clipPath1592)"><g + id="g1594"><g + id="g1596" + transform="scale(1,-1)"><path + d="m 7680.191,-1112.934 h 816.488 v -272.582 h -816.488 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1598" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1600"><g + id="g1602"><g + id="g1604" + clip-path="url(#clipPath1608)"><g + id="g1610"><g + id="g1612"><g + id="g1614"><g + id="g1616" + clip-path="url(#clipPath1620)"><g + id="g1622"><text + transform="translate(7790.2998,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1626"><tspan + x="0 171.03058 297.20068 425.57376" + y="0" + sodipodi:role="line" + id="tspan1624">MGNM</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1628"><g + id="g1630"><g + id="g1632" + clip-path="url(#clipPath1636)"><g + id="g1638"><path + d="m 6580.238,1385.516 h 816.481 v -272.571 l 8.511,8.5 v 272.578 l -8.511,-8.507 8.511,8.507 h -816.492 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1640" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1642"><g + id="g1644"><g + id="g1646" + clip-path="url(#clipPath1650)"><g + id="g1652"><g + id="g1654" + transform="scale(1,-1)"><path + d="m 6580.238,-1385.516 h 816.481 v 272.571 l 8.511,-8.5 v -272.578 l -8.511,8.507 8.511,-8.507 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1656" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1658"><g + id="g1660"><g + id="g1662" + clip-path="url(#clipPath1666)"><g + id="g1668"><path + d="m 6580.238,1112.934 h 816.492 v 272.582 h -816.492 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1670" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1672"><g + id="g1674"><g + id="g1676" + clip-path="url(#clipPath1680)"><g + id="g1682"><g + id="g1684" + transform="scale(1,-1)"><path + d="m 6580.238,-1112.934 h 816.492 v -272.582 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1686" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1688"><g + id="g1690"><g + id="g1692" + clip-path="url(#clipPath1696)"><g + id="g1698"><g + id="g1700"><g + id="g1702"><g + id="g1704" + clip-path="url(#clipPath1708)"><g + id="g1710"><text + transform="translate(6804.6498,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1714"><tspan + x="0 84.113403 197.66649" + y="0" + sodipodi:role="line" + id="tspan1712">LVM</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1716"><g + id="g1718"><g + id="g1720" + clip-path="url(#clipPath1724)"><g + id="g1726"><path + d="m 7197.039,4036.637 h 613.941 v -272.582 l 8.508,8.5 v 272.582 l -8.508,-8.5 8.508,8.5 h -613.949 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1728" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1730"><g + id="g1732"><g + id="g1734" + clip-path="url(#clipPath1738)"><g + id="g1740"><g + id="g1742" + transform="scale(1,-1)"><path + d="m 7197.039,-4036.637 h 613.941 v 272.582 l 8.508,-8.5 v -272.582 l -8.508,8.5 8.508,-8.5 h -613.949 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1744" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1746"><g + id="g1748"><g + id="g1750" + clip-path="url(#clipPath1754)"><g + id="g1756"><path + d="m 7197.039,3764.055 h 613.941 v 272.582 h -613.941 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1758" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1760"><g + id="g1762"><g + id="g1764" + clip-path="url(#clipPath1768)"><g + id="g1770"><g + id="g1772" + transform="scale(1,-1)"><path + d="m 7197.039,-3764.055 h 613.941 v -272.582 h -613.941 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1774" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1776"><g + id="g1778"><g + id="g1780" + clip-path="url(#clipPath1784)"><g + id="g1786"><g + id="g1788"><g + id="g1790"><g + id="g1792" + clip-path="url(#clipPath1796)"><g + id="g1798"><text + transform="translate(7236.4698,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1802"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505" + y="0" + sodipodi:role="line" + id="tspan1800">Matrix</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1804"><g + id="g1806"><g + id="g1808" + clip-path="url(#clipPath1812)"><g + id="g1814"><path + d="m 8690.031,4036.637 h 613.938 v -272.582 l 8.511,8.5 v 272.582 l -8.511,-8.5 8.511,8.5 h -613.941 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1816" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1818"><g + id="g1820"><g + id="g1822" + clip-path="url(#clipPath1826)"><g + id="g1828"><g + id="g1830" + transform="scale(1,-1)"><path + d="m 8690.031,-4036.637 h 613.938 v 272.582 l 8.511,-8.5 v -272.582 l -8.511,8.5 8.511,-8.5 h -613.941 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1832" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1834"><g + id="g1836"><g + id="g1838" + clip-path="url(#clipPath1842)"><g + id="g1844"><path + d="m 8690.031,3764.055 h 613.938 v 272.582 h -613.938 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1846" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1848"><g + id="g1850"><g + id="g1852" + clip-path="url(#clipPath1856)"><g + id="g1858"><g + id="g1860" + transform="scale(1,-1)"><path + d="m 8690.031,-3764.055 h 613.938 v -272.582 h -613.938 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1862" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1864"><g + id="g1866"><g + id="g1868" + clip-path="url(#clipPath1872)"><g + id="g1874"><g + id="g1876"><g + id="g1878"><g + id="g1880" + clip-path="url(#clipPath1884)"><g + id="g1886"><text + transform="translate(8727.6998,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1890"><tspan + x="0 113.55309 213.08728 297.60123 363.89059 469.43289" + y="0" + sodipodi:role="line" + id="tspan1888">Vector</tspan></text> + +</g></g></g></g></g></g></g></g><g + id="g1892"><g + id="g1894"><g + id="g1896" + clip-path="url(#clipPath1900)"><g + id="g1902"><g + id="g1904" + transform="scale(1,-1)"><path + d="M 3237.129,-4112.227 H -196.859" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path1906" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1908"><g + id="g1910"><g + id="g1912" + clip-path="url(#clipPath1916)"><g + id="g1918"><g + id="g1920" + transform="scale(1,-1)"><path + d="M 5081.828,-2358.574 H 9917.59" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1922" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1924"><g + id="g1926"><g + id="g1928" + clip-path="url(#clipPath1932)"><g + id="g1934"><g + id="g1936" + transform="scale(1,-1)"><path + d="M 5081.828,-2358.574 H -181.941" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path1938" + inkscape:connector-curvature="0" /></g></g></g></g></g></g></g></svg> \ No newline at end of file diff --git a/doc/doxygen/src/getting-started.md b/doc/doxygen/src/getting-started.md new file mode 100644 index 0000000000000000000000000000000000000000..80e5a3d63eb89db6c00674763e6f8926952f0aa3 --- /dev/null +++ b/doc/doxygen/src/getting-started.md @@ -0,0 +1,224 @@ +Getting started {#getting-started} +=============== + +\author Zakaria Kasmi + +[TOC] + +Downloading RcdMathLib code {#downloading-RcdMathLib-code} +=========================== +You can obtain the latest RcdMathLib code from +our [Github](https://github.com/RIOT-OS/) repository either by +[downloading the latest tarball](https://github.com/RIOT-OS/RIOT/releases) or +by cloning the [git repository](https://github.com/RIOT-OS/RIOT). + +In order to clone the RIOT repository, you need the +[Git revision control system](http://git-scm.com/) and run the following +command: + +~~~~~~~~ {.sh} +git clone git://github.com/RIOT-OS/RIOT.git +~~~~~~~~ + +Compiling RcdMathLib {#compiling-RcdMathLib} +==================== + +Setting up a toolchain for full-fledged devices {#setting-up-a-toolchain-full-fledge} +----------------------------------------------- +RcdMathLib can be run on full-fledged devices such as a Personal Computer +(PC) or a server. It can also be executed on the embedded system Raspberry Pi +running an Operating System (OS) such as the Raspbian or the Ubuntu Core. For +platforms based on full-fledged OSs like the Linux or Windows, we recommend +the GNU Compiler Collection (GCC). We also recommend the use of the Eclipse (IDE). + +The PATH environment variable should be set with bin-directory of the GCC compiler. +On a typical shell like bash or zsh this can be done using export, e.g. + +<BLOCKQUOTE> +export PATH=${PATH}:/path/to/gcc/bin +</BLOCKQUOTE> + +For windows, add the bin-directory to your PATH under System Properties->Advanced-> +Environment Variables, e.g. + +<BLOCKQUOTE> +"C:\gcc\bin" +</BLOCKQUOTE> + +Setting up a toolchain for resource-limited devices {#setting-up-a-toolchain-res-lim} +------------------------------------------------------- +Depending on the hardware you want to use, you need to first install a +corresponding toolchain. We recommend the use of the [RIOT-OS] (https://riot-os.org/), since +it supports 8-bit platforms (e.g. Arduino Mega 2560), 16-bit platforms (e.g. MSP430), and 32-bit +platforms (e.g. ARM). The RIOT-OS is an open source IoT operating system developed at the + ''Freie Universität Berlin''. In general, an OS allows the management and sharing of resources +as well as the development of multi-tasking applications in a computer system. The Wiki on RIOT's + Github page contains a lot of information that can help you with your platform: + +* [ARM-based platforms](https://github.com/RIOT-OS/RIOT/wiki/Family:-ARM) +* [TI MSP430](https://github.com/RIOT-OS/RIOT/wiki/Family:-MSP430) +* [Atmel ATmega](https://github.com/RIOT-OS/RIOT/wiki/Family%3A-ATmega) +* [native](https://github.com/RIOT-OS/RIOT/wiki/Family:-native) + +The build system for full-fledged devices {#the-build-system-full-fledge} +----------------------------------------- +RcdMathLib can be built using the [Eclipse IDE] (https://www.eclipse.org/) for C/C++ Developers. +The simplest way to compile and link an application with the RcdMathLib is: Firstly, to download [RcdMathLib_eclipse_version.zip](https://git.imp.fu-berlin.de/zkasmi/test_my_lib/blob/master/RcdMathLib_eclipse_version.zip) file or to clone it: + +~~~~~~~~ {.sh} +git clone git@git.imp.fu-berlin.de:zkasmi/test_my_lib.git +~~~~~~~~ + +After cloning or downloading the RcdMathLib, the Eclipse version of the RcdMathLib can be used as follows: +-# Create a workspace folder (e.g. rcd_math_lib_workspace). +-# Start the Eclipse IDE and browse to the created workspace folder. +-# Open File->Import->General. +-# Select ''Existing Project into Workspace'' from the Selection Wizard. +-# Select Next->''archive file''-->Browse. +-# After Browsing to the [RcdMathLib_eclipse_version.zip] + (https://git.imp.fu-berlin.de/zkasmi/test_my_lib/blob/master/RcdMathLib_eclipse_version.zip) file, click on Finish. +-# Compile the whole project. + +Another method to use the RcdMathLib in the Eclipse IDE is: +-# Clone the whole RcdMathLib version for full-fledged devices: + ~~~~~~~~ {.sh} + git clone git@git.imp.fu-berlin.de:zkasmi/my_lib_full_fledged_devices.git + ~~~~~~~~ +-# Create a new C project by choosing the project type under Executable: `Hello World ANSI C Project`, + as well as the `Cross GCC` Tool-chains. +-# Try to compile and execute the `Hello World ANSI C Project`. +-# Copy the RcdMathLib- and the examples-directories, as well as the 'eclipse_path_includes_settings.xml' + configuration file into the src-directory of your project. +-# Import the 'eclipse_path_includes_settings.xml' file as follows: + + <BLOCKQUOTE> + * Open File -> Import -> C/C++ and Select ''C/C++ Project Settings'' from the Selection Wizard. + * Click Next->''Select Settings file''-->Browse. + * After Browsing to the xml-configuration file, click on Finish. + </BLOCKQUOTE> +-# Compile the whole project. +-# Optional: replace the main()-function with the main.c file of the cloned RcdMathLib version for full-fledged devices. + +Third method (intern): +Set up the [Eclipse IDE] (https://www.eclipse.org/) as follows: +-# Create a new C project, choose the project type under Executable: `Hello World ANSI C Project`, + as well as the `Cross GCC` Tool-chains. +-# Try to compile and execute the `Hello World ANSI C Project`. +-# Copy the RcdMathLib-directory into the src-directory. +-# Replace the file containing the main()-function with the main.c file of the RcdMathLib. +-# Setting the include-paths of the modules in the Eclipse IDE: Properties/Paths and Symbols/GNU C + + +The build system for resource-limited devices {#the-build-system-res-lim} +--------------------------------------------- +RcdMathLib and RIOT use [GNU make](https://www.gnu.org/software/make/) as build system. The +simplest way to compile and link an application with RcdMathLib, is to set up a +Makefile providing at least the following variables: + + * `APPLICATION`: should contain the (unique) name of your application + * `BOARD`: specifies the platform the application should be build for by + default + * `RIOTBASE`: specifies the path to the copy of the RIOT repository (note, + the `$(CURDIR)` macro can be used to give a relative path) + * `RCDMATHLIB`: specifies the path to the copy of the RcdMathLib repository (note, + the `$(CURDIR)` macro can be used to give a relative path) + * `USEMODULE`: specifies the module of the RcdMathLib that you may want to use + +Additionally it has to include the `Makefile.include`, located in RcdMathLib's as well as RIOT's +root directories. A minimal application Makefile looks like this: + +~~~~~~~~ {.mk} +# a minimal application Makefile +APPLICATION = mini-makefile +BOARD ?= native +RIOTBASE ?= $(CURDIR)/../RIOT +RCDMATHLIB ?= $(CURDIR)/../RcdMathLib +USEMODULE += basic_operations + +include $(RIOTBASE)/MicroPosMath-Lib/Makefile.include +include $(RIOTBASE)/Makefile.include +~~~~~~~~ + +The `?=` operator can be used in order to allow overwriting variables from the command line. +For example, the target platform can be specified from the command line as follows: + + +~~~~~~~~ {.sh} +make BOARD=stm32f4discovery +~~~~~~~~ + +In this case the STM32F4 discovery board is specified. Furthermore, the basic operations sub-module is +selected by the `USEMODULE` macro. + +Other sub-modules such as the matrix decompositions or utilities modules can be selected, e.g.: + +~~~~~~~~ {.mk} +USEMODULE += matrix_decompositions +USEMODULE += utilities +~~~~~~~~ +The dependency of the RcdMathLib modules and sub-modules to each other is automatically calculated +by special Makefiles located in the module directories. + +Besides typical targets like `clean`, `all`, or `doc`, RIOT provides the +special targets `flash` and `term` to invoke the configured flashing and +terminal tools for the specified platform. These targets use the variable +`PORT` for the serial communication to the device. Neither this variable nor +the targets `flash` and `term` are mandatory for the native port. + +Unless specified otherwise, make will create an elf-file as well as an Intel +hex file in the `bin` folder of your application directory. + +Please visit the [Wiki](https://github.com/RIOT-OS/RIOT/wiki/The-Make-Build-System) to learn more +about the build system of the RIOT. + + +Building and executing an example for resource-limited devices {#building-and-executing-an-example-res-lim} +-------------------------------------------------------------- +RcdMathLib provides a number of examples in the `examples/` directory. Every example +has a README that documents its usage and its purpose. Furthermore the examples are described in the +doc-directory. You can build your own application or the examples by typing + +~~~~~~~~ {.sh} +make BOARD=stm32f4discovery +~~~~~~~~ + +or + +~~~~~~~~ {.sh} +make all BOARD=stm32f4discovery +~~~~~~~~ + +into your shell. + +To flash the application to a board just type + +~~~~~~~~ {.sh} +make flash BOARD=stm32f4discovery +~~~~~~~~ + +You can then access the board via the serial interface: + +~~~~~~~~ {.sh} +make term BOARD=stm32f4discovery +~~~~~~~~ + +If you are using multiple boards you can use the `PORT` macro to specify the +serial interface: + +~~~~~~~~ {.sh} +make term BOARD=stm32f4discovery PORT=/dev/ttyACM1 +~~~~~~~~ + +We use `pyterm` as the default terminal application. It is shipped with RIOT in +the `dist/tools/pyterm/` directory. If you choose to use another terminal +program you can set `TERMPROG` (and if need be the `TERMFLAGS`) macros: + +~~~~~~~~ {.sh} +make -C examples/gnrc_networking/ term \ + BOARD=samr21-xpro \ + TERMPROG=gtkterm \ + TERMFLAGS="-s 115200 -p /dev/ttyACM0 -e" +~~~~~~~~ + +Please visit the [Wiki](https://github.com/RIOT-OS/RIOT/wiki) to learn more +about flashing devices. \ No newline at end of file diff --git a/doc/doxygen/src/mainpage.md b/doc/doxygen/src/mainpage.md new file mode 100644 index 0000000000000000000000000000000000000000..8a5afbd1f35e4d9ea6953b13f0169e9a5c846df1 --- /dev/null +++ b/doc/doxygen/src/mainpage.md @@ -0,0 +1,155 @@ +RcdMathLib Documentation {#mainpage} +======================== +\author Zakaria Kasmi + +[TOC] + +RcdMathLib in a nutshell {#RcdMathLib-in-a-nutshell} +======================== +RcdMathLib is an open-source library for numerical linear and non-linear +algebra designed to match the requirements of resource-limited or embedded +devices. RcdMathLib supports solving linear and non-linear equation systems. +Furthermore, it provides general-purpose implemented methods that facilitate +solving problems of regression smoothing and curve fitting. It also allows for +calculating as well as optimizing a position on a mobile device. + + +Download and use RcdMathLib {#download-use-RcdMathLib} +=========================== + +The simplest way to use the RcdMathLib for resource-limited devices is to +download the Elipse project (TODO). The following Eclipse project enables +also the RcdMathLib for full-fledged platforms (TODO). + + +The quickest start {#the-quickest-start} +================== +You can run RcdMathLib on most resource-limited such as the STM32 Discovery board as +well as on a PC. +Try it right now in your terminal window: + +~~~~~~~{.sh} +git clone git://github.com/RIOT-OS/RIOT.git # assumption: git is pre-installed +cd RcdMathLib/examples/linear_algebra/basic_operation/ +make all +~~~~~~~ + +The example above shows how to use the basic operations of the RcdMathLib such as the vector or +the matrix operations. + +Structure {#structure} +========= + +This section walks you through RcdMathLib's structure to easily find your way around in RcdMathLib's code base. + + + + + +RcdMathLib's source code is composed into three groups: + + - Linear algebra + - Non-linear algebra + - Localization + + +In addition RcdMathLib includes various examples to familiarize the user with the software +as well as an API to facilitate the use and the further development of the library. + +The structural groups are projected onto the directory structure of RcdMathLib, where +each of these groups resides in one or two directories in the main RcdMathLib +directory. + +The following list gives a more detailed description of each of RcdMathLib's +top-level directories: + +Linear Algebra +-------------- +This directory contains functions that are specific to vector and matrix operations, and +other algebraic operations. It provides functions to perform basic matrix operations such +as matrix addition, multiplication, or transposition. It also provides algorithms for complex +operations like matrix decomposition algorithms, algorithms to calculate the pseudo-inverse +of a matrix, or methods to solve systems of linear equations. The linear algebra module is +divided in the following sub-modules: +- Basic operations sub-module. +- Matrix decompositions sub-module. +- Pseudo-Inverse sub-module. +- Solve linear equations sub-module. +- Utilities sub-module. + + +See @ref linear_algebra module for further information and API documentations. + +Non-Linear Algebra +------------------ +The non-linear algebra module contains functions to solve multi-variant nonlinear +equations as wells algorithms solving problems of regression smoothing and curve +fitting. This module also enables enables the optimization of an approximate solution +by using Non-linear Least Squares (NLS) methods such as modified Gauss--Newton (GN) or +the Levenberg--Marquardt (LVM) algorithms. The non-linear algebra module is +divided in the two following sub-modules: + +- Solve non-linear equations sub-module. +- Optimization sub-module. + +See here @ref non_linear_algebra module for further information. + +Localization +------------ +The localization module contains functions to compute a position of a mobile device +using distance measurements or DC-pulsed, magnetic signals. This module also includes +optimization algorithms such as the Levenberg--Marquardt approach to optimize the +calculated position. The localization module also involves a method to recognize and +mitigate the multipath errors on the mobile station. + +In the `position_algos` sub-directory you can find the implementations of the +distance-based localization system (see the @ref distance_based module) as well as +the implementations of the DC-pulsed, magnetic position system (see the @ref magnetic_based +module). The `pos_algos_common` sub-directory contains common localization algorithms like +the trilateration method (see the @ref pos_algos_common module). The optimization algorithms are +localted in the `optimization` sub-directory providing the following optimization approaches: + +- Gauss--Newton (GN) algorithm. +- Levenberg--Marquardt (LVM) algorithm. +- Multipath Distance Detection and Mitigation (MDDM) algorithm. + +See the @ref localization module for more detailed information. + +examples +-------- +Here you find a number of example applications that demonstrate certain +features of RcdMathLib. The examples found in this directory is a good +starting point for anyone who is new to RcdMathLib. + +For more information best browse that directory and have a look at the +`README.md` files that ship with each example. + +To create your own application - here or anywhere else - see @ref creating-an-application + + +doc +--- +The `doc` directory contains the doxygen configuration and also contains the compiled doxygen +output after running `make doc`. + + + +Further information {#further-information} +=================== + - @ref getting-started + - @ref creating-an-application + - @ref creating-modules + +<!-- +Idea for this section: just name each of RIOT's main features/concepts and link +to an appropriate page with further information: + - Create an application + - Networking + - The `main()` function + - Make system + - Include modules + - Threading + - Choose the right stack size + - IPC + - Auto initialization +--> diff --git a/doc/doxygen/src/soft_architecture_01_09_2019.svg b/doc/doxygen/src/soft_architecture_01_09_2019.svg new file mode 100644 index 0000000000000000000000000000000000000000..d013aeb6af1450f08a9bf61143fa65795c572a72 --- /dev/null +++ b/doc/doxygen/src/soft_architecture_01_09_2019.svg @@ -0,0 +1,2035 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="svg2" + xml:space="preserve" + width="1186.1445" + height="418.25763" + viewBox="0 0 1186.1445 418.2576" + sodipodi:docname="soft_architecture_01_09_2019.svg" + inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata + id="metadata8"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6"><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath24"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path22" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath36"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path34" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath52"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path50" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath68"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path66" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath84"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path82" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath98"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path96" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath114"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path112" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath128"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path126" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath144"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path142" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath156"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path154" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath172"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path170" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath188"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path186" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath204"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path202" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath218"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path216" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath234"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path232" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath248"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path246" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath264"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path262" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath276"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path274" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath292"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path290" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath308"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path306" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath320"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path318" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath336"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path334" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath348"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path346" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath364"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path362" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath376"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path374" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath392"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path390" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath404"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path402" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath420"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path418" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath432"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path430" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath448"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path446" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath460"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path458" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath476"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path474" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath488"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path486" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath504"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path502" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath518"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path516" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath534"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path532" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath548"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path546" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath564"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path562" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath576"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path574" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath592"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path590" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath604"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path602" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath620"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path618" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath632"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path630" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath648"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path646" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath662"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path660" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath678"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path676" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath692"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path690" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath708"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path706" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath720"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path718" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath736"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path734" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath748"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path746" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath764"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path762" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath776"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path774" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath792"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path790" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath808"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path806" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath824"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path822" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath836"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path834" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath852"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path850" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath864"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path862" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath880"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path878" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath892"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path890" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath908"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path906" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath920"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path918" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath936"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path934" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath948"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path946" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath964"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path962" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath978"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path976" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath994"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path992" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1008"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1006" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1024"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1022" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1036"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1034" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1052"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1050" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1064"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1062" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1080"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1078" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1092"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1090" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1108"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1106" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1122"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1120" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1138"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1136" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1152"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1150" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1168"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1166" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1180"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1178" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1196"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1194" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1210"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1208" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1226"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1224" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1240"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1238" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1256"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1254" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1268"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1266" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1284"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1282" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1298"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1296" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1314"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1312" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1328"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1326" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1344"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1342" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1356"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1354" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1372"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1370" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1386"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1384" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1402"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1400" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1416"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1414" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1432"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1430" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1444"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1442" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1460"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1458" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1474"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1472" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1490"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1488" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1504"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1502" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1520"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1518" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1532"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1530" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1548"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1546" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1562"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1560" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1578"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1576" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1592"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1590" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1608"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1606" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1620"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1618" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1636"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1634" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1650"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1648" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1666"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1664" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1680"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1678" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1696"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1694" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1708"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1706" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1724"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1722" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1738"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1736" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1754"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1752" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1768"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1766" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1784"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1782" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1796"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1794" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1812"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1810" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1826"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1824" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1842"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1840" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1856"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1854" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1872"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1870" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1884"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1882" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1900"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1898" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1916"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1914" + inkscape:connector-curvature="0" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1932"><path + d="M 0,0 H 11701 V 4126 H 0 Z" + id="path1930" + inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1600" + inkscape:window-height="837" + id="namedview4" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.9" + inkscape:cx="302.25914" + inkscape:cy="209.21945" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="g10" /><g + id="g10" + inkscape:groupmode="layer" + inkscape:label="soft_architecture_01_09_2019" + transform="matrix(1.3333333,0,0,1.3333333,-7207.5942,-2541.5378)"><g + id="g12" /><g + id="g14" + transform="matrix(0.07602841,0,0,0.07602841,5405.6958,1906.1534)"><g + id="g16"><g + id="g18"><g + id="g20" + clip-path="url(#clipPath24)"><g + id="g26"><g + id="g28"><g + id="g30"><g + id="g32" + clip-path="url(#clipPath36)"><g + id="g38"><g + id="g40" + transform="scale(1,-1)"><path + d="m -540,1496.973 h 12365.859 v -5892.66 H -540 Z" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path42" + inkscape:connector-curvature="0" /></g></g></g></g></g></g></g></g></g><g + id="g44"><g + id="g46"><g + id="g48" + clip-path="url(#clipPath52)"><g + id="g54"><g + id="g56" + transform="scale(1,-1)"><path + d="M 3237.129,-4112.227 7545.871,-16.156 11693.18,-4112.227 Z" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path58" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g60"><g + id="g62"><g + id="g64" + clip-path="url(#clipPath68)"><g + id="g70"><g + id="g72" + transform="scale(1,-1)"><path + d="m 3683.109,-3688.246 h 7580.789" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="path74" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g76"><g + id="g78"><g + id="g80" + clip-path="url(#clipPath84)"><g + id="g86"><path + d="m 5698.039,4036.637 h 480.422 v -272.582 l 8.5,8.5 v 272.582 l -8.5,-8.5 8.5,8.5 h -480.422 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path88" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g90"><g + id="g92"><g + id="g94" + clip-path="url(#clipPath98)"><g + id="g100"><g + id="g102" + transform="scale(1,-1)"><path + d="m 5698.039,-4036.637 h 480.422 v 272.582 l 8.5,-8.5 v -272.582 l -8.5,8.5 8.5,-8.5 h -480.422 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path104" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g106"><g + id="g108"><g + id="g110" + clip-path="url(#clipPath114)"><g + id="g116"><path + d="m 5698.039,3764.055 h 480.422 v 272.582 h -480.422 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path118" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g120"><g + id="g122"><g + id="g124" + clip-path="url(#clipPath128)"><g + id="g130"><g + id="g132" + transform="scale(1,-1)"><path + d="m 5698.039,-3764.055 h 480.422 v -272.582 h -480.422 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path134" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g136"><g + id="g138"><g + id="g140" + clip-path="url(#clipPath144)"><g + id="g146"><g + id="g148"><g + id="g150"><g + id="g152" + clip-path="url(#clipPath156)"><g + id="g158"><text + transform="translate(5755.9699,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text162"><tspan + x="0 128.37306 194.66245 240.52426 286.38611" + y="0" + sodipodi:role="line" + id="tspan160">Utils</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g164"><g + id="g166"><g + id="g168" + clip-path="url(#clipPath172)"><g + id="g174"><g + id="g176" + transform="scale(1,-1)"><path + d="M 5625.23,-1841.996 H 9394.551" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path178" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g180"><g + id="g182"><g + id="g184" + clip-path="url(#clipPath188)"><g + id="g190"><g + id="g192" + transform="scale(1,-1)"><path + d="M 6475.391,-1033.797 H 8576.238" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path194" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g196"><g + id="g198"><g + id="g200" + clip-path="url(#clipPath204)"><g + id="g206"><path + d="M 6940.34,941.895 H 8105.391 V 669.316 l 8.5,8.5 v 272.579 l -8.5,-8.5 8.5,8.5 H 6948.852 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path208" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g210"><g + id="g212"><g + id="g214" + clip-path="url(#clipPath218)"><g + id="g220"><g + id="g222" + transform="scale(1,-1)"><path + d="m 6940.34,-941.895 h 1165.051 v 272.579 l 8.5,-8.5 v -272.579 l -8.5,8.5 8.5,-8.5 H 6948.852 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path224" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g226"><g + id="g228"><g + id="g230" + clip-path="url(#clipPath234)"><g + id="g236"><path + d="M 6940.34,669.316 H 8105.379 V 941.894 H 6940.34 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path238" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g240"><g + id="g242"><g + id="g244" + clip-path="url(#clipPath248)"><g + id="g250"><g + id="g252" + transform="scale(1,-1)"><path + d="M 6940.34,-669.316 H 8105.379 V -941.894 H 6940.34 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path254" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g256"><g + id="g258"><g + id="g260" + clip-path="url(#clipPath264)"><g + id="g266"><g + id="g268"><g + id="g270"><g + id="g272" + clip-path="url(#clipPath276)"><g + id="g278"><text + transform="translate(7023.4698,865.90536)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text282"><tspan + x="0 115.75606 220.297 325.43875 371.30057 417.16241 501.67636 597.00488 663.89502 709.7569 815.29919 920.44092" + y="0" + sodipodi:role="line" + id="tspan280">Applications</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g284"><g + id="g286"><g + id="g288" + clip-path="url(#clipPath292)"><g + id="g294"><g + id="g296" + transform="scale(1,-1)"><path + d="M 3654.988,-3687.023 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path298" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g300"><g + id="g302"><g + id="g304" + clip-path="url(#clipPath308)"><g + id="g310"><g + id="g312"><g + id="g314"><g + id="g316" + clip-path="url(#clipPath320)"><g + id="g322"><text + transform="translate(3.300001,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text326"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 585.38922 630.65021 720.97198 820.50616 904.0188 970.90894 1076.4513 1146.1453 1196.0125 1241.2734 1337.2028 1442.3445 1547.4863 1591.9462 1687.8756 1733.7374 1827.8643 1927.3984 2032.5402 2102.2341 2197.3625 2243.2244 2327.7383 2372.9993 2478.5415 2583.6833 2683.2175 2752.9114 2848.8408 2915.731 2961.5928 3067.135 3171.676" + y="0" + sodipodi:role="line" + id="tspan324">Matrix, vector, and algebraic operations</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g328"><g + id="g330"><g + id="g332" + clip-path="url(#clipPath336)"><g + id="g338"><g + id="g340"><g + id="g342"><g + id="g344" + clip-path="url(#clipPath348)"><g + id="g350"><text + transform="translate(972.04998,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text354"><tspan + x="0 91.923927 197.46622 243.32805 333.64981 379.51166 484.05258 578.1795 623.44049 728.98279 790.06512 834.72534 994.54083 1099.6826 1145.5444 1212.4346 1258.2964 1348.6182 1444.5475 1513.2401 1559.1019 1655.0312 1760.173 1827.0632 1872.3242 1918.186 1963.447 2068.5889 2168.123 2264.0522 2333.7463 2379.0073 2474.9368 2580.0784 2684.6194 2729.8804 2835.0222 2940.5645" + y="0" + sodipodi:role="line" + id="tspan352">Solving of multivariant linear and non</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g356"><g + id="g358"><g + id="g360" + clip-path="url(#clipPath364)"><g + id="g366"><g + id="g368"><g + id="g370"><g + id="g372" + clip-path="url(#clipPath376)"><g + id="g378"><text + transform="translate(4020.2699,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text382"><tspan + x="0" + y="0" + id="tspan380">-</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g384"><g + id="g386"><g + id="g388" + clip-path="url(#clipPath392)"><g + id="g394"><g + id="g396"><g + id="g398"><g + id="g400" + clip-path="url(#clipPath404)"><g + id="g406"><text + transform="translate(4081.4999,2614.1753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text410"><tspan + x="0 45.861832 91.723663 196.8654 295.59851 391.52786 461.2218" + y="0" + sodipodi:role="line" + id="tspan408">linear </tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g412"><g + id="g414"><g + id="g416" + clip-path="url(#clipPath420)"><g + id="g422"><g + id="g424"><g + id="g426"><g + id="g428" + clip-path="url(#clipPath432)"><g + id="g434"><text + transform="translate(1401.18,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text438"><tspan + x="0 99.534187 204.67593 309.81769 405.74701 472.63721 517.69794 623.24023 728.38196 773.64301 851.94855 942.47064 1019.9751 1086.8652 1186.3994 1346.215 1424.5205 1469.7815 1530.4634 1614.5768 1711.3071 1803.2311 1881.5366 1926.7976 2063.3818 2108.6428" + y="0" + sodipodi:role="line" + id="tspan436">equation systems (LESs & N</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g440"><g + id="g442"><g + id="g444" + clip-path="url(#clipPath448)"><g + id="g450"><g + id="g452"><g + id="g454"><g + id="g456" + clip-path="url(#clipPath460)"><g + id="g462"><text + transform="translate(3640.5799,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text466"><tspan + x="0" + y="0" + id="tspan464">-</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g468"><g + id="g470"><g + id="g472" + clip-path="url(#clipPath476)"><g + id="g478"><g + id="g480"><g + id="g482"><g + id="g484" + clip-path="url(#clipPath488)"><g + id="g490"><text + transform="translate(3701.7999,2854.2053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text494"><tspan + x="0 84.113403 181.84515 273.76907 352.07465" + y="0" + sodipodi:role="line" + id="tspan492">LESs)</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g496"><g + id="g498"><g + id="g500" + clip-path="url(#clipPath504)"><g + id="g506"><path + d="m 4987.281,2778.254 h 2588.078 v -272.578 l 8.512,8.5 v 272.578 l -8.512,-8.5 8.512,8.5 h -2588.09 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path508" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g510"><g + id="g512"><g + id="g514" + clip-path="url(#clipPath518)"><g + id="g520"><g + id="g522" + transform="scale(1,-1)"><path + d="m 4987.281,-2778.254 h 2588.078 v 272.578 l 8.512,-8.5 v -272.578 l -8.512,8.5 8.512,-8.5 h -2588.09 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path524" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g526"><g + id="g528"><g + id="g530" + clip-path="url(#clipPath534)"><g + id="g536"><path + d="m 4987.281,2505.676 h 2588.09 v 272.578 h -2588.09 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path538" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g540"><g + id="g542"><g + id="g544" + clip-path="url(#clipPath548)"><g + id="g550"><g + id="g552" + transform="scale(1,-1)"><path + d="m 4987.281,-2505.676 h 2588.09 v -272.578 h -2588.09 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path554" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g556"><g + id="g558"><g + id="g560" + clip-path="url(#clipPath564)"><g + id="g566"><g + id="g568"><g + id="g570"><g + id="g572" + clip-path="url(#clipPath576)"><g + id="g578"><text + transform="translate(4996.2999,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text582"><tspan + x="0 91.923927 197.46622 243.32805 333.64981 432.18265 477.44366 637.25916 742.40088 788.2627 834.12457 924.44629 1019.7748 1089.4688 1135.3306 1231.26 1336.4017 1403.2919 1448.5529 1532.6663 1629.5969 1721.5209 1799.8265 1845.0875 1981.6716 2026.9326" + y="0" + sodipodi:role="line" + id="tspan580">Solve mulivariant LESs & N</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g584"><g + id="g586"><g + id="g588" + clip-path="url(#clipPath592)"><g + id="g594"><g + id="g596"><g + id="g598"><g + id="g600" + clip-path="url(#clipPath604)"><g + id="g606"><text + transform="translate(7154.0498,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text610"><tspan + x="0" + y="0" + id="tspan608">-</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g612"><g + id="g614"><g + id="g616" + clip-path="url(#clipPath620)"><g + id="g622"><g + id="g624"><g + id="g626"><g + id="g628" + clip-path="url(#clipPath632)"><g + id="g634"><text + transform="translate(7215.2998,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text638"><tspan + x="0 84.113403 181.84515 273.76907" + y="0" + sodipodi:role="line" + id="tspan636">LESs</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g640"><g + id="g642"><g + id="g644" + clip-path="url(#clipPath648)"><g + id="g650"><path + d="m 6087.379,3148.934 h 2877.922 v -272.579 l 8.5,8.512 v 272.578 l -8.5,-8.511 8.5,8.511 H 6095.879 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path652" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g654"><g + id="g656"><g + id="g658" + clip-path="url(#clipPath662)"><g + id="g664"><g + id="g666" + transform="scale(1,-1)"><path + d="m 6087.379,-3148.934 h 2877.922 v 272.579 l 8.5,-8.512 v -272.578 l -8.5,8.511 8.5,-8.511 H 6095.879 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path668" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g670"><g + id="g672"><g + id="g674" + clip-path="url(#clipPath678)"><g + id="g680"><path + d="m 6087.379,2876.355 h 2877.922 v 272.578 H 6087.379 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path682" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g684"><g + id="g686"><g + id="g688" + clip-path="url(#clipPath692)"><g + id="g694"><g + id="g696" + transform="scale(1,-1)"><path + d="m 6087.379,-2876.355 h 2877.922 v -272.578 H 6087.379 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path698" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g700"><g + id="g702"><g + id="g704" + clip-path="url(#clipPath708)"><g + id="g710"><g + id="g712"><g + id="g714"><g + id="g716" + clip-path="url(#clipPath720)"><g + id="g722"><text + transform="translate(6901.4498,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text726"><tspan + x="0 103.33932 181.64488 281.17908 386.32083 490.86176" + y="0" + sodipodi:role="line" + id="tspan724">Pseudo</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g728"><g + id="g730"><g + id="g732" + clip-path="url(#clipPath736)"><g + id="g738"><g + id="g740"><g + id="g742"><g + id="g744" + clip-path="url(#clipPath748)"><g + id="g750"><text + transform="translate(7498.1698,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text754"><tspan + x="0" + y="0" + id="tspan752">-</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g756"><g + id="g758"><g + id="g760" + clip-path="url(#clipPath764)"><g + id="g766"><g + id="g768"><g + id="g770"><g + id="g772" + clip-path="url(#clipPath776)"><g + id="g778"><text + transform="translate(7559.3998,3073.2553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text782"><tspan + x="0 50.267769 155.40952 245.73129 344.46439 414.15836 492.46393" + y="0" + sodipodi:role="line" + id="tspan780">Inverse</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g784"><g + id="g786"><g + id="g788" + clip-path="url(#clipPath792)"><g + id="g794"><g + id="g796" + transform="scale(1,-1)"><path + d="M 5625.23,-1841.996 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path798" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g800"><g + id="g802"><g + id="g804" + clip-path="url(#clipPath808)"><g + id="g810"><g + id="g812" + transform="scale(1,-1)"><path + d="M 6475.391,-1033.797 H -115.09" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path814" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g816"><g + id="g818"><g + id="g820" + clip-path="url(#clipPath824)"><g + id="g826"><g + id="g828"><g + id="g830"><g + id="g832" + clip-path="url(#clipPath836)"><g + id="g838"><text + transform="translate(1113.25,2084.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text842"><tspan + x="0 123.16605 222.70024 289.59042 389.1246 458.81857 618.63403 664.49585 768.43597 864.3653 931.25549 977.11731 1082.6597 1187.8014 1232.2614 1337.8036 1398.886 1444.147 1540.0763 1645.218 1690.479 1785.6073 1890.749 1995.8909 2065.5847 2170.5264 2257.2432 2303.105 2462.9204 2558.8499 2625.74 2725.2742 2769.9343 2830.6162 2908.9216 2975.812 3071.7412 3140.8345 3207.7246 3268.4065" + y="0" + sodipodi:role="line" + id="tspan840">Determination of an approximate (start) </tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g844"><g + id="g846"><g + id="g848" + clip-path="url(#clipPath852)"><g + id="g854"><g + id="g856"><g + id="g858"><g + id="g860" + clip-path="url(#clipPath864)"><g + id="g866"><text + transform="translate(2420.1699,2324.8053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text870"><tspan + x="0 105.14175 210.68404 288.98959 334.85144 401.74161 447.60345 552.14441" + y="0" + sodipodi:role="line" + id="tspan868">position</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g872"><g + id="g874"><g + id="g876" + clip-path="url(#clipPath880)"><g + id="g882"><g + id="g884"><g + id="g886"><g + id="g888" + clip-path="url(#clipPath892)"><g + id="g894"><text + transform="translate(15.220001,1479.7053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text898"><tspan + x="0 103.33932 208.88161 287.18716 333.04901 399.13812 444.99994 550.54224 655.68396 700.94501 806.4873 911.62903 977.51788 1023.3797 1183.1952 1229.057 1308.1636 1404.093 1470.9832 1516.845 1622.3872 1726.9282" + y="0" + sodipodi:role="line" + id="tspan896">Position optimization:</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g900"><g + id="g902"><g + id="g904" + clip-path="url(#clipPath908)"><g + id="g910"><g + id="g912"><g + id="g914"><g + id="g916" + clip-path="url(#clipPath920)"><g + id="g922"><text + transform="translate(1800.78,3133.9253)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text926"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 580.78302 626.64484 731.78656 822.10834 920.84143 990.5354 1068.8409 1168.3751 1213.6362 1297.5493 1403.0916 1562.9071 1668.0488 1773.1906 1840.0808 1936.0101 2002.9003 2048.7622 2153.303 2258.4448" + y="0" + sodipodi:role="line" + id="tspan924">Matrix inverse computation </tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g928"><g + id="g930"><g + id="g932" + clip-path="url(#clipPath936)"><g + id="g938"><g + id="g940"><g + id="g942"><g + id="g944" + clip-path="url(#clipPath948)"><g + id="g950"><text + transform="translate(1671.32,3517.1453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text954"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505 535.52197 580.78302 685.92474 785.45892 869.9729 974.91437 1134.7299 1239.8716 1345.4138 1423.7195 1468.58 1535.4701 1581.3319 1686.8741 1792.016 1870.3215" + y="0" + sodipodi:role="line" + id="tspan952">Matrix decompositions </tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g956"><g + id="g958"><g + id="g960" + clip-path="url(#clipPath964)"><g + id="g966"><path + d="m 7147.168,1784.824 h 816.48 v -272.578 l 8.512,8.508 v 272.582 l -8.512,-8.512 8.512,8.512 h -816.492 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path968" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g970"><g + id="g972"><g + id="g974" + clip-path="url(#clipPath978)"><g + id="g980"><g + id="g982" + transform="scale(1,-1)"><path + d="m 7147.168,-1784.824 h 816.48 v 272.578 l 8.512,-8.508 v -272.582 l -8.512,8.512 8.512,-8.512 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path984" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g986"><g + id="g988"><g + id="g990" + clip-path="url(#clipPath994)"><g + id="g996"><path + d="m 7147.168,1512.246 h 816.492 v 272.578 h -816.492 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path998" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1000"><g + id="g1002"><g + id="g1004" + clip-path="url(#clipPath1008)"><g + id="g1010"><g + id="g1012" + transform="scale(1,-1)"><path + d="m 7147.168,-1512.246 h 816.492 v -272.578 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1014" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1016"><g + id="g1018"><g + id="g1020" + clip-path="url(#clipPath1024)"><g + id="g1026"><g + id="g1028"><g + id="g1030"><g + id="g1032" + clip-path="url(#clipPath1036)"><g + id="g1038"><text + transform="translate(7261.8498,1708.9553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1042"><tspan + x="0 171.03058 294.19662 417.36267" + y="0" + sodipodi:role="line" + id="tspan1040">MDDM</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1044"><g + id="g1046"><g + id="g1048" + clip-path="url(#clipPath1052)"><g + id="g1054"><g + id="g1056"><g + id="g1058"><g + id="g1060" + clip-path="url(#clipPath1064)"><g + id="g1066"><text + transform="translate(4048.9699,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1070"><tspan + x="0 132.57874 237.72049 304.61066 349.87167 509.68713 555.54895 634.65564 729.98413 796.87433 842.73615 948.27844 1053.4202 1098.6813 1194.6106 1240.4724 1333.5979 1439.1403 1508.8342 1554.696 1621.5862 1726.7279 1886.5433" + y="0" + sodipodi:role="line" + id="tspan1068">Optimization algorithms</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1072"><g + id="g1074"><g + id="g1076" + clip-path="url(#clipPath1080)"><g + id="g1082"><g + id="g1084"><g + id="g1086"><g + id="g1088" + clip-path="url(#clipPath1092)"><g + id="g1094"><text + transform="translate(2089.6499,1708.9553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1098"><tspan + x="0 171.03058 276.17233 321.43335 388.32352 434.18536 539.32709 635.25641 702.14661 807.28839 851.74829 956.89008 1002.7519 1081.0575 1147.9476 1243.877 1349.0187 1433.5326 1533.0669 1577.7271 1682.8688 1782.403 1849.2932 1948.8274 2032.34 2099.2302 2145.092 2250.6343 2355.7759 2401.0371 2496.9663 2602.1082 2707.2498 2752.511 2911.325 2957.1868 3024.0769 3069.9387 3163.4648 3259.3943 3326.2844 3372.1462 3477.6885" + y="0" + sodipodi:role="line" + id="tspan1096">Multipath distance detection and mitigation</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1100"><g + id="g1102"><g + id="g1104" + clip-path="url(#clipPath1108)"><g + id="g1110"><path + d="m 7021.051,3534.406 h 1066.711 v -272.582 l 8.5,8.512 v 272.578 l -8.5,-8.508 8.5,8.508 H 7029.559 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1112" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1114"><g + id="g1116"><g + id="g1118" + clip-path="url(#clipPath1122)"><g + id="g1124"><g + id="g1126" + transform="scale(1,-1)"><path + d="m 7021.051,-3534.406 h 1066.711 v 272.582 l 8.5,-8.512 v -272.578 l -8.5,8.508 8.5,-8.508 H 7029.559 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1128" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1130"><g + id="g1132"><g + id="g1134" + clip-path="url(#clipPath1138)"><g + id="g1140"><path + d="M 7021.051,3261.824 H 8087.75 v 272.582 H 7021.051 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1142" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1144"><g + id="g1146"><g + id="g1148" + clip-path="url(#clipPath1152)"><g + id="g1154"><g + id="g1156" + transform="scale(1,-1)"><path + d="M 7021.051,-3261.824 H 8087.75 v -272.582 H 7021.051 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1158" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1160"><g + id="g1162"><g + id="g1164" + clip-path="url(#clipPath1168)"><g + id="g1170"><g + id="g1172"><g + id="g1174"><g + id="g1176" + clip-path="url(#clipPath1180)"><g + id="g1182"><text + transform="translate(7033.0498,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1186"><tspan + x="0 124.76821 230.3105 335.45224 413.75781 513.29199 617.63269 723.17499 769.0368 874.17853 973.71271" + y="0" + sodipodi:role="line" + id="tspan1184">Householder</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1188"><g + id="g1190"><g + id="g1192" + clip-path="url(#clipPath1196)"><g + id="g1198"><path + d="m 8465.039,3534.406 h 806.102 v -272.582 l 8.507,8.512 v 272.578 l -8.507,-8.508 8.507,8.508 h -806.097 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1200" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1202"><g + id="g1204"><g + id="g1206" + clip-path="url(#clipPath1210)"><g + id="g1212"><g + id="g1214" + transform="scale(1,-1)"><path + d="m 8465.039,-3534.406 h 806.102 v 272.582 l 8.507,-8.512 v -272.578 l -8.507,8.508 8.507,-8.508 h -806.097 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1216" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1218"><g + id="g1220"><g + id="g1222" + clip-path="url(#clipPath1226)"><g + id="g1228"><path + d="m 8465.039,3261.824 h 806.102 v 272.582 h -806.102 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1230" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1232"><g + id="g1234"><g + id="g1236" + clip-path="url(#clipPath1240)"><g + id="g1242"><g + id="g1244" + transform="scale(1,-1)"><path + d="m 8465.039,-3261.824 h 806.102 v -272.582 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1246" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1248"><g + id="g1250"><g + id="g1252" + clip-path="url(#clipPath1256)"><g + id="g1258"><g + id="g1260"><g + id="g1262"><g + id="g1264" + clip-path="url(#clipPath1268)"><g + id="g1270"><text + transform="translate(8596.0498,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1274"><tspan + x="0 126.1701 172.03194 262.3537 361.88788 467.02963" + y="0" + sodipodi:role="line" + id="tspan1272">Givens</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1276"><g + id="g1278"><g + id="g1280" + clip-path="url(#clipPath1284)"><g + id="g1286"><path + d="m 5837.668,3534.406 h 806.102 v -272.582 l 8.5,8.512 v 272.578 l -8.5,-8.508 8.5,8.508 h -806.102 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1288" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1290"><g + id="g1292"><g + id="g1294" + clip-path="url(#clipPath1298)"><g + id="g1300"><g + id="g1302" + transform="scale(1,-1)"><path + d="m 5837.668,-3534.406 h 806.102 v 272.582 l 8.5,-8.512 v -272.578 l -8.5,8.508 8.5,-8.508 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1304" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1306"><g + id="g1308"><g + id="g1310" + clip-path="url(#clipPath1314)"><g + id="g1316"><path + d="m 5837.668,3261.824 h 806.102 v 272.582 h -806.102 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1318" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1320"><g + id="g1322"><g + id="g1324" + clip-path="url(#clipPath1328)"><g + id="g1330"><g + id="g1332" + transform="scale(1,-1)"><path + d="m 5837.668,-3261.824 h 806.102 v -272.582 h -806.102 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1334" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1336"><g + id="g1338"><g + id="g1340" + clip-path="url(#clipPath1344)"><g + id="g1346"><g + id="g1348"><g + id="g1350"><g + id="g1352" + clip-path="url(#clipPath1356)"><g + id="g1358"><text + transform="translate(6076.9198,3458.7553)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1362"><tspan + x="0 91.923927 205.47702" + y="0" + sodipodi:role="line" + id="tspan1360">SVD</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1364"><g + id="g1366"><g + id="g1368" + clip-path="url(#clipPath1372)"><g + id="g1374"><path + d="M 6592.641,2233.094 H 8518.18 v -272.578 l 8.5,8.5 v 272.578 l -8.5,-8.5 8.5,8.5 H 6601.141 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1376" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1378"><g + id="g1380"><g + id="g1382" + clip-path="url(#clipPath1386)"><g + id="g1388"><g + id="g1390" + transform="scale(1,-1)"><path + d="M 6592.641,-2233.094 H 8518.18 v 272.578 l 8.5,-8.5 v -272.578 l -8.5,8.5 8.5,-8.5 H 6601.141 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1392" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1394"><g + id="g1396"><g + id="g1398" + clip-path="url(#clipPath1402)"><g + id="g1404"><path + d="M 6592.641,1960.516 H 8518.18 v 272.578 H 6592.641 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1406" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1408"><g + id="g1410"><g + id="g1412" + clip-path="url(#clipPath1416)"><g + id="g1418"><g + id="g1420" + transform="scale(1,-1)"><path + d="M 6592.641,-1960.516 H 8518.18 v -272.578 H 6592.641 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1422" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1424"><g + id="g1426"><g + id="g1428" + clip-path="url(#clipPath1432)"><g + id="g1434"><g + id="g1436"><g + id="g1438"><g + id="g1440" + clip-path="url(#clipPath1444)"><g + id="g1446"><text + transform="translate(6609.7998,2157.2753)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1450"><tspan + x="0 84.113403 189.65569 273.36856 369.29788 415.1597 461.02155 540.12817 636.0575 702.94769 748.80951 854.35181 958.89276 1004.1537 1119.9098 1165.7716 1259.2977 1364.8401 1434.5341 1480.3959 1547.286 1651.6267 1811.4421" + y="0" + sodipodi:role="line" + id="tspan1448">Localization Algorithms</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1452"><g + id="g1454"><g + id="g1456" + clip-path="url(#clipPath1460)"><g + id="g1462"><path + d="m 7643.891,2778.254 h 2368.8 v -272.578 l 8.5,8.5 v 272.578 l -8.5,-8.5 8.5,8.5 H 7652.398 Z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1464" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1466"><g + id="g1468"><g + id="g1470" + clip-path="url(#clipPath1474)"><g + id="g1476"><g + id="g1478" + transform="scale(1,-1)"><path + d="m 7643.891,-2778.254 h 2368.8 v 272.578 l 8.5,-8.5 v -272.578 l -8.5,8.5 8.5,-8.5 H 7652.398 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1480" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1482"><g + id="g1484"><g + id="g1486" + clip-path="url(#clipPath1490)"><g + id="g1492"><path + d="m 7643.891,2505.676 h 2368.789 v 272.578 H 7643.891 Z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1494" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1496"><g + id="g1498"><g + id="g1500" + clip-path="url(#clipPath1504)"><g + id="g1506"><g + id="g1508" + transform="scale(1,-1)"><path + d="m 7643.891,-2505.676 h 2368.789 v -272.578 H 7643.891 Z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1510" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1512"><g + id="g1514"><g + id="g1516" + clip-path="url(#clipPath1520)"><g + id="g1522"><g + id="g1524"><g + id="g1526"><g + id="g1528" + clip-path="url(#clipPath1532)"><g + id="g1534"><text + transform="translate(7671.5298,2702.5053)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1538"><tspan + x="0 132.57874 237.72049 304.61066 349.87167 509.68713 555.54895 634.65564 729.98413 796.87433 842.73615 948.27844 1053.4202 1098.6813 1235.2654 1280.5264 1386.2689 1491.4106 1561.1046 1651.4264 1750.9606 1796.2217 1887.3445 1933.2063 2000.0964 2066.9866 2112.8484 2217.9902" + y="0" + sodipodi:role="line" + id="tspan1536">Optimization & Curve Fitting</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1540"><g + id="g1542"><g + id="g1544" + clip-path="url(#clipPath1548)"><g + id="g1550"><path + d="m 7680.191,1385.516 h 816.477 v -272.571 l 8.512,8.5 v 272.578 l -8.512,-8.507 8.512,8.507 h -816.489 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1552" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1554"><g + id="g1556"><g + id="g1558" + clip-path="url(#clipPath1562)"><g + id="g1564"><g + id="g1566" + transform="scale(1,-1)"><path + d="m 7680.191,-1385.516 h 816.477 v 272.571 l 8.512,-8.5 v -272.578 l -8.512,8.507 8.512,-8.507 h -816.489 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1568" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1570"><g + id="g1572"><g + id="g1574" + clip-path="url(#clipPath1578)"><g + id="g1580"><path + d="m 7680.191,1112.934 h 816.488 v 272.582 h -816.488 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1582" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1584"><g + id="g1586"><g + id="g1588" + clip-path="url(#clipPath1592)"><g + id="g1594"><g + id="g1596" + transform="scale(1,-1)"><path + d="m 7680.191,-1112.934 h 816.488 v -272.582 h -816.488 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1598" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1600"><g + id="g1602"><g + id="g1604" + clip-path="url(#clipPath1608)"><g + id="g1610"><g + id="g1612"><g + id="g1614"><g + id="g1616" + clip-path="url(#clipPath1620)"><g + id="g1622"><text + transform="translate(7790.2998,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1626"><tspan + x="0 171.03058 297.20068 425.57376" + y="0" + sodipodi:role="line" + id="tspan1624">MGNM</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1628"><g + id="g1630"><g + id="g1632" + clip-path="url(#clipPath1636)"><g + id="g1638"><path + d="m 6580.238,1385.516 h 816.481 v -272.571 l 8.511,8.5 v 272.578 l -8.511,-8.507 8.511,8.507 h -816.492 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1640" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1642"><g + id="g1644"><g + id="g1646" + clip-path="url(#clipPath1650)"><g + id="g1652"><g + id="g1654" + transform="scale(1,-1)"><path + d="m 6580.238,-1385.516 h 816.481 v 272.571 l 8.511,-8.5 v -272.578 l -8.511,8.507 8.511,-8.507 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1656" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1658"><g + id="g1660"><g + id="g1662" + clip-path="url(#clipPath1666)"><g + id="g1668"><path + d="m 6580.238,1112.934 h 816.492 v 272.582 h -816.492 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1670" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1672"><g + id="g1674"><g + id="g1676" + clip-path="url(#clipPath1680)"><g + id="g1682"><g + id="g1684" + transform="scale(1,-1)"><path + d="m 6580.238,-1112.934 h 816.492 v -272.582 h -816.492 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1686" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1688"><g + id="g1690"><g + id="g1692" + clip-path="url(#clipPath1696)"><g + id="g1698"><g + id="g1700"><g + id="g1702"><g + id="g1704" + clip-path="url(#clipPath1708)"><g + id="g1710"><text + transform="translate(6804.6498,1309.6054)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1714"><tspan + x="0 84.113403 197.66649" + y="0" + sodipodi:role="line" + id="tspan1712">LVM</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1716"><g + id="g1718"><g + id="g1720" + clip-path="url(#clipPath1724)"><g + id="g1726"><path + d="m 7197.039,4036.637 h 613.941 v -272.582 l 8.508,8.5 v 272.582 l -8.508,-8.5 8.508,8.5 h -613.949 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1728" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1730"><g + id="g1732"><g + id="g1734" + clip-path="url(#clipPath1738)"><g + id="g1740"><g + id="g1742" + transform="scale(1,-1)"><path + d="m 7197.039,-4036.637 h 613.941 v 272.582 l 8.508,-8.5 v -272.582 l -8.508,8.5 8.508,-8.5 h -613.949 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1744" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1746"><g + id="g1748"><g + id="g1750" + clip-path="url(#clipPath1754)"><g + id="g1756"><path + d="m 7197.039,3764.055 h 613.941 v 272.582 h -613.941 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1758" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1760"><g + id="g1762"><g + id="g1764" + clip-path="url(#clipPath1768)"><g + id="g1770"><g + id="g1772" + transform="scale(1,-1)"><path + d="m 7197.039,-3764.055 h 613.941 v -272.582 h -613.941 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1774" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1776"><g + id="g1778"><g + id="g1780" + clip-path="url(#clipPath1784)"><g + id="g1786"><g + id="g1788"><g + id="g1790"><g + id="g1792" + clip-path="url(#clipPath1796)"><g + id="g1798"><text + transform="translate(7236.4698,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1802"><tspan + x="0 171.03058 266.9599 333.8501 402.94324 448.80505" + y="0" + sodipodi:role="line" + id="tspan1800">Matrix</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1804"><g + id="g1806"><g + id="g1808" + clip-path="url(#clipPath1812)"><g + id="g1814"><path + d="m 8690.031,4036.637 h 613.938 v -272.582 l 8.511,8.5 v 272.582 l -8.511,-8.5 8.511,8.5 h -613.941 z" + style="fill:#418291;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1816" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1818"><g + id="g1820"><g + id="g1822" + clip-path="url(#clipPath1826)"><g + id="g1828"><g + id="g1830" + transform="scale(1,-1)"><path + d="m 8690.031,-4036.637 h 613.938 v 272.582 l 8.511,-8.5 v -272.582 l -8.511,8.5 8.511,-8.5 h -613.941 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1832" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1834"><g + id="g1836"><g + id="g1838" + clip-path="url(#clipPath1842)"><g + id="g1844"><path + d="m 8690.031,3764.055 h 613.938 v 272.582 h -613.938 z" + style="fill:#6dd9f3;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path1846" + inkscape:connector-curvature="0" /></g></g></g></g><g + id="g1848"><g + id="g1850"><g + id="g1852" + clip-path="url(#clipPath1856)"><g + id="g1858"><g + id="g1860" + transform="scale(1,-1)"><path + d="m 8690.031,-3764.055 h 613.938 v -272.582 h -613.938 z" + style="fill:none;stroke:#c8c8c8;stroke-width:0.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1862" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1864"><g + id="g1866"><g + id="g1868" + clip-path="url(#clipPath1872)"><g + id="g1874"><g + id="g1876"><g + id="g1878"><g + id="g1880" + clip-path="url(#clipPath1884)"><g + id="g1886"><text + transform="translate(8727.6998,3961.0453)" + style="font-variant:normal;font-weight:normal;font-size:200.27000427px;font-family:Calibri;-inkscape-font-specification:Calibri;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="text1890"><tspan + x="0 113.55309 213.08728 297.60123 363.89059 469.43289" + y="0" + sodipodi:role="line" + id="tspan1888">Vector</tspan></text> + + +</g></g></g></g></g></g></g></g><g + id="g1892"><g + id="g1894"><g + id="g1896" + clip-path="url(#clipPath1900)"><g + id="g1902"><g + id="g1904" + transform="scale(1,-1)"><path + d="M 3237.129,-4112.227 H -196.859" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path1906" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1908"><g + id="g1910"><g + id="g1912" + clip-path="url(#clipPath1916)"><g + id="g1918"><g + id="g1920" + transform="scale(1,-1)"><path + d="M 5081.828,-2358.574 H 9917.59" + style="fill:none;stroke:#000000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" + id="path1922" + inkscape:connector-curvature="0" /></g></g></g></g></g><g + id="g1924"><g + id="g1926"><g + id="g1928" + clip-path="url(#clipPath1932)"><g + id="g1934"><g + id="g1936" + transform="scale(1,-1)"><path + d="M 5081.828,-2358.574 H -181.941" + style="fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;stroke-dasharray:5.25, 7.5;stroke-dashoffset:0;stroke-opacity:1" + id="path1938" + inkscape:connector-curvature="0" /></g></g></g></g></g></g></g></svg> \ No newline at end of file