root/doc/html/group__matrixdecomp.html @ 353

Revision 353, 95.3 kB (checked in by smidl, 16 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: Matrix Decompositions</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>Matrix Decompositions<br>
62<small>
63[<a class="el" href="group__algebra.html">Linear Algebra</a>]</small>
64</h1><table border="0" cellpadding="0" cellspacing="0">
65<tr><td></td></tr>
66<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
67<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g4d631e12d5d0079f7f75ee4f6451043e">itpp::chol</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;X, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;F)</td></tr>
68
69<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cholesky factorisation of real symmetric and positive definite matrix.  <a href="#g4d631e12d5d0079f7f75ee4f6451043e"></a><br></td></tr>
70<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g8aa42136e884519422d4f2dd95e51cb5">itpp::chol</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;X)</td></tr>
71
72<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cholesky factorisation of real symmetric and positive definite matrix.  <a href="#g8aa42136e884519422d4f2dd95e51cb5"></a><br></td></tr>
73<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g217ccba3338767ac64ad1b2465b76029">itpp::chol</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;X, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;F)</td></tr>
74
75<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cholesky factorisation of complex hermitian and positive-definite matrix.  <a href="#g217ccba3338767ac64ad1b2465b76029"></a><br></td></tr>
76<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__matrixdecomp.html#g976aa7781da316c23ea0aad3af2511d8">itpp::chol</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;X)</td></tr>
77
78<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cholesky factorisation of complex hermitian and positive-definite matrix.  <a href="#g976aa7781da316c23ea0aad3af2511d8"></a><br></td></tr>
79<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g05eced45f3e27b8f60ffa422f02856df">itpp::eig_sym</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;d, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;V)</td></tr>
80
81<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues and eigenvectors of a symmetric real matrix.  <a href="#g05eced45f3e27b8f60ffa422f02856df"></a><br></td></tr>
82<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g282eeffd56bf6ac0fb3e8efedb755cee">itpp::eig_sym</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;d)</td></tr>
83
84<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a symmetric real matrix.  <a href="#g282eeffd56bf6ac0fb3e8efedb755cee"></a><br></td></tr>
85<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gebf551d77c5738033d081e35e7cd9cb6">itpp::eig_sym</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A)</td></tr>
86
87<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a symmetric real matrix.  <a href="#gebf551d77c5738033d081e35e7cd9cb6"></a><br></td></tr>
88<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g40bacb19d51c45a59837ab38f04dabef">itpp::eig_sym</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;d, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;V)</td></tr>
89
90<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues and eigenvectors of a hermitian complex matrix.  <a href="#g40bacb19d51c45a59837ab38f04dabef"></a><br></td></tr>
91<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g89faa81cc5408f5e1452d5fec9fea473">itpp::eig_sym</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;d)</td></tr>
92
93<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a hermitian complex matrix.  <a href="#g89faa81cc5408f5e1452d5fec9fea473"></a><br></td></tr>
94<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g6dc61c925d40d736effa9dcbe7912df1">itpp::eig_sym</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A)</td></tr>
95
96<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a hermitian complex matrix.  <a href="#g6dc61c925d40d736effa9dcbe7912df1"></a><br></td></tr>
97<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gdc7223ef54536dfc36d3e183468297b8">itpp::eig</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;d, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;V)</td></tr>
98
99<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues and eigenvectors of a real non-symmetric matrix.  <a href="#gdc7223ef54536dfc36d3e183468297b8"></a><br></td></tr>
100<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#ga4e8c2f66e19625dc7c1d15a04cf9e63">itpp::eig</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;d)</td></tr>
101
102<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a real non-symmetric matrix.  <a href="#ga4e8c2f66e19625dc7c1d15a04cf9e63"></a><br></td></tr>
103<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g7c9a5795e0c4e8e406977a95525557ba">itpp::eig</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A)</td></tr>
104
105<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a real non-symmetric matrix.  <a href="#g7c9a5795e0c4e8e406977a95525557ba"></a><br></td></tr>
106<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g8be5168b8699ab6772d2c24c183b5b44">itpp::eig</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;d, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;V)</td></tr>
107
108<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues and eigenvectors of a complex non-hermitian matrix.  <a href="#g8be5168b8699ab6772d2c24c183b5b44"></a><br></td></tr>
109<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gb874193ee0377616736ba5895a13dcab">itpp::eig</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;d)</td></tr>
110
111<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a complex non-hermitian matrix.  <a href="#gb874193ee0377616736ba5895a13dcab"></a><br></td></tr>
112<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gffe65e88bce986d9ff527b06d573e4b7">itpp::eig</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A)</td></tr>
113
114<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the eigenvalues of a complex non-hermitian matrix.  <a href="#gffe65e88bce986d9ff527b06d573e4b7"></a><br></td></tr>
115<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g470eed4741289d81759d441e316f92f0">itpp::lu</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;X, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;L, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;U, <a class="el" href="classitpp_1_1Vec.html#b03757d874926a9be91535e71af1656e">ivec</a> &amp;p)</td></tr>
116
117<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">LU factorisation of real matrix.  <a href="#g470eed4741289d81759d441e316f92f0"></a><br></td></tr>
118<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g9912a15ea024f75442720c1bf3b5dac1">itpp::lu</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;X, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;L, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;U, <a class="el" href="classitpp_1_1Vec.html#b03757d874926a9be91535e71af1656e">ivec</a> &amp;p)</td></tr>
119
120<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">LU factorisation of real matrix.  <a href="#g9912a15ea024f75442720c1bf3b5dac1"></a><br></td></tr>
121<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2d3af51d172dd39a7f8a631a17120057"></a><!-- doxytag: member="matrixdecomp::interchange_permutations" ref="g2d3af51d172dd39a7f8a631a17120057" args="(vec &amp;b, const ivec &amp;p)" -->
122void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g2d3af51d172dd39a7f8a631a17120057">itpp::interchange_permutations</a> (<a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;b, const <a class="el" href="classitpp_1_1Vec.html#b03757d874926a9be91535e71af1656e">ivec</a> &amp;p)</td></tr>
123
124<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Makes swapping of vector b according to the interchange permutation vector p. <br></td></tr>
125<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb6e7ba47c63173084cf0cb6bebbff508"></a><!-- doxytag: member="matrixdecomp::permutation_matrix" ref="gb6e7ba47c63173084cf0cb6bebbff508" args="(const ivec &amp;p)" -->
126<a class="el" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69">bmat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gb6e7ba47c63173084cf0cb6bebbff508">itpp::permutation_matrix</a> (const <a class="el" href="classitpp_1_1Vec.html#b03757d874926a9be91535e71af1656e">ivec</a> &amp;p)</td></tr>
127
128<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make permutation matrix P from the interchange permutation vector p. <br></td></tr>
129<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g9e565beb0ca5841655a5ac3700821e2c">itpp::qr</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;Q, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;R)</td></tr>
130
131<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QR factorisation of real matrix.  <a href="#g9e565beb0ca5841655a5ac3700821e2c"></a><br></td></tr>
132<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gbd50eeb4508aaf4b7296f3a904458886">itpp::qr</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;R)</td></tr>
133
134<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QR factorisation of real matrix with suppressed evaluation of Q.  <a href="#gbd50eeb4508aaf4b7296f3a904458886"></a><br></td></tr>
135<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g83c28d9b53d73b1d9527cf14341637ff">itpp::qr</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;Q, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;R, <a class="el" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69">bmat</a> &amp;P)</td></tr>
136
137<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QR factorisation of real matrix with pivoting.  <a href="#g83c28d9b53d73b1d9527cf14341637ff"></a><br></td></tr>
138<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g321c23bad4ec43d1111f405587a9ffa2">itpp::qr</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;Q, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;R)</td></tr>
139
140<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QR factorisation of a complex matrix.  <a href="#g321c23bad4ec43d1111f405587a9ffa2"></a><br></td></tr>
141<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g1a880a8a274c14e51482293181b1a10e">itpp::qr</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;R)</td></tr>
142
143<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QR factorisation of complex matrix with suppressed evaluation of Q.  <a href="#g1a880a8a274c14e51482293181b1a10e"></a><br></td></tr>
144<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gdb3c49c28626013e0679b2ce088b8d70">itpp::qr</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;Q, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;R, <a class="el" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69">bmat</a> &amp;P)</td></tr>
145
146<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QR factorisation of a complex matrix with pivoting.  <a href="#gdb3c49c28626013e0679b2ce088b8d70"></a><br></td></tr>
147<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#ga0c6711c11ece9641878d3ab19f39d33">itpp::schur</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;U, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;T)</td></tr>
148
149<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Schur decomposition of a real matrix.  <a href="#ga0c6711c11ece9641878d3ab19f39d33"></a><br></td></tr>
150<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g5a511c9baeb36e803a006b3172848800">itpp::schur</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A)</td></tr>
151
152<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Schur decomposition of a real matrix.  <a href="#g5a511c9baeb36e803a006b3172848800"></a><br></td></tr>
153<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#gcdfbe918727616dbc8eda854c4bf0cc4">itpp::schur</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;U, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;T)</td></tr>
154
155<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Schur decomposition of a complex matrix.  <a href="#gcdfbe918727616dbc8eda854c4bf0cc4"></a><br></td></tr>
156<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__matrixdecomp.html#gd1d1f3ad1c35dee4ded80cc86c5961cc">itpp::schur</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A)</td></tr>
157
158<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Schur decomposition of a complex matrix.  <a href="#gd1d1f3ad1c35dee4ded80cc86c5961cc"></a><br></td></tr>
159<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g9fcc7191c3cee4db65e51d93123c7fba">itpp::svd</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;s)</td></tr>
160
161<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get singular values <code>s</code> of a real matrix <code>A</code> using SVD.  <a href="#g9fcc7191c3cee4db65e51d93123c7fba"></a><br></td></tr>
162<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g92dd138100c619c71ba24b3dae0dec72">itpp::svd</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;s)</td></tr>
163
164<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get singular values <code>s</code> of a complex matrix <code>A</code> using SVD.  <a href="#g92dd138100c619c71ba24b3dae0dec72"></a><br></td></tr>
165<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#ge3b83ff6532c19ec15ffe76450b70e2c">itpp::svd</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A)</td></tr>
166
167<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return singular values of a real matrix <code>A</code> using SVD.  <a href="#ge3b83ff6532c19ec15ffe76450b70e2c"></a><br></td></tr>
168<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#ga53763a60632139d71957ea7cf0080c9">itpp::svd</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A)</td></tr>
169
170<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return singular values of a complex matrix <code>A</code> using SVD.  <a href="#ga53763a60632139d71957ea7cf0080c9"></a><br></td></tr>
171<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g908131485c5c53ed2e84e2f0a258db8c">itpp::svd</a> (const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;U, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;s, <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;V)</td></tr>
172
173<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform Singular Value Decomposition (SVD) of a real matrix <code>A</code><a href="#g908131485c5c53ed2e84e2f0a258db8c"></a><br></td></tr>
174<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__matrixdecomp.html#g98a4dc87128a758f82ed05d7b060958b">itpp::svd</a> (const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;A, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;U, <a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;s, <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;V)</td></tr>
175
176<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform Singular Value Decomposition (SVD) of a complex matrix <code>A</code><a href="#g98a4dc87128a758f82ed05d7b060958b"></a><br></td></tr>
177</table>
178<hr><h2>Function Documentation</h2>
179<a class="anchor" name="g976aa7781da316c23ea0aad3af2511d8"></a><!-- doxytag: member="itpp::chol" ref="g976aa7781da316c23ea0aad3af2511d8" args="(const cmat &amp;X)" -->
180<div class="memitem">
181<div class="memproto">
182      <table class="memname">
183        <tr>
184          <td class="memname"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> itpp::chol           </td>
185          <td>(</td>
186          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
187          <td class="paramname"> <em>X</em>          </td>
188          <td>&nbsp;)&nbsp;</td>
189          <td></td>
190        </tr>
191      </table>
192</div>
193<div class="memdoc">
194
195<p>
196Cholesky factorisation of complex hermitian and positive-definite matrix.
197<p>
198The Cholesky factorisation of a hermitian positive-definite matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> of size <img class="formulaInl" alt="$n \times n$" src="form_126.png"> is given by <p class="formulaDsp">
199<img class="formulaDsp" alt="\[ \mathbf{X} = \mathbf{F}^H \mathbf{F} \]" src="form_129.png">
200<p>
201 where <img class="formulaInl" alt="$\mathbf{F}$" src="form_128.png"> is an upper triangular <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix.
202<p>References <a class="el" href="cholesky_8cpp-source.html#l00111">itpp::chol()</a>, and <a class="el" href="itassert_8h-source.html#l00173">it_warning</a>.</p>
203
204</div>
205</div><p>
206<a class="anchor" name="g217ccba3338767ac64ad1b2465b76029"></a><!-- doxytag: member="itpp::chol" ref="g217ccba3338767ac64ad1b2465b76029" args="(const cmat &amp;X, cmat &amp;F)" -->
207<div class="memitem">
208<div class="memproto">
209      <table class="memname">
210        <tr>
211          <td class="memname">bool itpp::chol           </td>
212          <td>(</td>
213          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
214          <td class="paramname"> <em>X</em>, </td>
215        </tr>
216        <tr>
217          <td class="paramkey"></td>
218          <td></td>
219          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
220          <td class="paramname"> <em>F</em></td><td>&nbsp;</td>
221        </tr>
222        <tr>
223          <td></td>
224          <td>)</td>
225          <td></td><td></td><td></td>
226        </tr>
227      </table>
228</div>
229<div class="memdoc">
230
231<p>
232Cholesky factorisation of complex hermitian and positive-definite matrix.
233<p>
234The Cholesky factorisation of a hermitian positive-definite matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> of size <img class="formulaInl" alt="$n \times n$" src="form_126.png"> is given by <p class="formulaDsp">
235<img class="formulaDsp" alt="\[ \mathbf{X} = \mathbf{F}^H \mathbf{F} \]" src="form_129.png">
236<p>
237 where <img class="formulaInl" alt="$\mathbf{F}$" src="form_128.png"> is an upper triangular <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix.<p>
238Returns true if calculation succeeded. False otherwise.<p>
239If <code>X</code> is positive definite, true is returned and <code>F=chol</code>(X) produces an upper triangular <code>F</code>. If also <code>X</code> is symmetric then <code>F'*F</code> = X. If <code>X</code> is not positive definite, false is returned.
240<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
241
242</div>
243</div><p>
244<a class="anchor" name="g8aa42136e884519422d4f2dd95e51cb5"></a><!-- doxytag: member="itpp::chol" ref="g8aa42136e884519422d4f2dd95e51cb5" args="(const mat &amp;X)" -->
245<div class="memitem">
246<div class="memproto">
247      <table class="memname">
248        <tr>
249          <td class="memname"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> itpp::chol           </td>
250          <td>(</td>
251          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
252          <td class="paramname"> <em>X</em>          </td>
253          <td>&nbsp;)&nbsp;</td>
254          <td></td>
255        </tr>
256      </table>
257</div>
258<div class="memdoc">
259
260<p>
261Cholesky factorisation of real symmetric and positive definite matrix.
262<p>
263The Cholesky factorisation of a real symmetric positive-definite matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> of size <img class="formulaInl" alt="$n \times n$" src="form_126.png"> is given by <p class="formulaDsp">
264<img class="formulaDsp" alt="\[ \mathbf{X} = \mathbf{F}^T \mathbf{F} \]" src="form_127.png">
265<p>
266 where <img class="formulaInl" alt="$\mathbf{F}$" src="form_128.png"> is an upper triangular <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix.
267<p>References <a class="el" href="itassert_8h-source.html#l00173">it_warning</a>.</p>
268
269<p>Referenced by <a class="el" href="chmat_8h-source.html#l00059">chmat::chmat()</a>, <a class="el" href="cholesky_8cpp-source.html#l00101">itpp::chol()</a>, <a class="el" href="libDC_8cpp-source.html#l00046">ldmat::ldmat()</a>, and <a class="el" href="libDC_8h-source.html#l00159">fsqmat::sqrt_mult()</a>.</p>
270
271</div>
272</div><p>
273<a class="anchor" name="g4d631e12d5d0079f7f75ee4f6451043e"></a><!-- doxytag: member="itpp::chol" ref="g4d631e12d5d0079f7f75ee4f6451043e" args="(const mat &amp;X, mat &amp;F)" -->
274<div class="memitem">
275<div class="memproto">
276      <table class="memname">
277        <tr>
278          <td class="memname">bool itpp::chol           </td>
279          <td>(</td>
280          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
281          <td class="paramname"> <em>X</em>, </td>
282        </tr>
283        <tr>
284          <td class="paramkey"></td>
285          <td></td>
286          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
287          <td class="paramname"> <em>F</em></td><td>&nbsp;</td>
288        </tr>
289        <tr>
290          <td></td>
291          <td>)</td>
292          <td></td><td></td><td></td>
293        </tr>
294      </table>
295</div>
296<div class="memdoc">
297
298<p>
299Cholesky factorisation of real symmetric and positive definite matrix.
300<p>
301The Cholesky factorisation of a real symmetric positive-definite matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> of size <img class="formulaInl" alt="$n \times n$" src="form_126.png"> is given by <p class="formulaDsp">
302<img class="formulaDsp" alt="\[ \mathbf{X} = \mathbf{F}^T \mathbf{F} \]" src="form_127.png">
303<p>
304 where <img class="formulaInl" alt="$\mathbf{F}$" src="form_128.png"> is an upper triangular <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix.<p>
305Returns true if calculation succeeded. False otherwise.
306<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
307
308</div>
309</div><p>
310<a class="anchor" name="gffe65e88bce986d9ff527b06d573e4b7"></a><!-- doxytag: member="itpp::eig" ref="gffe65e88bce986d9ff527b06d573e4b7" args="(const cmat &amp;A)" -->
311<div class="memitem">
312<div class="memproto">
313      <table class="memname">
314        <tr>
315          <td class="memname"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> itpp::eig           </td>
316          <td>(</td>
317          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
318          <td class="paramname"> <em>A</em>          </td>
319          <td>&nbsp;)&nbsp;</td>
320          <td></td>
321        </tr>
322      </table>
323</div>
324<div class="memdoc">
325
326<p>
327Calculates the eigenvalues of a complex non-hermitian matrix.
328<p>
329The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the complex <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
330<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
331<p>
332<p>
333Uses the LAPACK routine ZGEEV.
334<p>Referenced by <a class="el" href="eigen_8cpp-source.html#l00318">itpp::eig()</a>, and <a class="el" href="poly_8cpp-source.html#l00066">itpp::roots()</a>.</p>
335
336</div>
337</div><p>
338<a class="anchor" name="gb874193ee0377616736ba5895a13dcab"></a><!-- doxytag: member="itpp::eig" ref="gb874193ee0377616736ba5895a13dcab" args="(const cmat &amp;A, cvec &amp;d)" -->
339<div class="memitem">
340<div class="memproto">
341      <table class="memname">
342        <tr>
343          <td class="memname">bool itpp::eig           </td>
344          <td>(</td>
345          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
346          <td class="paramname"> <em>A</em>, </td>
347        </tr>
348        <tr>
349          <td class="paramkey"></td>
350          <td></td>
351          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;&nbsp;</td>
352          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
353        </tr>
354        <tr>
355          <td></td>
356          <td>)</td>
357          <td></td><td></td><td></td>
358        </tr>
359      </table>
360</div>
361<div class="memdoc">
362
363<p>
364Calculates the eigenvalues of a complex non-hermitian matrix.
365<p>
366The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the complex <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
367<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
368<p>
369 True is returned if the calculation was successful. Otherwise false.<p>
370Uses the LAPACK routine ZGEEV.
371<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
372
373</div>
374</div><p>
375<a class="anchor" name="g8be5168b8699ab6772d2c24c183b5b44"></a><!-- doxytag: member="itpp::eig" ref="g8be5168b8699ab6772d2c24c183b5b44" args="(const cmat &amp;A, cvec &amp;d, cmat &amp;V)" -->
376<div class="memitem">
377<div class="memproto">
378      <table class="memname">
379        <tr>
380          <td class="memname">bool itpp::eig           </td>
381          <td>(</td>
382          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
383          <td class="paramname"> <em>A</em>, </td>
384        </tr>
385        <tr>
386          <td class="paramkey"></td>
387          <td></td>
388          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;&nbsp;</td>
389          <td class="paramname"> <em>d</em>, </td>
390        </tr>
391        <tr>
392          <td class="paramkey"></td>
393          <td></td>
394          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
395          <td class="paramname"> <em>V</em></td><td>&nbsp;</td>
396        </tr>
397        <tr>
398          <td></td>
399          <td>)</td>
400          <td></td><td></td><td></td>
401        </tr>
402      </table>
403</div>
404<div class="memdoc">
405
406<p>
407Calculates the eigenvalues and eigenvectors of a complex non-hermitian matrix.
408<p>
409The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the complex <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
410<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
411<p>
412 The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.<p>
413Uses the LAPACK routine ZGEEV.
414<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
415
416</div>
417</div><p>
418<a class="anchor" name="g7c9a5795e0c4e8e406977a95525557ba"></a><!-- doxytag: member="itpp::eig" ref="g7c9a5795e0c4e8e406977a95525557ba" args="(const mat &amp;A)" -->
419<div class="memitem">
420<div class="memproto">
421      <table class="memname">
422        <tr>
423          <td class="memname"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> itpp::eig           </td>
424          <td>(</td>
425          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
426          <td class="paramname"> <em>A</em>          </td>
427          <td>&nbsp;)&nbsp;</td>
428          <td></td>
429        </tr>
430      </table>
431</div>
432<div class="memdoc">
433
434<p>
435Calculates the eigenvalues of a real non-symmetric matrix.
436<p>
437The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the real <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
438<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
439<p>
440<p>
441Uses the LAPACK routine DGEEV.
442<p>References <a class="el" href="eigen_8cpp-source.html#l00325">itpp::eig()</a>.</p>
443
444</div>
445</div><p>
446<a class="anchor" name="ga4e8c2f66e19625dc7c1d15a04cf9e63"></a><!-- doxytag: member="itpp::eig" ref="ga4e8c2f66e19625dc7c1d15a04cf9e63" args="(const mat &amp;A, cvec &amp;d)" -->
447<div class="memitem">
448<div class="memproto">
449      <table class="memname">
450        <tr>
451          <td class="memname">bool itpp::eig           </td>
452          <td>(</td>
453          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
454          <td class="paramname"> <em>A</em>, </td>
455        </tr>
456        <tr>
457          <td class="paramkey"></td>
458          <td></td>
459          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;&nbsp;</td>
460          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
461        </tr>
462        <tr>
463          <td></td>
464          <td>)</td>
465          <td></td><td></td><td></td>
466        </tr>
467      </table>
468</div>
469<div class="memdoc">
470
471<p>
472Calculates the eigenvalues of a real non-symmetric matrix.
473<p>
474The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the real <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
475<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
476<p>
477 True is returned if the calculation was successful. Otherwise false.<p>
478Uses the LAPACK routine DGEEV.
479<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
480
481</div>
482</div><p>
483<a class="anchor" name="gdc7223ef54536dfc36d3e183468297b8"></a><!-- doxytag: member="itpp::eig" ref="gdc7223ef54536dfc36d3e183468297b8" args="(const mat &amp;A, cvec &amp;d, cmat &amp;V)" -->
484<div class="memitem">
485<div class="memproto">
486      <table class="memname">
487        <tr>
488          <td class="memname">bool itpp::eig           </td>
489          <td>(</td>
490          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
491          <td class="paramname"> <em>A</em>, </td>
492        </tr>
493        <tr>
494          <td class="paramkey"></td>
495          <td></td>
496          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#e83c1408740e41a7e29c383b71d4d544">cvec</a> &amp;&nbsp;</td>
497          <td class="paramname"> <em>d</em>, </td>
498        </tr>
499        <tr>
500          <td class="paramkey"></td>
501          <td></td>
502          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
503          <td class="paramname"> <em>V</em></td><td>&nbsp;</td>
504        </tr>
505        <tr>
506          <td></td>
507          <td>)</td>
508          <td></td><td></td><td></td>
509        </tr>
510      </table>
511</div>
512<div class="memdoc">
513
514<p>
515Calculates the eigenvalues and eigenvectors of a real non-symmetric matrix.
516<p>
517The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the real <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
518<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
519<p>
520 The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.<p>
521Uses the LAPACK routine DGEEV.
522<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
523
524</div>
525</div><p>
526<a class="anchor" name="g6dc61c925d40d736effa9dcbe7912df1"></a><!-- doxytag: member="itpp::eig_sym" ref="g6dc61c925d40d736effa9dcbe7912df1" args="(const cmat &amp;A)" -->
527<div class="memitem">
528<div class="memproto">
529      <table class="memname">
530        <tr>
531          <td class="memname"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> itpp::eig_sym           </td>
532          <td>(</td>
533          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
534          <td class="paramname"> <em>A</em>          </td>
535          <td>&nbsp;)&nbsp;</td>
536          <td></td>
537        </tr>
538      </table>
539</div>
540<div class="memdoc">
541
542<p>
543Calculates the eigenvalues of a hermitian complex matrix.
544<p>
545The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the complex and hermitian <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
546<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
547<p>
548<p>
549Uses the LAPACK routine ZHEEV.
550<p>Referenced by <a class="el" href="eigen_8cpp-source.html#l00303">itpp::eig_sym()</a>.</p>
551
552</div>
553</div><p>
554<a class="anchor" name="g89faa81cc5408f5e1452d5fec9fea473"></a><!-- doxytag: member="itpp::eig_sym" ref="g89faa81cc5408f5e1452d5fec9fea473" args="(const cmat &amp;A, vec &amp;d)" -->
555<div class="memitem">
556<div class="memproto">
557      <table class="memname">
558        <tr>
559          <td class="memname">bool itpp::eig_sym           </td>
560          <td>(</td>
561          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
562          <td class="paramname"> <em>A</em>, </td>
563        </tr>
564        <tr>
565          <td class="paramkey"></td>
566          <td></td>
567          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
568          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
569        </tr>
570        <tr>
571          <td></td>
572          <td>)</td>
573          <td></td><td></td><td></td>
574        </tr>
575      </table>
576</div>
577<div class="memdoc">
578
579<p>
580Calculates the eigenvalues of a hermitian complex matrix.
581<p>
582The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the complex and hermitian <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
583<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
584<p>
585 True is returned if the calculation was successful. Otherwise false.<p>
586Uses the LAPACK routine ZHEEV.
587<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
588
589</div>
590</div><p>
591<a class="anchor" name="g40bacb19d51c45a59837ab38f04dabef"></a><!-- doxytag: member="itpp::eig_sym" ref="g40bacb19d51c45a59837ab38f04dabef" args="(const cmat &amp;A, vec &amp;d, cmat &amp;V)" -->
592<div class="memitem">
593<div class="memproto">
594      <table class="memname">
595        <tr>
596          <td class="memname">bool itpp::eig_sym           </td>
597          <td>(</td>
598          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
599          <td class="paramname"> <em>A</em>, </td>
600        </tr>
601        <tr>
602          <td class="paramkey"></td>
603          <td></td>
604          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
605          <td class="paramname"> <em>d</em>, </td>
606        </tr>
607        <tr>
608          <td class="paramkey"></td>
609          <td></td>
610          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
611          <td class="paramname"> <em>V</em></td><td>&nbsp;</td>
612        </tr>
613        <tr>
614          <td></td>
615          <td>)</td>
616          <td></td><td></td><td></td>
617        </tr>
618      </table>
619</div>
620<div class="memdoc">
621
622<p>
623Calculates the eigenvalues and eigenvectors of a hermitian complex matrix.
624<p>
625The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the complex and hermitian <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
626<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
627<p>
628 The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.<p>
629Uses the LAPACK routine ZHEEV.
630<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
631
632</div>
633</div><p>
634<a class="anchor" name="gebf551d77c5738033d081e35e7cd9cb6"></a><!-- doxytag: member="itpp::eig_sym" ref="gebf551d77c5738033d081e35e7cd9cb6" args="(const mat &amp;A)" -->
635<div class="memitem">
636<div class="memproto">
637      <table class="memname">
638        <tr>
639          <td class="memname"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> itpp::eig_sym           </td>
640          <td>(</td>
641          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
642          <td class="paramname"> <em>A</em>          </td>
643          <td>&nbsp;)&nbsp;</td>
644          <td></td>
645        </tr>
646      </table>
647</div>
648<div class="memdoc">
649
650<p>
651Calculates the eigenvalues of a symmetric real matrix.
652<p>
653The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the real and symmetric <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
654<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
655<p>
656<p>
657Uses the LAPACK routine DSYEV.
658<p>References <a class="el" href="eigen_8cpp-source.html#l00310">itpp::eig_sym()</a>.</p>
659
660</div>
661</div><p>
662<a class="anchor" name="g282eeffd56bf6ac0fb3e8efedb755cee"></a><!-- doxytag: member="itpp::eig_sym" ref="g282eeffd56bf6ac0fb3e8efedb755cee" args="(const mat &amp;A, vec &amp;d)" -->
663<div class="memitem">
664<div class="memproto">
665      <table class="memname">
666        <tr>
667          <td class="memname">bool itpp::eig_sym           </td>
668          <td>(</td>
669          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
670          <td class="paramname"> <em>A</em>, </td>
671        </tr>
672        <tr>
673          <td class="paramkey"></td>
674          <td></td>
675          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
676          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
677        </tr>
678        <tr>
679          <td></td>
680          <td>)</td>
681          <td></td><td></td><td></td>
682        </tr>
683      </table>
684</div>
685<div class="memdoc">
686
687<p>
688Calculates the eigenvalues of a symmetric real matrix.
689<p>
690The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the real and symmetric <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
691<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
692<p>
693 True is returned if the calculation was successful. Otherwise false.<p>
694Uses the LAPACK routine DSYEV.
695<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
696
697</div>
698</div><p>
699<a class="anchor" name="g05eced45f3e27b8f60ffa422f02856df"></a><!-- doxytag: member="itpp::eig_sym" ref="g05eced45f3e27b8f60ffa422f02856df" args="(const mat &amp;A, vec &amp;d, mat &amp;V)" -->
700<div class="memitem">
701<div class="memproto">
702      <table class="memname">
703        <tr>
704          <td class="memname">bool itpp::eig_sym           </td>
705          <td>(</td>
706          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
707          <td class="paramname"> <em>A</em>, </td>
708        </tr>
709        <tr>
710          <td class="paramkey"></td>
711          <td></td>
712          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
713          <td class="paramname"> <em>d</em>, </td>
714        </tr>
715        <tr>
716          <td class="paramkey"></td>
717          <td></td>
718          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
719          <td class="paramname"> <em>V</em></td><td>&nbsp;</td>
720        </tr>
721        <tr>
722          <td></td>
723          <td>)</td>
724          <td></td><td></td><td></td>
725        </tr>
726      </table>
727</div>
728<div class="memdoc">
729
730<p>
731Calculates the eigenvalues and eigenvectors of a symmetric real matrix.
732<p>
733The Eigenvalues <img class="formulaInl" alt="$\mathbf{d}(d_0, d_1, \ldots, d_{n-1})$" src="form_132.png"> and the eigenvectors <img class="formulaInl" alt="$\mathbf{v}_i, \: i=0, \ldots, n-1$" src="form_133.png"> of the real and symmetric <img class="formulaInl" alt="$n \times n$" src="form_126.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> satisfies <p class="formulaDsp">
734<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{v}_i = d_i \mathbf{v}_i\: i=0, \ldots, n-1. \]" src="form_135.png">
735<p>
736 The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.<p>
737Uses the LAPACK routine DSYEV.
738<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
739
740</div>
741</div><p>
742<a class="anchor" name="g9912a15ea024f75442720c1bf3b5dac1"></a><!-- doxytag: member="itpp::lu" ref="g9912a15ea024f75442720c1bf3b5dac1" args="(const cmat &amp;X, cmat &amp;L, cmat &amp;U, ivec &amp;p)" -->
743<div class="memitem">
744<div class="memproto">
745      <table class="memname">
746        <tr>
747          <td class="memname">bool itpp::lu           </td>
748          <td>(</td>
749          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
750          <td class="paramname"> <em>X</em>, </td>
751        </tr>
752        <tr>
753          <td class="paramkey"></td>
754          <td></td>
755          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
756          <td class="paramname"> <em>L</em>, </td>
757        </tr>
758        <tr>
759          <td class="paramkey"></td>
760          <td></td>
761          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
762          <td class="paramname"> <em>U</em>, </td>
763        </tr>
764        <tr>
765          <td class="paramkey"></td>
766          <td></td>
767          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#b03757d874926a9be91535e71af1656e">ivec</a> &amp;&nbsp;</td>
768          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
769        </tr>
770        <tr>
771          <td></td>
772          <td>)</td>
773          <td></td><td></td><td></td>
774        </tr>
775      </table>
776</div>
777<div class="memdoc">
778
779<p>
780LU factorisation of real matrix.
781<p>
782The LU factorization of the complex matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> of size <img class="formulaInl" alt="$n \times n$" src="form_126.png"> is given by <p class="formulaDsp">
783<img class="formulaDsp" alt="\[ \mathbf{X} = \mathbf{P}^T \mathbf{L} \mathbf{U} , \]" src="form_143.png">
784<p>
785 where <img class="formulaInl" alt="$\mathbf{L}$" src="form_144.png"> and <img class="formulaInl" alt="$\mathbf{U}$" src="form_145.png"> are lower and upper triangular matrices and <img class="formulaInl" alt="$\mathbf{P}$" src="form_146.png"> is a permutation matrix.<p>
786The interchange permutation vector <em>p</em> is such that <em>k</em> and <em>p(k)</em> should be changed for all <em>k</em>. Given this vector a permutation matrix can be constructed using the function <div class="fragment"><pre class="fragment">  <a class="code" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69" title="bin matrix">bmat</a> <a class="code" href="group__matrixdecomp.html#gb6e7ba47c63173084cf0cb6bebbff508" title="Make permutation matrix P from the interchange permutation vector p.">permutation_matrix</a>(<span class="keyword">const</span> ivec &amp;p)
787</pre></div><p>
788If <em>X</em> is an <em>n</em> by <em>n</em> matrix <em>lu(X,L,U,p)</em> computes the LU decomposition. <em>L</em> is a lower triangular, <em>U</em> an upper triangular matrix. <em>p</em> is the interchange permutation vector such that elements <em>k</em> and row <em>p(k)</em> should be interchanged.<p>
789Returns true is calculation succeeds. False otherwise.
790<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
791
792<p>Referenced by <a class="el" href="det_8cpp-source.html#l00043">itpp::det()</a>.</p>
793
794</div>
795</div><p>
796<a class="anchor" name="g470eed4741289d81759d441e316f92f0"></a><!-- doxytag: member="itpp::lu" ref="g470eed4741289d81759d441e316f92f0" args="(const mat &amp;X, mat &amp;L, mat &amp;U, ivec &amp;p)" -->
797<div class="memitem">
798<div class="memproto">
799      <table class="memname">
800        <tr>
801          <td class="memname">bool itpp::lu           </td>
802          <td>(</td>
803          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
804          <td class="paramname"> <em>X</em>, </td>
805        </tr>
806        <tr>
807          <td class="paramkey"></td>
808          <td></td>
809          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
810          <td class="paramname"> <em>L</em>, </td>
811        </tr>
812        <tr>
813          <td class="paramkey"></td>
814          <td></td>
815          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
816          <td class="paramname"> <em>U</em>, </td>
817        </tr>
818        <tr>
819          <td class="paramkey"></td>
820          <td></td>
821          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#b03757d874926a9be91535e71af1656e">ivec</a> &amp;&nbsp;</td>
822          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
823        </tr>
824        <tr>
825          <td></td>
826          <td>)</td>
827          <td></td><td></td><td></td>
828        </tr>
829      </table>
830</div>
831<div class="memdoc">
832
833<p>
834LU factorisation of real matrix.
835<p>
836The LU factorization of the real matrix <img class="formulaInl" alt="$\mathbf{X}$" src="form_125.png"> of size <img class="formulaInl" alt="$n \times n$" src="form_126.png"> is given by <p class="formulaDsp">
837<img class="formulaDsp" alt="\[ \mathbf{X} = \mathbf{P}^T \mathbf{L} \mathbf{U} , \]" src="form_143.png">
838<p>
839 where <img class="formulaInl" alt="$\mathbf{L}$" src="form_144.png"> and <img class="formulaInl" alt="$\mathbf{U}$" src="form_145.png"> are lower and upper triangular matrices and <img class="formulaInl" alt="$\mathbf{P}$" src="form_146.png"> is a permutation matrix.<p>
840The interchange permutation vector <em>p</em> is such that <em>k</em> and <em>p(k)</em> should be changed for all <em>k</em>. Given this vector a permutation matrix can be constructed using the function <div class="fragment"><pre class="fragment">  <a class="code" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69" title="bin matrix">bmat</a> <a class="code" href="group__matrixdecomp.html#gb6e7ba47c63173084cf0cb6bebbff508" title="Make permutation matrix P from the interchange permutation vector p.">permutation_matrix</a>(<span class="keyword">const</span> ivec &amp;p)
841</pre></div><p>
842If <em>X</em> is an <em>n</em> by <em>n</em> matrix <em>lu(X,L,U,p)</em> computes the LU decomposition. <em>L</em> is a lower triangular, <em>U</em> an upper triangular matrix. <em>p</em> is the interchange permutation vector such that <em>k</em> and <em>p(k)</em> should be changed for all <em>k</em>.<p>
843Returns true is calculation succeeds. False otherwise.
844<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
845
846</div>
847</div><p>
848<a class="anchor" name="gdb3c49c28626013e0679b2ce088b8d70"></a><!-- doxytag: member="itpp::qr" ref="gdb3c49c28626013e0679b2ce088b8d70" args="(const cmat &amp;A, cmat &amp;Q, cmat &amp;R, bmat &amp;P)" -->
849<div class="memitem">
850<div class="memproto">
851      <table class="memname">
852        <tr>
853          <td class="memname">bool itpp::qr           </td>
854          <td>(</td>
855          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
856          <td class="paramname"> <em>A</em>, </td>
857        </tr>
858        <tr>
859          <td class="paramkey"></td>
860          <td></td>
861          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
862          <td class="paramname"> <em>Q</em>, </td>
863        </tr>
864        <tr>
865          <td class="paramkey"></td>
866          <td></td>
867          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
868          <td class="paramname"> <em>R</em>, </td>
869        </tr>
870        <tr>
871          <td class="paramkey"></td>
872          <td></td>
873          <td class="paramtype"><a class="el" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69">bmat</a> &amp;&nbsp;</td>
874          <td class="paramname"> <em>P</em></td><td>&nbsp;</td>
875        </tr>
876        <tr>
877          <td></td>
878          <td>)</td>
879          <td></td><td></td><td></td>
880        </tr>
881      </table>
882</div>
883<div class="memdoc">
884
885<p>
886QR factorisation of a complex matrix with pivoting.
887<p>
888The QR factorization of the complex matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> of size <img class="formulaInl" alt="$m \times n$" src="form_140.png"> is given by <p class="formulaDsp">
889<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{P} = \mathbf{Q} \mathbf{R} , \]" src="form_153.png">
890<p>
891 where <img class="formulaInl" alt="$\mathbf{Q}$" src="form_148.png"> is an <img class="formulaInl" alt="$m \times m$" src="form_149.png"> unitary matrix, <img class="formulaInl" alt="$\mathbf{R}$" src="form_150.png"> is an <img class="formulaInl" alt="$m \times n$" src="form_140.png"> upper triangular matrix and <img class="formulaInl" alt="$\mathbf{P}$" src="form_146.png"> is an <img class="formulaInl" alt="$n \times n$" src="form_126.png"> permutation matrix.<p>
892Returns true is calculation succeeds. False otherwise. Uses the LAPACK routines ZGEQP3 and ZUNGQR.
893<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
894
895<p>Referenced by <a class="el" href="libKF_8cpp-source.html#l00199">bdm::EKFCh::bayes()</a>, <a class="el" href="libKF_8cpp-source.html#l00130">bdm::KalmanCh::bayes()</a>, and <a class="el" href="chmat_8cpp-source.html#l00007">chmat::opupdt()</a>.</p>
896
897</div>
898</div><p>
899<a class="anchor" name="g1a880a8a274c14e51482293181b1a10e"></a><!-- doxytag: member="itpp::qr" ref="g1a880a8a274c14e51482293181b1a10e" args="(const cmat &amp;A, cmat &amp;R)" -->
900<div class="memitem">
901<div class="memproto">
902      <table class="memname">
903        <tr>
904          <td class="memname">bool itpp::qr           </td>
905          <td>(</td>
906          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
907          <td class="paramname"> <em>A</em>, </td>
908        </tr>
909        <tr>
910          <td class="paramkey"></td>
911          <td></td>
912          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
913          <td class="paramname"> <em>R</em></td><td>&nbsp;</td>
914        </tr>
915        <tr>
916          <td></td>
917          <td>)</td>
918          <td></td><td></td><td></td>
919        </tr>
920      </table>
921</div>
922<div class="memdoc">
923
924<p>
925QR factorisation of complex matrix with suppressed evaluation of Q.
926<p>
927For certain type of applications only the <img class="formulaInl" alt="$\mathbf{R}$" src="form_150.png"> matrix of full QR factorization of the complex matrix <img class="formulaInl" alt="$\mathbf{A}=\mathbf{Q}\mathbf{R}$" src="form_151.png"> is needed. These situations arise typically in designs of square-root algorithms where it is required that <img class="formulaInl" alt="$\mathbf{A}^{H}\mathbf{A}=\mathbf{R}^{H}\mathbf{R}$" src="form_154.png">. In such cases, evaluation of <img class="formulaInl" alt="$\mathbf{Q}$" src="form_148.png"> can be skipped.<p>
928Modification of qr(A,Q,R).<p>
929<dl class="author" compact><dt><b>Author:</b></dt><dd>Vasek Smidl </dd></dl>
930
931<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
932
933</div>
934</div><p>
935<a class="anchor" name="g321c23bad4ec43d1111f405587a9ffa2"></a><!-- doxytag: member="itpp::qr" ref="g321c23bad4ec43d1111f405587a9ffa2" args="(const cmat &amp;A, cmat &amp;Q, cmat &amp;R)" -->
936<div class="memitem">
937<div class="memproto">
938      <table class="memname">
939        <tr>
940          <td class="memname">bool itpp::qr           </td>
941          <td>(</td>
942          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
943          <td class="paramname"> <em>A</em>, </td>
944        </tr>
945        <tr>
946          <td class="paramkey"></td>
947          <td></td>
948          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
949          <td class="paramname"> <em>Q</em>, </td>
950        </tr>
951        <tr>
952          <td class="paramkey"></td>
953          <td></td>
954          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
955          <td class="paramname"> <em>R</em></td><td>&nbsp;</td>
956        </tr>
957        <tr>
958          <td></td>
959          <td>)</td>
960          <td></td><td></td><td></td>
961        </tr>
962      </table>
963</div>
964<div class="memdoc">
965
966<p>
967QR factorisation of a complex matrix.
968<p>
969The QR factorization of the complex matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> of size <img class="formulaInl" alt="$m \times n$" src="form_140.png"> is given by <p class="formulaDsp">
970<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{Q} \mathbf{R} , \]" src="form_147.png">
971<p>
972 where <img class="formulaInl" alt="$\mathbf{Q}$" src="form_148.png"> is an <img class="formulaInl" alt="$m \times m$" src="form_149.png"> unitary matrix and <img class="formulaInl" alt="$\mathbf{R}$" src="form_150.png"> is an <img class="formulaInl" alt="$m \times n$" src="form_140.png"> upper triangular matrix.<p>
973Returns true is calculation succeeds. False otherwise. Uses the LAPACK routines ZGEQRF and ZUNGQR.
974<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
975
976</div>
977</div><p>
978<a class="anchor" name="g83c28d9b53d73b1d9527cf14341637ff"></a><!-- doxytag: member="itpp::qr" ref="g83c28d9b53d73b1d9527cf14341637ff" args="(const mat &amp;A, mat &amp;Q, mat &amp;R, bmat &amp;P)" -->
979<div class="memitem">
980<div class="memproto">
981      <table class="memname">
982        <tr>
983          <td class="memname">bool itpp::qr           </td>
984          <td>(</td>
985          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
986          <td class="paramname"> <em>A</em>, </td>
987        </tr>
988        <tr>
989          <td class="paramkey"></td>
990          <td></td>
991          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
992          <td class="paramname"> <em>Q</em>, </td>
993        </tr>
994        <tr>
995          <td class="paramkey"></td>
996          <td></td>
997          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
998          <td class="paramname"> <em>R</em>, </td>
999        </tr>
1000        <tr>
1001          <td class="paramkey"></td>
1002          <td></td>
1003          <td class="paramtype"><a class="el" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69">bmat</a> &amp;&nbsp;</td>
1004          <td class="paramname"> <em>P</em></td><td>&nbsp;</td>
1005        </tr>
1006        <tr>
1007          <td></td>
1008          <td>)</td>
1009          <td></td><td></td><td></td>
1010        </tr>
1011      </table>
1012</div>
1013<div class="memdoc">
1014
1015<p>
1016QR factorisation of real matrix with pivoting.
1017<p>
1018The QR factorization of the real matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> of size <img class="formulaInl" alt="$m \times n$" src="form_140.png"> is given by <p class="formulaDsp">
1019<img class="formulaDsp" alt="\[ \mathbf{A} \mathbf{P} = \mathbf{Q} \mathbf{R} , \]" src="form_153.png">
1020<p>
1021 where <img class="formulaInl" alt="$\mathbf{Q}$" src="form_148.png"> is an <img class="formulaInl" alt="$m \times m$" src="form_149.png"> orthogonal matrix, <img class="formulaInl" alt="$\mathbf{R}$" src="form_150.png"> is an <img class="formulaInl" alt="$m \times n$" src="form_140.png"> upper triangular matrix and <img class="formulaInl" alt="$\mathbf{P}$" src="form_146.png"> is an <img class="formulaInl" alt="$n \times n$" src="form_126.png"> permutation matrix.<p>
1022Returns true is calculation succeeds. False otherwise. Uses the LAPACK routines DGEQP3 and DORGQR.
1023<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1024
1025</div>
1026</div><p>
1027<a class="anchor" name="gbd50eeb4508aaf4b7296f3a904458886"></a><!-- doxytag: member="itpp::qr" ref="gbd50eeb4508aaf4b7296f3a904458886" args="(const mat &amp;A, mat &amp;R)" -->
1028<div class="memitem">
1029<div class="memproto">
1030      <table class="memname">
1031        <tr>
1032          <td class="memname">bool itpp::qr           </td>
1033          <td>(</td>
1034          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1035          <td class="paramname"> <em>A</em>, </td>
1036        </tr>
1037        <tr>
1038          <td class="paramkey"></td>
1039          <td></td>
1040          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1041          <td class="paramname"> <em>R</em></td><td>&nbsp;</td>
1042        </tr>
1043        <tr>
1044          <td></td>
1045          <td>)</td>
1046          <td></td><td></td><td></td>
1047        </tr>
1048      </table>
1049</div>
1050<div class="memdoc">
1051
1052<p>
1053QR factorisation of real matrix with suppressed evaluation of Q.
1054<p>
1055For certain type of applications only the <img class="formulaInl" alt="$\mathbf{R}$" src="form_150.png"> matrix of full QR factorization of the real matrix <img class="formulaInl" alt="$\mathbf{A}=\mathbf{Q}\mathbf{R}$" src="form_151.png"> is needed. These situations arise typically in designs of square-root algorithms where it is required that <img class="formulaInl" alt="$\mathbf{A}^{T}\mathbf{A}=\mathbf{R}^{T}\mathbf{R}$" src="form_152.png">. In such cases, evaluation of <img class="formulaInl" alt="$\mathbf{Q}$" src="form_148.png"> can be skipped.<p>
1056Modification of qr(A,Q,R).<p>
1057<dl class="author" compact><dt><b>Author:</b></dt><dd>Vasek Smidl </dd></dl>
1058
1059<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1060
1061</div>
1062</div><p>
1063<a class="anchor" name="g9e565beb0ca5841655a5ac3700821e2c"></a><!-- doxytag: member="itpp::qr" ref="g9e565beb0ca5841655a5ac3700821e2c" args="(const mat &amp;A, mat &amp;Q, mat &amp;R)" -->
1064<div class="memitem">
1065<div class="memproto">
1066      <table class="memname">
1067        <tr>
1068          <td class="memname">bool itpp::qr           </td>
1069          <td>(</td>
1070          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1071          <td class="paramname"> <em>A</em>, </td>
1072        </tr>
1073        <tr>
1074          <td class="paramkey"></td>
1075          <td></td>
1076          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1077          <td class="paramname"> <em>Q</em>, </td>
1078        </tr>
1079        <tr>
1080          <td class="paramkey"></td>
1081          <td></td>
1082          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1083          <td class="paramname"> <em>R</em></td><td>&nbsp;</td>
1084        </tr>
1085        <tr>
1086          <td></td>
1087          <td>)</td>
1088          <td></td><td></td><td></td>
1089        </tr>
1090      </table>
1091</div>
1092<div class="memdoc">
1093
1094<p>
1095QR factorisation of real matrix.
1096<p>
1097The QR factorization of the real matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> of size <img class="formulaInl" alt="$m \times n$" src="form_140.png"> is given by <p class="formulaDsp">
1098<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{Q} \mathbf{R} , \]" src="form_147.png">
1099<p>
1100 where <img class="formulaInl" alt="$\mathbf{Q}$" src="form_148.png"> is an <img class="formulaInl" alt="$m \times m$" src="form_149.png"> orthogonal matrix and <img class="formulaInl" alt="$\mathbf{R}$" src="form_150.png"> is an <img class="formulaInl" alt="$m \times n$" src="form_140.png"> upper triangular matrix.<p>
1101Returns true is calculation succeeds. False otherwise. Uses the LAPACK routine DGEQRF and DORGQR.
1102<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1103
1104</div>
1105</div><p>
1106<a class="anchor" name="gd1d1f3ad1c35dee4ded80cc86c5961cc"></a><!-- doxytag: member="itpp::schur" ref="gd1d1f3ad1c35dee4ded80cc86c5961cc" args="(const cmat &amp;A)" -->
1107<div class="memitem">
1108<div class="memproto">
1109      <table class="memname">
1110        <tr>
1111          <td class="memname"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> itpp::schur           </td>
1112          <td>(</td>
1113          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1114          <td class="paramname"> <em>A</em>          </td>
1115          <td>&nbsp;)&nbsp;</td>
1116          <td></td>
1117        </tr>
1118      </table>
1119</div>
1120<div class="memdoc">
1121
1122<p>
1123Schur decomposition of a complex matrix.
1124<p>
1125This function computes the Schur form of a square complex matrix <img class="formulaInl" alt="$ \mathbf{A} $" src="form_155.png">. The Schur decomposition satisfies the following equation: <p class="formulaDsp">
1126<img class="formulaDsp" alt="\[ \mathbf{U} \mathbf{T} \mathbf{U}^{H} = \mathbf{A} \]" src="form_161.png">
1127<p>
1128 where: <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> is a unitary, <img class="formulaInl" alt="$ \mathbf{T} $" src="form_158.png"> is upper triangular, and <img class="formulaInl" alt="$ \mathbf{U}^{H} $" src="form_162.png"> is the Hermitian transposition of the <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> matrix.<p>
1129<dl class="return" compact><dt><b>Returns:</b></dt><dd>Complex Schur matrix <img class="formulaInl" alt="$ \mathbf{T} $" src="form_158.png"></dd></dl>
1130Uses the LAPACK routine ZGEES.
1131<p>Referenced by <a class="el" href="schur_8cpp-source.html#l00119">itpp::schur()</a>.</p>
1132
1133</div>
1134</div><p>
1135<a class="anchor" name="gcdfbe918727616dbc8eda854c4bf0cc4"></a><!-- doxytag: member="itpp::schur" ref="gcdfbe918727616dbc8eda854c4bf0cc4" args="(const cmat &amp;A, cmat &amp;U, cmat &amp;T)" -->
1136<div class="memitem">
1137<div class="memproto">
1138      <table class="memname">
1139        <tr>
1140          <td class="memname">bool itpp::schur           </td>
1141          <td>(</td>
1142          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1143          <td class="paramname"> <em>A</em>, </td>
1144        </tr>
1145        <tr>
1146          <td class="paramkey"></td>
1147          <td></td>
1148          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1149          <td class="paramname"> <em>U</em>, </td>
1150        </tr>
1151        <tr>
1152          <td class="paramkey"></td>
1153          <td></td>
1154          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1155          <td class="paramname"> <em>T</em></td><td>&nbsp;</td>
1156        </tr>
1157        <tr>
1158          <td></td>
1159          <td>)</td>
1160          <td></td><td></td><td></td>
1161        </tr>
1162      </table>
1163</div>
1164<div class="memdoc">
1165
1166<p>
1167Schur decomposition of a complex matrix.
1168<p>
1169This function computes the Schur form of a square complex matrix <img class="formulaInl" alt="$ \mathbf{A} $" src="form_155.png">. The Schur decomposition satisfies the following equation: <p class="formulaDsp">
1170<img class="formulaDsp" alt="\[ \mathbf{U} \mathbf{T} \mathbf{U}^{H} = \mathbf{A} \]" src="form_161.png">
1171<p>
1172 where: <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> is a unitary, <img class="formulaInl" alt="$ \mathbf{T} $" src="form_158.png"> is upper triangular, and <img class="formulaInl" alt="$ \mathbf{U}^{H} $" src="form_162.png"> is the Hermitian transposition of the <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> matrix.<p>
1173Uses the LAPACK routine ZGEES.
1174<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1175
1176</div>
1177</div><p>
1178<a class="anchor" name="g5a511c9baeb36e803a006b3172848800"></a><!-- doxytag: member="itpp::schur" ref="g5a511c9baeb36e803a006b3172848800" args="(const mat &amp;A)" -->
1179<div class="memitem">
1180<div class="memproto">
1181      <table class="memname">
1182        <tr>
1183          <td class="memname"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> itpp::schur           </td>
1184          <td>(</td>
1185          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1186          <td class="paramname"> <em>A</em>          </td>
1187          <td>&nbsp;)&nbsp;</td>
1188          <td></td>
1189        </tr>
1190      </table>
1191</div>
1192<div class="memdoc">
1193
1194<p>
1195Schur decomposition of a real matrix.
1196<p>
1197This function computes the Schur form of a square real matrix <img class="formulaInl" alt="$ \mathbf{A} $" src="form_155.png">. The Schur decomposition satisfies the following equation: <p class="formulaDsp">
1198<img class="formulaDsp" alt="\[ \mathbf{U} \mathbf{T} \mathbf{U}^{T} = \mathbf{A} \]" src="form_156.png">
1199<p>
1200 where: <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> is a unitary, <img class="formulaInl" alt="$ \mathbf{T} $" src="form_158.png"> is upper quasi-triangular, and <img class="formulaInl" alt="$ \mathbf{U}^{T} $" src="form_159.png"> is the transposed <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> matrix.<p>
1201The upper quasi-triangular matrix may have <img class="formulaInl" alt="$ 2 \times 2 $" src="form_160.png"> blocks on its diagonal.<p>
1202<dl class="return" compact><dt><b>Returns:</b></dt><dd>Real Schur matrix <img class="formulaInl" alt="$ \mathbf{T} $" src="form_158.png"></dd></dl>
1203uses the LAPACK routine DGEES.
1204<p>References <a class="el" href="schur_8cpp-source.html#l00127">itpp::schur()</a>.</p>
1205
1206</div>
1207</div><p>
1208<a class="anchor" name="ga0c6711c11ece9641878d3ab19f39d33"></a><!-- doxytag: member="itpp::schur" ref="ga0c6711c11ece9641878d3ab19f39d33" args="(const mat &amp;A, mat &amp;U, mat &amp;T)" -->
1209<div class="memitem">
1210<div class="memproto">
1211      <table class="memname">
1212        <tr>
1213          <td class="memname">bool itpp::schur           </td>
1214          <td>(</td>
1215          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1216          <td class="paramname"> <em>A</em>, </td>
1217        </tr>
1218        <tr>
1219          <td class="paramkey"></td>
1220          <td></td>
1221          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1222          <td class="paramname"> <em>U</em>, </td>
1223        </tr>
1224        <tr>
1225          <td class="paramkey"></td>
1226          <td></td>
1227          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1228          <td class="paramname"> <em>T</em></td><td>&nbsp;</td>
1229        </tr>
1230        <tr>
1231          <td></td>
1232          <td>)</td>
1233          <td></td><td></td><td></td>
1234        </tr>
1235      </table>
1236</div>
1237<div class="memdoc">
1238
1239<p>
1240Schur decomposition of a real matrix.
1241<p>
1242This function computes the Schur form of a square real matrix <img class="formulaInl" alt="$ \mathbf{A} $" src="form_155.png">. The Schur decomposition satisfies the following equation: <p class="formulaDsp">
1243<img class="formulaDsp" alt="\[ \mathbf{U} \mathbf{T} \mathbf{U}^{T} = \mathbf{A} \]" src="form_156.png">
1244<p>
1245 where: <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> is a unitary, <img class="formulaInl" alt="$ \mathbf{T} $" src="form_158.png"> is upper quasi-triangular, and <img class="formulaInl" alt="$ \mathbf{U}^{T} $" src="form_159.png"> is the transposed <img class="formulaInl" alt="$ \mathbf{U} $" src="form_157.png"> matrix.<p>
1246The upper quasi-triangular matrix may have <img class="formulaInl" alt="$ 2 \times 2 $" src="form_160.png"> blocks on its diagonal.<p>
1247Uses the LAPACK routine DGEES.
1248<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1249
1250</div>
1251</div><p>
1252<a class="anchor" name="g98a4dc87128a758f82ed05d7b060958b"></a><!-- doxytag: member="itpp::svd" ref="g98a4dc87128a758f82ed05d7b060958b" args="(const cmat &amp;A, cmat &amp;U, vec &amp;s, cmat &amp;V)" -->
1253<div class="memitem">
1254<div class="memproto">
1255      <table class="memname">
1256        <tr>
1257          <td class="memname">bool itpp::svd           </td>
1258          <td>(</td>
1259          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1260          <td class="paramname"> <em>A</em>, </td>
1261        </tr>
1262        <tr>
1263          <td class="paramkey"></td>
1264          <td></td>
1265          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1266          <td class="paramname"> <em>U</em>, </td>
1267        </tr>
1268        <tr>
1269          <td class="paramkey"></td>
1270          <td></td>
1271          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
1272          <td class="paramname"> <em>s</em>, </td>
1273        </tr>
1274        <tr>
1275          <td class="paramkey"></td>
1276          <td></td>
1277          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1278          <td class="paramname"> <em>V</em></td><td>&nbsp;</td>
1279        </tr>
1280        <tr>
1281          <td></td>
1282          <td>)</td>
1283          <td></td><td></td><td></td>
1284        </tr>
1285      </table>
1286</div>
1287<div class="memdoc">
1288
1289<p>
1290Perform Singular Value Decomposition (SVD) of a complex matrix <code>A</code>.
1291<p>
1292This function returns two orthonormal matrices <img class="formulaInl" alt="$U$" src="form_32.png"> and <img class="formulaInl" alt="$V$" src="form_29.png"> and a vector of singular values <img class="formulaInl" alt="$s$" src="form_163.png">. The SVD algorithm computes the decomposition of a complex <img class="formulaInl" alt="$m \times n$" src="form_140.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> so that <p class="formulaDsp">
1293<img class="formulaDsp" alt="\[ \mathrm{diag}(\mathbf{U}^H \mathbf{A} \mathbf{V}) = \mathbf{s} = \sigma_1, \ldots, \sigma_p \]" src="form_168.png">
1294<p>
1295 where the elements of <img class="formulaInl" alt="$\mathbf{s}$" src="form_170.png">, <img class="formulaInl" alt="$\sigma_1 \geq \sigma_2 \geq \ldots \sigma_p \geq 0$" src="form_165.png"> are the singular values of <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png">. Or put differently: <p class="formulaDsp">
1296<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{U} \mathbf{S} \mathbf{V}^H \]" src="form_169.png">
1297<p>
1298 where <img class="formulaInl" alt="$ \mathrm{diag}(\mathbf{S}) = \mathbf{s} $" src="form_167.png"><p>
1299<dl class="note" compact><dt><b>Note:</b></dt><dd>An external LAPACK library is required by this function. </dd></dl>
1300
1301<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1302
1303</div>
1304</div><p>
1305<a class="anchor" name="g908131485c5c53ed2e84e2f0a258db8c"></a><!-- doxytag: member="itpp::svd" ref="g908131485c5c53ed2e84e2f0a258db8c" args="(const mat &amp;A, mat &amp;U, vec &amp;s, mat &amp;V)" -->
1306<div class="memitem">
1307<div class="memproto">
1308      <table class="memname">
1309        <tr>
1310          <td class="memname">bool itpp::svd           </td>
1311          <td>(</td>
1312          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1313          <td class="paramname"> <em>A</em>, </td>
1314        </tr>
1315        <tr>
1316          <td class="paramkey"></td>
1317          <td></td>
1318          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1319          <td class="paramname"> <em>U</em>, </td>
1320        </tr>
1321        <tr>
1322          <td class="paramkey"></td>
1323          <td></td>
1324          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
1325          <td class="paramname"> <em>s</em>, </td>
1326        </tr>
1327        <tr>
1328          <td class="paramkey"></td>
1329          <td></td>
1330          <td class="paramtype"><a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1331          <td class="paramname"> <em>V</em></td><td>&nbsp;</td>
1332        </tr>
1333        <tr>
1334          <td></td>
1335          <td>)</td>
1336          <td></td><td></td><td></td>
1337        </tr>
1338      </table>
1339</div>
1340<div class="memdoc">
1341
1342<p>
1343Perform Singular Value Decomposition (SVD) of a real matrix <code>A</code>.
1344<p>
1345This function returns two orthonormal matrices <img class="formulaInl" alt="$U$" src="form_32.png"> and <img class="formulaInl" alt="$V$" src="form_29.png"> and a vector of singular values <img class="formulaInl" alt="$s$" src="form_163.png">. The SVD algorithm computes the decomposition of a real <img class="formulaInl" alt="$m \times n$" src="form_140.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> so that <p class="formulaDsp">
1346<img class="formulaDsp" alt="\[ \mathrm{diag}(\mathbf{U}^T \mathbf{A} \mathbf{V}) = \mathbf{s} = \sigma_1, \ldots, \sigma_p \]" src="form_164.png">
1347<p>
1348 where the elements of <img class="formulaInl" alt="$\mathbf{s}$" src="form_170.png">, <img class="formulaInl" alt="$\sigma_1 \geq \sigma_2 \geq \ldots \sigma_p \geq 0$" src="form_165.png"> are the singular values of <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png">. Or put differently: <p class="formulaDsp">
1349<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{U} \mathbf{S} \mathbf{V}^T \]" src="form_166.png">
1350<p>
1351 where <img class="formulaInl" alt="$ \mathrm{diag}(\mathbf{S}) = \mathbf{s} $" src="form_167.png"><p>
1352<dl class="note" compact><dt><b>Note:</b></dt><dd>An external LAPACK library is required by this function. </dd></dl>
1353
1354<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1355
1356</div>
1357</div><p>
1358<a class="anchor" name="ga53763a60632139d71957ea7cf0080c9"></a><!-- doxytag: member="itpp::svd" ref="ga53763a60632139d71957ea7cf0080c9" args="(const cmat &amp;A)" -->
1359<div class="memitem">
1360<div class="memproto">
1361      <table class="memname">
1362        <tr>
1363          <td class="memname"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> itpp::svd           </td>
1364          <td>(</td>
1365          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1366          <td class="paramname"> <em>A</em>          </td>
1367          <td>&nbsp;)&nbsp;</td>
1368          <td></td>
1369        </tr>
1370      </table>
1371</div>
1372<div class="memdoc">
1373
1374<p>
1375Return singular values of a complex matrix <code>A</code> using SVD.
1376<p>
1377This function returns singular values from the SVD decomposition of a complex matrix <img class="formulaInl" alt="$A$" src="form_138.png">. The SVD algorithm computes the decomposition of a complex <img class="formulaInl" alt="$m \times n$" src="form_140.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> so that <p class="formulaDsp">
1378<img class="formulaDsp" alt="\[ \mathrm{diag}(\mathbf{U}^H \mathbf{A} \mathbf{V}) = \mathbf{s} = \sigma_1, \ldots, \sigma_p \]" src="form_168.png">
1379<p>
1380 where <img class="formulaInl" alt="$\sigma_1 \geq \sigma_2 \geq \ldots \sigma_p \geq 0$" src="form_165.png"> are the singular values of <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png">. Or put differently: <p class="formulaDsp">
1381<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{U} \mathbf{S} \mathbf{V}^H \]" src="form_169.png">
1382<p>
1383 where <img class="formulaInl" alt="$ \mathrm{diag}(\mathbf{S}) = \mathbf{s} $" src="form_167.png"><p>
1384<dl class="note" compact><dt><b>Note:</b></dt><dd>An external LAPACK library is required by this function. </dd></dl>
1385
1386<p>Referenced by <a class="el" href="misc__stat_8cpp-source.html#l00105">itpp::norm()</a>, <a class="el" href="matfunc_8h-source.html#l00493">itpp::rank()</a>, and <a class="el" href="svd_8cpp-source.html#l00211">itpp::svd()</a>.</p>
1387
1388</div>
1389</div><p>
1390<a class="anchor" name="ge3b83ff6532c19ec15ffe76450b70e2c"></a><!-- doxytag: member="itpp::svd" ref="ge3b83ff6532c19ec15ffe76450b70e2c" args="(const mat &amp;A)" -->
1391<div class="memitem">
1392<div class="memproto">
1393      <table class="memname">
1394        <tr>
1395          <td class="memname"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> itpp::svd           </td>
1396          <td>(</td>
1397          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1398          <td class="paramname"> <em>A</em>          </td>
1399          <td>&nbsp;)&nbsp;</td>
1400          <td></td>
1401        </tr>
1402      </table>
1403</div>
1404<div class="memdoc">
1405
1406<p>
1407Return singular values of a real matrix <code>A</code> using SVD.
1408<p>
1409This function returns singular values from the SVD decomposition of a real matrix <img class="formulaInl" alt="$A$" src="form_138.png">. The SVD algorithm computes the decomposition of a real <img class="formulaInl" alt="$m \times n$" src="form_140.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> so that <p class="formulaDsp">
1410<img class="formulaDsp" alt="\[ \mathrm{diag}(\mathbf{U}^T \mathbf{A} \mathbf{V}) = \mathbf{s} = \sigma_1, \ldots, \sigma_p \]" src="form_164.png">
1411<p>
1412 where <img class="formulaInl" alt="$\sigma_1 \geq \sigma_2 \geq \ldots \sigma_p \geq 0$" src="form_165.png"> are the singular values of <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png">. Or put differently: <p class="formulaDsp">
1413<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{U} \mathbf{S} \mathbf{V}^T \]" src="form_166.png">
1414<p>
1415 where <img class="formulaInl" alt="$ \mathrm{diag}(\mathbf{S}) = \mathbf{s} $" src="form_167.png"><p>
1416<dl class="note" compact><dt><b>Note:</b></dt><dd>An external LAPACK library is required by this function. </dd></dl>
1417
1418<p>References <a class="el" href="svd_8cpp-source.html#l00218">itpp::svd()</a>.</p>
1419
1420</div>
1421</div><p>
1422<a class="anchor" name="g92dd138100c619c71ba24b3dae0dec72"></a><!-- doxytag: member="itpp::svd" ref="g92dd138100c619c71ba24b3dae0dec72" args="(const cmat &amp;A, vec &amp;s)" -->
1423<div class="memitem">
1424<div class="memproto">
1425      <table class="memname">
1426        <tr>
1427          <td class="memname">bool itpp::svd           </td>
1428          <td>(</td>
1429          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6fbac4b7184807da188e5b85d42f038b">cmat</a> &amp;&nbsp;</td>
1430          <td class="paramname"> <em>A</em>, </td>
1431        </tr>
1432        <tr>
1433          <td class="paramkey"></td>
1434          <td></td>
1435          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
1436          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
1437        </tr>
1438        <tr>
1439          <td></td>
1440          <td>)</td>
1441          <td></td><td></td><td></td>
1442        </tr>
1443      </table>
1444</div>
1445<div class="memdoc">
1446
1447<p>
1448Get singular values <code>s</code> of a complex matrix <code>A</code> using SVD.
1449<p>
1450This function calculates singular values <img class="formulaInl" alt="$s$" src="form_163.png"> from the SVD decomposition of a complex matrix <img class="formulaInl" alt="$A$" src="form_138.png">. The SVD algorithm computes the decomposition of a complex <img class="formulaInl" alt="$m \times n$" src="form_140.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> so that <p class="formulaDsp">
1451<img class="formulaDsp" alt="\[ \mathrm{diag}(\mathbf{U}^H \mathbf{A} \mathbf{V}) = \mathbf{s} = \sigma_1, \ldots, \sigma_p \]" src="form_168.png">
1452<p>
1453 where <img class="formulaInl" alt="$\sigma_1 \geq \sigma_2 \geq \ldots \sigma_p \geq 0$" src="form_165.png"> are the singular values of <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png">. Or put differently: <p class="formulaDsp">
1454<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{U} \mathbf{S} \mathbf{V}^H \]" src="form_169.png">
1455<p>
1456 where <img class="formulaInl" alt="$ \mathrm{diag}(\mathbf{S}) = \mathbf{s} $" src="form_167.png"><p>
1457<dl class="note" compact><dt><b>Note:</b></dt><dd>An external LAPACK library is required by this function. </dd></dl>
1458
1459<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1460
1461</div>
1462</div><p>
1463<a class="anchor" name="g9fcc7191c3cee4db65e51d93123c7fba"></a><!-- doxytag: member="itpp::svd" ref="g9fcc7191c3cee4db65e51d93123c7fba" args="(const mat &amp;A, vec &amp;s)" -->
1464<div class="memitem">
1465<div class="memproto">
1466      <table class="memname">
1467        <tr>
1468          <td class="memname">bool itpp::svd           </td>
1469          <td>(</td>
1470          <td class="paramtype">const <a class="el" href="classitpp_1_1Mat.html#6bba394f181c76fda12759568986c613">mat</a> &amp;&nbsp;</td>
1471          <td class="paramname"> <em>A</em>, </td>
1472        </tr>
1473        <tr>
1474          <td class="paramkey"></td>
1475          <td></td>
1476          <td class="paramtype"><a class="el" href="classitpp_1_1Vec.html#02e1bb55f60f3c2eb7a020eb1c2cfcf4">vec</a> &amp;&nbsp;</td>
1477          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
1478        </tr>
1479        <tr>
1480          <td></td>
1481          <td>)</td>
1482          <td></td><td></td><td></td>
1483        </tr>
1484      </table>
1485</div>
1486<div class="memdoc">
1487
1488<p>
1489Get singular values <code>s</code> of a real matrix <code>A</code> using SVD.
1490<p>
1491This function calculates singular values <img class="formulaInl" alt="$s$" src="form_163.png"> from the SVD decomposition of a real matrix <img class="formulaInl" alt="$A$" src="form_138.png">. The SVD algorithm computes the decomposition of a real <img class="formulaInl" alt="$m \times n$" src="form_140.png"> matrix <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png"> so that <p class="formulaDsp">
1492<img class="formulaDsp" alt="\[ \mathrm{diag}(\mathbf{U}^T \mathbf{A} \mathbf{V}) = \mathbf{s} = \sigma_1, \ldots, \sigma_p \]" src="form_164.png">
1493<p>
1494 where <img class="formulaInl" alt="$\sigma_1 \geq \sigma_2 \geq \ldots \sigma_p \geq 0$" src="form_165.png"> are the singular values of <img class="formulaInl" alt="$\mathbf{A}$" src="form_134.png">. Or put differently: <p class="formulaDsp">
1495<img class="formulaDsp" alt="\[ \mathbf{A} = \mathbf{U} \mathbf{S} \mathbf{V}^T \]" src="form_166.png">
1496<p>
1497 where <img class="formulaInl" alt="$ \mathrm{diag}(\mathbf{S}) = \mathbf{s} $" src="form_167.png"><p>
1498<dl class="note" compact><dt><b>Note:</b></dt><dd>An external LAPACK library is required by this function. </dd></dl>
1499
1500<p>References <a class="el" href="itassert_8h-source.html#l00126">it_error</a>.</p>
1501
1502</div>
1503</div><p>
1504</div>
1505<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 2 10:02:14 2009 for mixpp by&nbsp;
1506<a href="http://www.doxygen.org/index.html">
1507<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
1508</body>
1509</html>
Note: See TracBrowser for help on using the browser.