root/library/doc/html/classbdm_1_1ldmat.html @ 651

Revision 651, 37.1 kB (checked in by mido, 15 years ago)

\doc directory cleaned a bit

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: bdm::ldmat Class Reference</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.9 -->
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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
55      <li><a href="files.html"><span>Files</span></a></li>
56    </ul>
57  </div>
58  <div class="tabs">
59    <ul>
60      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
61      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
62      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
63      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
64    </ul>
65  </div>
66  <div class="navpath"><b>bdm</b>::<a class="el" href="classbdm_1_1ldmat.html">ldmat</a>
67  </div>
68</div>
69<div class="contents">
70<h1>bdm::ldmat Class Reference</h1><!-- doxytag: class="bdm::ldmat" --><!-- doxytag: inherits="bdm::sqmat" -->Matrix stored in LD form, (commonly known as UD). 
71<a href="#_details">More...</a>
72<p>
73<code>#include &lt;<a class="el" href="square__mat_8h_source.html">square_mat.h</a>&gt;</code>
74<p>
75
76<p>
77<a href="classbdm_1_1ldmat-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
78<tr><td></td></tr>
79<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
80<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ab7cedf5afc8eee19a8332cca00a0d1d"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="ab7cedf5afc8eee19a8332cca00a0d1d" args="(const mat &amp;L, const vec &amp;D)" -->
81&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#ab7cedf5afc8eee19a8332cca00a0d1d">ldmat</a> (const mat &amp;<a class="el" href="classbdm_1_1ldmat.html#2488cf5a8f056b2566e2565d1ce9ec57">L</a>, const vec &amp;<a class="el" href="classbdm_1_1ldmat.html#03b89dcb9a5241a237a07102f932638f">D</a>)</td></tr>
82
83<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct by copy of L and D. <br></td></tr>
84<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="25f1f3b8486ea625f363b850ecfb7a5c"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="25f1f3b8486ea625f363b850ecfb7a5c" args="(const mat &amp;V)" -->
85&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#25f1f3b8486ea625f363b850ecfb7a5c">ldmat</a> (const mat &amp;V)</td></tr>
86
87<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct by decomposition of full matrix V. <br></td></tr>
88<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="984df3535e93e777dc5f9897aa682176"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="984df3535e93e777dc5f9897aa682176" args="(const ldmat &amp;V0, const ivec &amp;perm)" -->
89&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#984df3535e93e777dc5f9897aa682176">ldmat</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;V0, const ivec &amp;perm)</td></tr>
90
91<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct by restructuring of V0 accordint to permutation vector perm. <br></td></tr>
92<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f0a6f9df500f828deed28bdd64751be4"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="f0a6f9df500f828deed28bdd64751be4" args="(vec D0)" -->
93&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#f0a6f9df500f828deed28bdd64751be4">ldmat</a> (vec D0)</td></tr>
94
95<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct diagonal matrix with diagonal D0. <br></td></tr>
96<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="30235afa1e80e709d7d7da380201a990"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="30235afa1e80e709d7d7da380201a990" args="()" -->
97&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#30235afa1e80e709d7d7da380201a990">ldmat</a> ()</td></tr>
98
99<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor. <br></td></tr>
100<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0e26866f41642669bbdff4a496f1f26f"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="0e26866f41642669bbdff4a496f1f26f" args="(const int dim0)" -->
101&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#0e26866f41642669bbdff4a496f1f26f">ldmat</a> (const int dim0)</td></tr>
102
103<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default initialization with proper size. <br></td></tr>
104<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="deb3ea5e22f1c12fe06a56841d1c5ccc"></a><!-- doxytag: member="bdm::ldmat::~ldmat" ref="deb3ea5e22f1c12fe06a56841d1c5ccc" args="()" -->
105virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#deb3ea5e22f1c12fe06a56841d1c5ccc">~ldmat</a> ()</td></tr>
106
107<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor for future use;. <br></td></tr>
108<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#c9dc3f1f86d36ec7eedb8746eb2c3b5c">opupdt</a> (const vec &amp;v, double w)</td></tr>
109
110<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="387f6acb29086e93828331a30a638ae4"></a><!-- doxytag: member="bdm::ldmat::to_mat" ref="387f6acb29086e93828331a30a638ae4" args="() const " -->
111mat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#387f6acb29086e93828331a30a638ae4">to_mat</a> () const </td></tr>
112
113<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Conversion to full matrix. <br></td></tr>
114<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#7a813158c36347deccf50a08feee24a8">mult_sym</a> (const mat &amp;C)</td></tr>
115
116<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inplace symmetric multiplication by a SQUARE matrix <img class="formulaInl" alt="$C$" src="form_60.png">, i.e. <img class="formulaInl" alt="$V = C*V*C'$" src="form_61.png"><a href="#7a813158c36347deccf50a08feee24a8"></a><br></td></tr>
117<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#591ae54f5fce50e7160025eeab44888f">mult_sym_t</a> (const mat &amp;C)</td></tr>
118
119<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inplace symmetric multiplication by a SQUARE transpose of matrix <img class="formulaInl" alt="$C$" src="form_60.png">, i.e. <img class="formulaInl" alt="$V = C'*V*C$" src="form_62.png"><a href="#591ae54f5fce50e7160025eeab44888f"></a><br></td></tr>
120<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9ae1fe991497135973a18097a58c6f25"></a><!-- doxytag: member="bdm::ldmat::add" ref="9ae1fe991497135973a18097a58c6f25" args="(const ldmat &amp;ld2, double w=1.0)" -->
121void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#9ae1fe991497135973a18097a58c6f25">add</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;ld2, double w=1.0)</td></tr>
122
123<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add another matrix in LD form with weight w. <br></td></tr>
124<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0913623ee335d78f96bb474f62616375"></a><!-- doxytag: member="bdm::ldmat::logdet" ref="0913623ee335d78f96bb474f62616375" args="() const " -->
125double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#0913623ee335d78f96bb474f62616375">logdet</a> () const </td></tr>
126
127<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logarithm of a determinant. <br></td></tr>
128<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5725cb504d3dd68713ac232c18526c87"></a><!-- doxytag: member="bdm::ldmat::qform" ref="5725cb504d3dd68713ac232c18526c87" args="(const vec &amp;v) const " -->
129double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#5725cb504d3dd68713ac232c18526c87">qform</a> (const vec &amp;v) const </td></tr>
130
131<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates quadratic form <img class="formulaInl" alt="$x= v'*V*v$" src="form_64.png">;. <br></td></tr>
132<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f743de194aadb8515cf18226fadf365f"></a><!-- doxytag: member="bdm::ldmat::invqform" ref="f743de194aadb8515cf18226fadf365f" args="(const vec &amp;v) const " -->
133double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#f743de194aadb8515cf18226fadf365f">invqform</a> (const vec &amp;v) const </td></tr>
134
135<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates quadratic form <img class="formulaInl" alt="$x= v'*inv(V)*v$" src="form_65.png">;. <br></td></tr>
136<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="913a4746f16e4c5e130f63bd3f31829a"></a><!-- doxytag: member="bdm::ldmat::clear" ref="913a4746f16e4c5e130f63bd3f31829a" args="()" -->
137void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#913a4746f16e4c5e130f63bd3f31829a">clear</a> ()</td></tr>
138
139<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clearing matrix so that it corresponds to zeros. <br></td></tr>
140<tr><td class="memItemLeft" nowrap align="right" valign="top">vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#2c670269c0ee397eb49ba7b0712e16a5">sqrt_mult</a> (const vec &amp;v) const </td></tr>
141
142<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiplies square <a class="el" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> of <img class="formulaInl" alt="$V$" src="form_63.png"> by vector <img class="formulaInl" alt="$x$" src="form_1.png"><a href="#2c670269c0ee397eb49ba7b0712e16a5"></a><br></td></tr>
143<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#e5940e396d822b9e93a43ac0924d3823">inv</a> (<a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;Inv) const </td></tr>
144
145<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Matrix inversion preserving the chosen form.  <a href="#e5940e396d822b9e93a43ac0924d3823"></a><br></td></tr>
146<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#138e64000ce94d8bc35105094d213e67">mult_sym</a> (const mat &amp;C, <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;U) const </td></tr>
147
148<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_66.png"> by a general matrix <img class="formulaInl" alt="$C$" src="form_60.png">, result of which is stored in the current class.  <a href="#138e64000ce94d8bc35105094d213e67"></a><br></td></tr>
149<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#9f812a24ad5e29348de2cb23c6c6dd96">mult_sym_t</a> (const mat &amp;C, <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;U) const </td></tr>
150
151<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_66.png"> by a transpose of a general matrix <img class="formulaInl" alt="$C$" src="form_60.png">, result of which is stored in the current class.  <a href="#9f812a24ad5e29348de2cb23c6c6dd96"></a><br></td></tr>
152<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#f95718893e86bff149080116736ab566">ldform</a> (const mat &amp;A, const vec &amp;D0)</td></tr>
153
154<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms general <img class="formulaInl" alt="$A'D0 A$" src="form_67.png"> into pure <img class="formulaInl" alt="$L'DL$" src="form_68.png"><a href="#f95718893e86bff149080116736ab566"></a><br></td></tr>
155<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="72e61ad4e0653f4fc38e7d60d3cf1d4e"></a><!-- doxytag: member="bdm::ldmat::setD" ref="72e61ad4e0653f4fc38e7d60d3cf1d4e" args="(const vec &amp;nD)" -->
156void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#72e61ad4e0653f4fc38e7d60d3cf1d4e">setD</a> (const vec &amp;nD)</td></tr>
157
158<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br></td></tr>
159<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c4aa9180695e22fec17c714c5494a8b1"></a><!-- doxytag: member="bdm::ldmat::setD" ref="c4aa9180695e22fec17c714c5494a8b1" args="(const vec &amp;nD, int i)" -->
160void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#c4aa9180695e22fec17c714c5494a8b1">setD</a> (const vec &amp;nD, int i)</td></tr>
161
162<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br></td></tr>
163<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f8d6bb6f315c25b8f8af72e4e62230ee"></a><!-- doxytag: member="bdm::ldmat::setL" ref="f8d6bb6f315c25b8f8af72e4e62230ee" args="(const vec &amp;nL)" -->
164void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#f8d6bb6f315c25b8f8af72e4e62230ee">setL</a> (const vec &amp;nL)</td></tr>
165
166<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br></td></tr>
167<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0cc4632b40e8b61945bd463913d08b69"></a><!-- doxytag: member="bdm::ldmat::_D" ref="0cc4632b40e8b61945bd463913d08b69" args="() const " -->
168const vec &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#0cc4632b40e8b61945bd463913d08b69">_D</a> () const </td></tr>
169
170<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br></td></tr>
171<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="75c80134f0602ec1face282ec0f05b96"></a><!-- doxytag: member="bdm::ldmat::_L" ref="75c80134f0602ec1face282ec0f05b96" args="() const " -->
172const mat &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#75c80134f0602ec1face282ec0f05b96">_L</a> () const </td></tr>
173
174<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br></td></tr>
175<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#6e1d28681e7e7e6b570a14a9a370821a">operator+=</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;ldA)</td></tr>
176
177<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">add another <a class="el" href="classbdm_1_1ldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> matrix  <a href="#6e1d28681e7e7e6b570a14a9a370821a"></a><br></td></tr>
178<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#db2f7a02b4686ea1bf7013284b40d954">operator-=</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;ldA)</td></tr>
179
180<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">subtract another <a class="el" href="classbdm_1_1ldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> matrix  <a href="#db2f7a02b4686ea1bf7013284b40d954"></a><br></td></tr>
181<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d387ee8c6e5514244a00e4e8ff1e533c"></a><!-- doxytag: member="bdm::ldmat::operator*=" ref="d387ee8c6e5514244a00e4e8ff1e533c" args="(double x)" -->
182<a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#d387ee8c6e5514244a00e4e8ff1e533c">operator*=</a> (double x)</td></tr>
183
184<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">multiply by a scalar <br></td></tr>
185<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="445ef762cf5d2d6cfdf53c72942363cf"></a><!-- doxytag: member="bdm::ldmat::cols" ref="445ef762cf5d2d6cfdf53c72942363cf" args="() const " -->
186int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1sqmat.html#445ef762cf5d2d6cfdf53c72942363cf">cols</a> () const </td></tr>
187
188<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reimplementing common functions of mat: <a class="el" href="classbdm_1_1sqmat.html#445ef762cf5d2d6cfdf53c72942363cf" title="Reimplementing common functions of mat: cols().">cols()</a>. <br></td></tr>
189<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="73e639221343dcce76c3305524d67590"></a><!-- doxytag: member="bdm::ldmat::rows" ref="73e639221343dcce76c3305524d67590" args="() const " -->
190int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1sqmat.html#73e639221343dcce76c3305524d67590">rows</a> () const </td></tr>
191
192<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reimplementing common functions of mat: <a class="el" href="classbdm_1_1sqmat.html#73e639221343dcce76c3305524d67590" title="Reimplementing common functions of mat: rows().">rows()</a>. <br></td></tr>
193<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
194<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="03b89dcb9a5241a237a07102f932638f"></a><!-- doxytag: member="bdm::ldmat::D" ref="03b89dcb9a5241a237a07102f932638f" args="" -->
195vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#03b89dcb9a5241a237a07102f932638f">D</a></td></tr>
196
197<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Positive vector <img class="formulaInl" alt="$D$" src="form_58.png">. <br></td></tr>
198<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2488cf5a8f056b2566e2565d1ce9ec57"></a><!-- doxytag: member="bdm::ldmat::L" ref="2488cf5a8f056b2566e2565d1ce9ec57" args="" -->
199mat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#2488cf5a8f056b2566e2565d1ce9ec57">L</a></td></tr>
200
201<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lower-triangular matrix <img class="formulaInl" alt="$L$" src="form_57.png">. <br></td></tr>
202<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="05111b5744a494880e62cb0f3d42293f"></a><!-- doxytag: member="bdm::ldmat::dim" ref="05111b5744a494880e62cb0f3d42293f" args="" -->
203int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1sqmat.html#05111b5744a494880e62cb0f3d42293f">dim</a></td></tr>
204
205<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">dimension of the square matrix <br></td></tr>
206<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
207<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eaaa0baa6026b84cfcbced41c84599d1"></a><!-- doxytag: member="bdm::ldmat::operator&lt;&lt;" ref="eaaa0baa6026b84cfcbced41c84599d1" args="(std::ostream &amp;os, const ldmat &amp;sq)" -->
208std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#eaaa0baa6026b84cfcbced41c84599d1">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;sq)</td></tr>
209
210<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">print both <code>L</code> and <code>D</code> <br></td></tr>
211</table>
212<hr><a name="_details"></a><h2>Detailed Description</h2>
213Matrix stored in LD form, (commonly known as UD).
214<p>
215Matrix is decomposed as follows: <p class="formulaDsp">
216<img class="formulaDsp" alt="\[M = L'DL\]" src="form_56.png">
217<p>
218 where only <img class="formulaInl" alt="$L$" src="form_57.png"> and <img class="formulaInl" alt="$D$" src="form_58.png"> matrices are stored. All inplace operations modifies only these and the need to compose and decompose the matrix is avoided. <hr><h2>Member Function Documentation</h2>
219<a class="anchor" name="e5940e396d822b9e93a43ac0924d3823"></a><!-- doxytag: member="bdm::ldmat::inv" ref="e5940e396d822b9e93a43ac0924d3823" args="(ldmat &amp;Inv) const " -->
220<div class="memitem">
221<div class="memproto">
222      <table class="memname">
223        <tr>
224          <td class="memname">void bdm::ldmat::inv           </td>
225          <td>(</td>
226          <td class="paramtype"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
227          <td class="paramname"> <em>Inv</em>          </td>
228          <td>&nbsp;)&nbsp;</td>
229          <td> const</td>
230        </tr>
231      </table>
232</div>
233<div class="memdoc">
234
235<p>
236Matrix inversion preserving the chosen form.
237<p>
238<dl compact><dt><b>Parameters:</b></dt><dd>
239  <table border="0" cellspacing="2" cellpadding="0">
240    <tr><td valign="top"></td><td valign="top"><em>Inv</em>&nbsp;</td><td>a space where the inverse is stored. </td></tr>
241  </table>
242</dl>
243
244<p>References <a class="el" href="square__mat_8cpp_source.html#l00134">clear()</a>, <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00329">L</a>, and <a class="el" href="square__mat_8cpp_source.html#l00228">ldform()</a>.</p>
245
246<p>Referenced by <a class="el" href="exp__family_8cpp_source.html#l00143">bdm::egiw::variance()</a>.</p>
247
248</div>
249</div><p>
250<a class="anchor" name="f95718893e86bff149080116736ab566"></a><!-- doxytag: member="bdm::ldmat::ldform" ref="f95718893e86bff149080116736ab566" args="(const mat &amp;A, const vec &amp;D0)" -->
251<div class="memitem">
252<div class="memproto">
253      <table class="memname">
254        <tr>
255          <td class="memname">void bdm::ldmat::ldform           </td>
256          <td>(</td>
257          <td class="paramtype">const mat &amp;&nbsp;</td>
258          <td class="paramname"> <em>A</em>, </td>
259        </tr>
260        <tr>
261          <td class="paramkey"></td>
262          <td></td>
263          <td class="paramtype">const vec &amp;&nbsp;</td>
264          <td class="paramname"> <em>D0</em></td><td>&nbsp;</td>
265        </tr>
266        <tr>
267          <td></td>
268          <td>)</td>
269          <td></td><td></td><td></td>
270        </tr>
271      </table>
272</div>
273<div class="memdoc">
274
275<p>
276Transforms general <img class="formulaInl" alt="$A'D0 A$" src="form_67.png"> into pure <img class="formulaInl" alt="$L'DL$" src="form_68.png">.
277<p>
278The new decomposition fullfills: <img class="formulaInl" alt="$A'*diag(D)*A = self.L'*diag(self.D)*self.L$" src="form_69.png"> <dl compact><dt><b>Parameters:</b></dt><dd>
279  <table border="0" cellspacing="2" cellpadding="0">
280    <tr><td valign="top"></td><td valign="top"><em>A</em>&nbsp;</td><td>general matrix </td></tr>
281    <tr><td valign="top"></td><td valign="top"><em>D0</em>&nbsp;</td><td>general vector </td></tr>
282  </table>
283</dl>
284
285<p>References <a class="el" href="bdmerror_8h_source.html#l00047">bdm_assert_debug</a>, <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00109">bdm::sqmat::dim</a>, and <a class="el" href="square__mat_8h_source.html#l00329">L</a>.</p>
286
287<p>Referenced by <a class="el" href="square__mat_8cpp_source.html#l00142">inv()</a>, <a class="el" href="square__mat_8cpp_source.html#l00065">ldmat()</a>, <a class="el" href="square__mat_8cpp_source.html#l00149">mult_sym()</a>, and <a class="el" href="square__mat_8cpp_source.html#l00154">mult_sym_t()</a>.</p>
288
289</div>
290</div><p>
291<a class="anchor" name="138e64000ce94d8bc35105094d213e67"></a><!-- doxytag: member="bdm::ldmat::mult_sym" ref="138e64000ce94d8bc35105094d213e67" args="(const mat &amp;C, ldmat &amp;U) const " -->
292<div class="memitem">
293<div class="memproto">
294      <table class="memname">
295        <tr>
296          <td class="memname">void bdm::ldmat::mult_sym           </td>
297          <td>(</td>
298          <td class="paramtype">const mat &amp;&nbsp;</td>
299          <td class="paramname"> <em>C</em>, </td>
300        </tr>
301        <tr>
302          <td class="paramkey"></td>
303          <td></td>
304          <td class="paramtype"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
305          <td class="paramname"> <em>U</em></td><td>&nbsp;</td>
306        </tr>
307        <tr>
308          <td></td>
309          <td>)</td>
310          <td></td><td></td><td> const</td>
311        </tr>
312      </table>
313</div>
314<div class="memdoc">
315
316<p>
317Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_66.png"> by a general matrix <img class="formulaInl" alt="$C$" src="form_60.png">, result of which is stored in the current class.
318<p>
319<dl compact><dt><b>Parameters:</b></dt><dd>
320  <table border="0" cellspacing="2" cellpadding="0">
321    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>matrix to multiply with </td></tr>
322    <tr><td valign="top"></td><td valign="top"><em>U</em>&nbsp;</td><td>a space where the inverse is stored. </td></tr>
323  </table>
324</dl>
325
326<p>References <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00329">L</a>, and <a class="el" href="square__mat_8cpp_source.html#l00228">ldform()</a>.</p>
327
328</div>
329</div><p>
330<a class="anchor" name="7a813158c36347deccf50a08feee24a8"></a><!-- doxytag: member="bdm::ldmat::mult_sym" ref="7a813158c36347deccf50a08feee24a8" args="(const mat &amp;C)" -->
331<div class="memitem">
332<div class="memproto">
333      <table class="memname">
334        <tr>
335          <td class="memname">void bdm::ldmat::mult_sym           </td>
336          <td>(</td>
337          <td class="paramtype">const mat &amp;&nbsp;</td>
338          <td class="paramname"> <em>C</em>          </td>
339          <td>&nbsp;)&nbsp;</td>
340          <td><code> [virtual]</code></td>
341        </tr>
342      </table>
343</div>
344<div class="memdoc">
345
346<p>
347Inplace symmetric multiplication by a SQUARE matrix <img class="formulaInl" alt="$C$" src="form_60.png">, i.e. <img class="formulaInl" alt="$V = C*V*C'$" src="form_61.png">.
348<p>
349<dl compact><dt><b>Parameters:</b></dt><dd>
350  <table border="0" cellspacing="2" cellpadding="0">
351    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>multiplying matrix, </td></tr>
352  </table>
353</dl>
354
355<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#f8b513b6ac0e54d6fe47afda8b254b29">bdm::sqmat</a>.</p>
356
357<p>References <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00329">L</a>, and <a class="el" href="square__mat_8cpp_source.html#l00228">ldform()</a>.</p>
358
359</div>
360</div><p>
361<a class="anchor" name="9f812a24ad5e29348de2cb23c6c6dd96"></a><!-- doxytag: member="bdm::ldmat::mult_sym_t" ref="9f812a24ad5e29348de2cb23c6c6dd96" args="(const mat &amp;C, ldmat &amp;U) const " -->
362<div class="memitem">
363<div class="memproto">
364      <table class="memname">
365        <tr>
366          <td class="memname">void bdm::ldmat::mult_sym_t           </td>
367          <td>(</td>
368          <td class="paramtype">const mat &amp;&nbsp;</td>
369          <td class="paramname"> <em>C</em>, </td>
370        </tr>
371        <tr>
372          <td class="paramkey"></td>
373          <td></td>
374          <td class="paramtype"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
375          <td class="paramname"> <em>U</em></td><td>&nbsp;</td>
376        </tr>
377        <tr>
378          <td></td>
379          <td>)</td>
380          <td></td><td></td><td> const</td>
381        </tr>
382      </table>
383</div>
384<div class="memdoc">
385
386<p>
387Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_66.png"> by a transpose of a general matrix <img class="formulaInl" alt="$C$" src="form_60.png">, result of which is stored in the current class.
388<p>
389<dl compact><dt><b>Parameters:</b></dt><dd>
390  <table border="0" cellspacing="2" cellpadding="0">
391    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>matrix to multiply with </td></tr>
392    <tr><td valign="top"></td><td valign="top"><em>U</em>&nbsp;</td><td>a space where the inverse is stored. </td></tr>
393  </table>
394</dl>
395
396<p>References <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00329">L</a>, and <a class="el" href="square__mat_8cpp_source.html#l00228">ldform()</a>.</p>
397
398</div>
399</div><p>
400<a class="anchor" name="591ae54f5fce50e7160025eeab44888f"></a><!-- doxytag: member="bdm::ldmat::mult_sym_t" ref="591ae54f5fce50e7160025eeab44888f" args="(const mat &amp;C)" -->
401<div class="memitem">
402<div class="memproto">
403      <table class="memname">
404        <tr>
405          <td class="memname">void bdm::ldmat::mult_sym_t           </td>
406          <td>(</td>
407          <td class="paramtype">const mat &amp;&nbsp;</td>
408          <td class="paramname"> <em>C</em>          </td>
409          <td>&nbsp;)&nbsp;</td>
410          <td><code> [virtual]</code></td>
411        </tr>
412      </table>
413</div>
414<div class="memdoc">
415
416<p>
417Inplace symmetric multiplication by a SQUARE transpose of matrix <img class="formulaInl" alt="$C$" src="form_60.png">, i.e. <img class="formulaInl" alt="$V = C'*V*C$" src="form_62.png">.
418<p>
419<dl compact><dt><b>Parameters:</b></dt><dd>
420  <table border="0" cellspacing="2" cellpadding="0">
421    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>multiplying matrix, </td></tr>
422  </table>
423</dl>
424
425<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#ba45b96855264178ab67648bbc7cead5">bdm::sqmat</a>.</p>
426
427<p>References <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00329">L</a>, and <a class="el" href="square__mat_8cpp_source.html#l00228">ldform()</a>.</p>
428
429</div>
430</div><p>
431<a class="anchor" name="6e1d28681e7e7e6b570a14a9a370821a"></a><!-- doxytag: member="bdm::ldmat::operator+=" ref="6e1d28681e7e7e6b570a14a9a370821a" args="(const ldmat &amp;ldA)" -->
432<div class="memitem">
433<div class="memproto">
434      <table class="memname">
435        <tr>
436          <td class="memname"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp; bdm::ldmat::operator+=           </td>
437          <td>(</td>
438          <td class="paramtype">const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
439          <td class="paramname"> <em>ldA</em>          </td>
440          <td>&nbsp;)&nbsp;</td>
441          <td><code> [inline]</code></td>
442        </tr>
443      </table>
444</div>
445<div class="memdoc">
446
447<p>
448add another <a class="el" href="classbdm_1_1ldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> matrix
449<p>
450Operations: mapping of add operation to operators
451<p>References <a class="el" href="square__mat_8cpp_source.html#l00122">add()</a>.</p>
452
453</div>
454</div><p>
455<a class="anchor" name="db2f7a02b4686ea1bf7013284b40d954"></a><!-- doxytag: member="bdm::ldmat::operator&#45;=" ref="db2f7a02b4686ea1bf7013284b40d954" args="(const ldmat &amp;ldA)" -->
456<div class="memitem">
457<div class="memproto">
458      <table class="memname">
459        <tr>
460          <td class="memname"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp; bdm::ldmat::operator-=           </td>
461          <td>(</td>
462          <td class="paramtype">const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
463          <td class="paramname"> <em>ldA</em>          </td>
464          <td>&nbsp;)&nbsp;</td>
465          <td><code> [inline]</code></td>
466        </tr>
467      </table>
468</div>
469<div class="memdoc">
470
471<p>
472subtract another <a class="el" href="classbdm_1_1ldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> matrix
473<p>
474mapping of negative add operation to operators
475<p>References <a class="el" href="square__mat_8cpp_source.html#l00122">add()</a>.</p>
476
477</div>
478</div><p>
479<a class="anchor" name="c9dc3f1f86d36ec7eedb8746eb2c3b5c"></a><!-- doxytag: member="bdm::ldmat::opupdt" ref="c9dc3f1f86d36ec7eedb8746eb2c3b5c" args="(const vec &amp;v, double w)" -->
480<div class="memitem">
481<div class="memproto">
482      <table class="memname">
483        <tr>
484          <td class="memname">void bdm::ldmat::opupdt           </td>
485          <td>(</td>
486          <td class="paramtype">const vec &amp;&nbsp;</td>
487          <td class="paramname"> <em>v</em>, </td>
488        </tr>
489        <tr>
490          <td class="paramkey"></td>
491          <td></td>
492          <td class="paramtype">double&nbsp;</td>
493          <td class="paramname"> <em>w</em></td><td>&nbsp;</td>
494        </tr>
495        <tr>
496          <td></td>
497          <td>)</td>
498          <td></td><td></td><td><code> [virtual]</code></td>
499        </tr>
500      </table>
501</div>
502<div class="memdoc">
503
504<p>
505Perfroms a rank-1 update by outer product of vectors: <img class="formulaInl" alt="$V = V + w v v'$" src="form_59.png">. <dl compact><dt><b>Parameters:</b></dt><dd>
506  <table border="0" cellspacing="2" cellpadding="0">
507    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>Vector forming the outer product to be added </td></tr>
508    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>weight of updating; can be negative</td></tr>
509  </table>
510</dl>
511BLAS-2b operation.
512<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#12298b1cc5a6f35876291e876b0e2993">bdm::sqmat</a>.</p>
513
514<p>References <a class="el" href="bdmerror_8h_source.html#l00047">bdm_assert_debug</a>, <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00109">bdm::sqmat::dim</a>, and <a class="el" href="square__mat_8h_source.html#l00329">L</a>.</p>
515
516<p>Referenced by <a class="el" href="square__mat_8cpp_source.html#l00122">add()</a>, <a class="el" href="arx_8cpp_source.html#l00004">bdm::ARX::bayes()</a>, and <a class="el" href="arx_8cpp_source.html#l00037">bdm::ARX::logpred()</a>.</p>
517
518</div>
519</div><p>
520<a class="anchor" name="2c670269c0ee397eb49ba7b0712e16a5"></a><!-- doxytag: member="bdm::ldmat::sqrt_mult" ref="2c670269c0ee397eb49ba7b0712e16a5" args="(const vec &amp;v) const " -->
521<div class="memitem">
522<div class="memproto">
523      <table class="memname">
524        <tr>
525          <td class="memname">vec bdm::ldmat::sqrt_mult           </td>
526          <td>(</td>
527          <td class="paramtype">const vec &amp;&nbsp;</td>
528          <td class="paramname"> <em>v</em>          </td>
529          <td>&nbsp;)&nbsp;</td>
530          <td> const<code> [virtual]</code></td>
531        </tr>
532      </table>
533</div>
534<div class="memdoc">
535
536<p>
537Multiplies square <a class="el" href="classbdm_1_1root.html" title="Root class of BDM objects.">root</a> of <img class="formulaInl" alt="$V$" src="form_63.png"> by vector <img class="formulaInl" alt="$x$" src="form_1.png">.
538<p>
539Used e.g. in generating normal samples.
540<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#bcacd85ec5d128ebbb663ae4433c75b3">bdm::sqmat</a>.</p>
541
542<p>References <a class="el" href="square__mat_8h_source.html#l00327">D</a>, <a class="el" href="square__mat_8h_source.html#l00109">bdm::sqmat::dim</a>, and <a class="el" href="square__mat_8h_source.html#l00329">L</a>.</p>
543
544</div>
545</div><p>
546<hr>The documentation for this class was generated from the following files:<ul>
547<li><a class="el" href="square__mat_8h_source.html">square_mat.h</a><li>square_mat.cpp</ul>
548</div>
549<hr size="1"><address style="text-align: right;"><small>Generated on Wed Oct 7 17:34:47 2009 for mixpp by&nbsp;
550<a href="http://www.doxygen.org/index.html">
551<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
552</body>
553</html>
Note: See TracBrowser for help on using the browser.