193 lines
84 KiB
HTML
193 lines
84 KiB
HTML
<!-- HTML header for doxygen 1.8.8-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<!-- For Mobile Devices -->
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta name="generator" content="Doxygen 1.8.12"/>
|
|
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
|
|
<title>Etk: Ewol Tool Kit: framework/atria-soft/etk/etk/math/Matrix.hpp Source File</title>
|
|
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
|
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
|
|
<script type="text/javascript" src="doxy-boot.js"></script>
|
|
</head>
|
|
<body>
|
|
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<a class="navbar-brand">Etk: Ewol Tool Kit 0.10.0</a>
|
|
</div>
|
|
<div id="navbar" class="navbar-collapse collapse">
|
|
<ul class="nav navbar-nav">
|
|
<li><a href="index.html">Main Page</a></li>
|
|
<li><a href="pages.html">Related Pages</a></li>
|
|
<li><a href="namespaces.html">Namespaces</a></li>
|
|
<li><a href="annotated.html">Classes</a></li>
|
|
<li><a href="files.html">Files</a></li>
|
|
</ul>
|
|
<ul class="nav navbar-nav navbar-right">
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
|
Link-libs<span class="caret"></span>
|
|
</a>
|
|
<ul class="dropdown-menu">
|
|
<li><a href="http://HeeroYui.github.io/lutin">lutin</a></li>
|
|
<li><a href="http://atria-soft.github.io/ewol">ewol</a></li>
|
|
<li><a href="http://atria-soft.github.io/echrono">echrono</a></li>
|
|
<li><a href="http://atria-soft.github.io/etk">etk</a></li>
|
|
<li><a href="http://atria-soft.github.io/ejson">ejson</a></li>
|
|
<li><a href="http://atria-soft.github.io/exml">exml</a></li>
|
|
<li><a href="http://atria-soft.github.io/esvg">esvg</a></li>
|
|
<li><a href="http://atria-soft.github.io/egami">egami</a></li>
|
|
<li><a href="http://atria-soft.github.io/gale">gale</a></li>
|
|
<li><a href="http://atria-soft.github.io/ege">ege</a></li>
|
|
<li><a href="http://atria-soft.github.io/elog">elog</a></li>
|
|
<li><a href="http://atria-soft.github.io/ememory">ememory</a></li>
|
|
<li><a href="http://atria-soft.github.io/enet">enet</a></li>
|
|
<li><a href="http://atria-soft.github.io/eproperty">eproperty</a></li>
|
|
<li><a href="http://atria-soft.github.io/esignal">esignal</a></li>
|
|
<li><a href="http://atria-soft.github.io/etranslate">etranslate</a></li>
|
|
<li><a href="http://atria-soft.github.io/zeus">zeus</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-ess">audio-ess</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio">audio</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-drain">audio-drain</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-orchestra">audio-orchestra</a></li>
|
|
<li><a href="http://musicdsp.github.io/audio-river">audio-river</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div id="search-box" class="input-group">
|
|
<div class="input-group-btn">
|
|
<button aria-expanded="false" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
|
<span class="glyphicon glyphicon-search"></span>
|
|
<span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li><a href="#">All</a></li>
|
|
<li><a href="#">Classes</a></li>
|
|
<li><a href="#">Namespaces</a></li>
|
|
<li><a href="#">Files</a></li>
|
|
<li><a href="#">Functions</a></li>
|
|
<li><a href="#">Variables</a></li>
|
|
<li><a href="#">Typedefs</a></li>
|
|
<li><a href="#">Enumerations</a></li>
|
|
<li><a href="#">Enumerator</a></li>
|
|
<li><a href="#">Friends</a></li>
|
|
<li><a href="#">Macros</a></li>
|
|
<li><a href="#">Pages</a></li>
|
|
</ul>
|
|
</div>
|
|
<button id="search-close" type="button" class="close" aria-label="Close">
|
|
<span aria-hidden="true"></span>
|
|
</button>
|
|
<input id="search-field" class="form-control" accesskey="S" onkeydown="searchBox.OnSearchFieldChange(event);" placeholder="Search ..." type="text">
|
|
</div>
|
|
</div><!--/.nav-collapse -->
|
|
</div>
|
|
</nav>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div class="content" id="content">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
|
|
<div style="margin-bottom: 15px;margin-top: 60px;">
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.12 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_644e041c3a6521da7b27eba0e4eb2b95.html">framework</a></li><li class="navelem"><a class="el" href="dir_a094892b17be858f66bf3446bbb755c7.html">atria-soft</a></li><li class="navelem"><a class="el" href="dir_101ca691570835542fc832f149ed9b11.html">etk</a></li><li class="navelem"><a class="el" href="dir_8e1854e033aa3ec68b8dd13c773d2923.html">etk</a></li><li class="navelem"><a class="el" href="dir_f311a0a6eba1dc32efa9f7eace7d8ad2.html">math</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">Matrix.hpp</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="_matrix_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#pragma once</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 <<a class="code" href="types_8hpp.html">etk/types.hpp</a>></span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <<a class="code" href="_vector2_d_8hpp.html">etk/math/Vector2D.hpp</a>></span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span><a class="code" href="namespaceetk.html">etk</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html"> 17</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keyword">class </span><a class="code" href="classetk_1_1_matrix.html">Matrix</a> {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  <a class="code" href="classetk_1_1_vector2_d.html">uivec2</a> m_size; </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  std::vector<T> m_data; </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#aad86d66460d629601a63a70739991d09"> 27</a></span>  <a class="code" href="classetk_1_1_matrix.html#aad86d66460d629601a63a70739991d09">Matrix</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_vector2_d.html">ivec2</a>& _size, T* _defaultVal=<span class="keyword">nullptr</span>) :</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  m_size(_size),</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="namespaceetk.html">etk</a>::<a class="code" href="classetk_1_1_vector2_d.html">Vector2D</a><T>(_size.x()* _size.y()) {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordflow">if</span> (defaultVal == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="_matrix_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordflow">return</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="comment">// copy all the elements</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> iii = 0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  iii <= m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()*m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  ++iii) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="comment">// cast and set value : </span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  m_data[iii] = T(_defaultVal++);</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="l00048"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#ab50a671a8e9f9d7b1b6a3d519f6a2847"> 48</a></span>  <a class="code" href="classetk_1_1_matrix.html#ab50a671a8e9f9d7b1b6a3d519f6a2847">Matrix</a>(int32_t _width=0, int32_t _heigh=0, T* _defaultVal=<span class="keyword">nullptr</span>) :</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  m_size(_width, _heigh),</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceetk.html">etk</a>::<a class="code" href="classetk_1_1_vector2_d.html">Vector2D</a><T>(_width*_heigh) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (_defaultVal == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="_matrix_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">return</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="comment">// copy all the elements</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> iii = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  iii <= m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()*m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  ++iii) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// cast and set value : </span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  m_data[iii] = T(_defaultVal++);</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="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">template</span><<span class="keyword">class</span> ETK_TYPE_MATRIX_2></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#afffb93555f328b3972c456e2f0e5aca8"> 68</a></span>  <a class="code" href="classetk_1_1_matrix.html#afffb93555f328b3972c456e2f0e5aca8">Matrix</a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<ETK_TYPE_MATRIX_2></a>& _obj) :</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  m_size(_obj.m_size),</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="namespaceetk.html">etk</a>::<a class="code" href="classetk_1_1_vector2_d.html">Vector2D</a><T>(_obj.m_size.x()* _obj.m_size.y()) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// copy all the elements</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> iii = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  iii <= m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()*m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  ++iii) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// cast and set value : </span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  m_data[iii] = T(_obj.m_data[iii]);</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>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">virtual</span> <a class="code" href="classetk_1_1_matrix.html#a8ae71a3749309ebea595c9619d28878e">~Matrix</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a15251e4a208c761f60f4314e9a16b423"> 89</a></span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& <a class="code" href="classetk_1_1_matrix.html#a15251e4a208c761f60f4314e9a16b423">operator= </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj ) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// check if it was the same pointer</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (<span class="keyword">this</span> == &_obj ) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> *<span class="keyword">this</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>  <span class="comment">// copy data :</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  m_size = _obj.m_size;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  m_data = _obj.m_data;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#aa1ed48736a8b4948a33eec76d88369d2"> 104</a></span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& <a class="code" href="classetk_1_1_matrix.html#a15251e4a208c761f60f4314e9a16b423">operator= </a>(T& _value) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// set data :</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> iii = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  iii <= m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()*m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  ++iii) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  m_data = _value;</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="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#abf3cb49a1c359fed6e006112c593c476"> 119</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classetk_1_1_matrix.html#abf3cb49a1c359fed6e006112c593c476">operator== </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj)<span class="keyword"> const </span>{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> (m_data == _obj.m_data);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a462dc7b2109911c681808e4c39e0242c"> 128</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classetk_1_1_matrix.html#a462dc7b2109911c681808e4c39e0242c">operator!= </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj)<span class="keyword"> const </span>{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> (m_data != _obj.m_data);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a56b9d699e1e6df0819553bc18580ebc5"> 141</a></span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& <a class="code" href="classetk_1_1_matrix.html#a56b9d699e1e6df0819553bc18580ebc5">operator+= </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (m_size != _obj.m_size) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">//TK_CRITICAL("add 2 Matrix with différent size ... ==> generate the max size of all the 2 matrix");</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classetk_1_1_matrix.html">etk::Matrix<T></a> tmpMatrix(std::max(m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(),_obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()), std::max(m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(),_obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">for</span> (int32_t jjj=0; jjj< m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); jjj++) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  T* tmpPointer = tmpMatrix[jjj];</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  T* tmpPointerIn = (*this)[jjj];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  tmpPointer[iii] = tmpPointerIn[iii];</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="keywordflow">for</span> (int32_t jjj=0; jjj< _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); jjj++) {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  T* tmpPointer = tmpMatrix[jjj];</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  T* tmpPointerIn = _obj[jjj];</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  tmpPointer[iii] += tmpPointerIn[iii];</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>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="comment">// copy in local :</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  m_size = tmpMatrix.m_size;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  m_data = tmpMatrix.m_data;</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="comment">// copy data for the same size:</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< m_data.size(); iii++) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  m_data[iii] += _obj.m_data[iii];</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>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#ab4be6249290e9cc83e11fb5a7d51a71a"> 180</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#ab4be6249290e9cc83e11fb5a7d51a71a">operator+ </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmpp(*<span class="keyword">this</span>);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  tmpp += _obj;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> tmpp;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a4f9f11ea323f846d3dff802a8ae42dfc"> 195</a></span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& <a class="code" href="classetk_1_1_matrix.html#a4f9f11ea323f846d3dff802a8ae42dfc">operator-= </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">if</span> (m_size != _obj.m_size) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">//TK_CRITICAL("less 2 Matrix with different size ... ==> generate the max size of all the 2 matrix");</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classetk_1_1_matrix.html">etk::Matrix<T></a> tmpMatrix(std::max(m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(),_obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()), std::max(m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(),_obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">for</span> (int32_t jjj=0; jjj< m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>; jjj++) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  T* tmpPointer = tmpMatrix[jjj];</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  T* tmpPointerIn = (*this)[jjj];</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  tmpPointer[iii] = tmpPointerIn[iii];</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>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">for</span> (int32_t jjj=0; jjj< _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); jjj++) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  T* tmpPointer = tmpMatrix[jjj];</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  T* tmpPointerIn = _obj[jjj];</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  tmpPointer[iii] -= tmpPointerIn[iii];</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>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// copy in local :</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  m_size = tmpMatrix.m_size;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  m_data = tmpMatrix.m_data;</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="comment">// copy data for the same size :</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< m_data.size(); iii++) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  m_data[iii] -= _obj.m_data[iii];</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>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  };</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a0ae8ca9d370824a39292d491fe5f1a98"> 234</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#a40747926d8d2e3c15dec55e54dc1cb1d">operator- </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmpp(*<span class="keyword">this</span>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  tmpp += _obj;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">return</span> tmpp;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#ae7a240d2806b1559321c777164ed3f19"> 244</a></span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& <a class="code" href="classetk_1_1_matrix.html#ae7a240d2806b1559321c777164ed3f19">operator*= </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">if</span>( m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() != _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  || m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>() != _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()) {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">//TK_CRITICAL("Error while multipliying 2 matrix with different size ==> impossible case ...");</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> *<span class="keyword">this</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>  <a class="code" href="classetk_1_1_matrix.html">etk::Matrix<T></a> tmpMatrix(m_size);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">for</span> (int32_t jjj=0; jjj< _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); jjj++) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  T tmpVal = 0;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">for</span> (int32_t kkk=0; kkk< _obj.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); kkk++) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  tmpVal += (*this)[jjj][iii+kkk] * _obj[jjj+kkk][iii];</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>  tmpMatrix[jjj][iii] = tmpVal;</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">// copy in local :</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  m_data = tmpMatrix.m_data;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  };</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#af172540c6c28fb2ae897079b8c67ecf7"> 269</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#af172540c6c28fb2ae897079b8c67ecf7">operator* </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix</a> tmpp(*<span class="keyword">this</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  tmpp *= _obj;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">return</span> tmpp;</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>  <span class="comment">// TODO : Check if is possible to do elemntValue = mayMatrix[xxx, yyy]</span></div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a24182b2aa9d2dd90c194645017690d06"> 283</a></span> <span class="comment"></span> <span class="keyword">const</span> T* <a class="code" href="classetk_1_1_matrix.html#a24182b2aa9d2dd90c194645017690d06">operator[] </a>(int32_t _yyy)<span class="keyword"> const </span>{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">return</span> &m_data[_yyy*m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()];</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a1267a239b7aa11a7aad1de94a1de36a4"> 294</a></span>  T* <a class="code" href="classetk_1_1_matrix.html#a24182b2aa9d2dd90c194645017690d06">operator[] </a>(int32_t _yyy) {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">return</span> &m_data[_yyy*m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()];</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#aa09270ed5528f21e9ba99ef66289d930"> 305</a></span>  <span class="keyword">const</span> T& <a class="code" href="classetk_1_1_matrix.html#a24182b2aa9d2dd90c194645017690d06">operator[] </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_vector2_d.html">ivec2</a>& _pos)<span class="keyword"> const </span>{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> m_data[_pos.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()*m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() + _pos.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()];</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a5622ca68ea8cccd48eec422f1d0921d4"> 316</a></span>  T& <a class="code" href="classetk_1_1_matrix.html#a24182b2aa9d2dd90c194645017690d06">operator[] </a>(<span class="keyword">const</span> <a class="code" href="classetk_1_1_vector2_d.html">ivec2</a>& _pos) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> m_data[_pos.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()*m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() + _pos.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()];</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a4bc86bfb0274d2aac75816462bc77406"> 328</a></span>  T& <a class="code" href="classetk_1_1_matrix.html#a4bc86bfb0274d2aac75816462bc77406">operator () </a>(<span class="keywordtype">size_t</span> _xxx, <span class="keywordtype">size_t</span> _yyy) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> m_data[_yyy*m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() + _xxx];</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a40747926d8d2e3c15dec55e54dc1cb1d"> 335</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#a40747926d8d2e3c15dec55e54dc1cb1d">operator- </a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmp(m_size);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii<m_data.Size(); iii++) {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  tmp.m_data[iii] = -m_data[iii];</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="keywordflow">return</span> tmp;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#ab05c8b14ec68367d0391c23b77870a3b"> 346</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#ab05c8b14ec68367d0391c23b77870a3b">transpose</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="comment">// create a matrix with the inverted size</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmpMatrix(m_size);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">for</span> (int32_t jjj=0; jjj< m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); jjj++) {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  tmpMatrix(jjj,iii) = (*this)(iii,jjj);</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>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">return</span> tmpMatrix;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a1c77336ae8faf6fd48c7573d46a74533"> 361</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#a1c77336ae8faf6fd48c7573d46a74533">convolution</a>(<a class="code" href="classetk_1_1_matrix.html">Matrix<T></a>& _obj)<span class="keyword"> const </span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmppp(1,1);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// TODO : ...</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">return</span> tmppp;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a2b08925854b289bb5bbbe390a7df2ec5"> 371</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#a2b08925854b289bb5bbbe390a7df2ec5">fix</a>(int32_t _decalage)<span class="keyword"> const </span>{</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmppp(m_size);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  T tmpVal = 0;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">for</span>(int32_t iii=0; iii<m_data.size(); iii++) {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  tmpVal = m_data[iii];</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">if</span> (tmpVal < 0 && (tmpVal & ~(~0 << _decalage))) {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  tmpVal = tmpVal >> _decalage;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  tmpVal++;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  tmpVal = tmpVal >> _decalage;</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>  tmppp.m_data[iii] = tmpVal;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">return</span> tmppp;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  };</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#abcdbd3b8fd508eb89618c4deb966b6ce"> 391</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#abcdbd3b8fd508eb89618c4deb966b6ce">round</a>(int32_t _decalage)<span class="keyword"> const </span>{</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmppp(m_size);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">for</span>(int32_t iii=0; iii<m_data.size(); iii++) {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  tmppp.m_data[iii] = ( m_data[iii]+(1<<(_decalage-1)) ) >> _decalage;</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="keywordflow">return</span> tmppp;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  };</div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#af36248ca24c111c83555ba8d97b07452"> 403</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#af36248ca24c111c83555ba8d97b07452">resize</a>(<a class="code" href="classetk_1_1_vector2_d.html">etk::Vector2D<int32_t></a> _size)<span class="keyword"> const </span>{</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmppp(_size);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">for</span>(int32_t iii=0; iii<m_data.m_size.x() && iii<tmppp.m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">for</span>(int32_t jjj=0; jjj<m_data.m_size.y() && jjj<tmppp.m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); jjj++) {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  tmppp(iii,jjj) = (*this)(iii,jjj);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</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">return</span> tmppp;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  };</div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a1c8f1bb6f8d14c0fb9d4d39dac67b07b"> 420</a></span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> <a class="code" href="classetk_1_1_matrix.html#a1c8f1bb6f8d14c0fb9d4d39dac67b07b">select</a>(int32_t _np, int32_t* _p, int32_t _nq, int32_t* _q)<span class="keyword"> const </span>{</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">if</span> (_np < 1 || _nq < 1) {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  TK_WARNING(<span class="stringliteral">"bad index array sizes"</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="classetk_1_1_matrix.html">Matrix<T></a> tmppp(_np, _nq);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii<_np; iii++) {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">for</span> (int32_t jjj=0; jjj<_nq; jjj++) {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span>( _p[i] < 0</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  || _p[i] >= m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  || _q[i] < 0</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  || _q[i] >= m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  TK_WARNING(<span class="stringliteral">"bad index arrays"</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>  tmppp(iii,jjj) = (*this)(_p[i],_q[j]);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">return</span> tmppp;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  }</div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classetk_1_1_matrix.html#a56e65b58426a503e0f55274d813fc307"> 448</a></span>  <span class="keywordtype">void</span> <a class="code" href="classetk_1_1_matrix.html#a56e65b58426a503e0f55274d813fc307">clearUpperTriangle</a>() {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">if</span> (m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() != m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()) {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  TK_WARNING(<span class="stringliteral">"better to do with square Matrix"</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"> 452</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii<m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">for</span> (int32_t jjj=iii+1; jjj<m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); jjj++)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  m_data[iii*m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() + jjj] = 0;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</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>  };</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="namespaceetk.html#a80d4500245f02806cf3397656ed18bb8"> 468</a></span>  <span class="keywordtype">void</span> <a class="code" href="namespaceetk.html#a80d4500245f02806cf3397656ed18bb8">clearLowerTriangle</a>() {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">if</span> (m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() != m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()) {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  TK_WARNING(<span class="stringliteral">"better to do with square Matrix"</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii<m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(); iii++) {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">for</span> (int32_t jjj=0; jjj<m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>() && jjj<iii; jjj++)</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  m_data[iii*m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>() + jjj] = 0;</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>  }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  };</div><div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#ac4e350fa2c355b17557877b9c1e2b411"> 482</a></span>  <span class="keywordtype">void</span> <a class="code" href="_matrix_8hpp.html#ac4e350fa2c355b17557877b9c1e2b411">makeRandom</a>(<span class="keywordtype">float</span> _range) {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">for</span>(int32_t iii=0; iii<m_data.size(); iii++) {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  m_data[iii] = (T)<a class="code" href="namespaceetk_1_1tool.html#a3acc4fd6faa76439bd1651ec86bccd03">etk::tool::frand</a>(-_range, _range);</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="l00492"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#af2f25c1372f63ddd76bfc39e19f57bc2"> 492</a></span>  T <a class="code" href="_matrix_8hpp.html#af2f25c1372f63ddd76bfc39e19f57bc2">maxDifference</a>(<span class="keyword">const</span> Matrix<T>& _input)<span class="keyword"> const </span>{</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">if</span> (m_size != _input.m_size) {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  TK_WARNING(<span class="stringliteral">"better to do with same size Matrix"</span>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  T max = 0;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">for</span>(int32_t iii = 0;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  iii < m_data.size() && iii < _input.m_data.size();</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  ++iii) {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  T diff = m_data[iii] - _input.m_data[iii];</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (diff<0) {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  diff = -diff;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">if</span> (diff > max) {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  max = diff;</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>  <span class="keywordflow">return</span> max;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204"> 520</a></span>  <span class="keywordtype">void</span> <a class="code" href="_matrix_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>() {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="comment">// copy data for the same size :</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>()*m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>(); iii++) {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  m_data[iii] = (T)0;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  };</div><div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#ac1b6fba75206cba9fb2cfc71ed0a7052"> 535</a></span>  <span class="keywordtype">void</span> <a class="code" href="_matrix_8hpp.html#ac1b6fba75206cba9fb2cfc71ed0a7052">identity</a>() {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="comment">// copy data for the same size :</span></div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">for</span> (int32_t iii=0; iii< std::mim(m_size.<a class="code" href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">x</a>(), m_size.<a class="code" href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">y</a>()); iii++) {</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  (*this)(iii,iii) = (T)1;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  };</div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#a576603a22be715dc2c22a9002737e655"> 544</a></span>  <span class="keywordtype">void</span> <a class="code" href="_matrix_8hpp.html#a576603a22be715dc2c22a9002737e655">eye</a>() {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <a class="code" href="_matrix_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>();</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="_matrix_8hpp.html#ac1b6fba75206cba9fb2cfc71ed0a7052">identity</a>();</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  };</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#ab35a6d6d9aa161dbe3debb10b27613ef"> 552</a></span>  <span class="keyword">const</span> <a class="code" href="classetk_1_1_vector2_d.html">uivec2</a>& <a class="code" href="_matrix_8hpp.html#ab35a6d6d9aa161dbe3debb10b27613ef">size</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> m_size;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  };</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  };</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span> }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="comment">// To siplify the writing of the code ==> this is not compatible with GLSL ...</span></div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#a756b989683c5370413adde4d86ac59b2"> 559</a></span> <span class="keyword">using</span> <a class="code" href="classetk_1_1_matrix.html">dmat</a> = <a class="code" href="classetk_1_1_matrix.html">etk::Matrix<double></a>; </div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#a45d98ad44526fb0afcbc6d2cacc05d34"> 560</a></span> <span class="keyword">using</span> <a class="code" href="classetk_1_1_matrix.html">mat</a> = <a class="code" href="classetk_1_1_matrix.html">etk::Matrix<float></a>; </div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#a1660fbf545101f027ea5c88061f334c1"> 561</a></span> <span class="keyword">using</span> <a class="code" href="classetk_1_1_matrix.html">imat</a> = <a class="code" href="classetk_1_1_matrix.html">etk::Matrix<int32_t></a>; </div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="_matrix_8hpp.html#a042e3a7f45f57b7ef9811db473231d5b"> 562</a></span> <span class="keyword">using</span> <a class="code" href="classetk_1_1_matrix.html">uimat</a> = <a class="code" href="classetk_1_1_matrix.html">etk::Matrix<uint32_t></a>; </div><div class="ttc" id="classetk_1_1_vector2_d_html_a8409de5d430e5cdcb7326aee94176873"><div class="ttname"><a href="classetk_1_1_vector2_d.html#a8409de5d430e5cdcb7326aee94176873">etk::Vector2D::x</a></div><div class="ttdeci">const T & x() const</div><div class="ttdoc">Get X value. </div><div class="ttdef"><b>Definition:</b> Vector2D.hpp:467</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_af172540c6c28fb2ae897079b8c67ecf7"><div class="ttname"><a href="classetk_1_1_matrix.html#af172540c6c28fb2ae897079b8c67ecf7">etk::Matrix::operator*</a></div><div class="ttdeci">Matrix< T > operator*(const Matrix< T > &_obj)</div><div class="ttdoc">Operator* Multiplication an other matrix with this one. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:269</div></div>
|
|
<div class="ttc" id="_matrix_8hpp_html_a576603a22be715dc2c22a9002737e655"><div class="ttname"><a href="_matrix_8hpp.html#a576603a22be715dc2c22a9002737e655">eye</a></div><div class="ttdeci">void eye()</div><div class="ttdoc">Clear and set the diagonal at 1. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:544</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_ae7a240d2806b1559321c777164ed3f19"><div class="ttname"><a href="classetk_1_1_matrix.html#ae7a240d2806b1559321c777164ed3f19">etk::Matrix::operator*=</a></div><div class="ttdeci">const Matrix< T > & operator*=(const Matrix< T > &_obj)</div><div class="ttdoc">Operator*= Multiplication an other matrix with this one. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:244</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_afffb93555f328b3972c456e2f0e5aca8"><div class="ttname"><a href="classetk_1_1_matrix.html#afffb93555f328b3972c456e2f0e5aca8">etk::Matrix::Matrix</a></div><div class="ttdeci">Matrix(const Matrix< ETK_TYPE_MATRIX_2 > &_obj)</div><div class="ttdoc">Copy contructor with ETK_TYPE_MATRIX_2 type matrix input. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:68</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a56e65b58426a503e0f55274d813fc307"><div class="ttname"><a href="classetk_1_1_matrix.html#a56e65b58426a503e0f55274d813fc307">etk::Matrix::clearUpperTriangle</a></div><div class="ttdeci">void clearUpperTriangle()</div><div class="ttdoc">Clear the Upper triangle of the current Matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:448</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_ab05c8b14ec68367d0391c23b77870a3b"><div class="ttname"><a href="classetk_1_1_matrix.html#ab05c8b14ec68367d0391c23b77870a3b">etk::Matrix::transpose</a></div><div class="ttdeci">Matrix< T > transpose() const</div><div class="ttdoc">Transpose Matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:346</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a40747926d8d2e3c15dec55e54dc1cb1d"><div class="ttname"><a href="classetk_1_1_matrix.html#a40747926d8d2e3c15dec55e54dc1cb1d">etk::Matrix::operator-</a></div><div class="ttdeci">Matrix< T > operator-() const</div><div class="ttdoc">Operator- Multiply with -1. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:335</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a56b9d699e1e6df0819553bc18580ebc5"><div class="ttname"><a href="classetk_1_1_matrix.html#a56b9d699e1e6df0819553bc18580ebc5">etk::Matrix::operator+=</a></div><div class="ttdeci">const Matrix< T > & operator+=(const Matrix< T > &_obj)</div><div class="ttdoc">Operator+= Addition an other matrix with this one. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:141</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_abcdbd3b8fd508eb89618c4deb966b6ce"><div class="ttname"><a href="classetk_1_1_matrix.html#abcdbd3b8fd508eb89618c4deb966b6ce">etk::Matrix::round</a></div><div class="ttdeci">Matrix< T > round(int32_t _decalage) const</div><div class="ttdoc">generate a devide of the curent Matrix with the specify power of 2 </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:391</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_abf3cb49a1c359fed6e006112c593c476"><div class="ttname"><a href="classetk_1_1_matrix.html#abf3cb49a1c359fed6e006112c593c476">etk::Matrix::operator==</a></div><div class="ttdeci">bool operator==(const Matrix< T > &_obj) const</div><div class="ttdoc">Equality compare operator with an other object. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:119</div></div>
|
|
<div class="ttc" id="_matrix_8hpp_html_ab35a6d6d9aa161dbe3debb10b27613ef"><div class="ttname"><a href="_matrix_8hpp.html#ab35a6d6d9aa161dbe3debb10b27613ef">size</a></div><div class="ttdeci">const uivec2 & size() const</div><div class="ttdoc">Get the size of the current Matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:552</div></div>
|
|
<div class="ttc" id="namespaceetk_html"><div class="ttname"><a href="namespaceetk.html">etk</a></div><div class="ttdoc">basic namespace of the etk library. (it might contain all the etk fuctions/class/structures without m...</div><div class="ttdef"><b>Definition:</b> Archive.hpp:16</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_af36248ca24c111c83555ba8d97b07452"><div class="ttname"><a href="classetk_1_1_matrix.html#af36248ca24c111c83555ba8d97b07452">etk::Matrix::resize</a></div><div class="ttdeci">Matrix< T > resize(etk::Vector2D< int32_t > _size) const</div><div class="ttdoc">Generate a resised matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:403</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a1c8f1bb6f8d14c0fb9d4d39dac67b07b"><div class="ttname"><a href="classetk_1_1_matrix.html#a1c8f1bb6f8d14c0fb9d4d39dac67b07b">etk::Matrix::select</a></div><div class="ttdeci">Matrix< T > select(int32_t _np, int32_t *_p, int32_t _nq, int32_t *_q) const</div><div class="ttdoc">Select element in the matrix from a list of element Ids. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:420</div></div>
|
|
<div class="ttc" id="_matrix_8hpp_html_af2f25c1372f63ddd76bfc39e19f57bc2"><div class="ttname"><a href="_matrix_8hpp.html#af2f25c1372f63ddd76bfc39e19f57bc2">maxDifference</a></div><div class="ttdeci">T maxDifference(const Matrix< T > &_input) const</div><div class="ttdoc">Return the maximum of the diff for this Matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:492</div></div>
|
|
<div class="ttc" id="types_8hpp_html"><div class="ttname"><a href="types_8hpp.html">types.hpp</a></div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_aad86d66460d629601a63a70739991d09"><div class="ttname"><a href="classetk_1_1_matrix.html#aad86d66460d629601a63a70739991d09">etk::Matrix::Matrix</a></div><div class="ttdeci">Matrix(const ivec2 &_size, T *_defaultVal=nullptr)</div><div class="ttdoc">Contructor that create a Vector with a specific size and specific raw data. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:27</div></div>
|
|
<div class="ttc" id="_matrix_8hpp_html_ac4e350fa2c355b17557877b9c1e2b411"><div class="ttname"><a href="_matrix_8hpp.html#ac4e350fa2c355b17557877b9c1e2b411">makeRandom</a></div><div class="ttdeci">void makeRandom(float _range)</div><div class="ttdoc">Generate a compleate random Matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:482</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_ab50a671a8e9f9d7b1b6a3d519f6a2847"><div class="ttname"><a href="classetk_1_1_matrix.html#ab50a671a8e9f9d7b1b6a3d519f6a2847">etk::Matrix::Matrix</a></div><div class="ttdeci">Matrix(int32_t _width=0, int32_t _heigh=0, T *_defaultVal=nullptr)</div><div class="ttdoc">default contructor that create a Vector with a specific size and specific raw data ...</div><div class="ttdef"><b>Definition:</b> Matrix.hpp:48</div></div>
|
|
<div class="ttc" id="_matrix_8hpp_html_ac1b6fba75206cba9fb2cfc71ed0a7052"><div class="ttname"><a href="_matrix_8hpp.html#ac1b6fba75206cba9fb2cfc71ed0a7052">identity</a></div><div class="ttdeci">void identity()</div><div class="ttdoc">Set the matrix identity. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:535</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a15251e4a208c761f60f4314e9a16b423"><div class="ttname"><a href="classetk_1_1_matrix.html#a15251e4a208c761f60f4314e9a16b423">etk::Matrix::operator=</a></div><div class="ttdeci">const Matrix< T > & operator=(const Matrix< T > &_obj)</div><div class="ttdoc">Operator= Asign the current object with an other object. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:89</div></div>
|
|
<div class="ttc" id="_matrix_8hpp_html_ac8bb3912a3ce86b15842e79d0b421204"><div class="ttname"><a href="_matrix_8hpp.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clear all the matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:520</div></div>
|
|
<div class="ttc" id="classetk_1_1_vector2_d_html_abc8a9a46cb0bf2c32916bfa3a35dfb22"><div class="ttname"><a href="classetk_1_1_vector2_d.html#abc8a9a46cb0bf2c32916bfa3a35dfb22">etk::Vector2D::y</a></div><div class="ttdeci">const T & y() const</div><div class="ttdoc">Get Y value. </div><div class="ttdef"><b>Definition:</b> Vector2D.hpp:474</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a2b08925854b289bb5bbbe390a7df2ec5"><div class="ttname"><a href="classetk_1_1_matrix.html#a2b08925854b289bb5bbbe390a7df2ec5">etk::Matrix::fix</a></div><div class="ttdeci">Matrix< T > fix(int32_t _decalage) const</div><div class="ttdoc">generate a devide of the curent Matrix with the specify power of 2 </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:371</div></div>
|
|
<div class="ttc" id="namespaceetk_html_a80d4500245f02806cf3397656ed18bb8"><div class="ttname"><a href="namespaceetk.html#a80d4500245f02806cf3397656ed18bb8">etk::clearLowerTriangle</a></div><div class="ttdeci">void clearLowerTriangle()</div><div class="ttdoc">Clear the Lower triangle of the current Matrix. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:468</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a4f9f11ea323f846d3dff802a8ae42dfc"><div class="ttname"><a href="classetk_1_1_matrix.html#a4f9f11ea323f846d3dff802a8ae42dfc">etk::Matrix::operator-=</a></div><div class="ttdeci">const Matrix< T > & operator-=(const Matrix< T > &_obj)</div><div class="ttdoc">Operator+= Addition an other matrix with this one. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:195</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html"><div class="ttname"><a href="classetk_1_1_matrix.html">etk::Matrix</a></div><div class="ttdoc">2 dimention matrix template to manage simpliest algo </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:17</div></div>
|
|
<div class="ttc" id="_vector2_d_8hpp_html"><div class="ttname"><a href="_vector2_d_8hpp.html">Vector2D.hpp</a></div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a8ae71a3749309ebea595c9619d28878e"><div class="ttname"><a href="classetk_1_1_matrix.html#a8ae71a3749309ebea595c9619d28878e">etk::Matrix::~Matrix</a></div><div class="ttdeci">virtual ~Matrix()=default</div><div class="ttdoc">Virtualisation of destructor. </div></div>
|
|
<div class="ttc" id="classetk_1_1_vector2_d_html"><div class="ttname"><a href="classetk_1_1_vector2_d.html">etk::Vector2D< uint32_t ></a></div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a4bc86bfb0274d2aac75816462bc77406"><div class="ttname"><a href="classetk_1_1_matrix.html#a4bc86bfb0274d2aac75816462bc77406">etk::Matrix::operator()</a></div><div class="ttdeci">T & operator()(size_t _xxx, size_t _yyy)</div><div class="ttdoc">Operator() Access at the element at a specific position. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:328</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a462dc7b2109911c681808e4c39e0242c"><div class="ttname"><a href="classetk_1_1_matrix.html#a462dc7b2109911c681808e4c39e0242c">etk::Matrix::operator!=</a></div><div class="ttdeci">bool operator!=(const Matrix< T > &_obj) const</div><div class="ttdoc">In-Equality compare operator with an other object. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:128</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_ab4be6249290e9cc83e11fb5a7d51a71a"><div class="ttname"><a href="classetk_1_1_matrix.html#ab4be6249290e9cc83e11fb5a7d51a71a">etk::Matrix::operator+</a></div><div class="ttdeci">Matrix< T > operator+(const Matrix< T > &_obj)</div><div class="ttdoc">Operator+= Addition an other matrix with this one. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:180</div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a24182b2aa9d2dd90c194645017690d06"><div class="ttname"><a href="classetk_1_1_matrix.html#a24182b2aa9d2dd90c194645017690d06">etk::Matrix::operator[]</a></div><div class="ttdeci">const T * operator[](int32_t _yyy) const</div><div class="ttdoc">Operator[] Access at the first element (const pointer) of a line. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:283</div></div>
|
|
<div class="ttc" id="namespaceetk_1_1tool_html_a3acc4fd6faa76439bd1651ec86bccd03"><div class="ttname"><a href="namespaceetk_1_1tool.html#a3acc4fd6faa76439bd1651ec86bccd03">etk::tool::frand</a></div><div class="ttdeci">double frand(double _a, double _b)</div><div class="ttdoc">Get a random value in a specific range in float. </div></div>
|
|
<div class="ttc" id="classetk_1_1_matrix_html_a1c77336ae8faf6fd48c7573d46a74533"><div class="ttname"><a href="classetk_1_1_matrix.html#a1c77336ae8faf6fd48c7573d46a74533">etk::Matrix::convolution</a></div><div class="ttdeci">Matrix< T > convolution(Matrix< T > &_obj) const</div><div class="ttdoc">Create a convolution on the matrix : set convolution on the lines. </div><div class="ttdef"><b>Definition:</b> Matrix.hpp:361</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- HTML footer for doxygen 1.8.8-->
|
|
<!-- start footer part -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Mon Oct 24 2016 15:35:46 for Etk: Ewol Tool Kit by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.12
|
|
</small></address>
|
|
</body>
|
|
</html>
|