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

Revision 661, 36.9 kB (checked in by smidl, 15 years ago)

doc

Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<title>mixpp: bdm::ldmat Class Reference</title>
6<link href="tabs.css" rel="stylesheet" type="text/css"/>
7<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8</head>
9<body>
10<!-- Generated by Doxygen 1.6.1 -->
11<script type="text/javascript">
12<!--
13function changeDisplayState (e){
14  var num=this.id.replace(/[^[0-9]/g,'');
15  var button=this.firstChild;
16  var sectionDiv=document.getElementById('dynsection'+num);
17  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
18    sectionDiv.style.display='block';
19    button.src='open.gif';
20  }else{
21    sectionDiv.style.display='none';
22    button.src='closed.gif';
23  }
24}
25function initDynSections(){
26  var divs=document.getElementsByTagName('div');
27  var sectionCounter=1;
28  for(var i=0;i<divs.length-1;i++){
29    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
30      var header=divs[i];
31      var section=divs[i+1];
32      var button=header.firstChild;
33      if (button!='IMG'){
34        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
35        button=document.createElement('img');
36        divs[i].insertBefore(button,divs[i].firstChild);
37      }
38      header.style.cursor='pointer';
39      header.onclick=changeDisplayState;
40      header.id='dynheader'+sectionCounter;
41      button.src='closed.gif';
42      section.id='dynsection'+sectionCounter;
43      section.style.display='none';
44      section.style.marginLeft='14px';
45      sectionCounter++;
46    }
47  }
48}
49window.onload = initDynSections;
50-->
51</script>
52<div class="navigation" id="top">
53  <div class="tabs">
54    <ul>
55      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
56      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
57      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
58      <li><a href="files.html"><span>Files</span></a></li>
59    </ul>
60  </div>
61  <div class="tabs">
62    <ul>
63      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
64      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
65      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
66      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
67    </ul>
68  </div>
69  <div class="navpath"><b>bdm</b>::<a class="el" href="classbdm_1_1ldmat.html">ldmat</a>
70  </div>
71</div>
72<div class="contents">
73<h1>bdm::ldmat Class Reference</h1><!-- doxytag: class="bdm::ldmat" --><!-- doxytag: inherits="bdm::sqmat" -->
74<p>Matrix stored in LD form, (commonly known as UD). 
75<a href="#_details">More...</a></p>
76<hr/><a name="_details"></a><h2>Detailed Description</h2>
77<p>Matrix stored in LD form, (commonly known as UD). </p>
78<p>Matrix is decomposed as follows: </p>
79<p class="formulaDsp">
80<img class="formulaDsp" alt="\[M = L'DL\]" src="form_57.png"/>
81</p>
82<p> where only <img class="formulaInl" alt="$L$" src="form_58.png"/> and <img class="formulaInl" alt="$D$" src="form_59.png"/> matrices are stored. All inplace operations modifies only these and the need to compose and decompose the matrix is avoided. </p>
83
84<p><code>#include &lt;<a class="el" href="square__mat_8h_source.html">square_mat.h</a>&gt;</code></p>
85
86<p><a href="classbdm_1_1ldmat-members.html">List of all members.</a></p>
87<table border="0" cellpadding="0" cellspacing="0">
88<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
89<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab7cedf5afc8eee19a8332cca00a0d1d"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="aab7cedf5afc8eee19a8332cca00a0d1d" args="(const mat &amp;L, const vec &amp;D)" -->
90&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#aab7cedf5afc8eee19a8332cca00a0d1d">ldmat</a> (const mat &amp;<a class="el" href="classbdm_1_1ldmat.html#a2488cf5a8f056b2566e2565d1ce9ec57">L</a>, const vec &amp;<a class="el" href="classbdm_1_1ldmat.html#a03b89dcb9a5241a237a07102f932638f">D</a>)</td></tr>
91<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct by copy of L and D. <br/></td></tr>
92<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25f1f3b8486ea625f363b850ecfb7a5c"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="a25f1f3b8486ea625f363b850ecfb7a5c" args="(const mat &amp;V)" -->
93&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a25f1f3b8486ea625f363b850ecfb7a5c">ldmat</a> (const mat &amp;V)</td></tr>
94<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct by decomposition of full matrix V. <br/></td></tr>
95<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a984df3535e93e777dc5f9897aa682176"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="a984df3535e93e777dc5f9897aa682176" args="(const ldmat &amp;V0, const ivec &amp;perm)" -->
96&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a984df3535e93e777dc5f9897aa682176">ldmat</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;V0, const ivec &amp;perm)</td></tr>
97<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct by restructuring of V0 accordint to permutation vector perm. <br/></td></tr>
98<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0a6f9df500f828deed28bdd64751be4"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="af0a6f9df500f828deed28bdd64751be4" args="(vec D0)" -->
99&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#af0a6f9df500f828deed28bdd64751be4">ldmat</a> (vec D0)</td></tr>
100<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct diagonal matrix with diagonal D0. <br/></td></tr>
101<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30235afa1e80e709d7d7da380201a990"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="a30235afa1e80e709d7d7da380201a990" args="()" -->
102&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a30235afa1e80e709d7d7da380201a990">ldmat</a> ()</td></tr>
103<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor. <br/></td></tr>
104<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e26866f41642669bbdff4a496f1f26f"></a><!-- doxytag: member="bdm::ldmat::ldmat" ref="a0e26866f41642669bbdff4a496f1f26f" args="(const int dim0)" -->
105&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a0e26866f41642669bbdff4a496f1f26f">ldmat</a> (const int dim0)</td></tr>
106<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default initialization with proper size. <br/></td></tr>
107<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adeb3ea5e22f1c12fe06a56841d1c5ccc"></a><!-- doxytag: member="bdm::ldmat::~ldmat" ref="adeb3ea5e22f1c12fe06a56841d1c5ccc" args="()" -->
108virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#adeb3ea5e22f1c12fe06a56841d1c5ccc">~ldmat</a> ()</td></tr>
109<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor for future use;. <br/></td></tr>
110<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#ac9dc3f1f86d36ec7eedb8746eb2c3b5c">opupdt</a> (const vec &amp;v, double w)</td></tr>
111<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a387f6acb29086e93828331a30a638ae4"></a><!-- doxytag: member="bdm::ldmat::to_mat" ref="a387f6acb29086e93828331a30a638ae4" args="() const " -->
112mat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a387f6acb29086e93828331a30a638ae4">to_mat</a> () const </td></tr>
113<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Conversion to full matrix. <br/></td></tr>
114<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a7a813158c36347deccf50a08feee24a8">mult_sym</a> (const mat &amp;C)</td></tr>
115<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inplace symmetric multiplication by a SQUARE matrix <img class="formulaInl" alt="$C$" src="form_61.png"/>, i.e. <img class="formulaInl" alt="$V = C*V*C'$" src="form_62.png"/><a href="#a7a813158c36347deccf50a08feee24a8"></a><br/></td></tr>
116<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a591ae54f5fce50e7160025eeab44888f">mult_sym_t</a> (const mat &amp;C)</td></tr>
117<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_61.png"/>, i.e. <img class="formulaInl" alt="$V = C'*V*C$" src="form_63.png"/><a href="#a591ae54f5fce50e7160025eeab44888f"></a><br/></td></tr>
118<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ae1fe991497135973a18097a58c6f25"></a><!-- doxytag: member="bdm::ldmat::add" ref="a9ae1fe991497135973a18097a58c6f25" args="(const ldmat &amp;ld2, double w=1.0)" -->
119void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a9ae1fe991497135973a18097a58c6f25">add</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;ld2, double w=1.0)</td></tr>
120<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add another matrix in LD form with weight w. <br/></td></tr>
121<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0913623ee335d78f96bb474f62616375"></a><!-- doxytag: member="bdm::ldmat::logdet" ref="a0913623ee335d78f96bb474f62616375" args="() const " -->
122double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a0913623ee335d78f96bb474f62616375">logdet</a> () const </td></tr>
123<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logarithm of a determinant. <br/></td></tr>
124<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5725cb504d3dd68713ac232c18526c87"></a><!-- doxytag: member="bdm::ldmat::qform" ref="a5725cb504d3dd68713ac232c18526c87" args="(const vec &amp;v) const " -->
125double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a5725cb504d3dd68713ac232c18526c87">qform</a> (const vec &amp;v) const </td></tr>
126<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates quadratic form <img class="formulaInl" alt="$x= v'*V*v$" src="form_65.png"/>;. <br/></td></tr>
127<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af743de194aadb8515cf18226fadf365f"></a><!-- doxytag: member="bdm::ldmat::invqform" ref="af743de194aadb8515cf18226fadf365f" args="(const vec &amp;v) const " -->
128double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#af743de194aadb8515cf18226fadf365f">invqform</a> (const vec &amp;v) const </td></tr>
129<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates quadratic form <img class="formulaInl" alt="$x= v'*inv(V)*v$" src="form_66.png"/>;. <br/></td></tr>
130<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a913a4746f16e4c5e130f63bd3f31829a"></a><!-- doxytag: member="bdm::ldmat::clear" ref="a913a4746f16e4c5e130f63bd3f31829a" args="()" -->
131void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a913a4746f16e4c5e130f63bd3f31829a">clear</a> ()</td></tr>
132<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clearing matrix so that it corresponds to zeros. <br/></td></tr>
133<tr><td class="memItemLeft" align="right" valign="top">vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a2c670269c0ee397eb49ba7b0712e16a5">sqrt_mult</a> (const vec &amp;v) const </td></tr>
134<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_64.png"/> by vector <img class="formulaInl" alt="$x$" src="form_1.png"/><a href="#a2c670269c0ee397eb49ba7b0712e16a5"></a><br/></td></tr>
135<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#ae5940e396d822b9e93a43ac0924d3823">inv</a> (<a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;Inv) const </td></tr>
136<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Matrix inversion preserving the chosen form.  <a href="#ae5940e396d822b9e93a43ac0924d3823"></a><br/></td></tr>
137<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a138e64000ce94d8bc35105094d213e67">mult_sym</a> (const mat &amp;C, <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;U) const </td></tr>
138<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_67.png"/> by a general matrix <img class="formulaInl" alt="$C$" src="form_61.png"/>, result of which is stored in the current class.  <a href="#a138e64000ce94d8bc35105094d213e67"></a><br/></td></tr>
139<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a9f812a24ad5e29348de2cb23c6c6dd96">mult_sym_t</a> (const mat &amp;C, <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;U) const </td></tr>
140<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_67.png"/> by a transpose of a general matrix <img class="formulaInl" alt="$C$" src="form_61.png"/>, result of which is stored in the current class.  <a href="#a9f812a24ad5e29348de2cb23c6c6dd96"></a><br/></td></tr>
141<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#af95718893e86bff149080116736ab566">ldform</a> (const mat &amp;A, const vec &amp;D0)</td></tr>
142<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms general <img class="formulaInl" alt="$A'D0 A$" src="form_68.png"/> into pure <img class="formulaInl" alt="$L'DL$" src="form_69.png"/><a href="#af95718893e86bff149080116736ab566"></a><br/></td></tr>
143<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72e61ad4e0653f4fc38e7d60d3cf1d4e"></a><!-- doxytag: member="bdm::ldmat::setD" ref="a72e61ad4e0653f4fc38e7d60d3cf1d4e" args="(const vec &amp;nD)" -->
144void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a72e61ad4e0653f4fc38e7d60d3cf1d4e">setD</a> (const vec &amp;nD)</td></tr>
145<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br/></td></tr>
146<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4aa9180695e22fec17c714c5494a8b1"></a><!-- doxytag: member="bdm::ldmat::setD" ref="ac4aa9180695e22fec17c714c5494a8b1" args="(const vec &amp;nD, int i)" -->
147void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#ac4aa9180695e22fec17c714c5494a8b1">setD</a> (const vec &amp;nD, int i)</td></tr>
148<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br/></td></tr>
149<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8d6bb6f315c25b8f8af72e4e62230ee"></a><!-- doxytag: member="bdm::ldmat::setL" ref="af8d6bb6f315c25b8f8af72e4e62230ee" args="(const vec &amp;nL)" -->
150void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#af8d6bb6f315c25b8f8af72e4e62230ee">setL</a> (const vec &amp;nL)</td></tr>
151<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br/></td></tr>
152<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0cc4632b40e8b61945bd463913d08b69"></a><!-- doxytag: member="bdm::ldmat::_D" ref="a0cc4632b40e8b61945bd463913d08b69" args="() const " -->
153const vec &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a0cc4632b40e8b61945bd463913d08b69">_D</a> () const </td></tr>
154<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br/></td></tr>
155<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75c80134f0602ec1face282ec0f05b96"></a><!-- doxytag: member="bdm::ldmat::_L" ref="a75c80134f0602ec1face282ec0f05b96" args="() const " -->
156const mat &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a75c80134f0602ec1face282ec0f05b96">_L</a> () const </td></tr>
157<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access functions. <br/></td></tr>
158<tr><td class="memItemLeft" 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#a6e1d28681e7e7e6b570a14a9a370821a">operator+=</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;ldA)</td></tr>
159<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="#a6e1d28681e7e7e6b570a14a9a370821a"></a><br/></td></tr>
160<tr><td class="memItemLeft" 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#adb2f7a02b4686ea1bf7013284b40d954">operator-=</a> (const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;ldA)</td></tr>
161<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="#adb2f7a02b4686ea1bf7013284b40d954"></a><br/></td></tr>
162<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad387ee8c6e5514244a00e4e8ff1e533c"></a><!-- doxytag: member="bdm::ldmat::operator*=" ref="ad387ee8c6e5514244a00e4e8ff1e533c" args="(double x)" -->
163<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#ad387ee8c6e5514244a00e4e8ff1e533c">operator*=</a> (double x)</td></tr>
164<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">multiply by a scalar <br/></td></tr>
165<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a445ef762cf5d2d6cfdf53c72942363cf"></a><!-- doxytag: member="bdm::ldmat::cols" ref="a445ef762cf5d2d6cfdf53c72942363cf" args="() const " -->
166int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1sqmat.html#a445ef762cf5d2d6cfdf53c72942363cf">cols</a> () const </td></tr>
167<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reimplementing common functions of mat: <a class="el" href="classbdm_1_1sqmat.html#a445ef762cf5d2d6cfdf53c72942363cf" title="Reimplementing common functions of mat: cols().">cols()</a>. <br/></td></tr>
168<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73e639221343dcce76c3305524d67590"></a><!-- doxytag: member="bdm::ldmat::rows" ref="a73e639221343dcce76c3305524d67590" args="() const " -->
169int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1sqmat.html#a73e639221343dcce76c3305524d67590">rows</a> () const </td></tr>
170<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reimplementing common functions of mat: <a class="el" href="classbdm_1_1sqmat.html#a73e639221343dcce76c3305524d67590" title="Reimplementing common functions of mat: rows().">rows()</a>. <br/></td></tr>
171<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
172<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a03b89dcb9a5241a237a07102f932638f"></a><!-- doxytag: member="bdm::ldmat::D" ref="a03b89dcb9a5241a237a07102f932638f" args="" -->
173vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a03b89dcb9a5241a237a07102f932638f">D</a></td></tr>
174<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Positive vector <img class="formulaInl" alt="$D$" src="form_59.png"/>. <br/></td></tr>
175<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2488cf5a8f056b2566e2565d1ce9ec57"></a><!-- doxytag: member="bdm::ldmat::L" ref="a2488cf5a8f056b2566e2565d1ce9ec57" args="" -->
176mat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#a2488cf5a8f056b2566e2565d1ce9ec57">L</a></td></tr>
177<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lower-triangular matrix <img class="formulaInl" alt="$L$" src="form_58.png"/>. <br/></td></tr>
178<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05111b5744a494880e62cb0f3d42293f"></a><!-- doxytag: member="bdm::ldmat::dim" ref="a05111b5744a494880e62cb0f3d42293f" args="" -->
179int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1sqmat.html#a05111b5744a494880e62cb0f3d42293f">dim</a></td></tr>
180<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">dimension of the square matrix <br/></td></tr>
181<tr><td colspan="2"><h2>Friends</h2></td></tr>
182<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeaaa0baa6026b84cfcbced41c84599d1"></a><!-- doxytag: member="bdm::ldmat::operator&lt;&lt;" ref="aeaaa0baa6026b84cfcbced41c84599d1" args="(std::ostream &amp;os, const ldmat &amp;sq)" -->
183std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbdm_1_1ldmat.html#aeaaa0baa6026b84cfcbced41c84599d1">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;sq)</td></tr>
184<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">print both <code>L</code> and <code>D</code> <br/></td></tr>
185</table>
186<hr/><h2>Member Function Documentation</h2>
187<a class="anchor" id="ae5940e396d822b9e93a43ac0924d3823"></a><!-- doxytag: member="bdm::ldmat::inv" ref="ae5940e396d822b9e93a43ac0924d3823" args="(ldmat &amp;Inv) const " -->
188<div class="memitem">
189<div class="memproto">
190      <table class="memname">
191        <tr>
192          <td class="memname">void bdm::ldmat::inv </td>
193          <td>(</td>
194          <td class="paramtype"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
195          <td class="paramname"> <em>Inv</em></td>
196          <td>&nbsp;)&nbsp;</td>
197          <td> const</td>
198        </tr>
199      </table>
200</div>
201<div class="memdoc">
202
203<p>Matrix inversion preserving the chosen form. </p>
204<dl><dt><b>Parameters:</b></dt><dd>
205  <table border="0" cellspacing="2" cellpadding="0">
206    <tr><td valign="top"></td><td valign="top"><em>Inv</em>&nbsp;</td><td>a space where the inverse is stored. </td></tr>
207  </table>
208  </dd>
209</dl>
210
211<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>
212
213<p>Referenced by <a class="el" href="exp__family_8cpp_source.html#l00143">bdm::egiw::variance()</a>.</p>
214
215</div>
216</div>
217<a class="anchor" id="af95718893e86bff149080116736ab566"></a><!-- doxytag: member="bdm::ldmat::ldform" ref="af95718893e86bff149080116736ab566" args="(const mat &amp;A, const vec &amp;D0)" -->
218<div class="memitem">
219<div class="memproto">
220      <table class="memname">
221        <tr>
222          <td class="memname">void bdm::ldmat::ldform </td>
223          <td>(</td>
224          <td class="paramtype">const mat &amp;&nbsp;</td>
225          <td class="paramname"> <em>A</em>, </td>
226        </tr>
227        <tr>
228          <td class="paramkey"></td>
229          <td></td>
230          <td class="paramtype">const vec &amp;&nbsp;</td>
231          <td class="paramname"> <em>D0</em></td><td>&nbsp;</td>
232        </tr>
233        <tr>
234          <td></td>
235          <td>)</td>
236          <td></td><td></td><td></td>
237        </tr>
238      </table>
239</div>
240<div class="memdoc">
241
242<p>Transforms general <img class="formulaInl" alt="$A'D0 A$" src="form_68.png"/> into pure <img class="formulaInl" alt="$L'DL$" src="form_69.png"/>. </p>
243<p>The new decomposition fullfills: <img class="formulaInl" alt="$A'*diag(D)*A = self.L'*diag(self.D)*self.L$" src="form_70.png"/> </p>
244<dl><dt><b>Parameters:</b></dt><dd>
245  <table border="0" cellspacing="2" cellpadding="0">
246    <tr><td valign="top"></td><td valign="top"><em>A</em>&nbsp;</td><td>general matrix </td></tr>
247    <tr><td valign="top"></td><td valign="top"><em>D0</em>&nbsp;</td><td>general vector </td></tr>
248  </table>
249  </dd>
250</dl>
251
252<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>
253
254<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>
255
256</div>
257</div>
258<a class="anchor" id="a138e64000ce94d8bc35105094d213e67"></a><!-- doxytag: member="bdm::ldmat::mult_sym" ref="a138e64000ce94d8bc35105094d213e67" args="(const mat &amp;C, ldmat &amp;U) const " -->
259<div class="memitem">
260<div class="memproto">
261      <table class="memname">
262        <tr>
263          <td class="memname">void bdm::ldmat::mult_sym </td>
264          <td>(</td>
265          <td class="paramtype">const mat &amp;&nbsp;</td>
266          <td class="paramname"> <em>C</em>, </td>
267        </tr>
268        <tr>
269          <td class="paramkey"></td>
270          <td></td>
271          <td class="paramtype"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
272          <td class="paramname"> <em>U</em></td><td>&nbsp;</td>
273        </tr>
274        <tr>
275          <td></td>
276          <td>)</td>
277          <td></td><td></td><td> const</td>
278        </tr>
279      </table>
280</div>
281<div class="memdoc">
282
283<p>Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_67.png"/> by a general matrix <img class="formulaInl" alt="$C$" src="form_61.png"/>, result of which is stored in the current class. </p>
284<dl><dt><b>Parameters:</b></dt><dd>
285  <table border="0" cellspacing="2" cellpadding="0">
286    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>matrix to multiply with </td></tr>
287    <tr><td valign="top"></td><td valign="top"><em>U</em>&nbsp;</td><td>a space where the inverse is stored. </td></tr>
288  </table>
289  </dd>
290</dl>
291
292<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>
293
294</div>
295</div>
296<a class="anchor" id="a7a813158c36347deccf50a08feee24a8"></a><!-- doxytag: member="bdm::ldmat::mult_sym" ref="a7a813158c36347deccf50a08feee24a8" args="(const mat &amp;C)" -->
297<div class="memitem">
298<div class="memproto">
299      <table class="memname">
300        <tr>
301          <td class="memname">void bdm::ldmat::mult_sym </td>
302          <td>(</td>
303          <td class="paramtype">const mat &amp;&nbsp;</td>
304          <td class="paramname"> <em>C</em></td>
305          <td>&nbsp;)&nbsp;</td>
306          <td><code> [virtual]</code></td>
307        </tr>
308      </table>
309</div>
310<div class="memdoc">
311
312<p>Inplace symmetric multiplication by a SQUARE matrix <img class="formulaInl" alt="$C$" src="form_61.png"/>, i.e. <img class="formulaInl" alt="$V = C*V*C'$" src="form_62.png"/>. </p>
313<dl><dt><b>Parameters:</b></dt><dd>
314  <table border="0" cellspacing="2" cellpadding="0">
315    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>multiplying matrix, </td></tr>
316  </table>
317  </dd>
318</dl>
319
320<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#af8b513b6ac0e54d6fe47afda8b254b29">bdm::sqmat</a>.</p>
321
322<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>
323
324</div>
325</div>
326<a class="anchor" id="a9f812a24ad5e29348de2cb23c6c6dd96"></a><!-- doxytag: member="bdm::ldmat::mult_sym_t" ref="a9f812a24ad5e29348de2cb23c6c6dd96" args="(const mat &amp;C, ldmat &amp;U) const " -->
327<div class="memitem">
328<div class="memproto">
329      <table class="memname">
330        <tr>
331          <td class="memname">void bdm::ldmat::mult_sym_t </td>
332          <td>(</td>
333          <td class="paramtype">const mat &amp;&nbsp;</td>
334          <td class="paramname"> <em>C</em>, </td>
335        </tr>
336        <tr>
337          <td class="paramkey"></td>
338          <td></td>
339          <td class="paramtype"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
340          <td class="paramname"> <em>U</em></td><td>&nbsp;</td>
341        </tr>
342        <tr>
343          <td></td>
344          <td>)</td>
345          <td></td><td></td><td> const</td>
346        </tr>
347      </table>
348</div>
349<div class="memdoc">
350
351<p>Symmetric multiplication of <img class="formulaInl" alt="$U$" src="form_67.png"/> by a transpose of a general matrix <img class="formulaInl" alt="$C$" src="form_61.png"/>, result of which is stored in the current class. </p>
352<dl><dt><b>Parameters:</b></dt><dd>
353  <table border="0" cellspacing="2" cellpadding="0">
354    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>matrix to multiply with </td></tr>
355    <tr><td valign="top"></td><td valign="top"><em>U</em>&nbsp;</td><td>a space where the inverse is stored. </td></tr>
356  </table>
357  </dd>
358</dl>
359
360<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>
361
362</div>
363</div>
364<a class="anchor" id="a591ae54f5fce50e7160025eeab44888f"></a><!-- doxytag: member="bdm::ldmat::mult_sym_t" ref="a591ae54f5fce50e7160025eeab44888f" args="(const mat &amp;C)" -->
365<div class="memitem">
366<div class="memproto">
367      <table class="memname">
368        <tr>
369          <td class="memname">void bdm::ldmat::mult_sym_t </td>
370          <td>(</td>
371          <td class="paramtype">const mat &amp;&nbsp;</td>
372          <td class="paramname"> <em>C</em></td>
373          <td>&nbsp;)&nbsp;</td>
374          <td><code> [virtual]</code></td>
375        </tr>
376      </table>
377</div>
378<div class="memdoc">
379
380<p>Inplace symmetric multiplication by a SQUARE transpose of matrix <img class="formulaInl" alt="$C$" src="form_61.png"/>, i.e. <img class="formulaInl" alt="$V = C'*V*C$" src="form_63.png"/>. </p>
381<dl><dt><b>Parameters:</b></dt><dd>
382  <table border="0" cellspacing="2" cellpadding="0">
383    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>multiplying matrix, </td></tr>
384  </table>
385  </dd>
386</dl>
387
388<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#aba45b96855264178ab67648bbc7cead5">bdm::sqmat</a>.</p>
389
390<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>
391
392</div>
393</div>
394<a class="anchor" id="a6e1d28681e7e7e6b570a14a9a370821a"></a><!-- doxytag: member="bdm::ldmat::operator+=" ref="a6e1d28681e7e7e6b570a14a9a370821a" args="(const ldmat &amp;ldA)" -->
395<div class="memitem">
396<div class="memproto">
397      <table class="memname">
398        <tr>
399          <td class="memname"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp; bdm::ldmat::operator+= </td>
400          <td>(</td>
401          <td class="paramtype">const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
402          <td class="paramname"> <em>ldA</em></td>
403          <td>&nbsp;)&nbsp;</td>
404          <td><code> [inline]</code></td>
405        </tr>
406      </table>
407</div>
408<div class="memdoc">
409
410<p>add another <a class="el" href="classbdm_1_1ldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> matrix </p>
411<p>Operations: mapping of add operation to operators </p>
412
413<p>References <a class="el" href="square__mat_8cpp_source.html#l00122">add()</a>.</p>
414
415</div>
416</div>
417<a class="anchor" id="adb2f7a02b4686ea1bf7013284b40d954"></a><!-- doxytag: member="bdm::ldmat::operator&#45;=" ref="adb2f7a02b4686ea1bf7013284b40d954" args="(const ldmat &amp;ldA)" -->
418<div class="memitem">
419<div class="memproto">
420      <table class="memname">
421        <tr>
422          <td class="memname"><a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp; bdm::ldmat::operator-= </td>
423          <td>(</td>
424          <td class="paramtype">const <a class="el" href="classbdm_1_1ldmat.html">ldmat</a> &amp;&nbsp;</td>
425          <td class="paramname"> <em>ldA</em></td>
426          <td>&nbsp;)&nbsp;</td>
427          <td><code> [inline]</code></td>
428        </tr>
429      </table>
430</div>
431<div class="memdoc">
432
433<p>subtract another <a class="el" href="classbdm_1_1ldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> matrix </p>
434<p>mapping of negative add operation to operators </p>
435
436<p>References <a class="el" href="square__mat_8cpp_source.html#l00122">add()</a>.</p>
437
438</div>
439</div>
440<a class="anchor" id="ac9dc3f1f86d36ec7eedb8746eb2c3b5c"></a><!-- doxytag: member="bdm::ldmat::opupdt" ref="ac9dc3f1f86d36ec7eedb8746eb2c3b5c" args="(const vec &amp;v, double w)" -->
441<div class="memitem">
442<div class="memproto">
443      <table class="memname">
444        <tr>
445          <td class="memname">void bdm::ldmat::opupdt </td>
446          <td>(</td>
447          <td class="paramtype">const vec &amp;&nbsp;</td>
448          <td class="paramname"> <em>v</em>, </td>
449        </tr>
450        <tr>
451          <td class="paramkey"></td>
452          <td></td>
453          <td class="paramtype">double&nbsp;</td>
454          <td class="paramname"> <em>w</em></td><td>&nbsp;</td>
455        </tr>
456        <tr>
457          <td></td>
458          <td>)</td>
459          <td></td><td></td><td><code> [virtual]</code></td>
460        </tr>
461      </table>
462</div>
463<div class="memdoc">
464<p>Perfroms a rank-1 update by outer product of vectors: <img class="formulaInl" alt="$V = V + w v v'$" src="form_60.png"/>. </p>
465<dl><dt><b>Parameters:</b></dt><dd>
466  <table border="0" cellspacing="2" cellpadding="0">
467    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>Vector forming the outer product to be added </td></tr>
468    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>weight of updating; can be negative</td></tr>
469  </table>
470  </dd>
471</dl>
472<p>BLAS-2b operation. </p>
473
474<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#a12298b1cc5a6f35876291e876b0e2993">bdm::sqmat</a>.</p>
475
476<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>
477
478<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>
479
480</div>
481</div>
482<a class="anchor" id="a2c670269c0ee397eb49ba7b0712e16a5"></a><!-- doxytag: member="bdm::ldmat::sqrt_mult" ref="a2c670269c0ee397eb49ba7b0712e16a5" args="(const vec &amp;v) const " -->
483<div class="memitem">
484<div class="memproto">
485      <table class="memname">
486        <tr>
487          <td class="memname">vec bdm::ldmat::sqrt_mult </td>
488          <td>(</td>
489          <td class="paramtype">const vec &amp;&nbsp;</td>
490          <td class="paramname"> <em>v</em></td>
491          <td>&nbsp;)&nbsp;</td>
492          <td> const<code> [virtual]</code></td>
493        </tr>
494      </table>
495</div>
496<div class="memdoc">
497
498<p>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_64.png"/> by vector <img class="formulaInl" alt="$x$" src="form_1.png"/>. </p>
499<p>Used e.g. in generating normal samples. </p>
500
501<p>Reimplemented from <a class="el" href="classbdm_1_1sqmat.html#abcacd85ec5d128ebbb663ae4433c75b3">bdm::sqmat</a>.</p>
502
503<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>
504
505</div>
506</div>
507<hr/>The documentation for this class was generated from the following files:<ul>
508<li><a class="el" href="square__mat_8h_source.html">square_mat.h</a></li>
509<li>square_mat.cpp</li>
510</ul>
511</div>
512<hr size="1"/><address style="text-align: right;"><small>Generated on Thu Oct 15 00:07:50 2009 for mixpp by&nbsp;
513<a href="http://www.doxygen.org/index.html">
514<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
515</body>
516</html>
Note: See TracBrowser for help on using the browser.