Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > c5653a35bb94fee65ffe21230992c863 > files > 178

linbox-doc-1.2.1-1.fc15.noarch.rpm

<!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: MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt; 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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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&#160;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&#160;Structures</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;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_matrix_blackbox.html">MatrixBlackbox</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">MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__blackbox.html">blackbox</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::MatrixBlackbox" --><!-- doxytag: inherits="LinBox::BlackboxArchetype" -->
<p>Matrix black box.  
 <a href="class_lin_box_1_1_matrix_blackbox.html#details">More...</a></p>

<p><code>#include &lt;matrix-blackbox.h&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png"/> Inheritance diagram for MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="class_lin_box_1_1_matrix_blackbox.png" usemap="#MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;_map" alt=""/>
  <map id="MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;_map" name="MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;_map">
<area href="class_lin_box_1_1_blackbox_archetype.html" title="showing the member functions provided by all blackbox matrix classes." alt="BlackboxArchetype" shape="rect" coords="0,0,262,24"/>
</map>
 </div></div>
<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">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a035a14f118e38ce37a5388d337740e07">MatrixBlackbox</a> (const Field &amp;F, Matrix &amp;Rep)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a035a14f118e38ce37a5388d337740e07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a0b64241f75882b07a7dd586e3ce9112e">MatrixBlackbox</a> (const Field &amp;F, size_t m, size_t n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with size.  <a href="#a0b64241f75882b07a7dd586e3ce9112e"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Row &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#af36e46154dfcc74120e2d8c39353d753">MatrixBlackbox</a> (const Field &amp;F, <a class="el" href="class_lin_box_1_1_vector_stream.html">VectorStream</a>&lt; Row &gt; &amp;stream)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#af36e46154dfcc74120e2d8c39353d753"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d8eb93d2f75168dfecaf19fd987f20a"></a><!-- doxytag: member="LinBox::MatrixBlackbox::MatrixBlackbox" ref="a0d8eb93d2f75168dfecaf19fd987f20a" args="(const MatrixBlackbox &amp;B)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a0d8eb93d2f75168dfecaf19fd987f20a">MatrixBlackbox</a> (const <a class="el" href="class_lin_box_1_1_matrix_blackbox.html">MatrixBlackbox</a> &amp;B)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#ae558a6e51aa56dd2d7c5b08d78487d61">~MatrixBlackbox</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ae558a6e51aa56dd2d7c5b08d78487d61"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea515682f9d07e4c99c74c4f8ea4c09b"></a><!-- doxytag: member="LinBox::MatrixBlackbox::clone" ref="aea515682f9d07e4c99c74c4f8ea4c09b" args="() const " -->
<a class="el" href="class_lin_box_1_1_blackbox_archetype.html">BlackboxArchetype</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#aea515682f9d07e4c99c74c4f8ea4c09b">clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a clone of the matrix. <br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Vector1 , class Vector2 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">Vector1 &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#af799aedf30b3a338311e3b4464715351">apply</a> (Vector1 &amp;y, const Vector2 &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic matrix-vector product <img class="formulaInl" alt="$ y = A x$" src="form_37.png"/>.  <a href="#af799aedf30b3a338311e3b4464715351"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Vector &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a4f93010b7e9fd57595f975072d2fb359">apply</a> (Vector &amp;y, const Vector &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Matrix-vector product <img class="formulaInl" alt="$y = A x$" src="form_38.png"/>.  <a href="#a4f93010b7e9fd57595f975072d2fb359"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Vector1 , class Vector2 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">Vector1 &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a450badf1e6224f1d92115e8aa23e775a">applyTranspose</a> (Vector1 &amp;y, const Vector2 &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic transpose matrix-vector product <img class="formulaInl" alt="$y = A^T x$" src="form_39.png"/>.  <a href="#a450badf1e6224f1d92115e8aa23e775a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Vector &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a0ccfccd410bda926c237646df4d17ee7">applyTranspose</a> (Vector &amp;y, const Vector &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_lin_box_1_1_transpose.html" title="transpose matrix without copying.">Transpose</a> matrix-vector product <img class="formulaInl" alt="$y = A^T x$" src="form_39.png"/>.  <a href="#a0ccfccd410bda926c237646df4d17ee7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a0fee90e6b8ef7fcd8d76a7f3e1f268e6">rowdim</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retreive row dimensions of Sparsemat matrix.  <a href="#a0fee90e6b8ef7fcd8d76a7f3e1f268e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a32edb490d3597f5553152d14b102e227">coldim</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retreive column dimensions of Sparsemat matrix.  <a href="#a32edb490d3597f5553152d14b102e227"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a7f1e7ece6c12a9a3feb091f90c7c9ac1">read</a> (std::istream &amp;is)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the matrix from a stream.  <a href="#a7f1e7ece6c12a9a3feb091f90c7c9ac1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#acd22def76f55c19076bb6c86104beaf0">write</a> (std::ostream &amp;os) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the matrix to a stream.  <a href="#acd22def76f55c19076bb6c86104beaf0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66be394bace6f92c18729a119581d7bd"></a><!-- doxytag: member="LinBox::MatrixBlackbox::field" ref="a66be394bace6f92c18729a119581d7bd" args="() const " -->
const Field &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a66be394bace6f92c18729a119581d7bd">field</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a reference to the base field. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a677dfeee6ac20786384e2b392dcdff22"></a><!-- doxytag: member="LinBox::MatrixBlackbox::rep" ref="a677dfeee6ac20786384e2b392dcdff22" args="()" -->
Matrix &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a677dfeee6ac20786384e2b392dcdff22">rep</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a reference to the underlying representation. <br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InVector , class OutVector &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutVector &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_archetype.html#aa37d57c030b1db0c198478268aa3cc15">apply</a> (OutVector &amp;y, const InVector &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">y := Ax, matrix-vector product.  <a href="#aa37d57c030b1db0c198478268aa3cc15"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InVector , class OutVector &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutVector &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_archetype.html#a9215ec0d4bb02ae86487978d00978026">apply</a> (OutVector &amp;y, const InVector &amp;x, void *handle) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">y := Ax, matrix-vector product using a handle for ...  <a href="#a9215ec0d4bb02ae86487978d00978026"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InVector , class OutVector &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutVector &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_archetype.html#ac1a9817268900b78faa5a6eb17d9badf">applyTranspose</a> (OutVector &amp;y, const InVector &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">y := xA, vector-matrix product.  <a href="#ac1a9817268900b78faa5a6eb17d9badf"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class InVector , class OutVector &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">OutVector &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_archetype.html#a389c9eb7ad84ebe58cdc693e2d0e9724">applyTranspose</a> (OutVector &amp;y, const InVector &amp;x, void *handle) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">y := xA, vector-matrix product using a handle for ...  <a href="#a389c9eb7ad84ebe58cdc693e2d0e9724"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class _Field, class _Matrix, class _Vector = typename LinBox::Vector&lt;_Field&gt;::Dense&gt;<br/>
class LinBox::MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;</h3>

<p>Matrix black box. </p>
<p>This class wraps a matrix meeting the <a class="el" href="class_lin_box_1_1_matrix_archetype.html">MatrixArchetype</a> interface into a black box meeting the <a class="el" href="class_lin_box_1_1_blackbox_archetype.html">BlackboxArchetype</a> interface. It uses <a class="el" href="class_lin_box_1_1_matrix_domain.html">MatrixDomain</a> to implement <code>apply</code> and <code>applyTranspose</code>. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a035a14f118e38ce37a5388d337740e07"></a><!-- doxytag: member="LinBox::MatrixBlackbox::MatrixBlackbox" ref="a035a14f118e38ce37a5388d337740e07" args="(const Field &amp;F, Matrix &amp;Rep)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html">MatrixBlackbox</a> </td>
          <td>(</td>
          <td class="paramtype">const Field &amp;&#160;</td>
          <td class="paramname"><em>F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Matrix &amp;&#160;</td>
          <td class="paramname"><em>Rep</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Builds a black box for the matrix given by <code>rep</code> over the field <code>F</code> </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td>Field over which entries exist </td></tr>
    <tr><td class="paramname">rep</td><td>Matrix from which to construct the black box </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0b64241f75882b07a7dd586e3ce9112e"></a><!-- doxytag: member="LinBox::MatrixBlackbox::MatrixBlackbox" ref="a0b64241f75882b07a7dd586e3ce9112e" args="(const Field &amp;F, size_t m, size_t n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html">MatrixBlackbox</a> </td>
          <td>(</td>
          <td class="paramtype">const Field &amp;&#160;</td>
          <td class="paramname"><em>F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor with size. </p>
<p>Builds a black box with the given dimensions</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td>Field over which entries exist </td></tr>
    <tr><td class="paramname">m</td><td>Row dimension </td></tr>
    <tr><td class="paramname">n</td><td>Column dimension </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af36e46154dfcc74120e2d8c39353d753"></a><!-- doxytag: member="LinBox::MatrixBlackbox::MatrixBlackbox" ref="af36e46154dfcc74120e2d8c39353d753" args="(const Field &amp;F, VectorStream&lt; Row &gt; &amp;stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_matrix_blackbox.html">MatrixBlackbox</a> </td>
          <td>(</td>
          <td class="paramtype">const Field &amp;&#160;</td>
          <td class="paramname"><em>F</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_vector_stream.html">VectorStream</a>&lt; Row &gt; &amp;&#160;</td>
          <td class="paramname"><em>stream</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Builds a black box, using the vector stream <code>stream</code> to fill in its entries</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td>Field over which entries exist </td></tr>
    <tr><td class="paramname">stream</td><td>Stream with which to generate row vectors </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae558a6e51aa56dd2d7c5b08d78487d61"></a><!-- doxytag: member="LinBox::MatrixBlackbox::~MatrixBlackbox" ref="ae558a6e51aa56dd2d7c5b08d78487d61" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="class_lin_box_1_1_matrix_blackbox.html">MatrixBlackbox</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="af799aedf30b3a338311e3b4464715351"></a><!-- doxytag: member="LinBox::MatrixBlackbox::apply" ref="af799aedf30b3a338311e3b4464715351" args="(Vector1 &amp;y, const Vector2 &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector1&amp; apply </td>
          <td>(</td>
          <td class="paramtype">Vector1 &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Vector2 &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic matrix-vector product <img class="formulaInl" alt="$ y = A x$" src="form_37.png"/>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to output vector y </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>input vector </td></tr>
    <tr><td class="paramname">y</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4f93010b7e9fd57595f975072d2fb359"></a><!-- doxytag: member="LinBox::MatrixBlackbox::apply" ref="a4f93010b7e9fd57595f975072d2fb359" args="(Vector &amp;y, const Vector &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector&amp; apply </td>
          <td>(</td>
          <td class="paramtype">Vector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Vector &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Matrix-vector product <img class="formulaInl" alt="$y = A x$" src="form_38.png"/>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to output vector y </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>input vector </td></tr>
    <tr><td class="paramname">y</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a450badf1e6224f1d92115e8aa23e775a"></a><!-- doxytag: member="LinBox::MatrixBlackbox::applyTranspose" ref="a450badf1e6224f1d92115e8aa23e775a" args="(Vector1 &amp;y, const Vector2 &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector1&amp; applyTranspose </td>
          <td>(</td>
          <td class="paramtype">Vector1 &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Vector2 &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic transpose matrix-vector product <img class="formulaInl" alt="$y = A^T x$" src="form_39.png"/>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to output vector y </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>input vector </td></tr>
    <tr><td class="paramname">y</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0ccfccd410bda926c237646df4d17ee7"></a><!-- doxytag: member="LinBox::MatrixBlackbox::applyTranspose" ref="a0ccfccd410bda926c237646df4d17ee7" args="(Vector &amp;y, const Vector &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector&amp; applyTranspose </td>
          <td>(</td>
          <td class="paramtype">Vector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Vector &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="class_lin_box_1_1_transpose.html" title="transpose matrix without copying.">Transpose</a> matrix-vector product <img class="formulaInl" alt="$y = A^T x$" src="form_39.png"/>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to output vector y </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>input vector </td></tr>
    <tr><td class="paramname">y</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0fee90e6b8ef7fcd8d76a7f3e1f268e6"></a><!-- doxytag: member="LinBox::MatrixBlackbox::rowdim" ref="a0fee90e6b8ef7fcd8d76a7f3e1f268e6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t rowdim </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retreive row dimensions of Sparsemat matrix. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>integer number of rows of SparseMatrix0Base matrix. </dd></dl>

<p>Reimplemented from <a class="el" href="class_lin_box_1_1_blackbox_archetype.html#a0fee90e6b8ef7fcd8d76a7f3e1f268e6">BlackboxArchetype</a>.</p>

</div>
</div>
<a class="anchor" id="a32edb490d3597f5553152d14b102e227"></a><!-- doxytag: member="LinBox::MatrixBlackbox::coldim" ref="a32edb490d3597f5553152d14b102e227" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t coldim </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retreive column dimensions of Sparsemat matrix. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>integer number of columns of SparseMatrix0Base matrix. </dd></dl>

<p>Reimplemented from <a class="el" href="class_lin_box_1_1_blackbox_archetype.html#a32edb490d3597f5553152d14b102e227">BlackboxArchetype</a>.</p>

</div>
</div>
<a class="anchor" id="a7f1e7ece6c12a9a3feb091f90c7c9ac1"></a><!-- doxytag: member="LinBox::MatrixBlackbox::read" ref="a7f1e7ece6c12a9a3feb091f90c7c9ac1" args="(std::istream &amp;is)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::istream&amp; read </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the matrix from a stream. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">is</td><td>Input stream from which to read the matrix </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to input stream </dd></dl>

</div>
</div>
<a class="anchor" id="acd22def76f55c19076bb6c86104beaf0"></a><!-- doxytag: member="LinBox::MatrixBlackbox::write" ref="acd22def76f55c19076bb6c86104beaf0" args="(std::ostream &amp;os) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; write </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write the matrix to a stream. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>Output stream to which to write the matrix </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to output stream </dd></dl>

</div>
</div>
<a class="anchor" id="aa37d57c030b1db0c198478268aa3cc15"></a><!-- doxytag: member="LinBox::MatrixBlackbox::apply" ref="aa37d57c030b1db0c198478268aa3cc15" args="(OutVector &amp;y, const InVector &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OutVector&amp; apply </td>
          <td>(</td>
          <td class="paramtype">OutVector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const InVector &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>y := Ax, matrix-vector product. </p>
<p>The vector x must be of size A.coldim(), where A is this blackbox. On entry to apply, the vector y must be of size A.rowdim(). Neither vector has it's size or capacity modified by apply. Apply is not responsible for the validity of the sizes, which may or may not be checked. The two vectors may not overlap in memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">y</td><td>it's entries are overwritten and a reference to it is also returned to allow for use in nested expressions. </td></tr>
    <tr><td class="paramname">x</td><td>it's entries are the input data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9215ec0d4bb02ae86487978d00978026"></a><!-- doxytag: member="LinBox::MatrixBlackbox::apply" ref="a9215ec0d4bb02ae86487978d00978026" args="(OutVector &amp;y, const InVector &amp;x, void *handle) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OutVector&amp; apply </td>
          <td>(</td>
          <td class="paramtype">OutVector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const InVector &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>y := Ax, matrix-vector product using a handle for ... </p>
<p>The handle serves as "protection from the future". The idea is that the handle could allow the blackbox to operate more as a pure container, with the field (or other functionality such as dot product) provided through the handle.</p>
<p>However, there are no known current uses (2003 june). </p>

</div>
</div>
<a class="anchor" id="ac1a9817268900b78faa5a6eb17d9badf"></a><!-- doxytag: member="LinBox::MatrixBlackbox::applyTranspose" ref="ac1a9817268900b78faa5a6eb17d9badf" args="(OutVector &amp;y, const InVector &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OutVector&amp; applyTranspose </td>
          <td>(</td>
          <td class="paramtype">OutVector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const InVector &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>y := xA, vector-matrix product. </p>
<p>(Or from a column vector viewpoint: y := A<sup>T</sup> x, matrix transpose times vector product. )</p>
<p>The vector x must be of size A.rowdim(), where A is this blackbox. On entry to apply, the vector y must be of size A.coldim(). Neither vector has it's size or capacity modified by applyTranspose. ApplyTranspose is not responsible for the validity of the sizes, which may or may not be checked. The two vectors may not overlap in memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">y</td><td>it's entries are overwritten and a reference to it is also returned to allow for use in nested expressions. </td></tr>
    <tr><td class="paramname">x</td><td>it's entries are the input data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a389c9eb7ad84ebe58cdc693e2d0e9724"></a><!-- doxytag: member="LinBox::MatrixBlackbox::applyTranspose" ref="a389c9eb7ad84ebe58cdc693e2d0e9724" args="(OutVector &amp;y, const InVector &amp;x, void *handle) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OutVector&amp; applyTranspose </td>
          <td>(</td>
          <td class="paramtype">OutVector &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const InVector &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>y := xA, vector-matrix product using a handle for ... </p>
<p>The handle serves as "protection from the future". The idea is that the handle could allow the blackbox to operate more as a pure container, with the field (or other functionality such as dot product) provided through the handle.</p>
<p>However, there are no known current uses (2003 june). </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>matrix-blackbox.h</li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Tue Aug 30 2011 for linbox by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>