Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / numeric / ublas / doc / products.html
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>
100 computes <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>
111 Up 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>
162 computes <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>
173 Up 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>
223 computes <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>
234 Up 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>
285 computes <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>
296 This 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, 
304 Joerg 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>