root/doc/html/classfsqmat.html @ 24

Revision 22, 14.3 kB (checked in by smidl, 16 years ago)

upravy Kalmana

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: fsqmat Class Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.3 -->
8<div class="tabs">
9  <ul>
10    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11    <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
12    <li><a href="files.html"><span>Files</span></a></li>
13  </ul>
14</div>
15<div class="tabs">
16  <ul>
17    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
18    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
19    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
20  </ul>
21</div>
22<h1>fsqmat Class Reference</h1><!-- doxytag: class="fsqmat" --><!-- doxytag: inherits="sqmat" -->Fake <a class="el" href="classsqmat.html" title="Virtual class for representation of double symmetric matrices in square-root form...">sqmat</a>. This class maps <a class="el" href="classsqmat.html" title="Virtual class for representation of double symmetric matrices in square-root form...">sqmat</a> operations to operations on full matrix. 
23<a href="#_details">More...</a>
24<p>
25<code>#include &lt;<a class="el" href="libDC_8h-source.html">libDC.h</a>&gt;</code>
26<p>
27<div class="dynheader">
28Inheritance diagram for fsqmat:</div>
29<div class="dynsection">
30<p><center><img src="classfsqmat__inherit__graph.png" border="0" usemap="#fsqmat__inherit__map" alt="Inheritance graph"></center>
31<map name="fsqmat__inherit__map">
32<area shape="rect" href="classsqmat.html" title="Virtual class for representation of double symmetric matrices in square&#45;root form..." alt="" coords="8,7,69,33"></map>
33<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
34<div class="dynheader">
35Collaboration diagram for fsqmat:</div>
36<div class="dynsection">
37<p><center><img src="classfsqmat__coll__graph.png" border="0" usemap="#fsqmat__coll__map" alt="Collaboration graph"></center>
38<map name="fsqmat__coll__map">
39<area shape="rect" href="classsqmat.html" title="Virtual class for representation of double symmetric matrices in square&#45;root form..." alt="" coords="8,7,69,33"></map>
40<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
41
42<p>
43<a href="classfsqmat-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
44<tr><td></td></tr>
45<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
46<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#b36530e155667fe9f1bd58394e50c65a">opupdt</a> (const vec &amp;v, double w)</td></tr>
47
48<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cedf4f048309056f4262c930914dfda8"></a><!-- doxytag: member="fsqmat::to_mat" ref="cedf4f048309056f4262c930914dfda8" args="()" -->
49mat&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#cedf4f048309056f4262c930914dfda8">to_mat</a> ()</td></tr>
50
51<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Conversion to full matrix. <br></td></tr>
52<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#acc5d2d0a243f1de6d0106065f01f518">mult_sym</a> (const mat &amp;C, bool trans=false)</td></tr>
53
54<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inplace symmetric multiplication by a SQUARE matrix $C$, i.e. $V = C*V*C'$.  <a href="#acc5d2d0a243f1de6d0106065f01f518"></a><br></td></tr>
55<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ccf5ad8fb038f82e9d2201c0606b65fa"></a><!-- doxytag: member="fsqmat::mult_sym" ref="ccf5ad8fb038f82e9d2201c0606b65fa" args="(const mat &amp;C, fsqmat &amp;U, bool trans=false)" -->
56void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mult_sym</b> (const mat &amp;C, <a class="el" href="classfsqmat.html">fsqmat</a> &amp;U, bool trans=false)</td></tr>
57
58<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9fa853e1ca28f2a1a1c43377e798ecb1"></a><!-- doxytag: member="fsqmat::inv" ref="9fa853e1ca28f2a1a1c43377e798ecb1" args="(fsqmat &amp;Inv)" -->
59void&nbsp;</td><td class="memItemRight" valign="bottom"><b>inv</b> (<a class="el" href="classfsqmat.html">fsqmat</a> &amp;Inv)</td></tr>
60
61<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cfa4c359483d2322f32d1d50050f8ac4"></a><!-- doxytag: member="fsqmat::clear" ref="cfa4c359483d2322f32d1d50050f8ac4" args="()" -->
62void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#cfa4c359483d2322f32d1d50050f8ac4">clear</a> ()</td></tr>
63
64<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clearing matrix so that it corresponds to zeros. <br></td></tr>
65<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1929fbc9fe375f1d67f979d0d302336f"></a><!-- doxytag: member="fsqmat::fsqmat" ref="1929fbc9fe375f1d67f979d0d302336f" args="(const mat &amp;M)" -->
66&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#1929fbc9fe375f1d67f979d0d302336f">fsqmat</a> (const mat &amp;M)</td></tr>
67
68<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <br></td></tr>
69<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#788423cc2679620dd6da8d2fca2e3e4d">inv</a> (<a class="el" href="classfsqmat.html">fsqmat</a> *Inv)</td></tr>
70
71<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Matrix inversion preserving the chosen form.  <a href="#788423cc2679620dd6da8d2fca2e3e4d"></a><br></td></tr>
72<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bf212272ec195ad2706e2bf4d8e7c9b3"></a><!-- doxytag: member="fsqmat::logdet" ref="bf212272ec195ad2706e2bf4d8e7c9b3" args="()" -->
73double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#bf212272ec195ad2706e2bf4d8e7c9b3">logdet</a> ()</td></tr>
74
75<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logarithm of a determinant. <br></td></tr>
76<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6d047b9f7a27dfc093303a13cc9b1fba"></a><!-- doxytag: member="fsqmat::qform" ref="6d047b9f7a27dfc093303a13cc9b1fba" args="(vec &amp;v)" -->
77double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#6d047b9f7a27dfc093303a13cc9b1fba">qform</a> (vec &amp;v)</td></tr>
78
79<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates quadratic form $x= v'*V*v$;. <br></td></tr>
80<tr><td class="memItemLeft" nowrap align="right" valign="top">vec&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfsqmat.html#6648dd4291b809cce14e8497d0433ad3">sqrt_mult</a> (vec &amp;v)</td></tr>
81
82<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiplies square root of $V$ by vector $x$.  <a href="#6648dd4291b809cce14e8497d0433ad3"></a><br></td></tr>
83<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="514d1fdd8a382dbd6a774f2cf1ebd3de"></a><!-- doxytag: member="fsqmat::operator+=" ref="514d1fdd8a382dbd6a774f2cf1ebd3de" args="(const fsqmat &amp;A)" -->
84<a class="el" href="classfsqmat.html">fsqmat</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="classfsqmat.html">fsqmat</a> &amp;A)</td></tr>
85
86<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e976bc9d899961e1d2087b0630ed33b7"></a><!-- doxytag: member="fsqmat::operator-=" ref="e976bc9d899961e1d2087b0630ed33b7" args="(const fsqmat &amp;A)" -->
87<a class="el" href="classfsqmat.html">fsqmat</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator-=</b> (const <a class="el" href="classfsqmat.html">fsqmat</a> &amp;A)</td></tr>
88
89<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f7ce97628a50e06641281096b2af9b7"></a><!-- doxytag: member="fsqmat::operator *=" ref="8f7ce97628a50e06641281096b2af9b7" args="(double x)" -->
90<a class="el" href="classfsqmat.html">fsqmat</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator *=</b> (double x)</td></tr>
91
92<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
93<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a7a1fcb9aae19d1e4daddfc9c22ce453"></a><!-- doxytag: member="fsqmat::M" ref="a7a1fcb9aae19d1e4daddfc9c22ce453" args="" -->
94mat&nbsp;</td><td class="memItemRight" valign="bottom"><b>M</b></td></tr>
95
96</table>
97<hr><a name="_details"></a><h2>Detailed Description</h2>
98Fake <a class="el" href="classsqmat.html" title="Virtual class for representation of double symmetric matrices in square-root form...">sqmat</a>. This class maps <a class="el" href="classsqmat.html" title="Virtual class for representation of double symmetric matrices in square-root form...">sqmat</a> operations to operations on full matrix.
99<p>
100This class can be used to compare performance of algorithms using decomposed matrices with perormance of the same algorithms using full matrices; <hr><h2>Member Function Documentation</h2>
101<a class="anchor" name="b36530e155667fe9f1bd58394e50c65a"></a><!-- doxytag: member="fsqmat::opupdt" ref="b36530e155667fe9f1bd58394e50c65a" args="(const vec &amp;v, double w)" -->
102<div class="memitem">
103<div class="memproto">
104      <table class="memname">
105        <tr>
106          <td class="memname">void fsqmat::opupdt           </td>
107          <td>(</td>
108          <td class="paramtype">const vec &amp;&nbsp;</td>
109          <td class="paramname"> <em>v</em>, </td>
110        </tr>
111        <tr>
112          <td class="paramkey"></td>
113          <td></td>
114          <td class="paramtype">double&nbsp;</td>
115          <td class="paramname"> <em>w</em></td><td>&nbsp;</td>
116        </tr>
117        <tr>
118          <td></td>
119          <td>)</td>
120          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
121        </tr>
122      </table>
123</div>
124<div class="memdoc">
125
126<p>
127Perfroms a rank-1 update by outer product of vectors: $V = V + w v v'$. <dl compact><dt><b>Parameters:</b></dt><dd>
128  <table border="0" cellspacing="2" cellpadding="0">
129    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>Vector forming the outer product to be added </td></tr>
130    <tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>weight of updating; can be negative</td></tr>
131  </table>
132</dl>
133BLAS-2b operation.
134<p>Implements <a class="el" href="classsqmat.html#b223484796661f2dadb5607a86ce0581">sqmat</a>.</p>
135
136</div>
137</div><p>
138<a class="anchor" name="acc5d2d0a243f1de6d0106065f01f518"></a><!-- doxytag: member="fsqmat::mult_sym" ref="acc5d2d0a243f1de6d0106065f01f518" args="(const mat &amp;C, bool trans=false)" -->
139<div class="memitem">
140<div class="memproto">
141      <table class="memname">
142        <tr>
143          <td class="memname">void fsqmat::mult_sym           </td>
144          <td>(</td>
145          <td class="paramtype">const mat &amp;&nbsp;</td>
146          <td class="paramname"> <em>C</em>, </td>
147        </tr>
148        <tr>
149          <td class="paramkey"></td>
150          <td></td>
151          <td class="paramtype">bool&nbsp;</td>
152          <td class="paramname"> <em>trans</em> = <code>false</code></td><td>&nbsp;</td>
153        </tr>
154        <tr>
155          <td></td>
156          <td>)</td>
157          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
158        </tr>
159      </table>
160</div>
161<div class="memdoc">
162
163<p>
164Inplace symmetric multiplication by a SQUARE matrix $C$, i.e. $V = C*V*C'$.
165<p>
166<dl compact><dt><b>Parameters:</b></dt><dd>
167  <table border="0" cellspacing="2" cellpadding="0">
168    <tr><td valign="top"></td><td valign="top"><em>C</em>&nbsp;</td><td>multiplying matrix, </td></tr>
169    <tr><td valign="top"></td><td valign="top"><em>trans</em>&nbsp;</td><td>if true, product $V = C'*V*C$ will be computed instead; </td></tr>
170  </table>
171</dl>
172
173<p>Implements <a class="el" href="classsqmat.html#faa3bc90be142adde9cf74f573c70157">sqmat</a>.</p>
174
175</div>
176</div><p>
177<a class="anchor" name="788423cc2679620dd6da8d2fca2e3e4d"></a><!-- doxytag: member="fsqmat::inv" ref="788423cc2679620dd6da8d2fca2e3e4d" args="(fsqmat *Inv)" -->
178<div class="memitem">
179<div class="memproto">
180      <table class="memname">
181        <tr>
182          <td class="memname">virtual void fsqmat::inv           </td>
183          <td>(</td>
184          <td class="paramtype"><a class="el" href="classfsqmat.html">fsqmat</a> *&nbsp;</td>
185          <td class="paramname"> <em>Inv</em>          </td>
186          <td>&nbsp;)&nbsp;</td>
187          <td width="100%"><code> [virtual]</code></td>
188        </tr>
189      </table>
190</div>
191<div class="memdoc">
192
193<p>
194Matrix inversion preserving the chosen form.
195<p>
196<dl compact><dt><b>Parameters:</b></dt><dd>
197  <table border="0" cellspacing="2" cellpadding="0">
198    <tr><td valign="top"></td><td valign="top"><em>Inv</em>&nbsp;</td><td>a space where the inverse is stored. </td></tr>
199  </table>
200</dl>
201
202</div>
203</div><p>
204<a class="anchor" name="6648dd4291b809cce14e8497d0433ad3"></a><!-- doxytag: member="fsqmat::sqrt_mult" ref="6648dd4291b809cce14e8497d0433ad3" args="(vec &amp;v)" -->
205<div class="memitem">
206<div class="memproto">
207      <table class="memname">
208        <tr>
209          <td class="memname">vec fsqmat::sqrt_mult           </td>
210          <td>(</td>
211          <td class="paramtype">vec &amp;&nbsp;</td>
212          <td class="paramname"> <em>v</em>          </td>
213          <td>&nbsp;)&nbsp;</td>
214          <td width="100%"><code> [inline, virtual]</code></td>
215        </tr>
216      </table>
217</div>
218<div class="memdoc">
219
220<p>
221Multiplies square root of $V$ by vector $x$.
222<p>
223Used e.g. in generating normal samples.
224<p>Implements <a class="el" href="classsqmat.html#b5236c8a050199e1a9d338b0da1a08d2">sqmat</a>.</p>
225
226</div>
227</div><p>
228<hr>The documentation for this class was generated from the following file:<ul>
229<li>work/mixpp/bdm/math/<a class="el" href="libDC_8h-source.html">libDC.h</a></ul>
230<hr size="1"><address style="text-align: right;"><small>Generated on Sun Feb 17 16:14:20 2008 for mixpp by&nbsp;
231<a href="http://www.doxygen.org/index.html">
232<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
233</body>
234</html>
Note: See TracBrowser for help on using the browser.