Sophie

Sophie

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

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: BlackboxArchetype Class 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_blackbox_archetype.html">BlackboxArchetype</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">BlackboxArchetype Class Reference<div class="ingroups"><a class="el" href="group__blackbox.html">blackbox</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::BlackboxArchetype" -->
<p>showing the member functions provided by all blackbox matrix classes.  
 <a href="class_lin_box_1_1_blackbox_archetype.html#details">More...</a></p>

<p><code>#include &lt;archetype.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 BlackboxArchetype:</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_blackbox_archetype.png" usemap="#BlackboxArchetype_map" alt=""/>
  <map id="BlackboxArchetype_map" name="BlackboxArchetype_map">
<area href="class_lin_box_1_1_matrix_blackbox.html" title="Matrix black box." alt="MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;" shape="rect" coords="0,56,262,80"/>
</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="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>
<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_blackbox_archetype.html#a0fee90e6b8ef7fcd8d76a7f3e1f268e6">rowdim</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of rows of the 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_blackbox_archetype.html#a32edb490d3597f5553152d14b102e227">coldim</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of columns of the matrix.  <a href="#a32edb490d3597f5553152d14b102e227"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>showing the member functions provided by all blackbox matrix classes. </p>
<p>This simple interface is all that is needed for the blackbox algorithms. Alternatively, the matrix archetype provides individual matrix entry access, as needed by some algorithms, such as elimination methods. </p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa37d57c030b1db0c198478268aa3cc15"></a><!-- doxytag: member="LinBox::BlackboxArchetype::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</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::BlackboxArchetype::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</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::BlackboxArchetype::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</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::BlackboxArchetype::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</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>
<a class="anchor" id="a0fee90e6b8ef7fcd8d76a7f3e1f268e6"></a><!-- doxytag: member="LinBox::BlackboxArchetype::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</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of rows of the matrix. </p>
<p>This may be zero or greater. Currently matrix size beyond size_t is not supported. </p>

<p>Reimplemented in <a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a0fee90e6b8ef7fcd8d76a7f3e1f268e6">MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a32edb490d3597f5553152d14b102e227"></a><!-- doxytag: member="LinBox::BlackboxArchetype::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</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of columns of the matrix. </p>
<p>This may be zero or greater. Currently matrix size beyond size_t is not supported. </p>

<p>Reimplemented in <a class="el" href="class_lin_box_1_1_matrix_blackbox.html#a32edb490d3597f5553152d14b102e227">MatrixBlackbox&lt; _Field, _Matrix, _Vector &gt;</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="blackbox_2archetype_8h.html">blackbox/archetype.h</a></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>