Sophie

Sophie

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

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: LABlockLanczosSolver&lt; Field, Matrix &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_l_a_block_lanczos_solver.html">LABlockLanczosSolver</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">LABlockLanczosSolver&lt; Field, Matrix &gt; Class Template Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::LABlockLanczosSolver" -->
<p>Biorthogonalising block Lanczos iteration.  
 <a href="class_lin_box_1_1_l_a_block_lanczos_solver.html#details">More...</a></p>

<p><code>#include &lt;la-block-lanczos.h&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_l_a_block_lanczos_solver.html#a937d4002ff9ac0d231866ad8d1d3764f">LABlockLanczosSolver</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const BlockLanczosTraits &amp;traits)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a937d4002ff9ac0d231866ad8d1d3764f"></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_l_a_block_lanczos_solver.html#a0fe1d82ea7efa42586935796656daaf3">LABlockLanczosSolver</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const BlockLanczosTraits &amp;traits, typename Field::RandIter r)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with a random iterator.  <a href="#a0fe1d82ea7efa42586935796656daaf3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2bb105249872ef3719aab1d99c1d789"></a><!-- doxytag: member="LinBox::LABlockLanczosSolver::~LABlockLanczosSolver" ref="ae2bb105249872ef3719aab1d99c1d789" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_l_a_block_lanczos_solver.html#ae2bb105249872ef3719aab1d99c1d789">~LABlockLanczosSolver</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Blackbox , class Vector &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_l_a_block_lanczos_solver.html#aab28bb034aa20c85c2be57451c5ceee6">solve</a> (const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve the linear system Ax = b.  <a href="#aab28bb034aa20c85c2be57451c5ceee6"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Blackbox , class Matrix1 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_l_a_block_lanczos_solver.html#ad6ba66df44b9a83fc626c1c6982e83c9">sampleNullspace</a> (const Blackbox &amp;A, Matrix1 &amp;x)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample uniformly from the (right) nullspace of A.  <a href="#ad6ba66df44b9a83fc626c1c6982e83c9"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Blackbox &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_l_a_block_lanczos_solver.html#aaaa52260e27ae3bf6b9ea72778f5f839">rank</a> (const Blackbox &amp;A)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate the rank of A.  <a href="#aaaa52260e27ae3bf6b9ea72778f5f839"></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 = DenseMatrixBase&lt;typename Field::Element&gt;&gt;<br/>
class LinBox::LABlockLanczosSolver&lt; Field, Matrix &gt;</h3>

<p>Biorthogonalising block Lanczos iteration. </p>
<p>This is a biorthogonalising variant of Montgomery's block Lanczos iteration. The goal is to avoid having to symmetrise the input matrix by constructing two sequences of block vectors that have mutual orthogonality properties. This algorithm was proposed by Bradford Hovinen. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a937d4002ff9ac0d231866ad8d1d3764f"></a><!-- doxytag: member="LinBox::LABlockLanczosSolver::LABlockLanczosSolver" ref="a937d4002ff9ac0d231866ad8d1d3764f" args="(const Field &amp;F, const BlockLanczosTraits &amp;traits)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_l_a_block_lanczos_solver.html">LABlockLanczosSolver</a> </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">const BlockLanczosTraits &amp;&#160;</td>
          <td class="paramname"><em>traits</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>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td>Field over which to operate </td></tr>
    <tr><td class="paramname">traits</td><td><a class="el" href="struct_lin_box_1_1_solver_traits.html">SolverTraits</a> structure describing user options for the solver </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0fe1d82ea7efa42586935796656daaf3"></a><!-- doxytag: member="LinBox::LABlockLanczosSolver::LABlockLanczosSolver" ref="a0fe1d82ea7efa42586935796656daaf3" args="(const Field &amp;F, const BlockLanczosTraits &amp;traits, typename Field::RandIter r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_l_a_block_lanczos_solver.html">LABlockLanczosSolver</a> </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">const BlockLanczosTraits &amp;&#160;</td>
          <td class="paramname"><em>traits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename Field::RandIter&#160;</td>
          <td class="paramname"><em>r</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 a random iterator. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td>Field over which to operate </td></tr>
    <tr><td class="paramname">traits</td><td><a class="el" href="struct_lin_box_1_1_solver_traits.html">SolverTraits</a> structure describing user options for the solver </td></tr>
    <tr><td class="paramname">r</td><td>Random iterator to use for randomization </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aab28bb034aa20c85c2be57451c5ceee6"></a><!-- doxytag: member="LinBox::LABlockLanczosSolver::solve" ref="aab28bb034aa20c85c2be57451c5ceee6" args="(const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool solve </td>
          <td>(</td>
          <td class="paramtype">const Blackbox &amp;&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Vector &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Vector &amp;&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Solve the linear system Ax = b. </p>
<p>If the system is nonsingular, this method computes the unique solution to the system Ax = b. If the system is singular, it computes a random solution.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>Black box for the matrix A </td></tr>
    <tr><td class="paramname">x</td><td>Vector in which to store solution </td></tr>
    <tr><td class="paramname">b</td><td>Right-hand side of system </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True on success; false on failure </dd></dl>

</div>
</div>
<a class="anchor" id="ad6ba66df44b9a83fc626c1c6982e83c9"></a><!-- doxytag: member="LinBox::LABlockLanczosSolver::sampleNullspace" ref="ad6ba66df44b9a83fc626c1c6982e83c9" args="(const Blackbox &amp;A, Matrix1 &amp;x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int sampleNullspace </td>
          <td>(</td>
          <td class="paramtype">const Blackbox &amp;&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Matrix1 &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sample uniformly from the (right) nullspace of A. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>Black box for the matrix A </td></tr>
    <tr><td class="paramname">x</td><td>Matrix into whose columns to store nullspace elements </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of nullspace vectors found </dd></dl>

</div>
</div>
<a class="anchor" id="aaaa52260e27ae3bf6b9ea72778f5f839"></a><!-- doxytag: member="LinBox::LABlockLanczosSolver::rank" ref="aaaa52260e27ae3bf6b9ea72778f5f839" args="(const Blackbox &amp;A)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int rank </td>
          <td>(</td>
          <td class="paramtype">const Blackbox &amp;&#160;</td>
          <td class="paramname"><em>A</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Estimate the rank of A. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>Black box for the matrix A </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Lower bound on the rank of A </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>la-block-lanczos.h</li>
<li>la-block-lanczos.inl</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>