Sophie

Sophie

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

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: WiedemannSolver&lt; Field &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_wiedemann_solver.html">WiedemannSolver</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">WiedemannSolver&lt; Field &gt; Class Template Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::WiedemannSolver" -->
<p>Linear system solvers based on Wiedemann's method.  
 <a href="class_lin_box_1_1_wiedemann_solver.html#details">More...</a></p>

<p><code>#include &lt;wiedemann.h&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_wiedemann_solver.html#adfc1795d469a23b7969613dc549ae2a8">ReturnStatus</a> </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">{ OK, FAILED, SINGULAR, INCONSISTENT, BAD_PRECONDITIONER } <br/></td></tr>
<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_wiedemann_solver.html#a97d6a848e87b6a4d499698d2c8a904e4">WiedemannSolver</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const WiedemannTraits &amp;traits)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a97d6a848e87b6a4d499698d2c8a904e4"></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_wiedemann_solver.html#a11036acb3e9a5fd0f4864dbe0dad7824">WiedemannSolver</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const WiedemannTraits &amp;traits, typename Field::RandIter r)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with a random iterator.  <a href="#a11036acb3e9a5fd0f4864dbe0dad7824"></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"><a class="el" href="class_lin_box_1_1_wiedemann_solver.html#adfc1795d469a23b7969613dc549ae2a8">ReturnStatus</a>&#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="group___solvers.html#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"><a class="el" href="class_lin_box_1_1_wiedemann_solver.html#adfc1795d469a23b7969613dc549ae2a8">ReturnStatus</a>&#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="group___solvers.html#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"><a class="el" href="class_lin_box_1_1_wiedemann_solver.html#adfc1795d469a23b7969613dc549ae2a8">ReturnStatus</a>&#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="group___solvers.html#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"><a class="el" href="class_lin_box_1_1_wiedemann_solver.html#adfc1795d469a23b7969613dc549ae2a8">ReturnStatus</a>&#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="group___solvers.html#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"><a class="el" href="class_lin_box_1_1_wiedemann_solver.html#adfc1795d469a23b7969613dc549ae2a8">ReturnStatus</a>&#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="group___solvers.html#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="group___solvers.html#ga5eb353874cab1ef67af828eeadf50ca0"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class Field&gt;<br/>
class LinBox::WiedemannSolver&lt; Field &gt;</h3>

<p>Linear system solvers based on Wiedemann's method. </p>
<p>This class encapsulates all of the functionality for linear system solving with Wiedemann's algorithm. It includes the random solution and random nullspace element of Kaltofen and Saunders (1991), as well as the certificate of inconsistency of Giesbrecht, Lobo, and Saunders (1998). </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a97d6a848e87b6a4d499698d2c8a904e4"></a><!-- doxytag: member="LinBox::WiedemannSolver::WiedemannSolver" ref="a97d6a848e87b6a4d499698d2c8a904e4" args="(const Field &amp;F, const WiedemannTraits &amp;traits)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_wiedemann_solver.html">WiedemannSolver</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 WiedemannTraits &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="a11036acb3e9a5fd0f4864dbe0dad7824"></a><!-- doxytag: member="LinBox::WiedemannSolver::WiedemannSolver" ref="a11036acb3e9a5fd0f4864dbe0dad7824" args="(const Field &amp;F, const WiedemannTraits &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_wiedemann_solver.html">WiedemannSolver</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 WiedemannTraits &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/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="wiedemann_8h.html">wiedemann.h</a></li>
<li>wiedemann.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>