<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>linbox: BlasMatrixDomain< Field > Class Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <script type="text/javascript"> function hasClass(ele,cls) { return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')); } function addClass(ele,cls) { if (!this.hasClass(ele,cls)) ele.className += " "+cls; } function removeClass(ele,cls) { if (hasClass(ele,cls)) { var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)'); ele.className=ele.className.replace(reg,' '); } } function toggleVisibility(linkObj) { var base = linkObj.getAttribute('id'); var summary = document.getElementById(base + '-summary'); var content = document.getElementById(base + '-content'); var trigger = document.getElementById(base + '-trigger'); if ( hasClass(linkObj,'closed') ) { summary.style.display = 'none'; content.style.display = 'block'; trigger.src = 'open.png'; removeClass(linkObj,'closed'); addClass(linkObj,'opened'); } else if ( hasClass(linkObj,'opened') ) { summary.style.display = 'block'; content.style.display = 'none'; trigger.src = 'closed.png'; removeClass(linkObj,'opened'); addClass(linkObj,'closed'); } return false; } </script> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">linbox</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespace_lin_box.html">LinBox</a> </li> <li class="navelem"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html">BlasMatrixDomain</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <div class="title">BlasMatrixDomain< Field > Class Template Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="LinBox::BlasMatrixDomain" --> <p>Interface for all functionnalities provided for <a class="el" href="class_lin_box_1_1_blas_matrix.html" title="BlasMatrix.">BlasMatrix</a>. <a href="class_lin_box_1_1_blas_matrix_domain.html#details">More...</a></p> <p><code>#include <blas-domain.h></code></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa433e262bd590a531bff21daac7a4ebe"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::BlasMatrixDomain" ref="aa433e262bd590a531bff21daac7a4ebe" args="(const Field &F)" -->  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#aa433e262bd590a531bff21daac7a4ebe">BlasMatrixDomain</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &F)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor of BlasDomain. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5d91052ec593847340e1002ee756909"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::BlasMatrixDomain" ref="ac5d91052ec593847340e1002ee756909" args="(const BlasMatrixDomain< Field > &BMD)" -->  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ac5d91052ec593847340e1002ee756909">BlasMatrixDomain</a> (const <a class="el" href="class_lin_box_1_1_blas_matrix_domain.html">BlasMatrixDomain</a>< <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> > &BMD)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66be394bace6f92c18729a119581d7bd"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::field" ref="a66be394bace6f92c18729a119581d7bd" args="() const " --> const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a66be394bace6f92c18729a119581d7bd">field</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Field accessor. <br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#aaeb9133641f430a745a9dc0f6b8a0964">mul</a> (Operand1 &C, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">multiplication. <a href="#aaeb9133641f430a745a9dc0f6b8a0964"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a8a778939495b0d208fff3668a60ab24c">add</a> (Operand1 &C, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">addition. <a href="#a8a778939495b0d208fff3668a60ab24c"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a15eaf9401e8c7b6a29aa276fd85f47af">copy</a> (Operand1 &B, const Operand2 &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">copy. <a href="#a15eaf9401e8c7b6a29aa276fd85f47af"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="af6a361b9493d05d472f82e967998bad3"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::sub" ref="af6a361b9493d05d472f82e967998bad3" args="(Operand1 &C, const Operand2 &A, const Operand3 &B) const " --> template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#af6a361b9493d05d472f82e967998bad3">sub</a> (Operand1 &C, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">substraction C = A-B <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ad2fe03a07195ba9a434fe60e3ce5bee0"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::subin" ref="ad2fe03a07195ba9a434fe60e3ce5bee0" args="(Operand1 &C, const Operand3 &B) const " --> template<class Operand1 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ad2fe03a07195ba9a434fe60e3ce5bee0">subin</a> (Operand1 &C, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">substraction (in place) C -= B <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="af7b288fa2825cb2e9e9e78dc8fb0e444"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::addin" ref="af7b288fa2825cb2e9e9e78dc8fb0e444" args="(Operand1 &C, const Operand3 &B) const " --> template<class Operand1 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#af7b288fa2825cb2e9e9e78dc8fb0e444">addin</a> (Operand1 &C, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">addition (in place) C += B <br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a95ca32e241364e9673aa9e756681009f">mul</a> (Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">multiplication with scaling. <a href="#a95ca32e241364e9673aa9e756681009f"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a89fea0e0d4e0d9ef601a2d164da7d79e">mulin_left</a> (Operand1 &A, const Operand2 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">In place multiplication. <a href="#a89fea0e0d4e0d9ef601a2d164da7d79e"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand2 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a50d681f2d52c4497df113e1e3e8b5348">mulin_right</a> (const Operand1 &A, Operand2 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">In place multiplication. <a href="#a50d681f2d52c4497df113e1e3e8b5348"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a38a793731dd70968984d903c4116f0f7">axpy</a> (Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">axpy. <a href="#a38a793731dd70968984d903c4116f0f7"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a29ca57df5326a4c4d04951e531672732">axpyin</a> (Operand1 &C, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">axpyin. <a href="#a29ca57df5326a4c4d04951e531672732"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#af8795c19e5b8785b7056936d6a81250b">maxpy</a> (Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">maxpy. <a href="#af8795c19e5b8785b7056936d6a81250b"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ad0a95abebe2d1532bb3d0a27110466a4">maxpyin</a> (Operand1 &C, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">maxpyin. <a href="#ad0a95abebe2d1532bb3d0a27110466a4"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a5f9c4e9eaac7d0872c0b5befeffac924">axmy</a> (Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">axmy. <a href="#a5f9c4e9eaac7d0872c0b5befeffac924"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a52f1e26e7752af9833d464d05c9941ff">axmyin</a> (Operand1 &C, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">axmyin. <a href="#a52f1e26e7752af9833d464d05c9941ff"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#aba6f252adf754b283ebe61af978fbbdd">muladd</a> (Operand1 &D, const Element &beta, const Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">general matrix-matrix multiplication and addition with scaling. <a href="#aba6f252adf754b283ebe61af978fbbdd"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand1 , class Operand2 , class Operand3 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand1 & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ac44f4a8481b03684d5a3b02156667db4">muladdin</a> (const Element &beta, Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">muladdin. <a href="#ac44f4a8481b03684d5a3b02156667db4"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">std::ostream & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a5b99c92431944aa37d31f71cfa40b4d5">write</a> (std::ostream &os, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print matrix. <a href="#a5b99c92431944aa37d31f71cfa40b4d5"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">std::istream & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#af191b114ae4a53e261c609207be9a561">read</a> (std::istream &is, <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read matrix. <a href="#af191b114ae4a53e261c609207be9a561"></a><br/></td></tr> <tr><td colspan="2"><div class="groupHeader">Solutions available for matrix respecting BlasMatrix interface</div></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ac83a4f86cfd27459dfa47ce1f565cf0a"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::inv" ref="ac83a4f86cfd27459dfa47ce1f565cf0a" args="(Matrix &Ainv, const Matrix &A) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ac83a4f86cfd27459dfa47ce1f565cf0a">inv</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &Ainv, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Inversion. <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a4ffdc37fa1b51b678885513d537e2c2f"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::invin" ref="a4ffdc37fa1b51b678885513d537e2c2f" args="(Matrix &Ainv, Matrix &A) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a4ffdc37fa1b51b678885513d537e2c2f">invin</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &Ainv, <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Inversion (in place) <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aa272de16b0e7d37cd7b7ba7c8283dd48"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::invin" ref="aa272de16b0e7d37cd7b7ba7c8283dd48" args="(Matrix &A) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#aa272de16b0e7d37cd7b7ba7c8283dd48">invin</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Inversion (the matrix A is modified) <br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a51ca7ddd30d19ae01934ee7383700db6">div</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &C, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Division. <a href="#a51ca7ddd30d19ae01934ee7383700db6"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a05a33cc8c5672a0e5a846dd7def1445a"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::inv" ref="a05a33cc8c5672a0e5a846dd7def1445a" args="(Matrix &Ainv, const Matrix &A, int &nullity) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a05a33cc8c5672a0e5a846dd7def1445a">inv</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &Ainv, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A, int &nullity) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Inversion w singular check. <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a5813c0afe866f1a39bd30b101ff0f556"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::invin" ref="a5813c0afe866f1a39bd30b101ff0f556" args="(Matrix &Ainv, Matrix &A, int &nullity) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a5813c0afe866f1a39bd30b101ff0f556">invin</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &Ainv, <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A, int &nullity) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Inversion (the matrix A is modified) w singular check. <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aed33fc7f72798ea5ef72ce436b22de61"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::rank" ref="aed33fc7f72798ea5ef72ce436b22de61" args="(const Matrix &A) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">unsigned int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#aed33fc7f72798ea5ef72ce436b22de61">rank</a> (const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Rank. <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a6179c7803a9d9cf7562a97c7ad6ac5a9"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::rankin" ref="a6179c7803a9d9cf7562a97c7ad6ac5a9" args="(Matrix &A) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">unsigned int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a6179c7803a9d9cf7562a97c7ad6ac5a9">rankin</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">in-place Rank (the matrix is modified) <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a26ce42685f178c36b1011d4caa739534"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::det" ref="a26ce42685f178c36b1011d4caa739534" args="(const Matrix &A) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Element </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a26ce42685f178c36b1011d4caa739534">det</a> (const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">determinant <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a460e28abcea9843cbb3169a1326afd7e"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::detin" ref="a460e28abcea9843cbb3169a1326afd7e" args="(Matrix &A) const " --> template<class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Element </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a460e28abcea9843cbb3169a1326afd7e">detin</a> (<a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">in-place Determinant (the matrix is modified) <br/></td></tr> <tr><td colspan="2"><div class="groupHeader">Solvers for Matrix (respecting BlasMatrix interface)</div></td></tr> <tr><td colspan="2"><div class="groupText"><p>with Operand as right or left hand side </p> </div></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand , class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a23f64eac2ccd4aab5d355327e4a6e36e">left_solve</a> (Operand &X, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A, const Operand &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">linear solve with matrix right hand side. <a href="#a23f64eac2ccd4aab5d355327e4a6e36e"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand , class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a2bc9d37b4dcb04c9f96eb2f1ed1d6ae0">left_solve</a> (const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A, Operand &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">linear solve with matrix right hand side, the result is stored in-place in B. <a href="#a2bc9d37b4dcb04c9f96eb2f1ed1d6ae0"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand , class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ad8828d1d409f7eb5d9c477d2448c326f">right_solve</a> (Operand &X, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A, const Operand &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">linear solve with matrix right hand side. <a href="#ad8828d1d409f7eb5d9c477d2448c326f"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Operand , class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Operand & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a7006ea431e35619601c769454d25e193">right_solve</a> (const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A, Operand &B) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">linear solve with matrix right hand side, the result is stored in-place in B. <a href="#a7006ea431e35619601c769454d25e193"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ac64c4d4d4a06a586d0811e1cdb93d3f6"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::minpoly" ref="ac64c4d4d4a06a586d0811e1cdb93d3f6" args="(Polynomial &P, const Matrix &A) const " --> template<class Polynomial , class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Polynomial & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ac64c4d4d4a06a586d0811e1cdb93d3f6">minpoly</a> (Polynomial &P, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">minimal polynomial computation. <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="ad6d91dff1b98d0ecb0429ce077e8e461"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::charpoly" ref="ad6d91dff1b98d0ecb0429ce077e8e461" args="(Polynomial &P, const Matrix &A) const " --> template<class Polynomial , class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Polynomial & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#ad6d91dff1b98d0ecb0429ce077e8e461">charpoly</a> (Polynomial &P, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">characteristic polynomial computation. <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a1c2900b2ce1dac59efaaa567f168f8f8"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::charpoly" ref="a1c2900b2ce1dac59efaaa567f168f8f8" args="(std::list< Polynomial > &P, const Matrix &A) const " --> template<class Polynomial , class Matrix > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">std::list< Polynomial > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a1c2900b2ce1dac59efaaa567f168f8f8">charpoly</a> (std::list< Polynomial > &P, const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> &A) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">characteristic polynomial computation. <br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Polynomial > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Polynomial & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blas_matrix_domain.html#a4a465969b676feff04a5617de44f628a">mulpoly</a> (Polynomial &res, const Polynomial &P1, const Polynomial &P2) const </td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><h3>template<class Field><br/> class LinBox::BlasMatrixDomain< Field ></h3> <p>Interface for all functionnalities provided for <a class="el" href="class_lin_box_1_1_blas_matrix.html" title="BlasMatrix.">BlasMatrix</a>. </p> <dl><dt><b>Examples: </b></dt><dd> <p><a class="el" href="examples_2checksolve_8_c-example.html#_a7">examples/checksolve.C</a>.</p> </dd> </dl></div><hr/><h2>Member Function Documentation</h2> <a class="anchor" id="aaeb9133641f430a745a9dc0f6b8a0964"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::mul" ref="aaeb9133641f430a745a9dc0f6b8a0964" args="(Operand1 &C, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& mul </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>multiplication. </p> <p>C = A*B </p> </div> </div> <a class="anchor" id="a8a778939495b0d208fff3668a60ab24c"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::add" ref="a8a778939495b0d208fff3668a60ab24c" args="(Operand1 &C, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& add </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>addition. </p> <p>C = A+B </p> </div> </div> <a class="anchor" id="a15eaf9401e8c7b6a29aa276fd85f47af"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::copy" ref="a15eaf9401e8c7b6a29aa276fd85f47af" args="(Operand1 &B, const Operand2 &A) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& copy </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>B</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>copy. </p> <p>B = A </p> </div> </div> <a class="anchor" id="a95ca32e241364e9673aa9e756681009f"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::mul" ref="a95ca32e241364e9673aa9e756681009f" args="(Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& mul </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>alpha</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>multiplication with scaling. </p> <p>C = alpha.A*B </p> </div> </div> <a class="anchor" id="a89fea0e0d4e0d9ef601a2d164da7d79e"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::mulin_left" ref="a89fea0e0d4e0d9ef601a2d164da7d79e" args="(Operand1 &A, const Operand2 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& mulin_left </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>In place multiplication. </p> <p>A = A*B </p> </div> </div> <a class="anchor" id="a50d681f2d52c4497df113e1e3e8b5348"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::mulin_right" ref="a50d681f2d52c4497df113e1e3e8b5348" args="(const Operand1 &A, Operand2 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand2& mulin_right </td> <td>(</td> <td class="paramtype">const Operand1 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Operand2 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>In place multiplication. </p> <p>B = A*B </p> </div> </div> <a class="anchor" id="a38a793731dd70968984d903c4116f0f7"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::axpy" ref="a38a793731dd70968984d903c4116f0f7" args="(Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& axpy </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>D</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand1 & </td> <td class="paramname"><em>C</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>axpy. </p> <p>D = A*B + C </p> </div> </div> <a class="anchor" id="a29ca57df5326a4c4d04951e531672732"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::axpyin" ref="a29ca57df5326a4c4d04951e531672732" args="(Operand1 &C, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& axpyin </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>axpyin. </p> <p>C += A*B </p> </div> </div> <a class="anchor" id="af8795c19e5b8785b7056936d6a81250b"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::maxpy" ref="af8795c19e5b8785b7056936d6a81250b" args="(Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& maxpy </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>D</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand1 & </td> <td class="paramname"><em>C</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>maxpy. </p> <p>D = C - A*B </p> </div> </div> <a class="anchor" id="ad0a95abebe2d1532bb3d0a27110466a4"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::maxpyin" ref="ad0a95abebe2d1532bb3d0a27110466a4" args="(Operand1 &C, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& maxpyin </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>maxpyin. </p> <p>C -= A*B </p> </div> </div> <a class="anchor" id="a5f9c4e9eaac7d0872c0b5befeffac924"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::axmy" ref="a5f9c4e9eaac7d0872c0b5befeffac924" args="(Operand1 &D, const Operand2 &A, const Operand3 &B, const Operand1 &C) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& axmy </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>D</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand1 & </td> <td class="paramname"><em>C</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>axmy. </p> <p>D= A*B - C </p> </div> </div> <a class="anchor" id="a52f1e26e7752af9833d464d05c9941ff"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::axmyin" ref="a52f1e26e7752af9833d464d05c9941ff" args="(Operand1 &C, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& axmyin </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>axmyin. </p> <p>C = A*B - C </p> </div> </div> <a class="anchor" id="aba6f252adf754b283ebe61af978fbbdd"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::muladd" ref="aba6f252adf754b283ebe61af978fbbdd" args="(Operand1 &D, const Element &beta, const Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& muladd </td> <td>(</td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>D</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>beta</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>alpha</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>general matrix-matrix multiplication and addition with scaling. </p> <p>D= beta.C + alpha.A*B </p> </div> </div> <a class="anchor" id="ac44f4a8481b03684d5a3b02156667db4"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::muladdin" ref="ac44f4a8481b03684d5a3b02156667db4" args="(const Element &beta, Operand1 &C, const Element &alpha, const Operand2 &A, const Operand3 &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand1& muladdin </td> <td>(</td> <td class="paramtype">const Element & </td> <td class="paramname"><em>beta</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Operand1 & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>alpha</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand2 & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand3 & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>muladdin. </p> <p>C= beta.C + alpha.A*B. </p> </div> </div> <a class="anchor" id="a51ca7ddd30d19ae01934ee7383700db6"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::div" ref="a51ca7ddd30d19ae01934ee7383700db6" args="(Matrix &C, const Matrix &A, const Matrix &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a>& div </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>C</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Division. </p> <p>C = A B^{-1} ==> C . B = A </p> </div> </div> <a class="anchor" id="a23f64eac2ccd4aab5d355327e4a6e36e"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::left_solve" ref="a23f64eac2ccd4aab5d355327e4a6e36e" args="(Operand &X, const Matrix &A, const Operand &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand& left_solve </td> <td>(</td> <td class="paramtype">Operand & </td> <td class="paramname"><em>X</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>linear solve with matrix right hand side. </p> <p>AX=B </p> </div> </div> <a class="anchor" id="a2bc9d37b4dcb04c9f96eb2f1ed1d6ae0"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::left_solve" ref="a2bc9d37b4dcb04c9f96eb2f1ed1d6ae0" args="(const Matrix &A, Operand &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand& left_solve </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Operand & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>linear solve with matrix right hand side, the result is stored in-place in B. </p> <dl class="pre"><dt><b>Precondition:</b></dt><dd>A must be square AX=B , (B<-X) </dd></dl> </div> </div> <a class="anchor" id="ad8828d1d409f7eb5d9c477d2448c326f"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::right_solve" ref="ad8828d1d409f7eb5d9c477d2448c326f" args="(Operand &X, const Matrix &A, const Operand &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand& right_solve </td> <td>(</td> <td class="paramtype">Operand & </td> <td class="paramname"><em>X</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Operand & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>linear solve with matrix right hand side. </p> <p>XA=B </p> </div> </div> <a class="anchor" id="a7006ea431e35619601c769454d25e193"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::right_solve" ref="a7006ea431e35619601c769454d25e193" args="(const Matrix &A, Operand &B) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Operand& right_solve </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Operand & </td> <td class="paramname"><em>B</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>linear solve with matrix right hand side, the result is stored in-place in B. </p> <dl class="pre"><dt><b>Precondition:</b></dt><dd>A must be square XA=B , (B<-X) </dd></dl> </div> </div> <a class="anchor" id="a4a465969b676feff04a5617de44f628a"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::mulpoly" ref="a4a465969b676feff04a5617de44f628a" args="(Polynomial &res, const Polynomial &P1, const Polynomial &P2) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Polynomial& mulpoly </td> <td>(</td> <td class="paramtype">Polynomial & </td> <td class="paramname"><em>res</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Polynomial & </td> <td class="paramname"><em>P1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Polynomial & </td> <td class="paramname"><em>P2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Temporary: waiting for an implementation of a domain of polynomial </dd></dl> </div> </div> <a class="anchor" id="a5b99c92431944aa37d31f71cfa40b4d5"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::write" ref="a5b99c92431944aa37d31f71cfa40b4d5" args="(std::ostream &os, const Matrix &A) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream& write </td> <td>(</td> <td class="paramtype">std::ostream & </td> <td class="paramname"><em>os</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>A</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Print matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">os</td><td>Output stream to which matrix is written. </td></tr> <tr><td class="paramname">A</td><td>Matrix. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>reference to os. </dd></dl> </div> </div> <a class="anchor" id="af191b114ae4a53e261c609207be9a561"></a><!-- doxytag: member="LinBox::BlasMatrixDomain::read" ref="af191b114ae4a53e261c609207be9a561" args="(std::istream &is, Matrix &A) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::istream& read </td> <td>(</td> <td class="paramtype">std::istream & </td> <td class="paramname"><em>is</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_zero_one.html">Matrix</a> & </td> <td class="paramname"><em>A</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Read matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">is</td><td>Input stream from which matrix is read. </td></tr> <tr><td class="paramname">A</td><td>Matrix. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>reference to is. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="blas-domain_8h.html">blas-domain.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Aug 30 2011 for linbox by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>