root/doc/html/group__matrix__functions.html @ 353

Revision 353, 51.3 kB (checked in by smidl, 15 years ago)

doc

Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>mixpp: Functions on Matrices</title>
4<link href="tabs.css" rel="stylesheet" type="text/css">
5<link href="doxygen.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.8 -->
8<script type="text/javascript">
9<!--
10function changeDisplayState (e){
11  var num=this.id.replace(/[^[0-9]/g,'');
12  var button=this.firstChild;
13  var sectionDiv=document.getElementById('dynsection'+num);
14  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
15    sectionDiv.style.display='block';
16    button.src='open.gif';
17  }else{
18    sectionDiv.style.display='none';
19    button.src='closed.gif';
20  }
21}
22function initDynSections(){
23  var divs=document.getElementsByTagName('div');
24  var sectionCounter=1;
25  for(var i=0;i<divs.length-1;i++){
26    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
27      var header=divs[i];
28      var section=divs[i+1];
29      var button=header.firstChild;
30      if (button!='IMG'){
31        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
32        button=document.createElement('img');
33        divs[i].insertBefore(button,divs[i].firstChild);
34      }
35      header.style.cursor='pointer';
36      header.onclick=changeDisplayState;
37      header.id='dynheader'+sectionCounter;
38      button.src='closed.gif';
39      section.id='dynsection'+sectionCounter;
40      section.style.display='none';
41      section.style.marginLeft='14px';
42      sectionCounter++;
43    }
44  }
45}
46window.onload = initDynSections;
47-->
48</script>
49<div class="navigation" id="top">
50  <div class="tabs">
51    <ul>
52      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
53      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
54      <li><a href="modules.html"><span>Modules</span></a></li>
55      <li><a href="annotated.html"><span>Classes</span></a></li>
56      <li><a href="files.html"><span>Files</span></a></li>
57    </ul>
58  </div>
59</div>
60<div class="contents">
61<h1>Functions on Matrices<br>
62<small>
63[<a class="el" href="group__base.html">Base Module</a>]</small>
64</h1>Functions on vectors and matrices. 
65<a href="#_details">More...</a>
66<p>
67<table border="0" cellpadding="0" cellspacing="0">
68<tr><td></td></tr>
69<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
70<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g97bb6b35d6d4c683c7558842e4500c2d"></a><!-- doxytag: member="matrix_functions::length" ref="g97bb6b35d6d4c683c7558842e4500c2d" args="(const Vec&lt; T &gt; &amp;v)" -->
71template&lt;class T &gt; </td></tr>
72<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g97bb6b35d6d4c683c7558842e4500c2d">itpp::length</a> (const Vec&lt; T &gt; &amp;v)</td></tr>
73
74<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Length of vector. <br></td></tr>
75<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g3c1a2b0972c6a8e1215eb3f76d7c7512"></a><!-- doxytag: member="matrix_functions::size" ref="g3c1a2b0972c6a8e1215eb3f76d7c7512" args="(const Vec&lt; T &gt; &amp;v)" -->
76template&lt;class T &gt; </td></tr>
77<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g3c1a2b0972c6a8e1215eb3f76d7c7512">itpp::size</a> (const Vec&lt; T &gt; &amp;v)</td></tr>
78
79<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Length of vector. <br></td></tr>
80<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g8b3dcc61484fce58ee4244d5731e18fa"></a><!-- doxytag: member="matrix_functions::sum" ref="g8b3dcc61484fce58ee4244d5731e18fa" args="(const Vec&lt; T &gt; &amp;v)" -->
81template&lt;class T &gt; </td></tr>
82<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g8b3dcc61484fce58ee4244d5731e18fa">itpp::sum</a> (const Vec&lt; T &gt; &amp;v)</td></tr>
83
84<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum of all elements in the vector. <br></td></tr>
85<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
86<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#gfcf8f54c2f4fc257bbc3111700b08355">itpp::sum</a> (const Mat&lt; T &gt; &amp;m, int dim=1)</td></tr>
87
88<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum of elements in the matrix <code>m</code>, either along columns or rows.  <a href="#gfcf8f54c2f4fc257bbc3111700b08355"></a><br></td></tr>
89<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g81a7516f7fb453dcb623ad6d4c89a5b7"></a><!-- doxytag: member="matrix_functions::sumsum" ref="g81a7516f7fb453dcb623ad6d4c89a5b7" args="(const Mat&lt; T &gt; &amp;X)" -->
90template&lt;class T &gt; </td></tr>
91<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g81a7516f7fb453dcb623ad6d4c89a5b7">itpp::sumsum</a> (const Mat&lt; T &gt; &amp;X)</td></tr>
92
93<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum of all elements in the given matrix. Fast version of sum(sum(X)). <br></td></tr>
94<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gc6a1b0e0af40f95bc636ce039c8f1a0f"></a><!-- doxytag: member="matrix_functions::sum_sqr" ref="gc6a1b0e0af40f95bc636ce039c8f1a0f" args="(const Vec&lt; T &gt; &amp;v)" -->
95template&lt;class T &gt; </td></tr>
96<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#gc6a1b0e0af40f95bc636ce039c8f1a0f">itpp::sum_sqr</a> (const Vec&lt; T &gt; &amp;v)</td></tr>
97
98<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum of square of the elements in a vector. <br></td></tr>
99<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
100<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g4c81137a6b9b989a0c5a36972885c1e6">itpp::sum_sqr</a> (const Mat&lt; T &gt; &amp;m, int dim=1)</td></tr>
101
102<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum of the square of elements in the matrix <code>m</code><a href="#g4c81137a6b9b989a0c5a36972885c1e6"></a><br></td></tr>
103<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g1609c616b581628be87a4faca7778f54"></a><!-- doxytag: member="matrix_functions::cumsum" ref="g1609c616b581628be87a4faca7778f54" args="(const Vec&lt; T &gt; &amp;v)" -->
104template&lt;class T &gt; </td></tr>
105<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g1609c616b581628be87a4faca7778f54">itpp::cumsum</a> (const Vec&lt; T &gt; &amp;v)</td></tr>
106
107<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cumulative sum of all elements in the vector. <br></td></tr>
108<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
109<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Mat&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g6b5efcaa7c61e429326f4e6e56f11655">itpp::cumsum</a> (const Mat&lt; T &gt; &amp;m, int dim=1)</td></tr>
110
111<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cumulative sum of elements in the matrix <code>m</code><a href="#g6b5efcaa7c61e429326f4e6e56f11655"></a><br></td></tr>
112<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gff8a3812cb84a18f3b52c4bb116feb08"></a><!-- doxytag: member="matrix_functions::prod" ref="gff8a3812cb84a18f3b52c4bb116feb08" args="(const Vec&lt; T &gt; &amp;v)" -->
113template&lt;class T &gt; </td></tr>
114<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#gff8a3812cb84a18f3b52c4bb116feb08">itpp::prod</a> (const Vec&lt; T &gt; &amp;v)</td></tr>
115
116<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The product of all elements in the vector. <br></td></tr>
117<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
118<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g22fdeace9f20483008cf4dc6d471cbc2">itpp::prod</a> (const Mat&lt; T &gt; &amp;m, int dim=1)</td></tr>
119
120<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Product of elements in the matrix <code>m</code><a href="#g22fdeace9f20483008cf4dc6d471cbc2"></a><br></td></tr>
121<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gc9576b3da83bec579bacbfd2cfd71b3e"></a><!-- doxytag: member="matrix_functions::cross" ref="gc9576b3da83bec579bacbfd2cfd71b3e" args="(const Vec&lt; T &gt; &amp;v1, const Vec&lt; T &gt; &amp;v2)" -->
122template&lt;class T &gt; </td></tr>
123<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#gc9576b3da83bec579bacbfd2cfd71b3e">itpp::cross</a> (const Vec&lt; T &gt; &amp;v1, const Vec&lt; T &gt; &amp;v2)</td></tr>
124
125<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Vector cross product. Vectors need to be of size 3. <br></td></tr>
126<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gb42e2269c4fb80730ac82ef7c85f9cd0"></a><!-- doxytag: member="matrix_functions::zero_pad" ref="gb42e2269c4fb80730ac82ef7c85f9cd0" args="(const Vec&lt; T &gt; &amp;v, int n)" -->
127template&lt;class T &gt; </td></tr>
128<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#gb42e2269c4fb80730ac82ef7c85f9cd0">itpp::zero_pad</a> (const Vec&lt; T &gt; &amp;v, int n)</td></tr>
129
130<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zero-pad a vector to size n. <br></td></tr>
131<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="ga92be4bb938ac8c78f6313432210599c"></a><!-- doxytag: member="matrix_functions::zero_pad" ref="ga92be4bb938ac8c78f6313432210599c" args="(const Vec&lt; T &gt; &amp;v)" -->
132template&lt;class T &gt; </td></tr>
133<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#ga92be4bb938ac8c78f6313432210599c">itpp::zero_pad</a> (const Vec&lt; T &gt; &amp;v)</td></tr>
134
135<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zero-pad a vector to the nearest greater power of two. <br></td></tr>
136<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g70bc01fbb0018476a9ba6a74ed75d4ea"></a><!-- doxytag: member="matrix_functions::zero_pad" ref="g70bc01fbb0018476a9ba6a74ed75d4ea" args="(const Mat&lt; T &gt; &amp;m, int rows, int cols)" -->
137template&lt;class T &gt; </td></tr>
138<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Mat&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g70bc01fbb0018476a9ba6a74ed75d4ea">itpp::zero_pad</a> (const Mat&lt; T &gt; &amp;m, int rows, int cols)</td></tr>
139
140<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zero-pad a matrix to size rows x cols. <br></td></tr>
141<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
142<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#gab6a4b173411de9290f0dc401c9dcec7">itpp::index_zero_pad</a> (const Vec&lt; T &gt; &amp;v, const int index)</td></tr>
143
144<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g22c587fbc615e295f2b881c2e5025006"></a><!-- doxytag: member="matrix_functions::transpose" ref="g22c587fbc615e295f2b881c2e5025006" args="(const Mat&lt; T &gt; &amp;m, Mat&lt; T &gt; &amp;out)" -->
145template&lt;class T &gt; </td></tr>
146<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g22c587fbc615e295f2b881c2e5025006">itpp::transpose</a> (const Mat&lt; T &gt; &amp;m, Mat&lt; T &gt; &amp;out)</td></tr>
147
148<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transposition of the matrix <code>m</code> returning the transposed matrix in <code>out</code>. <br></td></tr>
149<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g8c724070b69eb97eae2985e02088feca"></a><!-- doxytag: member="matrix_functions::transpose" ref="g8c724070b69eb97eae2985e02088feca" args="(const Mat&lt; T &gt; &amp;m)" -->
150template&lt;class T &gt; </td></tr>
151<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Mat&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g8c724070b69eb97eae2985e02088feca">itpp::transpose</a> (const Mat&lt; T &gt; &amp;m)</td></tr>
152
153<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transposition of the matrix <code>m</code>. <br></td></tr>
154<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
155<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#ge71aa93cc176699065fc0e740a50387e">itpp::hermitian_transpose</a> (const Mat&lt; T &gt; &amp;m, Mat&lt; T &gt; &amp;out)</td></tr>
156
157<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g123e8bb976c29bd43d993fcd6e3f3579"></a><!-- doxytag: member="matrix_functions::hermitian_transpose" ref="g123e8bb976c29bd43d993fcd6e3f3579" args="(const Mat&lt; T &gt; &amp;m)" -->
158template&lt;class T &gt; </td></tr>
159<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Mat&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g123e8bb976c29bd43d993fcd6e3f3579">itpp::hermitian_transpose</a> (const Mat&lt; T &gt; &amp;m)</td></tr>
160
161<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hermitian transpose (complex conjugate transpose) of the matrix <code>m</code>. <br></td></tr>
162<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class Num_T &gt; </td></tr>
163<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g49691bf233320a2dd8ae9929988f8f91">itpp::is_hermitian</a> (const Mat&lt; Num_T &gt; &amp;X)</td></tr>
164
165<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if matrix <code>X</code> is hermitian, false otherwise.  <a href="#g49691bf233320a2dd8ae9929988f8f91"></a><br></td></tr>
166<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class Num_T &gt; </td></tr>
167<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g0e711a4a8db7d9a2ed5515a33dd65d4c">itpp::is_unitary</a> (const Mat&lt; Num_T &gt; &amp;X)</td></tr>
168
169<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if matrix <code>X</code> is unitary, false otherwise.  <a href="#g0e711a4a8db7d9a2ed5515a33dd65d4c"></a><br></td></tr>
170<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class Num_T &gt; </td></tr>
171<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Mat&lt; Num_T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g3b60d55399d969b0194f80997d41ea86">itpp::kron</a> (const Mat&lt; Num_T &gt; &amp;X, const Mat&lt; Num_T &gt; &amp;Y)</td></tr>
172
173<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes the Kronecker product of two matrices.  <a href="#g3b60d55399d969b0194f80997d41ea86"></a><br></td></tr>
174<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g27d79e239d0905bf6b720a1bb117f1de">itpp::sqrtm</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A)</td></tr>
175
176<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Square root of the complex square matrix <code>A</code><a href="#g27d79e239d0905bf6b720a1bb117f1de"></a><br></td></tr>
177<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#gbb4749a685e730a2dc0ff55313d13a22">itpp::sqrtm</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A)</td></tr>
178
179<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Square root of the real square matrix <code>A</code><a href="#gbb4749a685e730a2dc0ff55313d13a22"></a><br></td></tr>
180<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
181<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g472a6d548c6d195bb349c812c8b2203c">itpp::rank</a> (const Mat&lt; T &gt; &amp;m, double tol=-1.0)</td></tr>
182
183<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the rank of matrix <code>m</code><a href="#g472a6d548c6d195bb349c812c8b2203c"></a><br></td></tr>
184<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g36e27d8fdd14e8d5b4a0653c101f1570"></a><!-- doxytag: member="matrix_functions::rank" ref="g36e27d8fdd14e8d5b4a0653c101f1570" args="(const imat &amp;m, double tol)" -->
185template&lt;&gt; </td></tr>
186<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g36e27d8fdd14e8d5b4a0653c101f1570">itpp::rank</a> (const <a class="el" href="classitpp_1_1Mat.html#9e0dd2f635e4bd0b28c09685d9c4f3bb">imat</a> &amp;m, double tol)</td></tr>
187
188<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="group__matrix__functions.html#g472a6d548c6d195bb349c812c8b2203c" title="Calculate the rank of matrix m.">rank()</a> function. <br></td></tr>
189<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g82519e6233d0082856d4acbf84353160"></a><!-- doxytag: member="matrix_functions::rank" ref="g82519e6233d0082856d4acbf84353160" args="(const smat &amp;m, double tol)" -->
190template&lt;&gt; </td></tr>
191<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g82519e6233d0082856d4acbf84353160">itpp::rank</a> (const <a class="el" href="classitpp_1_1Mat.html#debd320317a18c022d3ca856af6d3687">smat</a> &amp;m, double tol)</td></tr>
192
193<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="group__matrix__functions.html#g472a6d548c6d195bb349c812c8b2203c" title="Calculate the rank of matrix m.">rank()</a> function. <br></td></tr>
194<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g6adab7c28deb3fec407684458f0b719d"></a><!-- doxytag: member="matrix_functions::rank" ref="g6adab7c28deb3fec407684458f0b719d" args="(const bmat &amp;, double)" -->
195template&lt;&gt; </td></tr>
196<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g6adab7c28deb3fec407684458f0b719d">itpp::rank</a> (const <a class="el" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69">bmat</a> &amp;, double)</td></tr>
197
198<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="group__matrix__functions.html#g472a6d548c6d195bb349c812c8b2203c" title="Calculate the rank of matrix m.">rank()</a> function. <br></td></tr>
199<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
200<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Vec&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g53cd7ee1e173c8a2e56d0b4c77e49c20">itpp::Vec::repmat</a> (const Vec&lt; T &gt; &amp;v, int n)</td></tr>
201
202<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a vector with <code>n</code> copies of the vector <code>v</code><a href="#g53cd7ee1e173c8a2e56d0b4c77e49c20"></a><br></td></tr>
203<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
204<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Mat&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g608ecbac6ff6a1ce6d5e69c0dd789021">itpp::Mat::repmat</a> (const Mat&lt; T &gt; &amp;data, int m, int n)</td></tr>
205
206<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a matrix with <code>m</code> by <code>n</code> copies of the matrix <code>data</code><a href="#g608ecbac6ff6a1ce6d5e69c0dd789021"></a><br></td></tr>
207<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
208<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Mat&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__matrix__functions.html#g8d9541af4bd11193689d3f30b1cd5a74">itpp::Mat::repmat</a> (const Vec&lt; T &gt; &amp;v, int m, int n, bool transpose=false)</td></tr>
209
210<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a matrix with <code>m</code> by <code>n</code> copies of the vector <code>data</code><a href="#g8d9541af4bd11193689d3f30b1cd5a74"></a><br></td></tr>
211</table>
212<hr><a name="_details"></a><h2>Detailed Description</h2>
213Functions on vectors and matrices. <hr><h2>Function Documentation</h2>
214<a class="anchor" name="g6b5efcaa7c61e429326f4e6e56f11655"></a><!-- doxytag: member="itpp::cumsum" ref="g6b5efcaa7c61e429326f4e6e56f11655" args="(const Mat&lt; T &gt; &amp;m, int dim=1)" -->
215<div class="memitem">
216<div class="memproto">
217<div class="memtemplate">
218template&lt;class T &gt; </div>
219      <table class="memname">
220        <tr>
221          <td class="memname">Mat&lt;T&gt; itpp::cumsum           </td>
222          <td>(</td>
223          <td class="paramtype">const Mat&lt; T &gt; &amp;&nbsp;</td>
224          <td class="paramname"> <em>m</em>, </td>
225        </tr>
226        <tr>
227          <td class="paramkey"></td>
228          <td></td>
229          <td class="paramtype">int&nbsp;</td>
230          <td class="paramname"> <em>dim</em> = <code>1</code></td><td>&nbsp;</td>
231        </tr>
232        <tr>
233          <td></td>
234          <td>)</td>
235          <td></td><td></td><td><code> [inline]</code></td>
236        </tr>
237      </table>
238</div>
239<div class="memdoc">
240
241<p>
242Cumulative sum of elements in the matrix <code>m</code>.
243<p>
244<code>cumsum(m) = cumsum(m, 1)</code> returns a matrix where the elements are sums over each column, whereas <code>cumsum(m, 2)</code> returns a matrix where the elements are sums over each row
245<p>References <a class="el" href="mat_8h-source.html#l00241">itpp::Mat&lt; Num_T &gt;::cols()</a>, <a class="el" href="mat_8h-source.html#l00903">itpp::Mat&lt; Num_T &gt;::get_col()</a>, <a class="el" href="mat_8h-source.html#l00866">itpp::Mat&lt; Num_T &gt;::get_row()</a>, <a class="el" href="itassert_8h-source.html#l00094">it_assert</a>, and <a class="el" href="mat_8h-source.html#l00243">itpp::Mat&lt; Num_T &gt;::rows()</a>.</p>
246
247<p>Referenced by <a class="el" href="histogram_8h-source.html#l00210">itpp::Histogram&lt; Num_T &gt;::get_cdf()</a>, <a class="el" href="libEF_8cpp-source.html#l00216">bdm::eEmp::resample()</a>, <a class="el" href="emix_8cpp-source.html#l00072">bdm::egiwmix::sample()</a>, and <a class="el" href="emix_8cpp-source.html#l00024">bdm::emix::sample()</a>.</p>
248
249</div>
250</div><p>
251<a class="anchor" name="ge71aa93cc176699065fc0e740a50387e"></a><!-- doxytag: member="itpp::hermitian_transpose" ref="ge71aa93cc176699065fc0e740a50387e" args="(const Mat&lt; T &gt; &amp;m, Mat&lt; T &gt; &amp;out)" -->
252<div class="memitem">
253<div class="memproto">
254<div class="memtemplate">
255template&lt;class T &gt; </div>
256      <table class="memname">
257        <tr>
258          <td class="memname">void itpp::hermitian_transpose           </td>
259          <td>(</td>
260          <td class="paramtype">const Mat&lt; T &gt; &amp;&nbsp;</td>
261          <td class="paramname"> <em>m</em>, </td>
262        </tr>
263        <tr>
264          <td class="paramkey"></td>
265          <td></td>
266          <td class="paramtype">Mat&lt; T &gt; &amp;&nbsp;</td>
267          <td class="paramname"> <em>out</em></td><td>&nbsp;</td>
268        </tr>
269        <tr>
270          <td></td>
271          <td>)</td>
272          <td></td><td></td><td><code> [inline]</code></td>
273        </tr>
274      </table>
275</div>
276<div class="memdoc">
277
278<p>
279Hermitian transpose (complex conjugate transpose) of the matrix <code>m</code> returning the transposed matrix in <code>out</code> 
280<p>References <a class="el" href="mat_8h-source.html#l00347">itpp::Mat&lt; Num_T &gt;::H()</a>.</p>
281
282</div>
283</div><p>
284<a class="anchor" name="gab6a4b173411de9290f0dc401c9dcec7"></a><!-- doxytag: member="itpp::index_zero_pad" ref="gab6a4b173411de9290f0dc401c9dcec7" args="(const Vec&lt; T &gt; &amp;v, const int index)" -->
285<div class="memitem">
286<div class="memproto">
287<div class="memtemplate">
288template&lt;class T &gt; </div>
289      <table class="memname">
290        <tr>
291          <td class="memname">T itpp::index_zero_pad           </td>
292          <td>(</td>
293          <td class="paramtype">const Vec&lt; T &gt; &amp;&nbsp;</td>
294          <td class="paramname"> <em>v</em>, </td>
295        </tr>
296        <tr>
297          <td class="paramkey"></td>
298          <td></td>
299          <td class="paramtype">const int&nbsp;</td>
300          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
301        </tr>
302        <tr>
303          <td></td>
304          <td>)</td>
305          <td></td><td></td><td><code> [inline]</code></td>
306        </tr>
307      </table>
308</div>
309<div class="memdoc">
310
311<p>
312Return zero if indexing outside the vector <code>v</code> otherwise return the element <code>index</code> 
313<p>References <a class="el" href="vec_8h-source.html#l00277">itpp::Vec&lt; Num_T &gt;::size()</a>.</p>
314
315<p>Referenced by <a class="el" href="sigfun_8cpp-source.html#l00091">itpp::xcorr_old()</a>.</p>
316
317</div>
318</div><p>
319<a class="anchor" name="g49691bf233320a2dd8ae9929988f8f91"></a><!-- doxytag: member="itpp::is_hermitian" ref="g49691bf233320a2dd8ae9929988f8f91" args="(const Mat&lt; Num_T &gt; &amp;X)" -->
320<div class="memitem">
321<div class="memproto">
322<div class="memtemplate">
323template&lt;class Num_T &gt; </div>
324      <table class="memname">
325        <tr>
326          <td class="memname">bool itpp::is_hermitian           </td>
327          <td>(</td>
328          <td class="paramtype">const Mat&lt; Num_T &gt; &amp;&nbsp;</td>
329          <td class="paramname"> <em>X</em>          </td>
330          <td>&nbsp;)&nbsp;</td>
331          <td><code> [inline]</code></td>
332        </tr>
333      </table>
334</div>
335<div class="memdoc">
336
337<p>
338Returns true if matrix <code>X</code> is hermitian, false otherwise.
339<p>
340<dl class="author" compact><dt><b>Author:</b></dt><dd>M. Szalay</dd></dl>
341A square matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> is hermitian if <p class="formulaDsp">
342<img class="formulaDsp" alt="\[ \mathbf{X} = \mathbf{X}^H \]" src="form_177.png">
343<p>
344 
345<p>References <a class="el" href="mat_8h-source.html#l00347">itpp::Mat&lt; Num_T &gt;::H()</a>.</p>
346
347</div>
348</div><p>
349<a class="anchor" name="g0e711a4a8db7d9a2ed5515a33dd65d4c"></a><!-- doxytag: member="itpp::is_unitary" ref="g0e711a4a8db7d9a2ed5515a33dd65d4c" args="(const Mat&lt; Num_T &gt; &amp;X)" -->
350<div class="memitem">
351<div class="memproto">
352<div class="memtemplate">
353template&lt;class Num_T &gt; </div>
354      <table class="memname">
355        <tr>
356          <td class="memname">bool itpp::is_unitary           </td>
357          <td>(</td>
358          <td class="paramtype">const Mat&lt; Num_T &gt; &amp;&nbsp;</td>
359          <td class="paramname"> <em>X</em>          </td>
360          <td>&nbsp;)&nbsp;</td>
361          <td><code> [inline]</code></td>
362        </tr>
363      </table>
364</div>
365<div class="memdoc">
366
367<p>
368Returns true if matrix <code>X</code> is unitary, false otherwise.
369<p>
370<dl class="author" compact><dt><b>Author:</b></dt><dd>M. Szalay</dd></dl>
371A square matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> is unitary if <p class="formulaDsp">
372<img class="formulaDsp" alt="\[ \mathbf{X}^H = \mathbf{X}^{-1} \]" src="form_178.png">
373<p>
374 
375<p>References <a class="el" href="mat_8h-source.html#l00347">itpp::Mat&lt; Num_T &gt;::H()</a>, and <a class="el" href="inv_8cpp-source.html#l00109">itpp::inv()</a>.</p>
376
377</div>
378</div><p>
379<a class="anchor" name="g3b60d55399d969b0194f80997d41ea86"></a><!-- doxytag: member="itpp::kron" ref="g3b60d55399d969b0194f80997d41ea86" args="(const Mat&lt; Num_T &gt; &amp;X, const Mat&lt; Num_T &gt; &amp;Y)" -->
380<div class="memitem">
381<div class="memproto">
382<div class="memtemplate">
383template&lt;class Num_T &gt; </div>
384      <table class="memname">
385        <tr>
386          <td class="memname">Mat&lt;Num_T&gt; itpp::kron           </td>
387          <td>(</td>
388          <td class="paramtype">const Mat&lt; Num_T &gt; &amp;&nbsp;</td>
389          <td class="paramname"> <em>X</em>, </td>
390        </tr>
391        <tr>
392          <td class="paramkey"></td>
393          <td></td>
394          <td class="paramtype">const Mat&lt; Num_T &gt; &amp;&nbsp;</td>
395          <td class="paramname"> <em>Y</em></td><td>&nbsp;</td>
396        </tr>
397        <tr>
398          <td></td>
399          <td>)</td>
400          <td></td><td></td><td><code> [inline]</code></td>
401        </tr>
402      </table>
403</div>
404<div class="memdoc">
405
406<p>
407Computes the Kronecker product of two matrices.
408<p>
409<code>K = kron(X, Y)</code> returns the Kronecker tensor product of <code>X</code> and <code>Y</code>. The result is a large array formed by taking all possible products between the elements of <code>X</code> and those of <code>Y</code>. If <code>X</code> is <code>(m x n)</code> and <code>Y</code> is <code>(p x q)</code>, then <code>kron(X, Y)</code> is <code>(m*p x n*q)</code>.<p>
410<dl class="author" compact><dt><b>Author:</b></dt><dd>Adam Piatyszek </dd></dl>
411
412<p>References <a class="el" href="mat_8h-source.html#l00241">itpp::Mat&lt; Num_T &gt;::cols()</a>, and <a class="el" href="mat_8h-source.html#l00243">itpp::Mat&lt; Num_T &gt;::rows()</a>.</p>
413
414</div>
415</div><p>
416<a class="anchor" name="g22fdeace9f20483008cf4dc6d471cbc2"></a><!-- doxytag: member="itpp::prod" ref="g22fdeace9f20483008cf4dc6d471cbc2" args="(const Mat&lt; T &gt; &amp;m, int dim=1)" -->
417<div class="memitem">
418<div class="memproto">
419<div class="memtemplate">
420template&lt;class T &gt; </div>
421      <table class="memname">
422        <tr>
423          <td class="memname">Vec&lt;T&gt; itpp::prod           </td>
424          <td>(</td>
425          <td class="paramtype">const Mat&lt; T &gt; &amp;&nbsp;</td>
426          <td class="paramname"> <em>m</em>, </td>
427        </tr>
428        <tr>
429          <td class="paramkey"></td>
430          <td></td>
431          <td class="paramtype">int&nbsp;</td>
432          <td class="paramname"> <em>dim</em> = <code>1</code></td><td>&nbsp;</td>
433        </tr>
434        <tr>
435          <td></td>
436          <td>)</td>
437          <td></td><td></td><td><code> [inline]</code></td>
438        </tr>
439      </table>
440</div>
441<div class="memdoc">
442
443<p>
444Product of elements in the matrix <code>m</code>.
445<p>
446<code>prod(m) = prod(m, 1)</code> returns a vector where the elements are products over each column, whereas <code>prod(m, 2)</code> returns a vector where the elements are products over each row
447<p>References <a class="el" href="mat_8h-source.html#l00241">itpp::Mat&lt; Num_T &gt;::cols()</a>, <a class="el" href="mat_8h-source.html#l00903">itpp::Mat&lt; Num_T &gt;::get_col()</a>, <a class="el" href="mat_8h-source.html#l00866">itpp::Mat&lt; Num_T &gt;::get_row()</a>, <a class="el" href="itassert_8h-source.html#l00094">it_assert</a>, and <a class="el" href="mat_8h-source.html#l00243">itpp::Mat&lt; Num_T &gt;::rows()</a>.</p>
448
449<p>Referenced by <a class="el" href="elem__math_8cpp-source.html#l00078">itpp::fact()</a>, and <a class="el" href="misc__stat_8h-source.html#l00138">itpp::geometric_mean()</a>.</p>
450
451</div>
452</div><p>
453<a class="anchor" name="g472a6d548c6d195bb349c812c8b2203c"></a><!-- doxytag: member="itpp::rank" ref="g472a6d548c6d195bb349c812c8b2203c" args="(const Mat&lt; T &gt; &amp;m, double tol=&#45;1.0)" -->
454<div class="memitem">
455<div class="memproto">
456<div class="memtemplate">
457template&lt;class T &gt; </div>
458      <table class="memname">
459        <tr>
460          <td class="memname">int itpp::rank           </td>
461          <td>(</td>
462          <td class="paramtype">const Mat&lt; T &gt; &amp;&nbsp;</td>
463          <td class="paramname"> <em>m</em>, </td>
464        </tr>
465        <tr>
466          <td class="paramkey"></td>
467          <td></td>
468          <td class="paramtype">double&nbsp;</td>
469          <td class="paramname"> <em>tol</em> = <code>-1.0</code></td><td>&nbsp;</td>
470        </tr>
471        <tr>
472          <td></td>
473          <td>)</td>
474          <td></td><td></td><td><code> [inline]</code></td>
475        </tr>
476      </table>
477</div>
478<div class="memdoc">
479
480<p>
481Calculate the rank of matrix <code>m</code>.
482<p>
483<dl class="author" compact><dt><b>Author:</b></dt><dd>Martin Senst</dd></dl>
484<dl compact><dt><b>Parameters:</b></dt><dd>
485  <table border="0" cellspacing="2" cellpadding="0">
486    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>Input matrix </td></tr>
487    <tr><td valign="top"></td><td valign="top"><em>tol</em>&nbsp;</td><td>Tolerance used for comparing the singular values with zero. If negative, it is automatically determined. </td></tr>
488  </table>
489</dl>
490
491<p>References <a class="el" href="mat_8h-source.html#l00241">itpp::Mat&lt; Num_T &gt;::cols()</a>, <a class="el" href="mat_8h-source.html#l00243">itpp::Mat&lt; Num_T &gt;::rows()</a>, and <a class="el" href="svd_8cpp-source.html#l00218">itpp::svd()</a>.</p>
492
493</div>
494</div><p>
495<a class="anchor" name="g8d9541af4bd11193689d3f30b1cd5a74"></a><!-- doxytag: member="itpp::Mat::repmat" ref="g8d9541af4bd11193689d3f30b1cd5a74" args="(const Vec&lt; T &gt; &amp;v, int m, int n, bool transpose=false)" -->
496<div class="memitem">
497<div class="memproto">
498<div class="memtemplate">
499template&lt;class T &gt; </div>
500      <table class="memname">
501        <tr>
502          <td class="memname">Mat&lt; T &gt; repmat           </td>
503          <td>(</td>
504          <td class="paramtype">const <a class="el" href="classitpp_1_1Vec.html">Vec</a>&lt; T &gt; &amp;&nbsp;</td>
505          <td class="paramname"> <em>v</em>, </td>
506        </tr>
507        <tr>
508          <td class="paramkey"></td>
509          <td></td>
510          <td class="paramtype">int&nbsp;</td>
511          <td class="paramname"> <em>m</em>, </td>
512        </tr>
513        <tr>
514          <td class="paramkey"></td>
515          <td></td>
516          <td class="paramtype">int&nbsp;</td>
517          <td class="paramname"> <em>n</em>, </td>
518        </tr>
519        <tr>
520          <td class="paramkey"></td>
521          <td></td>
522          <td class="paramtype">bool&nbsp;</td>
523          <td class="paramname"> <em>transpose</em> = <code>false</code></td><td>&nbsp;</td>
524        </tr>
525        <tr>
526          <td></td>
527          <td>)</td>
528          <td></td><td></td><td><code> [related, inherited]</code></td>
529        </tr>
530      </table>
531</div>
532<div class="memdoc">
533
534<p>
535Returns a matrix with <code>m</code> by <code>n</code> copies of the vector <code>data</code>.
536<p>
537<dl class="author" compact><dt><b>Author:</b></dt><dd>Adam Piatyszek</dd></dl>
538<dl compact><dt><b>Parameters:</b></dt><dd>
539  <table border="0" cellspacing="2" cellpadding="0">
540    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>Vector to be repeated </td></tr>
541    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>Number of times to repeat data vertically </td></tr>
542    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>Number of times to repeat data horizontally </td></tr>
543    <tr><td valign="top"></td><td valign="top"><em>transpose</em>&nbsp;</td><td>Specifies the input vector orientation (column vector by default) </td></tr>
544  </table>
545</dl>
546
547<p>References <a class="el" href="vec_8h-source.html#l00324">itpp::Vec&lt; Num_T &gt;::T()</a>, and <a class="el" href="matfunc_8h-source.html#l00308">itpp::transpose()</a>.</p>
548
549</div>
550</div><p>
551<a class="anchor" name="g608ecbac6ff6a1ce6d5e69c0dd789021"></a><!-- doxytag: member="itpp::Mat::repmat" ref="g608ecbac6ff6a1ce6d5e69c0dd789021" args="(const Mat&lt; T &gt; &amp;data, int m, int n)" -->
552<div class="memitem">
553<div class="memproto">
554<div class="memtemplate">
555template&lt;class T &gt; </div>
556      <table class="memname">
557        <tr>
558          <td class="memname">Mat&lt; T &gt; repmat           </td>
559          <td>(</td>
560          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html">Mat</a>&lt; T &gt; &amp;&nbsp;</td>
561          <td class="paramname"> <em>data</em>, </td>
562        </tr>
563        <tr>
564          <td class="paramkey"></td>
565          <td></td>
566          <td class="paramtype">int&nbsp;</td>
567          <td class="paramname"> <em>m</em>, </td>
568        </tr>
569        <tr>
570          <td class="paramkey"></td>
571          <td></td>
572          <td class="paramtype">int&nbsp;</td>
573          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
574        </tr>
575        <tr>
576          <td></td>
577          <td>)</td>
578          <td></td><td></td><td><code> [related, inherited]</code></td>
579        </tr>
580      </table>
581</div>
582<div class="memdoc">
583
584<p>
585Creates a matrix with <code>m</code> by <code>n</code> copies of the matrix <code>data</code>.
586<p>
587<dl class="author" compact><dt><b>Author:</b></dt><dd>Mark Dobossy</dd></dl>
588<dl compact><dt><b>Parameters:</b></dt><dd>
589  <table border="0" cellspacing="2" cellpadding="0">
590    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Matrix to be repeated </td></tr>
591    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>Number of times to repeat data vertically </td></tr>
592    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>Number of times to repeat data horizontally </td></tr>
593  </table>
594</dl>
595
596<p>References <a class="el" href="mat_8h-source.html#l00241">itpp::Mat&lt; Num_T &gt;::cols()</a>, <a class="el" href="itassert_8h-source.html#l00094">it_assert</a>, <a class="el" href="mat_8h-source.html#l00243">itpp::Mat&lt; Num_T &gt;::rows()</a>, and <a class="el" href="mat_8h-source.html#l01033">itpp::Mat&lt; Num_T &gt;::set_submatrix()</a>.</p>
597
598</div>
599</div><p>
600<a class="anchor" name="g53cd7ee1e173c8a2e56d0b4c77e49c20"></a><!-- doxytag: member="itpp::Vec::repmat" ref="g53cd7ee1e173c8a2e56d0b4c77e49c20" args="(const Vec&lt; T &gt; &amp;v, int n)" -->
601<div class="memitem">
602<div class="memproto">
603<div class="memtemplate">
604template&lt;class T &gt; </div>
605      <table class="memname">
606        <tr>
607          <td class="memname">Vec&lt; T &gt; repmat           </td>
608          <td>(</td>
609          <td class="paramtype">const <a class="el" href="classitpp_1_1Vec.html">Vec</a>&lt; T &gt; &amp;&nbsp;</td>
610          <td class="paramname"> <em>v</em>, </td>
611        </tr>
612        <tr>
613          <td class="paramkey"></td>
614          <td></td>
615          <td class="paramtype">int&nbsp;</td>
616          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
617        </tr>
618        <tr>
619          <td></td>
620          <td>)</td>
621          <td></td><td></td><td><code> [related, inherited]</code></td>
622        </tr>
623      </table>
624</div>
625<div class="memdoc">
626
627<p>
628Creates a vector with <code>n</code> copies of the vector <code>v</code>.
629<p>
630<dl class="author" compact><dt><b>Author:</b></dt><dd>Martin Senst</dd></dl>
631<dl compact><dt><b>Parameters:</b></dt><dd>
632  <table border="0" cellspacing="2" cellpadding="0">
633    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>Vector to be repeated </td></tr>
634    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>Number of times to repeat <code>v</code> </td></tr>
635  </table>
636</dl>
637
638<p>References <a class="el" href="itassert_8h-source.html#l00094">it_assert</a>, <a class="el" href="vec_8h-source.html#l00275">itpp::Vec&lt; Num_T &gt;::length()</a>, and <a class="el" href="vec_8h-source.html#l01495">itpp::Vec&lt; Num_T &gt;::set_subvector()</a>.</p>
639
640</div>
641</div><p>
642<a class="anchor" name="gbb4749a685e730a2dc0ff55313d13a22"></a><!-- doxytag: member="itpp::sqrtm" ref="gbb4749a685e730a2dc0ff55313d13a22" args="(const mat &amp;A)" -->
643<div class="memitem">
644<div class="memproto">
645      <table class="memname">
646        <tr>
647          <td class="memname"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> itpp::sqrtm           </td>
648          <td>(</td>
649          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
650          <td class="paramname"> <em>A</em>          </td>
651          <td>&nbsp;)&nbsp;</td>
652          <td></td>
653        </tr>
654      </table>
655</div>
656<div class="memdoc">
657
658<p>
659Square root of the real square matrix <code>A</code>.
660<p>
661This function computes the matrix square root of the real square matrix <code>A</code>. Please note that the returned matrix is complex. The implementation is based on the Matlab/Octave <code><a class="el" href="group__matrix__functions.html#g27d79e239d0905bf6b720a1bb117f1de" title="Square root of the complex square matrix A.">sqrtm()</a></code> function.<p>
662Ref: N. J. Higham, "Numerical Analysis Report No. 336", Manchester Centre for Computational Mathematics, Manchester, England, January 1999<p>
663<dl class="author" compact><dt><b>Author:</b></dt><dd>Adam Piatyszek </dd></dl>
664
665</div>
666</div><p>
667<a class="anchor" name="g27d79e239d0905bf6b720a1bb117f1de"></a><!-- doxytag: member="itpp::sqrtm" ref="g27d79e239d0905bf6b720a1bb117f1de" args="(const cmat &amp;A)" -->
668<div class="memitem">
669<div class="memproto">
670      <table class="memname">
671        <tr>
672          <td class="memname"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> itpp::sqrtm           </td>
673          <td>(</td>
674          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
675          <td class="paramname"> <em>A</em>          </td>
676          <td>&nbsp;)&nbsp;</td>
677          <td></td>
678        </tr>
679      </table>
680</div>
681<div class="memdoc">
682
683<p>
684Square root of the complex square matrix <code>A</code>.
685<p>
686This function computes the matrix square root of the complex square matrix <code>A</code>. The implementation is based on the Matlab/Octave <code><a class="el" href="group__matrix__functions.html#g27d79e239d0905bf6b720a1bb117f1de" title="Square root of the complex square matrix A.">sqrtm()</a></code> function.<p>
687Ref: N. J. Higham, "Numerical Analysis Report No. 336", Manchester Centre for Computational Mathematics, Manchester, England, January 1999<p>
688<dl class="author" compact><dt><b>Author:</b></dt><dd>Adam Piatyszek </dd></dl>
689
690</div>
691</div><p>
692<a class="anchor" name="gfcf8f54c2f4fc257bbc3111700b08355"></a><!-- doxytag: member="itpp::sum" ref="gfcf8f54c2f4fc257bbc3111700b08355" args="(const Mat&lt; T &gt; &amp;m, int dim=1)" -->
693<div class="memitem">
694<div class="memproto">
695<div class="memtemplate">
696template&lt;class T &gt; </div>
697      <table class="memname">
698        <tr>
699          <td class="memname">Vec&lt;T&gt; itpp::sum           </td>
700          <td>(</td>
701          <td class="paramtype">const Mat&lt; T &gt; &amp;&nbsp;</td>
702          <td class="paramname"> <em>m</em>, </td>
703        </tr>
704        <tr>
705          <td class="paramkey"></td>
706          <td></td>
707          <td class="paramtype">int&nbsp;</td>
708          <td class="paramname"> <em>dim</em> = <code>1</code></td><td>&nbsp;</td>
709        </tr>
710        <tr>
711          <td></td>
712          <td>)</td>
713          <td></td><td></td><td><code> [inline]</code></td>
714        </tr>
715      </table>
716</div>
717<div class="memdoc">
718
719<p>
720Sum of elements in the matrix <code>m</code>, either along columns or rows.
721<p>
722<code>sum(m) = sum(m, 1)</code> returns a vector where the elements are sum over each column, whereas <code>sum(m, 2)</code> returns a vector where the elements are sum over each row.
723<p>References <a class="el" href="mat_8h-source.html#l00241">itpp::Mat&lt; Num_T &gt;::cols()</a>, <a class="el" href="mat_8h-source.html#l00903">itpp::Mat&lt; Num_T &gt;::get_col()</a>, <a class="el" href="mat_8h-source.html#l00866">itpp::Mat&lt; Num_T &gt;::get_row()</a>, <a class="el" href="itassert_8h-source.html#l00094">it_assert</a>, <a class="el" href="mat_8h-source.html#l00243">itpp::Mat&lt; Num_T &gt;::rows()</a>, and <a class="el" href="vec_8h-source.html#l00676">itpp::Vec&lt; Num_T &gt;::set_size()</a>.</p>
724
725<p>Referenced by <a class="el" href="emix_8cpp-source.html#l00114">bdm::egiwmix::approx()</a>, <a class="el" href="libPF_8cpp-source.html#l00007">bdm::PF::bayes()</a>, <a class="el" href="libKF_8h-source.html#l00415">bdm::MultiModel::bayes()</a>, <a class="el" href="channel_8cpp-source.html#l00829">itpp::Channel_Specification::calc_mean_excess_delay()</a>, <a class="el" href="channel_8cpp-source.html#l00835">itpp::Channel_Specification::calc_rms_delay_spread()</a>, <a class="el" href="ldpc_8cpp-source.html#l00598">itpp::LDPC_Parity_Unstructured::compute_CR()</a>, <a class="el" href="modulator__nd_8cpp-source.html#l00370">itpp::Modulator_NCD::demodulate_soft_bits()</a>, <a class="el" href="modulator__nd_8cpp-source.html#l00150">itpp::Modulator_NRD::demodulate_soft_bits()</a>, <a class="el" href="ldpc_8cpp-source.html#l00109">itpp::LDPC_Parity::display_stats()</a>, <a class="el" href="error__counters_8cpp-source.html#l00076">itpp::BERC::estimate_delay()</a>, <a class="el" href="emix_8h-source.html#l00120">bdm::emix::evallog()</a>, <a class="el" href="filter_8cpp-source.html#l00243">itpp::fir1()</a>, <a class="el" href="libEF_8h-source.html#l00317">bdm::multiBM::flatten()</a>, <a class="el" href="ldpc_8cpp-source.html#l00667">itpp::LDPC_Parity_Regular::generate()</a>, <a class="el" href="channel_8cpp-source.html#l00290">itpp::Rice_Fading_Generator::generate()</a>, <a class="el" href="ldpc_8cpp-source.html#l00462">itpp::LDPC_Parity_Unstructured::generate_random_H()</a>, <a class="el" href="specmat_8cpp-source.html#l00261">itpp::house()</a>, <a class="el" href="libDC_8cpp-source.html#l00200">ldmat::ldform()</a>, <a class="el" href="mog__generic_8cpp-source.html#l00596">itpp::MOG_generic::lhood_internal()</a>, <a class="el" href="mog__diag_8cpp-source.html#l00133">itpp::MOG_diag::lhood_internal()</a>, <a class="el" href="mog__generic_8cpp-source.html#l00561">itpp::MOG_generic::log_lhood_internal()</a>, <a class="el" href="mog__diag_8cpp-source.html#l00080">itpp::MOG_diag::log_lhood_internal()</a>, <a class="el" href="libEF_8h-source.html#l00262">bdm::eDirich::lognc()</a>, <a class="el" href="libEF_8cpp-source.html#l00044">bdm::egiw::lognc()</a>, <a class="el" href="merger_8cpp-source.html#l00007">bdm::merger::lognorm_merge()</a>, <a class="el" href="misc__stat_8cpp-source.html#l00036">itpp::mean()</a>, <a class="el" href="libEF_8h-source.html#l00254">bdm::eDirich::mean()</a>, <a class="el" href="merger_8cpp-source.html#l00033">bdm::merger::merge()</a>, <a class="el" href="mog__diag__em_8cpp-source.html#l00084">itpp::MOG_diag_EM_sup::ml_update_params()</a>, <a class="el" href="modulator__nd_8cpp-source.html#l00347">itpp::Modulator_NCD::modulate_bits()</a>, <a class="el" href="modulator__nd_8cpp-source.html#l00127">itpp::Modulator_NRD::modulate_bits()</a>, <a class="el" href="misc__stat_8cpp-source.html#l00105">itpp::norm()</a>, <a class="el" href="libDC_8cpp-source.html#l00156">ldmat::qform()</a>, <a class="el" href="integration_8cpp-source.html#l00071">itpp::quad()</a>, <a class="el" href="emix_8cpp-source.html#l00053">bdm::egiwmix::set_parameters()</a>, <a class="el" href="emix_8cpp-source.html#l00005">bdm::emix::set_parameters()</a>, <a class="el" href="libEF_8cpp-source.html#l00313">bdm::eEmp::set_samples()</a>, <a class="el" href="libEF_8cpp-source.html#l00301">bdm::eEmp::set_statistics()</a>, <a class="el" href="mog__generic_8cpp-source.html#l00314">itpp::MOG_generic::setup_weights()</a>, <a class="el" href="modulator__nd_8cpp-source.html#l00709">itpp::ND_UPAM::sphere_decoding()</a>, <a class="el" href="svec_8h-source.html#l00823">itpp::Sparse_Vec&lt; T &gt;::sqr()</a>, <a class="el" href="libDC_8cpp-source.html#l00080">ldmat::to_mat()</a>, <a class="el" href="matfunc_8h-source.html#l00762">itpp::trace()</a>, <a class="el" href="misc__stat_8cpp-source.html#l00159">itpp::variance()</a>, <a class="el" href="libEF_8h-source.html#l00255">bdm::eDirich::variance()</a>, and <a class="el" href="sigfun_8cpp-source.html#l00157">itpp::xcorr()</a>.</p>
726
727</div>
728</div><p>
729<a class="anchor" name="g4c81137a6b9b989a0c5a36972885c1e6"></a><!-- doxytag: member="itpp::sum_sqr" ref="g4c81137a6b9b989a0c5a36972885c1e6" args="(const Mat&lt; T &gt; &amp;m, int dim=1)" -->
730<div class="memitem">
731<div class="memproto">
732<div class="memtemplate">
733template&lt;class T &gt; </div>
734      <table class="memname">
735        <tr>
736          <td class="memname">Vec&lt;T&gt; itpp::sum_sqr           </td>
737          <td>(</td>
738          <td class="paramtype">const Mat&lt; T &gt; &amp;&nbsp;</td>
739          <td class="paramname"> <em>m</em>, </td>
740        </tr>
741        <tr>
742          <td class="paramkey"></td>
743          <td></td>
744          <td class="paramtype">int&nbsp;</td>
745          <td class="paramname"> <em>dim</em> = <code>1</code></td><td>&nbsp;</td>
746        </tr>
747        <tr>
748          <td></td>
749          <td>)</td>
750          <td></td><td></td><td><code> [inline]</code></td>
751        </tr>
752      </table>
753</div>
754<div class="memdoc">
755
756<p>
757Sum of the square of elements in the matrix <code>m</code>.
758<p>
759<code>sum(m) = sum(m, 1)</code> returns a vector where the elements are sum squared over each column, whereas <code>sum(m, 2)</code> returns a vector where the elements are sum squared over each row
760<p>References <a class="el" href="mat_8h-source.html#l00241">itpp::Mat&lt; Num_T &gt;::cols()</a>, <a class="el" href="mat_8h-source.html#l00903">itpp::Mat&lt; Num_T &gt;::get_col()</a>, <a class="el" href="mat_8h-source.html#l00866">itpp::Mat&lt; Num_T &gt;::get_row()</a>, <a class="el" href="itassert_8h-source.html#l00094">it_assert</a>, <a class="el" href="mat_8h-source.html#l00243">itpp::Mat&lt; Num_T &gt;::rows()</a>, and <a class="el" href="vec_8h-source.html#l00676">itpp::Vec&lt; Num_T &gt;::set_size()</a>.</p>
761
762<p>Referenced by <a class="el" href="channel_8cpp-source.html#l01156">itpp::TDL_Channel::calc_mean_excess_delay()</a>, <a class="el" href="channel_8cpp-source.html#l01161">itpp::TDL_Channel::calc_rms_delay_spread()</a>, and <a class="el" href="merger_8cpp-source.html#l00033">bdm::merger::merge()</a>.</p>
763
764</div>
765</div><p>
766</div>
767<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 2 10:02:14 2009 for mixpp by&nbsp;
768<a href="http://www.doxygen.org/index.html">
769<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
770</body>
771</html>
Note: See TracBrowser for help on using the browser.