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<class M1, class T, class M2, class M3> M1 & </td><td class="memItemRight" valign=bottom><a class="el" href="#ga0">boost::numeric::ublas::blas_3::tmm</a> (M1 &m1, const T &t, const M2 &m2, const M3 &m3)</td></tr> 26 27<tr><td class="mdescLeft"> </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<class M1, class T, class M2, class C> M1 & </td><td class="memItemRight" valign=bottom><a class="el" href="#ga1">boost::numeric::ublas::blas_3::tsm</a> (M1 &m1, const T &t, const M2 &m2, C)</td></tr> 29 30<tr><td class="mdescLeft"> </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<class M1, class T1, class T2, class M2, class M3> M1 & </td><td class="memItemRight" valign=bottom><a class="el" href="#ga2">boost::numeric::ublas::blas_3::gmm</a> (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2, const M3 &m3)</td></tr> 32 33<tr><td class="mdescLeft"> </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<class M1, class T1, class T2, class M2> M1 & </td><td class="memItemRight" valign=bottom><a class="el" href="#ga3">boost::numeric::ublas::blas_3::srk</a> (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2)</td></tr> 35 36<tr><td class="mdescLeft"> </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<class M1, class T1, class T2, class M2> M1 & </td><td class="memItemRight" valign=bottom><a class="el" href="#ga4">boost::numeric::ublas::blas_3::hrk</a> (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2)</td></tr> 38 39<tr><td class="mdescLeft"> </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<class M1, class T1, class T2, class M2, class M3> M1 & </td><td class="memItemRight" valign=bottom><a class="el" href="#ga5">boost::numeric::ublas::blas_3::sr2k</a> (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2, const M3 &m3)</td></tr> 41 42<tr><td class="mdescLeft"> </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<class M1, class T1, class T2, class M2, class M3> M1 & </td><td class="memItemRight" valign=bottom><a class="el" href="#ga6">boost::numeric::ublas::blas_3::hr2k</a> (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2, const M3 &m3)</td></tr> 44 45<tr><td class="mdescLeft"> </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<class M, class E1, class E2> BOOST_UBLAS_INLINE M & </td><td class="memItemRight" valign=bottom><a class="el" href="products.html#ga7">boost::numeric::ublas::axpy_prod</a> (const matrix_expression< E1 > &e1, const matrix_expression< E2 > &e2, M &m, bool init=true)</td></tr> 47 48<tr><td class="mdescLeft"> </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<class M, class E1, class E2> BOOST_UBLAS_INLINE M & </td><td class="memItemRight" valign=bottom><a class="el" href="products.html#ga8">boost::numeric::ublas::opb_prod</a> (const matrix_expression< E1 > &e1, const matrix_expression< E2 > &e2, M &m, bool init=true)</td></tr> 50 51<tr><td class="mdescLeft"> </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& tmm </td> 65 <td class="md" valign="top">( </td> 66 <td class="md" nowrap valign="top">M1 & </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 & </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 & </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 & </td> 85 <td class="mdname" nowrap> <em>m3</em></td> 86 </tr> 87 <tr> 88 <td></td> 89 <td class="md">) </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 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& tsm </td> 113 <td class="md" valign="top">( </td> 114 <td class="md" nowrap valign="top">M1 & </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 & </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 & </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 </td> 133 <td class="mdname" nowrap></td> 134 </tr> 135 <tr> 136 <td></td> 137 <td class="md">) </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 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& gmm </td> 164 <td class="md" valign="top">( </td> 165 <td class="md" nowrap valign="top">M1 & </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 & </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 & </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 & </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 & </td> 190 <td class="mdname" nowrap> <em>m3</em></td> 191 </tr> 192 <tr> 193 <td></td> 194 <td class="md">) </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 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& srk </td> 221 <td class="md" valign="top">( </td> 222 <td class="md" nowrap valign="top">M1 & </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 & </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 & </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 & </td> 241 <td class="mdname" nowrap> <em>m2</em></td> 242 </tr> 243 <tr> 244 <td></td> 245 <td class="md">) </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 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& hrk </td> 273 <td class="md" valign="top">( </td> 274 <td class="md" nowrap valign="top">M1 & </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 & </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 & </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 & </td> 293 <td class="mdname" nowrap> <em>m2</em></td> 294 </tr> 295 <tr> 296 <td></td> 297 <td class="md">) </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 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& sr2k </td> 325 <td class="md" valign="top">( </td> 326 <td class="md" nowrap valign="top">M1 & </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 & </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 & </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 & </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 & </td> 351 <td class="mdname" nowrap> <em>m3</em></td> 352 </tr> 353 <tr> 354 <td></td> 355 <td class="md">) </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 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& hr2k </td> 383 <td class="md" valign="top">( </td> 384 <td class="md" nowrap valign="top">M1 & </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 & </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 & </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 & </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 & </td> 409 <td class="mdname" nowrap> <em>m3</em></td> 410 </tr> 411 <tr> 412 <td></td> 413 <td class="md">) </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 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 (©) 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