Sophie

Sophie

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

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: SparseMatrix&lt; _Field, _Row &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_sparse_matrix.html">SparseMatrix</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">SparseMatrix&lt; _Field, _Row &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::SparseMatrix" --><!-- doxytag: inherits="LinBox::BlackboxInterface,SparseMatrixBase&lt; _Field::Element, _Row &gt;" -->
<p>vector of sparse rows.  
 <a href="class_lin_box_1_1_sparse_matrix.html#details">More...</a></p>

<p><code>#include &lt;sparse.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 SparseMatrix&lt; _Field, _Row &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_sparse_matrix.png" usemap="#SparseMatrix&lt; _Field, _Row &gt;_map" alt=""/>
  <map id="SparseMatrix&lt; _Field, _Row &gt;_map" name="SparseMatrix&lt; _Field, _Row &gt;_map">
<area href="class_lin_box_1_1_blackbox_interface.html" title="This blackbox base class exists solely to aid documentation organization." alt="BlackboxInterface" shape="rect" coords="0,0,264,24"/>
<area href="class_lin_box_1_1_sparse_matrix_base.html" alt="SparseMatrixBase&lt; _Field::Element, _Row &gt;" shape="rect" coords="274,0,538,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_sparse_matrix.html#ae4890e37df9969df2eeb60babe7304eb">SparseMatrix</a> (const Field &amp;F, size_t m=0, size_t n=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#ae4890e37df9969df2eeb60babe7304eb"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class VectStream &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_sparse_matrix.html#a6d83b5ffb61556008eb10f439a13bd0d">SparseMatrix</a> (const Field &amp;F, VectStream &amp;stream)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from a vector stream.  <a href="#a6d83b5ffb61556008eb10f439a13bd0d"></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_sparse_matrix.html#aa3cc5bf812777f03a9f8cbf601ee137e">SparseMatrix</a> (<a class="el" href="class_lin_box_1_1_matrix_stream.html">MatrixStream</a>&lt; Field &gt; &amp;ms)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from a <a class="el" href="class_lin_box_1_1_matrix_stream.html" title="MatrixStream.">MatrixStream</a>.  <a href="#aa3cc5bf812777f03a9f8cbf601ee137e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3181035a923b226ec7e0dde32cbfb9c4"></a><!-- doxytag: member="LinBox::SparseMatrix::SparseMatrix" ref="a3181035a923b226ec7e0dde32cbfb9c4" args="(const SparseMatrix&lt; Field, Row &gt; &amp;B)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix.html#a3181035a923b226ec7e0dde32cbfb9c4">SparseMatrix</a> (const <a class="el" href="class_lin_box_1_1_sparse_matrix.html">SparseMatrix</a>&lt; Field, Row &gt; &amp;B)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br/></td></tr>
<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="afefd577e056495d9bb176248a8262c69"></a><!-- doxytag: member="LinBox::SparseMatrix::SparseMatrix" ref="afefd577e056495d9bb176248a8262c69" args="(const SparseMatrix&lt; Field, VectorType &gt; &amp;B)" -->
template&lt;class VectorType &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_sparse_matrix.html#afefd577e056495d9bb176248a8262c69">SparseMatrix</a> (const <a class="el" href="class_lin_box_1_1_sparse_matrix.html">SparseMatrix</a>&lt; Field, VectorType &gt; &amp;B)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Row type Converter 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_sparse_matrix.html#aba0104120c59e6c59af1932a8eaaa10e">~SparseMatrix</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#aba0104120c59e6c59af1932a8eaaa10e"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class OutVector , class InVector &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_sparse_matrix.html#aa37d57c030b1db0c198478268aa3cc15">apply</a> (OutVector &amp;y, const InVector &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="#aa37d57c030b1db0c198478268aa3cc15"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class OutVector , class InVector &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_sparse_matrix.html#ac1a9817268900b78faa5a6eb17d9badf">applyTranspose</a> (OutVector &amp;y, const InVector &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_42.png"/>.  <a href="#ac1a9817268900b78faa5a6eb17d9badf"></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_sparse_matrix.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_sparse_matrix.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_sparse_matrix.html#ac5be3d96c7d795295b42f4f210452f23">read</a> (std::istream &amp;is, <a class="el" href="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a> format=FORMAT_DETECT)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the matrix from a stream in the given format.  <a href="#ac5be3d96c7d795295b42f4f210452f23"></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_sparse_matrix.html#a88c3c3a75cf316163873d477c6412674">write</a> (std::ostream &amp;os, <a class="el" href="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a> format=FORMAT_PRETTY) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the matrix to a stream in the given format.  <a href="#a88c3c3a75cf316163873d477c6412674"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66be394bace6f92c18729a119581d7bd"></a><!-- doxytag: member="LinBox::SparseMatrix::field" ref="a66be394bace6f92c18729a119581d7bd" args="() const " -->
const Field &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix.html#a66be394bace6f92c18729a119581d7bd">field</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to the base field. <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_sparse_matrix_base.html#aac782da1f912bceb5d8ad00c8dc892ac">size</a> () const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retreive number of elements in the matrix.  <a href="#aac782da1f912bceb5d8ad00c8dc892ac"></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_sparse_matrix_base.html#a93e97f4d78fb605a6b8357afee40dd73">read</a> (std::istream &amp;is, const Field &amp;F, <a class="el" href="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a> format=FORMAT_DETECT)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a matrix from the given input stream using field read/write.  <a href="#a93e97f4d78fb605a6b8357afee40dd73"></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_sparse_matrix_base.html#ab5acc80a5ae7464f2b7d6127047db947">write</a> (std::ostream &amp;os, const Field &amp;F, <a class="el" href="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a> format=FORMAT_PRETTY) const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a matrix to the given output stream using field read/write.  <a href="#ab5acc80a5ae7464f2b7d6127047db947"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#ae2b66b4afc5084f339635c1ae40efa74">setEntry</a> (size_t i, size_t j, const Element &amp;value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an individual entry Setting the entry to 0 will remove it from the matrix.  <a href="#ae2b66b4afc5084f339635c1ae40efa74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Element &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#adeab64f184b5d93ba8e6f8f641d7a6ec">refEntry</a> (size_t i, size_t j)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a writeable reference to an entry in the matrix If there is no entry at the position (i, j), then a new entry with a value of zero is inserted and a reference to it is returned.  <a href="#adeab64f184b5d93ba8e6f8f641d7a6ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const Element &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a894873485395b2925e930fff7eb113b6">getEntry</a> (size_t i, size_t j) const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a read-only individual entry from the matrix.  <a href="#a894873485395b2925e930fff7eb113b6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Element &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a7175207b21737a612ed84ec9c4c4321a">getEntry</a> (Element &amp;x, size_t i, size_t j) const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get an entry and store it in the given value This form is more in the Linbox style and is provided for interface compatibility with other parts of the library.  <a href="#a7175207b21737a612ed84ec9c4c4321a"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Raw iterator</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>The raw iterator is a method for accessing all nonzero entries in the matrix in some unspecified order.</p>
<p>This can be used, e.g. to reduce all matrix entries modulo a prime before passing the matrix into an algorithm. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee001ba50cd767ff370a4715d67f365d"></a><!-- doxytag: member="LinBox::SparseMatrix::rawBegin" ref="aee001ba50cd767ff370a4715d67f365d" args="()" -->
RawIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#aee001ba50cd767ff370a4715d67f365d">rawBegin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawBegin. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac62e1bd3893d604d8fe760d243d75750"></a><!-- doxytag: member="LinBox::SparseMatrix::rawBegin" ref="ac62e1bd3893d604d8fe760d243d75750" args="() const" -->
ConstRawIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#ac62e1bd3893d604d8fe760d243d75750">rawBegin</a> () const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">const rawBegin. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9ffd21934d5edcaa17b673fccedbc1e"></a><!-- doxytag: member="LinBox::SparseMatrix::rawEnd" ref="ac9ffd21934d5edcaa17b673fccedbc1e" args="()" -->
RawIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#ac9ffd21934d5edcaa17b673fccedbc1e">rawEnd</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawEnd. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2601fd81a50b34a11d3b24ab6b897903"></a><!-- doxytag: member="LinBox::SparseMatrix::rawEnd" ref="a2601fd81a50b34a11d3b24ab6b897903" args="() const" -->
ConstRawIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a2601fd81a50b34a11d3b24ab6b897903">rawEnd</a> () const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">const rawEnd <br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Columns of rows iterator</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpa8ce8d890bbe1163ef0effc8137d7d50"></a>The columns of row iterator gives each of the rows of the matrix in ascending order.</p>
<p>Dereferencing the iterator yields a row vector in sparse sequence format </p>
</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a628021a55054ddecdd5fca7ae8eaae0a"></a><!-- doxytag: member="LinBox::SparseMatrix::RowIterator" ref="a628021a55054ddecdd5fca7ae8eaae0a" args="" -->
typedef Rep::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>RowIterator</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e1e55ba4e02be1b4f7a68abf568954a"></a><!-- doxytag: member="LinBox::SparseMatrix::ConstRowIterator" ref="a0e1e55ba4e02be1b4f7a68abf568954a" args="" -->
typedef Rep::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>ConstRowIterator</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a4fedb8afc38347e55b61627601f5ae"></a><!-- doxytag: member="LinBox::SparseMatrix::rowBegin" ref="a5a4fedb8afc38347e55b61627601f5ae" args="()" -->
RowIterator&#160;</td><td class="memItemRight" valign="bottom"><b>rowBegin</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a40a362d8acb3f92c31be15324e5493"></a><!-- doxytag: member="LinBox::SparseMatrix::rowBegin" ref="a7a40a362d8acb3f92c31be15324e5493" args="() const" -->
ConstRowIterator&#160;</td><td class="memItemRight" valign="bottom"><b>rowBegin</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aabcd25932383b9ccae6bdfd9ad4fc041"></a><!-- doxytag: member="LinBox::SparseMatrix::rowEnd" ref="aabcd25932383b9ccae6bdfd9ad4fc041" args="()" -->
RowIterator&#160;</td><td class="memItemRight" valign="bottom"><b>rowEnd</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1fc30a1223bfb760259ab3a0e661a37c"></a><!-- doxytag: member="LinBox::SparseMatrix::rowEnd" ref="a1fc30a1223bfb760259ab3a0e661a37c" args="() const" -->
ConstRowIterator&#160;</td><td class="memItemRight" valign="bottom"><b>rowEnd</b> () const</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Index iterator</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpbbcf20aa39e109286f5f5fc02329a84e"></a>The index iterator gives the row, column indices of all matrix elements in the same order as the raw iterator above.</p>
<p>Its value type is an STL pair with the row and column indices, starting at 0, in the first and second positions, respectively. </p>
</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a916271439bfd1c06a8a9b4ab4562a10c"></a><!-- doxytag: member="LinBox::SparseMatrix::_A" ref="a916271439bfd1c06a8a9b4ab4562a10c" args="" -->
Rep&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a916271439bfd1c06a8a9b4ab4562a10c">_A</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawIndexedBegin <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef645714edf7bd944978519e2be44490"></a><!-- doxytag: member="LinBox::SparseMatrix::_m" ref="aef645714edf7bd944978519e2be44490" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#aef645714edf7bd944978519e2be44490">_m</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawIndexedBegin <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9a19772e6c9097c1f9622a3f0d31cdc"></a><!-- doxytag: member="LinBox::SparseMatrix::_n" ref="ab9a19772e6c9097c1f9622a3f0d31cdc" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#ab9a19772e6c9097c1f9622a3f0d31cdc">_n</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawIndexedBegin <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebac326d6dd9d955410b6ba7b4e9aa01"></a><!-- doxytag: member="LinBox::SparseMatrix::SparseMatrixWriteHelper&lt; Element, Row &gt;" ref="aebac326d6dd9d955410b6ba7b4e9aa01" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#aebac326d6dd9d955410b6ba7b4e9aa01">SparseMatrixWriteHelper&lt; Element, Row &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawIndexedBegin <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6469b1fbec4ef74775b2f6880c119416"></a><!-- doxytag: member="LinBox::SparseMatrix::SparseMatrixReadWriteHelper&lt; Element, Row &gt;" ref="a6469b1fbec4ef74775b2f6880c119416" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a6469b1fbec4ef74775b2f6880c119416">SparseMatrixReadWriteHelper&lt; Element, Row &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawIndexedBegin <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8df0b6ed9e872425f0e1e06ce775d4b"></a><!-- doxytag: member="LinBox::SparseMatrix::rawIndexedBegin" ref="aa8df0b6ed9e872425f0e1e06ce775d4b" args="()" -->
RawIndexedIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#aa8df0b6ed9e872425f0e1e06ce775d4b">rawIndexedBegin</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawIndexedBegin <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca6e49f5f9f0843cfe40146e3063f049"></a><!-- doxytag: member="LinBox::SparseMatrix::rawIndexedBegin" ref="aca6e49f5f9f0843cfe40146e3063f049" args="() const" -->
ConstRawIndexedIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#aca6e49f5f9f0843cfe40146e3063f049">rawIndexedBegin</a> () const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">const rawIndexedBegin <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0abee2034e33e784721527e9b01073a"></a><!-- doxytag: member="LinBox::SparseMatrix::rawIndexedEnd" ref="ad0abee2034e33e784721527e9b01073a" args="()" -->
RawIndexedIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#ad0abee2034e33e784721527e9b01073a">rawIndexedEnd</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">rawIndexedEnd <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d166b8ac57dcb5d2ace4cdaddf59144"></a><!-- doxytag: member="LinBox::SparseMatrix::rawIndexedEnd" ref="a5d166b8ac57dcb5d2ace4cdaddf59144" args="() const" -->
ConstRawIndexedIterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a5d166b8ac57dcb5d2ace4cdaddf59144">rawIndexedEnd</a> () const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">const rawIndexedEnd <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Row &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a7b90ca3fa6d24a03f65ba86b19519cd5">getRow</a> (size_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a row as a writeable reference.  <a href="#a7b90ca3fa6d24a03f65ba86b19519cd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Row &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a3090ae9f75c3a369290ba94243cd7dba">operator[]</a> (size_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a row as a writeable reference.  <a href="#a3090ae9f75c3a369290ba94243cd7dba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">ConstRow &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a444bc45e95554a7ec243e9a6f193b565">operator[]</a> (size_t i) const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a row as a read-only reference.  <a href="#a444bc45e95554a7ec243e9a6f193b565"></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_sparse_matrix_base.html#a19189e2bf3b6fde9fe865546d38af9d1">columnDensity</a> (Vector &amp;v) const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the column density, i.e the number of entries per column.  <a href="#a19189e2bf3b6fde9fe865546d38af9d1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html">SparseMatrixBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a00c9d379248095605453d2caaeb81fac">transpose</a> (<a class="el" href="class_lin_box_1_1_sparse_matrix_base.html">SparseMatrixBase</a> &amp;AT) const</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the transpose of this matrix and place it in the matrix given.  <a href="#a00c9d379248095605453d2caaeb81fac"></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 _Row = typename LinBox::Vector&lt;_Field&gt;::Sparse&gt;<br/>
class LinBox::SparseMatrix&lt; _Field, _Row &gt;</h3>

<p>vector of sparse rows. </p>
<p>This is a generic black box for a sparse matrix. It inherits <a class="el" href="class_lin_box_1_1_sparse_matrix_base.html" title="Sparse matrix container This class acts as a generic row-wise container for sparse matrices...">LinBox::SparseMatrixBase</a>, which implements all of the underlying accessors and iterators. </p>
<dl><dt><b>Examples: </b></dt><dd>
<p><a class="el" href="examples_2det_8_c-example.html#_a11">examples/det.C</a>, <a class="el" href="examples_2minpoly_8_c-example.html#_a6">examples/minpoly.C</a>, <a class="el" href="examples_2rank_8_c-example.html#_a4">examples/rank.C</a>, <a class="el" href="examples_2smith_8_c-example.html#_a7">examples/smith.C</a>, <a class="el" href="examples_2smithvalence_8_c-example.html#_a3">examples/smithvalence.C</a>, <a class="el" href="examples_2solve_8_c-example.html#_a6">examples/solve.C</a>, <a class="el" href="examples_2sparseelimdet_8_c-example.html#_a5">examples/sparseelimdet.C</a>, <a class="el" href="examples_2sparseelimrank_8_c-example.html#_a4">examples/sparseelimrank.C</a>, and <a class="el" href="examples_2valence_8_c-example.html#_a5">examples/valence.C</a>.</p>
</dd>
</dl></div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae4890e37df9969df2eeb60babe7304eb"></a><!-- doxytag: member="LinBox::SparseMatrix::SparseMatrix" ref="ae4890e37df9969df2eeb60babe7304eb" args="(const Field &amp;F, size_t m=0, size_t n=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_sparse_matrix.html">SparseMatrix</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> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em> = <code>0</code>&#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 zero m x n matrix Note: the copy constructor and operator= will work as intended because of STL's container design </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="a6d83b5ffb61556008eb10f439a13bd0d"></a><!-- doxytag: member="LinBox::SparseMatrix::SparseMatrix" ref="a6d83b5ffb61556008eb10f439a13bd0d" args="(const Field &amp;F, VectStream &amp;stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_sparse_matrix.html">SparseMatrix</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">VectStream &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 from a vector stream. </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="aa3cc5bf812777f03a9f8cbf601ee137e"></a><!-- doxytag: member="LinBox::SparseMatrix::SparseMatrix" ref="aa3cc5bf812777f03a9f8cbf601ee137e" args="(MatrixStream&lt; Field &gt; &amp;ms)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_sparse_matrix.html">SparseMatrix</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_matrix_stream.html">MatrixStream</a>&lt; Field &gt; &amp;&#160;</td>
          <td class="paramname"><em>ms</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor from a <a class="el" href="class_lin_box_1_1_matrix_stream.html" title="MatrixStream.">MatrixStream</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">ms</td><td>A matrix stream properly initialized </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aba0104120c59e6c59af1932a8eaaa10e"></a><!-- doxytag: member="LinBox::SparseMatrix::~SparseMatrix" ref="aba0104120c59e6c59af1932a8eaaa10e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="class_lin_box_1_1_sparse_matrix.html">SparseMatrix</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="aa37d57c030b1db0c198478268aa3cc15"></a><!-- doxytag: member="LinBox::SparseMatrix::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> [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="ac1a9817268900b78faa5a6eb17d9badf"></a><!-- doxytag: member="LinBox::SparseMatrix::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> [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_42.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::SparseMatrix::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_sparse_matrix_base.html#a0fee90e6b8ef7fcd8d76a7f3e1f268e6">SparseMatrixBase&lt; _Field::Element, _Row &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a32edb490d3597f5553152d14b102e227"></a><!-- doxytag: member="LinBox::SparseMatrix::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_sparse_matrix_base.html#a32edb490d3597f5553152d14b102e227">SparseMatrixBase&lt; _Field::Element, _Row &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ac5be3d96c7d795295b42f4f210452f23"></a><!-- doxytag: member="LinBox::SparseMatrix::read" ref="ac5be3d96c7d795295b42f4f210452f23" args="(std::istream &amp;is, FileFormatTag format=FORMAT_DETECT)" -->
<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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a>&#160;</td>
          <td class="paramname"><em>format</em> = <code>FORMAT_DETECT</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read the matrix from a stream in the given format. </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>
    <tr><td class="paramname">format</td><td>Format of input matrix </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to input stream </dd></dl>

<p>Reimplemented from <a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#ac5be3d96c7d795295b42f4f210452f23">SparseMatrixBase&lt; _Field::Element, _Row &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a88c3c3a75cf316163873d477c6412674"></a><!-- doxytag: member="LinBox::SparseMatrix::write" ref="a88c3c3a75cf316163873d477c6412674" args="(std::ostream &amp;os, FileFormatTag format=FORMAT_PRETTY) 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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a>&#160;</td>
          <td class="paramname"><em>format</em> = <code>FORMAT_PRETTY</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write the matrix to a stream in the given format. </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>
    <tr><td class="paramname">format</td><td>Format of output </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to output stream </dd></dl>

<p>Reimplemented from <a class="el" href="class_lin_box_1_1_sparse_matrix_base.html#a88c3c3a75cf316163873d477c6412674">SparseMatrixBase&lt; _Field::Element, _Row &gt;</a>.</p>

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

<p>Retreive number of elements in the matrix. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>integer number of elements of SparseMatrixBase matrix. </dd></dl>

</div>
</div>
<a class="anchor" id="a93e97f4d78fb605a6b8357afee40dd73"></a><!-- doxytag: member="LinBox::SparseMatrix::read" ref="a93e97f4d78fb605a6b8357afee40dd73" args="(std::istream &amp;is, const Field &amp;F, FileFormatTag format=FORMAT_DETECT)" -->
<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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &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="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a>&#160;</td>
          <td class="paramname"><em>format</em> = <code>FORMAT_DETECT</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read a matrix from the given input stream using field read/write. </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>
    <tr><td class="paramname">F</td><td>Field with which to read </td></tr>
    <tr><td class="paramname">format</td><td>Format of input matrix </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab5acc80a5ae7464f2b7d6127047db947"></a><!-- doxytag: member="LinBox::SparseMatrix::write" ref="ab5acc80a5ae7464f2b7d6127047db947" args="(std::ostream &amp;os, const Field &amp;F, FileFormatTag format=FORMAT_PRETTY) 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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &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="namespace_lin_box.html#ac9fc66b92230563e481ea4c43f443008">FileFormatTag</a>&#160;</td>
          <td class="paramname"><em>format</em> = <code>FORMAT_PRETTY</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write a matrix to the given output stream using field read/write. </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>
    <tr><td class="paramname">F</td><td>Field with which to write </td></tr>
    <tr><td class="paramname">format</td><td>Format with which to write </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae2b66b4afc5084f339635c1ae40efa74"></a><!-- doxytag: member="LinBox::SparseMatrix::setEntry" ref="ae2b66b4afc5084f339635c1ae40efa74" args="(size_t i, size_t j, const Element &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setEntry </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Element &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set an individual entry Setting the entry to 0 will remove it from the matrix. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>Row index of entry </td></tr>
    <tr><td class="paramname">j</td><td>Column index of entry </td></tr>
    <tr><td class="paramname">value</td><td>Value of the new entry </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adeab64f184b5d93ba8e6f8f641d7a6ec"></a><!-- doxytag: member="LinBox::SparseMatrix::refEntry" ref="adeab64f184b5d93ba8e6f8f641d7a6ec" args="(size_t i, size_t j)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Element&amp; refEntry </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a writeable reference to an entry in the matrix If there is no entry at the position (i, j), then a new entry with a value of zero is inserted and a reference to it is returned. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>Row index of entry </td></tr>
    <tr><td class="paramname">j</td><td>Column index of entry </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to matrix entry </dd></dl>

</div>
</div>
<a class="anchor" id="a894873485395b2925e930fff7eb113b6"></a><!-- doxytag: member="LinBox::SparseMatrix::getEntry" ref="a894873485395b2925e930fff7eb113b6" args="(size_t i, size_t j) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const Element&amp; getEntry </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a read-only individual entry from the matrix. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>Row index </td></tr>
    <tr><td class="paramname">j</td><td>Column index </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Const reference to matrix entry </dd></dl>

</div>
</div>
<a class="anchor" id="a7175207b21737a612ed84ec9c4c4321a"></a><!-- doxytag: member="LinBox::SparseMatrix::getEntry" ref="a7175207b21737a612ed84ec9c4c4321a" args="(Element &amp;x, size_t i, size_t j) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Element&amp; getEntry </td>
          <td>(</td>
          <td class="paramtype">Element &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get an entry and store it in the given value This form is more in the Linbox style and is provided for interface compatibility with other parts of the library. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Element in which to store result </td></tr>
    <tr><td class="paramname">i</td><td>Row index </td></tr>
    <tr><td class="paramname">j</td><td>Column index </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to x </dd></dl>

</div>
</div>
<a class="anchor" id="a7b90ca3fa6d24a03f65ba86b19519cd5"></a><!-- doxytag: member="LinBox::SparseMatrix::getRow" ref="a7b90ca3fa6d24a03f65ba86b19519cd5" args="(size_t i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Row&amp; getRow </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve a row as a writeable reference. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>Row index </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3090ae9f75c3a369290ba94243cd7dba"></a><!-- doxytag: member="LinBox::SparseMatrix::operator[]" ref="a3090ae9f75c3a369290ba94243cd7dba" args="(size_t i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Row&amp; operator[] </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve a row as a writeable reference. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>Row index </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a444bc45e95554a7ec243e9a6f193b565"></a><!-- doxytag: member="LinBox::SparseMatrix::operator[]" ref="a444bc45e95554a7ec243e9a6f193b565" args="(size_t i) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ConstRow&amp; operator[] </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve a row as a read-only reference. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>Row index </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a19189e2bf3b6fde9fe865546d38af9d1"></a><!-- doxytag: member="LinBox::SparseMatrix::columnDensity" ref="a19189e2bf3b6fde9fe865546d38af9d1" args="(Vector &amp;v) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vector&amp; columnDensity </td>
          <td>(</td>
          <td class="paramtype">Vector &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the column density, i.e the number of entries per column. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">v</td><td>Vector in which to store column density </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a00c9d379248095605453d2caaeb81fac"></a><!-- doxytag: member="LinBox::SparseMatrix::transpose" ref="a00c9d379248095605453d2caaeb81fac" args="(SparseMatrixBase &amp;AT) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html">SparseMatrixBase</a>&amp; transpose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_sparse_matrix_base.html">SparseMatrixBase</a>&lt; _Field::Element, _Row &gt; &amp;&#160;</td>
          <td class="paramname"><em>AT</em></td><td>)</td>
          <td> const<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct the transpose of this matrix and place it in the matrix given. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">AT</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>blackbox/sparse.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>