• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5  <title>BLAS</title>
6  <meta name="GENERATOR" content="Quanta Plus" />
7  <meta name="AUTHOR" content="Gunter Winkler" />
8  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
9  <link rel="stylesheet" href="../../../../boost.css" type="text/css"/>
10  <link rel="stylesheet" href="ublas.css" type="text/css" />
11  <script type="text/javascript" src="js/jquery-1.3.2.min.js" async="async" ></script>
12  <script type="text/javascript" src="js/jquery.toc-gw.js" async="async" ></script>
13</head>
14<body>
15
16
17<h1>Level 3 BLAS</h1>
18<div class="toc" id="toc"></div>
19<hr />
20<a name="_details"></a>
21
22<table summary="" border=0 cellpadding=0 cellspacing=0>
23<tr><td></td></tr>
24<tr><td colspan=2><br /><h2>Functions</h2></td></tr>
25<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M1, class T, class M2, class M3&gt; M1 &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="#ga0">boost::numeric::ublas::blas_3::tmm</a> (M1 &amp;m1, const T &amp;t, const M2 &amp;m2, const M3 &amp;m3)</td></tr>
26
27<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">triangular matrix multiplication  <a href="#ga0"></a><br /><br /></td></tr>
28<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M1, class T, class M2, class C&gt; M1 &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="#ga1">boost::numeric::ublas::blas_3::tsm</a> (M1 &amp;m1, const T &amp;t, const M2 &amp;m2, C)</td></tr>
29
30<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">triangular solve <em>m2</em> * <em>x</em> = <em>t</em> * <em>m1</em> in place, <em>m2</em> is a triangular matrix  <a href="#ga1"></a><br /><br /></td></tr>
31<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M1, class T1, class T2, class M2, class M3&gt; M1 &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="#ga2">boost::numeric::ublas::blas_3::gmm</a> (M1 &amp;m1, const T1 &amp;t1, const T2 &amp;t2, const M2 &amp;m2, const M3 &amp;m3)</td></tr>
32
33<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">general matrix multiplication  <a href="#ga2"></a><br /><br /></td></tr>
34<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M1, class T1, class T2, class M2&gt; M1 &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="#ga3">boost::numeric::ublas::blas_3::srk</a> (M1 &amp;m1, const T1 &amp;t1, const T2 &amp;t2, const M2 &amp;m2)</td></tr>
35
36<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">symmetric rank k update: <em>m1</em> = <em>t</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m2<sup>T</sup></em>)  <a href="#ga3"></a><br /><br /></td></tr>
37<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M1, class T1, class T2, class M2&gt; M1 &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="#ga4">boost::numeric::ublas::blas_3::hrk</a> (M1 &amp;m1, const T1 &amp;t1, const T2 &amp;t2, const M2 &amp;m2)</td></tr>
38
39<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">hermitian rank k update: <em>m1</em> = <em>t</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m2<sup>H</sup></em>)  <a href="#ga4"></a><br /><br /></td></tr>
40<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M1, class T1, class T2, class M2, class M3&gt; M1 &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="#ga5">boost::numeric::ublas::blas_3::sr2k</a> (M1 &amp;m1, const T1 &amp;t1, const T2 &amp;t2, const M2 &amp;m2, const M3 &amp;m3)</td></tr>
41
42<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generalized symmetric rank k update: <em>m1</em> = <em>t1</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m3<sup>T</sup></em>) + <em>t2</em> * (<em>m3</em> * <em>m2<sup>T</sup></em>)  <a href="#ga5"></a><br /><br /></td></tr>
43<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M1, class T1, class T2, class M2, class M3&gt; M1 &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="#ga6">boost::numeric::ublas::blas_3::hr2k</a> (M1 &amp;m1, const T1 &amp;t1, const T2 &amp;t2, const M2 &amp;m2, const M3 &amp;m3)</td></tr>
44
45<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generalized hermitian rank k update: <em>m1</em> = <em>t1</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m3<sup>H</sup></em>) + (<em>m3</em> * (<em>t2</em> * <em>m2</em>)<sup>H</sup>)  <a href="#ga6"></a><br /><br /></td></tr>
46<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M, class E1, class E2&gt; BOOST_UBLAS_INLINE M &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="products.html#ga7">boost::numeric::ublas::axpy_prod</a> (const matrix_expression&lt; E1 &gt; &amp;e1, const matrix_expression&lt; E2 &gt; &amp;e2, M &amp;m, bool init=true)</td></tr>
47
48<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">computes <code>M += A X</code> or <code>M = A X</code> in an optimized fashion.  <a href="products.html#ga7"></a><br /><br /></td></tr>
49<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class M, class E1, class E2&gt; BOOST_UBLAS_INLINE M &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="products.html#ga8">boost::numeric::ublas::opb_prod</a> (const matrix_expression&lt; E1 &gt; &amp;e1, const matrix_expression&lt; E2 &gt; &amp;e2, M &amp;m, bool init=true)</td></tr>
50
51<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">computes <code>M += A X</code> or <code>M = A X</code> in an optimized fashion.  <a href="products.html#ga8"></a><br /><br /></td></tr>
52</table>
53
54<hr />
55
56<h2>Function Documentation</h2>
57
58<a class="anchor" name="ga0" doxytag="boost::numeric::ublas::blas_3::tmm" ></a>
59<table summary="" class="mdTable" width="100%" cellpadding="2" cellspacing="0">
60  <tr>
61    <td class="mdRow">
62      <table summary="" cellpadding="0" cellspacing="0" border="0">
63        <tr>
64          <td class="md" nowrap valign="top"> M1&amp; tmm           </td>
65          <td class="md" valign="top">(&nbsp;</td>
66          <td class="md" nowrap valign="top">M1 &amp;&nbsp;</td>
67          <td class="mdname" nowrap> <em>m1</em>, </td>
68        </tr>
69        <tr>
70          <td class="md" nowrap align="right"></td>
71          <td></td>
72          <td class="md" nowrap>const T &amp;&nbsp;</td>
73          <td class="mdname" nowrap> <em>t</em>, </td>
74        </tr>
75        <tr>
76          <td class="md" nowrap align="right"></td>
77          <td></td>
78          <td class="md" nowrap>const M2 &amp;&nbsp;</td>
79          <td class="mdname" nowrap> <em>m2</em>, </td>
80        </tr>
81        <tr>
82          <td class="md" nowrap align="right"></td>
83          <td></td>
84          <td class="md" nowrap>const M3 &amp;&nbsp;</td>
85          <td class="mdname" nowrap> <em>m3</em></td>
86        </tr>
87        <tr>
88          <td></td>
89          <td class="md">)&nbsp;</td>
90          <td class="md" colspan="2"></td>
91        </tr>
92      </table>
93    </td>
94  </tr>
95</table>
96<table summary="" cellspacing=5 cellpadding=0 border=0>
97  <tr>
98    <td>
99      &nbsp;
100    </td>
101    <td>
102<p>triangular matrix multiplication </p>
103    </td>
104  </tr>
105</table>
106<a class="anchor" name="ga1" doxytag="boost::numeric::ublas::blas_3::tsm" ></a>
107<table summary="" class="mdTable" width="100%" cellpadding="2" cellspacing="0">
108  <tr>
109    <td class="mdRow">
110      <table summary="" cellpadding="0" cellspacing="0" border="0">
111        <tr>
112          <td class="md" nowrap valign="top"> M1&amp; tsm           </td>
113          <td class="md" valign="top">(&nbsp;</td>
114          <td class="md" nowrap valign="top">M1 &amp;&nbsp;</td>
115          <td class="mdname" nowrap> <em>m1</em>, </td>
116        </tr>
117        <tr>
118          <td class="md" nowrap align="right"></td>
119          <td></td>
120          <td class="md" nowrap>const T &amp;&nbsp;</td>
121          <td class="mdname" nowrap> <em>t</em>, </td>
122        </tr>
123        <tr>
124          <td class="md" nowrap align="right"></td>
125          <td></td>
126          <td class="md" nowrap>const M2 &amp;&nbsp;</td>
127          <td class="mdname" nowrap> <em>m2</em>, </td>
128        </tr>
129        <tr>
130          <td class="md" nowrap align="right"></td>
131          <td></td>
132          <td class="md" nowrap>C&nbsp;</td>
133          <td class="mdname" nowrap></td>
134        </tr>
135        <tr>
136          <td></td>
137          <td class="md">)&nbsp;</td>
138          <td class="md" colspan="2"></td>
139        </tr>
140      </table>
141    </td>
142  </tr>
143</table>
144<table summary="" cellspacing=5 cellpadding=0 border=0>
145  <tr>
146    <td>
147      &nbsp;
148    </td>
149    <td>
150
151<p>
152triangular solve <em>m2</em> * <em>x</em> = <em>t</em> * <em>m1</em> in place, <em>m2</em> is a triangular matrix
153</p>
154    </td>
155  </tr>
156</table>
157<a class="anchor" name="ga2" doxytag="boost::numeric::ublas::blas_3::gmm" ></a>
158<table summary="" class="mdTable" width="100%" cellpadding="2" cellspacing="0">
159  <tr>
160    <td class="mdRow">
161      <table summary="" cellpadding="0" cellspacing="0" border="0">
162        <tr>
163          <td class="md" nowrap valign="top"> M1&amp; gmm           </td>
164          <td class="md" valign="top">(&nbsp;</td>
165          <td class="md" nowrap valign="top">M1 &amp;&nbsp;</td>
166          <td class="mdname" nowrap> <em>m1</em>, </td>
167        </tr>
168        <tr>
169          <td class="md" nowrap align="right"></td>
170          <td></td>
171          <td class="md" nowrap>const T1 &amp;&nbsp;</td>
172          <td class="mdname" nowrap> <em>t1</em>, </td>
173        </tr>
174        <tr>
175          <td class="md" nowrap align="right"></td>
176          <td></td>
177          <td class="md" nowrap>const T2 &amp;&nbsp;</td>
178          <td class="mdname" nowrap> <em>t2</em>, </td>
179        </tr>
180        <tr>
181          <td class="md" nowrap align="right"></td>
182          <td></td>
183          <td class="md" nowrap>const M2 &amp;&nbsp;</td>
184          <td class="mdname" nowrap> <em>m2</em>, </td>
185        </tr>
186        <tr>
187          <td class="md" nowrap align="right"></td>
188          <td></td>
189          <td class="md" nowrap>const M3 &amp;&nbsp;</td>
190          <td class="mdname" nowrap> <em>m3</em></td>
191        </tr>
192        <tr>
193          <td></td>
194          <td class="md">)&nbsp;</td>
195          <td class="md" colspan="2"></td>
196        </tr>
197      </table>
198    </td>
199  </tr>
200</table>
201<table summary="" cellspacing=5 cellpadding=0 border=0>
202  <tr>
203    <td>
204      &nbsp;
205    </td>
206    <td>
207
208<p>
209general matrix multiplication
210</p>
211    </td>
212  </tr>
213</table>
214<a class="anchor" name="ga3" doxytag="boost::numeric::ublas::blas_3::srk" ></a>
215<table summary="" class="mdTable" width="100%" cellpadding="2" cellspacing="0">
216  <tr>
217    <td class="mdRow">
218      <table summary="" cellpadding="0" cellspacing="0" border="0">
219        <tr>
220          <td class="md" nowrap valign="top"> M1&amp; srk           </td>
221          <td class="md" valign="top">(&nbsp;</td>
222          <td class="md" nowrap valign="top">M1 &amp;&nbsp;</td>
223          <td class="mdname" nowrap> <em>m1</em>, </td>
224        </tr>
225        <tr>
226          <td class="md" nowrap align="right"></td>
227          <td></td>
228          <td class="md" nowrap>const T1 &amp;&nbsp;</td>
229          <td class="mdname" nowrap> <em>t1</em>, </td>
230        </tr>
231        <tr>
232          <td class="md" nowrap align="right"></td>
233          <td></td>
234          <td class="md" nowrap>const T2 &amp;&nbsp;</td>
235          <td class="mdname" nowrap> <em>t2</em>, </td>
236        </tr>
237        <tr>
238          <td class="md" nowrap align="right"></td>
239          <td></td>
240          <td class="md" nowrap>const M2 &amp;&nbsp;</td>
241          <td class="mdname" nowrap> <em>m2</em></td>
242        </tr>
243        <tr>
244          <td></td>
245          <td class="md">)&nbsp;</td>
246          <td class="md" colspan="2"></td>
247        </tr>
248      </table>
249    </td>
250  </tr>
251</table>
252<table summary="" cellspacing=5 cellpadding=0 border=0>
253  <tr>
254    <td>
255      &nbsp;
256    </td>
257    <td>
258
259<p>
260symmetric rank k update: <em>m1</em> = <em>t</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m2<sup>T</sup></em>)
261</p>
262<dl compact><dt><b>Todo:</b></dt><dd>use opb_prod() </dd></dl>
263    </td>
264  </tr>
265</table>
266<a class="anchor" name="ga4" doxytag="boost::numeric::ublas::blas_3::hrk" ></a>
267<table summary="" class="mdTable" width="100%" cellpadding="2" cellspacing="0">
268  <tr>
269    <td class="mdRow">
270      <table summary="" cellpadding="0" cellspacing="0" border="0">
271        <tr>
272          <td class="md" nowrap valign="top"> M1&amp; hrk           </td>
273          <td class="md" valign="top">(&nbsp;</td>
274          <td class="md" nowrap valign="top">M1 &amp;&nbsp;</td>
275          <td class="mdname" nowrap> <em>m1</em>, </td>
276        </tr>
277        <tr>
278          <td class="md" nowrap align="right"></td>
279          <td></td>
280          <td class="md" nowrap>const T1 &amp;&nbsp;</td>
281          <td class="mdname" nowrap> <em>t1</em>, </td>
282        </tr>
283        <tr>
284          <td class="md" nowrap align="right"></td>
285          <td></td>
286          <td class="md" nowrap>const T2 &amp;&nbsp;</td>
287          <td class="mdname" nowrap> <em>t2</em>, </td>
288        </tr>
289        <tr>
290          <td class="md" nowrap align="right"></td>
291          <td></td>
292          <td class="md" nowrap>const M2 &amp;&nbsp;</td>
293          <td class="mdname" nowrap> <em>m2</em></td>
294        </tr>
295        <tr>
296          <td></td>
297          <td class="md">)&nbsp;</td>
298          <td class="md" colspan="2"></td>
299        </tr>
300      </table>
301    </td>
302  </tr>
303</table>
304<table summary="" cellspacing=5 cellpadding=0 border=0>
305  <tr>
306    <td>
307      &nbsp;
308    </td>
309    <td>
310
311<p>
312hermitian rank k update: <em>m1</em> = <em>t</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m2<sup>H</sup></em>)
313</p>
314<dl compact><dt><b>Todo:</b></dt><dd>use opb_prod()</dd></dl>
315    </td>
316  </tr>
317</table>
318<a class="anchor" name="ga5" doxytag="boost::numeric::ublas::blas_3::sr2k" ></a>
319<table summary="" class="mdTable" width="100%" cellpadding="2" cellspacing="0">
320  <tr>
321    <td class="mdRow">
322      <table summary="" cellpadding="0" cellspacing="0" border="0">
323        <tr>
324          <td class="md" nowrap valign="top"> M1&amp; sr2k           </td>
325          <td class="md" valign="top">(&nbsp;</td>
326          <td class="md" nowrap valign="top">M1 &amp;&nbsp;</td>
327          <td class="mdname" nowrap> <em>m1</em>, </td>
328        </tr>
329        <tr>
330          <td class="md" nowrap align="right"></td>
331          <td></td>
332          <td class="md" nowrap>const T1 &amp;&nbsp;</td>
333          <td class="mdname" nowrap> <em>t1</em>, </td>
334        </tr>
335        <tr>
336          <td class="md" nowrap align="right"></td>
337          <td></td>
338          <td class="md" nowrap>const T2 &amp;&nbsp;</td>
339          <td class="mdname" nowrap> <em>t2</em>, </td>
340        </tr>
341        <tr>
342          <td class="md" nowrap align="right"></td>
343          <td></td>
344          <td class="md" nowrap>const M2 &amp;&nbsp;</td>
345          <td class="mdname" nowrap> <em>m2</em>, </td>
346        </tr>
347        <tr>
348          <td class="md" nowrap align="right"></td>
349          <td></td>
350          <td class="md" nowrap>const M3 &amp;&nbsp;</td>
351          <td class="mdname" nowrap> <em>m3</em></td>
352        </tr>
353        <tr>
354          <td></td>
355          <td class="md">)&nbsp;</td>
356          <td class="md" colspan="2"></td>
357        </tr>
358      </table>
359    </td>
360  </tr>
361</table>
362<table summary="" cellspacing=5 cellpadding=0 border=0>
363  <tr>
364    <td>
365      &nbsp;
366    </td>
367    <td>
368
369<p>
370generalized symmetric rank k update: <em>m1</em> = <em>t1</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m3<sup>T</sup></em>) + <em>t2</em> * (<em>m3</em> * <em>m2<sup>T</sup></em>)
371</p>
372<dl compact><dt><b>Todo:</b></dt><dd>use opb_prod()</dd></dl>
373    </td>
374  </tr>
375</table>
376<a class="anchor" name="ga6" doxytag="boost::numeric::ublas::blas_3::hr2k" ></a>
377<table summary="" class="mdTable" width="100%" cellpadding="2" cellspacing="0">
378  <tr>
379    <td class="mdRow">
380      <table summary="" cellpadding="0" cellspacing="0" border="0">
381        <tr>
382          <td class="md" nowrap valign="top"> M1&amp; hr2k           </td>
383          <td class="md" valign="top">(&nbsp;</td>
384          <td class="md" nowrap valign="top">M1 &amp;&nbsp;</td>
385          <td class="mdname" nowrap> <em>m1</em>, </td>
386        </tr>
387        <tr>
388          <td class="md" nowrap align="right"></td>
389          <td></td>
390          <td class="md" nowrap>const T1 &amp;&nbsp;</td>
391          <td class="mdname" nowrap> <em>t1</em>, </td>
392        </tr>
393        <tr>
394          <td class="md" nowrap align="right"></td>
395          <td></td>
396          <td class="md" nowrap>const T2 &amp;&nbsp;</td>
397          <td class="mdname" nowrap> <em>t2</em>, </td>
398        </tr>
399        <tr>
400          <td class="md" nowrap align="right"></td>
401          <td></td>
402          <td class="md" nowrap>const M2 &amp;&nbsp;</td>
403          <td class="mdname" nowrap> <em>m2</em>, </td>
404        </tr>
405        <tr>
406          <td class="md" nowrap align="right"></td>
407          <td></td>
408          <td class="md" nowrap>const M3 &amp;&nbsp;</td>
409          <td class="mdname" nowrap> <em>m3</em></td>
410        </tr>
411        <tr>
412          <td></td>
413          <td class="md">)&nbsp;</td>
414          <td class="md" colspan="2"></td>
415        </tr>
416      </table>
417    </td>
418  </tr>
419</table>
420<table summary="" cellspacing=5 cellpadding=0 border=0>
421  <tr>
422    <td>
423      &nbsp;
424    </td>
425    <td>
426
427<p>
428generalized hermitian rank k update: <em>m1</em> = <em>t1</em> * <em>m1</em> + <em>t2</em> * (<em>m2</em> * <em>m3<sup>H</sup></em>) + (<em>m3</em> * (<em>t2</em> * <em>m2</em>)<sup>H</sup>)
429</p>
430<dl compact><dt><b>Todo:</b></dt><dd>use opb_prod()</dd></dl>
431    </td>
432  </tr>
433</table>
434
435
436
437<hr />
438<p>Copyright (&copy;) 2000-2004 Michael Stevens, Mathias Koch,
439Joerg Walter, Gunter Winkler<br />
440Use, modification and distribution are subject to the
441Boost Software License, Version 1.0.
442(See accompanying file LICENSE_1_0.txt
443or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
444http://www.boost.org/LICENSE_1_0.txt</a>).
445</p>
446<script type="text/javascript">
447(function($) {
448    $('#toc').toc();
449})(jQuery);
450</script>
451</body>
452</html>
453