• 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>Special Products</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<h1><img src="../../../../boost.png" align="middle" />Special Products </h1>
17<div class="toc" id="toc"></div>
18
19<h2>Functions</h2>
20
21<table summary="" border=0 cellpadding=0 cellspacing=0>
22<tr>
23<td class="memItemLeft" nowrap align=right valign=top>template&lt;class V, class E1, class E2&gt; BOOST_UBLAS_INLINE V &amp;&nbsp;</td>
24<td class="memItemRight" valign=bottom><a class="el" href="#ga8">axpy_prod</a> (const matrix_expression&lt; E1 &gt; &amp;e1, const vector_expression&lt; E2 &gt; &amp;e2, V &amp;v, bool init=true)</td></tr>
25
26<tr>
27<td class="mdescLeft">&nbsp;</td>
28<td class="mdescRight">computes <code>v += A x</code> or <code>v = A x</code> in an optimized fashion.  <a href="#ga8"></a><br /><br /></td></tr>
29<tr>
30<td class="memItemLeft" nowrap align=right valign=top>template&lt;class V, class E1, class E2&gt; BOOST_UBLAS_INLINE V &amp;&nbsp;</td>
31<td class="memItemRight" valign=bottom><a class="el" href="#ga9">axpy_prod</a> (const vector_expression&lt; E1 &gt; &amp;e1, const matrix_expression&lt; E2 &gt; &amp;e2, V &amp;v, bool init=true)</td></tr>
32
33<tr>
34<td class="mdescLeft">&nbsp;</td>
35<td class="mdescRight">computes <code>v += A<sup>T</sup> x</code> or <code>v = A<sup>T</sup> x</code> in an optimized fashion.  <a href="#ga9"></a><br /><br /></td></tr>
36<tr>
37<td class="memItemLeft" nowrap align=right valign=top>template&lt;class M, class E1, class E2&gt; BOOST_UBLAS_INLINE M &amp;&nbsp;</td>
38<td class="memItemRight" valign=bottom><a class="el" href="#ga7">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>
39
40<tr>
41<td class="mdescLeft">&nbsp;</td>
42<td class="mdescRight">computes <code>M += A X</code> or <code>M = A X</code> in an optimized fashion.  <a href="#ga7"></a><br /><br /></td></tr>
43<tr>
44<td class="memItemLeft" nowrap align=right valign=top>template&lt;class M, class E1, class E2&gt; BOOST_UBLAS_INLINE M &amp;&nbsp;</td>
45<td class="memItemRight" valign=bottom><a class="el" href="#ga6">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>
46
47<tr>
48<td class="mdescLeft">&nbsp;</td>
49<td class="mdescRight">computes <code>M += A X</code> or <code>M = A X</code> in an optimized fashion.  <a href="#ga6"></a><br /><br /></td></tr>
50</table>
51
52<hr />
53
54<a class="anchor" name="ga8" doxytag="boost::numeric::ublas::axpy_prod" ></a>
55<table summary="" class="mdTable" width="95%" cellpadding="2" cellspacing="0">
56  <tr>
57    <td class="mdRow">
58      <table summary="" cellpadding="0" cellspacing="0" border="0">
59        <tr>
60          <td class="md" nowrap valign="top"> BOOST_UBLAS_INLINE V&amp; axpy_prod           </td>
61          <td class="md" valign="top">(&nbsp;</td>
62          <td class="md" nowrap valign="top">const matrix_expression&lt; E1 &gt; &amp;&nbsp;</td>
63          <td class="mdname" nowrap> <em>e1</em>, </td>
64        </tr>
65        <tr>
66          <td class="md" nowrap align="right"></td>
67          <td></td>
68          <td class="md" nowrap>const vector_expression&lt; E2 &gt; &amp;&nbsp;</td>
69          <td class="mdname" nowrap> <em>e2</em>, </td>
70        </tr>
71        <tr>
72          <td class="md" nowrap align="right"></td>
73          <td></td>
74          <td class="md" nowrap>V &amp;&nbsp;</td>
75          <td class="mdname" nowrap> <em>v</em>, </td>
76        </tr>
77        <tr>
78          <td class="md" nowrap align="right"></td>
79          <td></td>
80          <td class="md" nowrap>bool&nbsp;</td>
81          <td class="mdname" nowrap> <em>init</em> = <code>true</code></td>
82        </tr>
83        <tr>
84          <td></td>
85          <td class="md">)&nbsp;</td>
86          <td class="md" colspan="2"></td>
87        </tr>
88      </table>
89    </td>
90  </tr>
91</table>
92<table summary="" cellspacing=5 cellpadding=0 border=0>
93  <tr>
94    <td>
95      &nbsp;
96    </td>
97    <td>
98
99<p>
100computes <code>v += A x</code> or <code>v = A x</code> in an optimized fashion.
101</p>
102<dl compact><dt><b>Parameters:</b></dt><dd>
103  <table summary="" border="0" cellspacing="2" cellpadding="0">
104    <tr><td></td><td valign=top><em>e1</em>&nbsp;</td><td>the matrix expression <code>A</code> </td></tr>
105    <tr><td></td><td valign=top><em>e2</em>&nbsp;</td><td>the vector expression <code>x</code> </td></tr>
106    <tr><td></td><td valign=top><em>v</em>&nbsp;</td><td>the result vector <code>v</code> </td></tr>
107    <tr><td></td><td valign=top><em>init</em>&nbsp;</td><td>a boolean parameter</td></tr>
108  </table>
109</dl>
110<code>axpy_prod(A, x, v, init)</code> implements the well known axpy-product. Setting <em>init</em> to <code>true</code> is equivalent to call <code>v.clear()</code> before <code>axpy_prod</code>. Currently <em>init</em> defaults to <code>true</code>, but this may change in the future.<p>
111Up to now there are some specialisation for compressed matrices that give a large speed up compared to prod.    </td>
112  </tr>
113</table>
114
115
116<a class="anchor" name="ga9" doxytag="boost::numeric::ublas::axpy_prod" ></a>
117<table summary="" class="mdTable" width="95%" cellpadding="2" cellspacing="0">
118  <tr>
119    <td class="mdRow">
120      <table summary="" cellpadding="0" cellspacing="0" border="0">
121        <tr>
122          <td class="md" nowrap valign="top"> BOOST_UBLAS_INLINE V&amp; axpy_prod           </td>
123          <td class="md" valign="top">(&nbsp;</td>
124          <td class="md" nowrap valign="top">const vector_expression&lt; E1 &gt; &amp;&nbsp;</td>
125          <td class="mdname" nowrap> <em>e1</em>, </td>
126        </tr>
127        <tr>
128          <td class="md" nowrap align="right"></td>
129          <td></td>
130          <td class="md" nowrap>const matrix_expression&lt; E2 &gt; &amp;&nbsp;</td>
131          <td class="mdname" nowrap> <em>e2</em>, </td>
132        </tr>
133        <tr>
134          <td class="md" nowrap align="right"></td>
135          <td></td>
136          <td class="md" nowrap>V &amp;&nbsp;</td>
137          <td class="mdname" nowrap> <em>v</em>, </td>
138        </tr>
139        <tr>
140          <td class="md" nowrap align="right"></td>
141          <td></td>
142          <td class="md" nowrap>bool&nbsp;</td>
143          <td class="mdname" nowrap> <em>init</em> = <code>true</code></td>
144        </tr>
145        <tr>
146          <td></td>
147          <td class="md">)&nbsp;</td>
148          <td class="md" colspan="2"></td>
149        </tr>
150      </table>
151    </td>
152  </tr>
153</table>
154<table summary="" cellspacing=5 cellpadding=0 border=0>
155  <tr>
156    <td>
157      &nbsp;
158    </td>
159    <td>
160
161<p>
162computes <code>v += A<sup>T</sup> x</code> or <code>v = A<sup>T</sup> x</code> in an optimized fashion.
163</p>
164<dl compact><dt><b>Parameters:</b></dt><dd>
165  <table summary="" border="0" cellspacing="2" cellpadding="0">
166    <tr><td></td><td valign=top><em>e1</em>&nbsp;</td><td>the vector expression <code>x</code> </td></tr>
167    <tr><td></td><td valign=top><em>e2</em>&nbsp;</td><td>the matrix expression <code>A</code> </td></tr>
168    <tr><td></td><td valign=top><em>v</em>&nbsp;</td><td>the result vector <code>v</code> </td></tr>
169    <tr><td></td><td valign=top><em>init</em>&nbsp;</td><td>a boolean parameter</td></tr>
170  </table>
171</dl>
172<code>axpy_prod(x, A, v, init)</code> implements the well known axpy-product. Setting <em>init</em> to <code>true</code> is equivalent to call <code>v.clear()</code> before <code>axpy_prod</code>. Currently <em>init</em> defaults to <code>true</code>, but this may change in the future.<p>
173Up to now there are some specialisation for compressed matrices that give a large speed up compared to prod.    </td>
174  </tr>
175</table>
176
177<a class="anchor" name="ga7" doxytag="boost::numeric::ublas::axpy_prod" ></a>
178<table summary="" class="mdTable" width="95%" cellpadding="2" cellspacing="0">
179  <tr>
180    <td class="mdRow">
181      <table summary="" cellpadding="0" cellspacing="0" border="0">
182        <tr>
183          <td class="md" nowrap valign="top"> BOOST_UBLAS_INLINE M&amp; axpy_prod           </td>
184          <td class="md" valign="top">(&nbsp;</td>
185          <td class="md" nowrap valign="top">const matrix_expression&lt; E1 &gt; &amp;&nbsp;</td>
186          <td class="mdname" nowrap> <em>e1</em>, </td>
187        </tr>
188        <tr>
189          <td class="md" nowrap align="right"></td>
190          <td></td>
191          <td class="md" nowrap>const matrix_expression&lt; E2 &gt; &amp;&nbsp;</td>
192          <td class="mdname" nowrap> <em>e2</em>, </td>
193        </tr>
194        <tr>
195          <td class="md" nowrap align="right"></td>
196          <td></td>
197          <td class="md" nowrap>M &amp;&nbsp;</td>
198          <td class="mdname" nowrap> <em>m</em>, </td>
199        </tr>
200        <tr>
201          <td class="md" nowrap align="right"></td>
202          <td></td>
203          <td class="md" nowrap>bool&nbsp;</td>
204          <td class="mdname" nowrap> <em>init</em> = <code>true</code></td>
205        </tr>
206        <tr>
207          <td></td>
208          <td class="md">)&nbsp;</td>
209          <td class="md" colspan="2"></td>
210        </tr>
211      </table>
212    </td>
213  </tr>
214</table>
215<table summary="" cellspacing=5 cellpadding=0 border=0>
216  <tr>
217    <td>
218      &nbsp;
219    </td>
220    <td>
221
222<p>
223computes <code>M += A X</code> or <code>M = A X</code> in an optimized fashion.
224</p>
225<dl compact><dt><b>Parameters:</b></dt><dd>
226  <table summary="" border="0" cellspacing="2" cellpadding="0">
227    <tr><td></td><td valign=top><em>e1</em>&nbsp;</td><td>the matrix expression <code>A</code> </td></tr>
228    <tr><td></td><td valign=top><em>e2</em>&nbsp;</td><td>the matrix expression <code>X</code> </td></tr>
229    <tr><td></td><td valign=top><em>m</em>&nbsp;</td><td>the result matrix <code>M</code> </td></tr>
230    <tr><td></td><td valign=top><em>init</em>&nbsp;</td><td>a boolean parameter</td></tr>
231  </table>
232</dl>
233<code>axpy_prod(A, X, M, init)</code> implements the well known axpy-product. Setting <em>init</em> to <code>true</code> is equivalent to call <code>M.clear()</code> before <code>axpy_prod</code>. Currently <em>init</em> defaults to <code>true</code>, but this may change in the future.<p>
234Up to now there are no specialisations.    </td>
235  </tr>
236</table>
237
238<a class="anchor" name="ga6" doxytag="boost::numeric::ublas::opb_prod" ></a>
239
240<table summary="" class="mdTable" width="95%" cellpadding="2" cellspacing="0">
241  <tr>
242    <td class="mdRow">
243      <table summary="" cellpadding="0" cellspacing="0" border="0">
244        <tr>
245          <td class="md" nowrap valign="top"> BOOST_UBLAS_INLINE M&amp; opb_prod           </td>
246          <td class="md" valign="top">(&nbsp;</td>
247          <td class="md" nowrap valign="top">const matrix_expression&lt; E1 &gt; &amp;&nbsp;</td>
248          <td class="mdname" nowrap> <em>e1</em>, </td>
249        </tr>
250        <tr>
251          <td class="md" nowrap align="right"></td>
252          <td></td>
253          <td class="md" nowrap>const matrix_expression&lt; E2 &gt; &amp;&nbsp;</td>
254          <td class="mdname" nowrap> <em>e2</em>, </td>
255        </tr>
256        <tr>
257          <td class="md" nowrap align="right"></td>
258          <td></td>
259          <td class="md" nowrap>M &amp;&nbsp;</td>
260          <td class="mdname" nowrap> <em>m</em>, </td>
261        </tr>
262        <tr>
263          <td class="md" nowrap align="right"></td>
264          <td></td>
265          <td class="md" nowrap>bool&nbsp;</td>
266          <td class="mdname" nowrap> <em>init</em> = <code>true</code></td>
267        </tr>
268        <tr>
269          <td></td>
270          <td class="md">)&nbsp;</td>
271          <td class="md" colspan="2"></td>
272        </tr>
273      </table>
274    </td>
275  </tr>
276</table>
277<table summary="" cellspacing=5 cellpadding=0 border=0>
278  <tr>
279    <td>
280      &nbsp;
281    </td>
282    <td>
283
284<p>
285computes <code>M += A X</code> or <code>M = A X</code> in an optimized fashion.
286</p>
287<dl compact><dt><b>Parameters:</b></dt><dd>
288  <table summary="" border="0" cellspacing="2" cellpadding="0">
289    <tr><td></td><td valign=top><em>e1</em>&nbsp;</td><td>the matrix expression <code>A</code> </td></tr>
290    <tr><td></td><td valign=top><em>e2</em>&nbsp;</td><td>the matrix expression <code>X</code> </td></tr>
291    <tr><td></td><td valign=top><em>m</em>&nbsp;</td><td>the result matrix <code>M</code> </td></tr>
292    <tr><td></td><td valign=top><em>init</em>&nbsp;</td><td>a boolean parameter</td></tr>
293  </table>
294</dl>
295<code>opb_prod(A, X, M, init)</code> implements the well known axpy-product. Setting <em>init</em> to <code>true</code> is equivalent to call <code>M.clear()</code> before <code>opb_prod</code>. Currently <em>init</em> defaults to <code>true</code>, but this may change in the future.<p>
296This function may give a speedup if <code>A</code> has less columns than rows, because the product is computed as a sum of outer products.    </td>
297  </tr>
298</table>
299
300
301
302<hr />
303<p>Copyright (&copy;) 2000-2004 Michael Stevens, Mathias Koch,
304Joerg Walter, Gunter Winkler<br />
305   Use, modification and distribution are subject to the
306   Boost Software License, Version 1.0.
307   (See accompanying file LICENSE_1_0.txt
308   or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
309      http://www.boost.org/LICENSE_1_0.txt
310   </a>).
311</p>
312<script type="text/javascript">
313(function($) {
314    $('#toc').toc();
315})(jQuery);
316</script>
317</body>
318</html>
319