Sophie

Sophie

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

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: Solvers</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><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>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Solvers</div>  </div>
<div class="ingroups"><a class="el" href="group__algorithms.html">algorithms</a></div></div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></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">ReturnStatus&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___solvers.html#ga3804921d4ce2e8ffd1c26452b46f2aa1">solve</a> (const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, Vector &amp;u)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve a system Ax=b, giving a random solution if the system is singular and consistent, and a certificate of inconsistency (if specified in traits parameter at construction time) otherwise.  <a href="#ga3804921d4ce2e8ffd1c26452b46f2aa1"></a><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">ReturnStatus&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___solvers.html#gaa898619c955ab8e8a330e7e8ab9a83d4">solveNonsingular</a> (const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, bool useRandIter=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve a nonsingular system Ax=b.  <a href="#gaa898619c955ab8e8a330e7e8ab9a83d4"></a><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">ReturnStatus&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___solvers.html#ga7d3a1716ab7093a71b7939c0f9260013">solveSingular</a> (const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, Vector &amp;u, unsigned long r)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve a general singular linear system.  <a href="#ga7d3a1716ab7093a71b7939c0f9260013"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Blackbox , class Vector , class Prec1 , class Prec2 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">ReturnStatus&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___solvers.html#gab6fa5b77d11686704c3e8a94053aca40">findRandomSolution</a> (const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, size_t r, const Prec1 *P, const Prec2 *Q)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a random solution to a singular system Ax=b of rank r with generic rank profile.  <a href="#gab6fa5b77d11686704c3e8a94053aca40"></a><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">ReturnStatus&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___solvers.html#ga17119f78d1d0f597889883c1d6672f7c">findNullspaceElement</a> (Vector &amp;x, const Blackbox &amp;A)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a random element of the right nullspace of A.  <a href="#ga17119f78d1d0f597889883c1d6672f7c"></a><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="group___solvers.html#ga5eb353874cab1ef67af828eeadf50ca0">certifyInconsistency</a> (Vector &amp;u, const Blackbox &amp;A, const Vector &amp;b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a certificate <code>u</code> that the given system <img class="formulaInl" alt="$Ax=b$" src="form_20.png"/> is inconsistent, if one can be found.  <a href="#ga5eb353874cab1ef67af828eeadf50ca0"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga3804921d4ce2e8ffd1c26452b46f2aa1"></a><!-- doxytag: member="LinBox::WiedemannSolver::solve" ref="ga3804921d4ce2e8ffd1c26452b46f2aa1" args="(const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, Vector &amp;u)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WiedemannSolver&lt; <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &gt;::ReturnStatus 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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Vector &amp;&#160;</td>
          <td class="paramname"><em>u</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Solve a system Ax=b, giving a random solution if the system is singular and consistent, and a certificate of inconsistency (if specified in traits parameter at construction time) otherwise. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>Black box of linear system </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>
    <tr><td class="paramname">u</td><td>Vector in which to store certificate of inconsistency </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to solution vector </dd></dl>

</div>
</div>
<a class="anchor" id="gaa898619c955ab8e8a330e7e8ab9a83d4"></a><!-- doxytag: member="LinBox::WiedemannSolver::solveNonsingular" ref="gaa898619c955ab8e8a330e7e8ab9a83d4" args="(const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, bool useRandIter=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WiedemannSolver&lt; <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &gt;::ReturnStatus solveNonsingular </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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>useRandIter</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Solve a nonsingular system Ax=b. </p>
<p>This is a "Las Vegas" method, which makes use of randomization. It attempts to certify that the system solution is correct. It will only make one attempt to solve the system before giving up.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>Black box of linear system </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>
    <tr><td class="paramname">useRandIter</td><td>true if solveNonsingular should use a random iterator for the Krylov sequence computation; false if it should use the right-hand side </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to solution vector </dd></dl>

</div>
</div>
<a class="anchor" id="ga7d3a1716ab7093a71b7939c0f9260013"></a><!-- doxytag: member="LinBox::WiedemannSolver::solveSingular" ref="ga7d3a1716ab7093a71b7939c0f9260013" args="(const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, Vector &amp;u, unsigned long r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WiedemannSolver&lt; <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &gt;::ReturnStatus solveSingular </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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Vector &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Solve a general singular linear system. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>Black box of linear system </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>
    <tr><td class="paramname">u</td><td>Vector into which certificate of inconsistency will be stored </td></tr>
    <tr><td class="paramname">r</td><td>Rank of A </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return status </dd></dl>

</div>
</div>
<a class="anchor" id="gab6fa5b77d11686704c3e8a94053aca40"></a><!-- doxytag: member="LinBox::WiedemannSolver::findRandomSolution" ref="gab6fa5b77d11686704c3e8a94053aca40" args="(const Blackbox &amp;A, Vector &amp;x, const Vector &amp;b, size_t r, const Prec1 *P, const Prec2 *Q)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WiedemannSolver&lt; <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &gt;::ReturnStatus findRandomSolution </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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Prec1 *&#160;</td>
          <td class="paramname"><em>P</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Prec2 *&#160;</td>
          <td class="paramname"><em>Q</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a random solution to a singular system Ax=b of rank r with generic rank profile. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>Black box of linear system </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>
    <tr><td class="paramname">r</td><td>Rank of A </td></tr>
    <tr><td class="paramname">P</td><td>Left preconditioner (NULL if none needed) </td></tr>
    <tr><td class="paramname">Q</td><td>Right preconditioner (NULL if none needed) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return status </dd></dl>

</div>
</div>
<a class="anchor" id="ga17119f78d1d0f597889883c1d6672f7c"></a><!-- doxytag: member="LinBox::WiedemannSolver::findNullspaceElement" ref="ga17119f78d1d0f597889883c1d6672f7c" args="(Vector &amp;x, const Blackbox &amp;A)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WiedemannSolver&lt; <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &gt;::ReturnStatus findNullspaceElement </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 Blackbox &amp;&#160;</td>
          <td class="paramname"><em>A</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a random element of the right nullspace of A. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>Vector in which to store nullspace element </td></tr>
    <tr><td class="paramname">A</td><td>Black box of which to find nullspace element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5eb353874cab1ef67af828eeadf50ca0"></a><!-- doxytag: member="LinBox::WiedemannSolver::certifyInconsistency" ref="ga5eb353874cab1ef67af828eeadf50ca0" args="(Vector &amp;u, const Blackbox &amp;A, const Vector &amp;b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool certifyInconsistency </td>
          <td>(</td>
          <td class="paramtype">Vector &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">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>Get a certificate <code>u</code> that the given system <img class="formulaInl" alt="$Ax=b$" src="form_20.png"/> is inconsistent, if one can be found. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">u</td><td>Vector in which to store certificate </td></tr>
    <tr><td class="paramname">A</td><td>Blackbox for the linear system </td></tr>
    <tr><td class="paramname">b</td><td>Right-hand side for the linear system </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if a certificate can be found in one iteration; <code>u</code> is filled in with that certificate; and <code>false</code> otherwise </dd></dl>

</div>
</div>
</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>