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<class V, class E1, class E2> BOOST_UBLAS_INLINE V & </td> 24<td class="memItemRight" valign=bottom><a class="el" href="#ga8">axpy_prod</a> (const matrix_expression< E1 > &e1, const vector_expression< E2 > &e2, V &v, bool init=true)</td></tr> 25 26<tr> 27<td class="mdescLeft"> </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<class V, class E1, class E2> BOOST_UBLAS_INLINE V & </td> 31<td class="memItemRight" valign=bottom><a class="el" href="#ga9">axpy_prod</a> (const vector_expression< E1 > &e1, const matrix_expression< E2 > &e2, V &v, bool init=true)</td></tr> 32 33<tr> 34<td class="mdescLeft"> </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<class M, class E1, class E2> BOOST_UBLAS_INLINE M & </td> 38<td class="memItemRight" valign=bottom><a class="el" href="#ga7">axpy_prod</a> (const matrix_expression< E1 > &e1, const matrix_expression< E2 > &e2, M &m, bool init=true)</td></tr> 39 40<tr> 41<td class="mdescLeft"> </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<class M, class E1, class E2> BOOST_UBLAS_INLINE M & </td> 45<td class="memItemRight" valign=bottom><a class="el" href="#ga6">opb_prod</a> (const matrix_expression< E1 > &e1, const matrix_expression< E2 > &e2, M &m, bool init=true)</td></tr> 46 47<tr> 48<td class="mdescLeft"> </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& axpy_prod </td> 61 <td class="md" valign="top">( </td> 62 <td class="md" nowrap valign="top">const matrix_expression< E1 > & </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< E2 > & </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 & </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 </td> 81 <td class="mdname" nowrap> <em>init</em> = <code>true</code></td> 82 </tr> 83 <tr> 84 <td></td> 85 <td class="md">) </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 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> </td><td>the matrix expression <code>A</code> </td></tr> 105 <tr><td></td><td valign=top><em>e2</em> </td><td>the vector expression <code>x</code> </td></tr> 106 <tr><td></td><td valign=top><em>v</em> </td><td>the result vector <code>v</code> </td></tr> 107 <tr><td></td><td valign=top><em>init</em> </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& axpy_prod </td> 123 <td class="md" valign="top">( </td> 124 <td class="md" nowrap valign="top">const vector_expression< E1 > & </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< E2 > & </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 & </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 </td> 143 <td class="mdname" nowrap> <em>init</em> = <code>true</code></td> 144 </tr> 145 <tr> 146 <td></td> 147 <td class="md">) </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 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> </td><td>the vector expression <code>x</code> </td></tr> 167 <tr><td></td><td valign=top><em>e2</em> </td><td>the matrix expression <code>A</code> </td></tr> 168 <tr><td></td><td valign=top><em>v</em> </td><td>the result vector <code>v</code> </td></tr> 169 <tr><td></td><td valign=top><em>init</em> </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& axpy_prod </td> 184 <td class="md" valign="top">( </td> 185 <td class="md" nowrap valign="top">const matrix_expression< E1 > & </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< E2 > & </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 & </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 </td> 204 <td class="mdname" nowrap> <em>init</em> = <code>true</code></td> 205 </tr> 206 <tr> 207 <td></td> 208 <td class="md">) </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 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> </td><td>the matrix expression <code>A</code> </td></tr> 228 <tr><td></td><td valign=top><em>e2</em> </td><td>the matrix expression <code>X</code> </td></tr> 229 <tr><td></td><td valign=top><em>m</em> </td><td>the result matrix <code>M</code> </td></tr> 230 <tr><td></td><td valign=top><em>init</em> </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& opb_prod </td> 246 <td class="md" valign="top">( </td> 247 <td class="md" nowrap valign="top">const matrix_expression< E1 > & </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< E2 > & </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 & </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 </td> 266 <td class="mdname" nowrap> <em>init</em> = <code>true</code></td> 267 </tr> 268 <tr> 269 <td></td> 270 <td class="md">) </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 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> </td><td>the matrix expression <code>A</code> </td></tr> 290 <tr><td></td><td valign=top><em>e2</em> </td><td>the matrix expression <code>X</code> </td></tr> 291 <tr><td></td><td valign=top><em>m</em> </td><td>the result matrix <code>M</code> </td></tr> 292 <tr><td></td><td valign=top><em>init</em> </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 (©) 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