Sophie

Sophie

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

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: BlackboxFactory&lt; Field, Blackbox &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_blackbox_factory.html">BlackboxFactory</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">BlackboxFactory&lt; Field, Blackbox &gt; Class Template Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::BlackboxFactory" -->
<p>A tool for computations with integer and rational matrices.  
 <a href="class_lin_box_1_1_blackbox_factory.html#details">More...</a></p>

<p><code>#include &lt;factory.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"><a class="anchor" id="ae7baa103d2856bda8dfbdce321587334"></a><!-- doxytag: member="LinBox::BlackboxFactory::~BlackboxFactory" ref="ae7baa103d2856bda8dfbdce321587334" args="()" -->
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_factory.html#ae7baa103d2856bda8dfbdce321587334">~BlackboxFactory</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual Blackbox *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_factory.html#aec963a3de8c6b312665f9ed973c60992">makeBlackbox</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a field and vector type, construct a black box for the matrix over that field and using that vector type.  <a href="#aec963a3de8c6b312665f9ed973c60992"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_factory.html#a64490df2a5658e7d49ffa6868480335f">maxNorm</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;res)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute and return the max-norm of the matrix.  <a href="#a64490df2a5658e7d49ffa6868480335f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd4b79bb1702062236193d3baa74334b"></a><!-- doxytag: member="LinBox::BlackboxFactory::hadamardBound" ref="afd4b79bb1702062236193d3baa74334b" args="(integer &amp;res) const =0" -->
virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_factory.html#afd4b79bb1702062236193d3baa74334b">hadamardBound</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;res) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute and return the hadamard bound of the matrxi. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92a931432e9e8b732052e80e72e913f3"></a><!-- doxytag: member="LinBox::BlackboxFactory::rowdim" ref="a92a931432e9e8b732052e80e72e913f3" args="()=0" -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_factory.html#a92a931432e9e8b732052e80e72e913f3">rowdim</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Give the row dimension of the matrix. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae70eb072ebe15ffe5af08402fa27f5c5"></a><!-- doxytag: member="LinBox::BlackboxFactory::coldim" ref="ae70eb072ebe15ffe5af08402fa27f5c5" args="()=0" -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_blackbox_factory.html#ae70eb072ebe15ffe5af08402fa27f5c5">coldim</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Give the column dimension of the matrix. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class Field, class Blackbox&gt;<br/>
class LinBox::BlackboxFactory&lt; Field, Blackbox &gt;</h3>

<p>A tool for computations with integer and rational matrices. </p>
<p>The blackbox factory provides a facility for performing integer or rational computations by reducing modulo one or more primes and recovering the solution with Chinese Remaindering, lifting, or rational reconstruction. It is an interface that provides one method which, given a field, produces a black box representing a particular matrix over that field. The factory object may be passed to various procedures, such as rank, det, and solve, which will perform the required modular reductions to find integer or rational solutions.</p>
<p>In the typical case, the user provides an object whose class inherits from <a class="el" href="class_lin_box_1_1_blackbox_factory.html" title="A tool for computations with integer and rational matrices.">BlackboxFactory</a> and implements the method makeBlackbox. The object represents the original integer or rational version of the black box, whose data might require some modification (e.g. modular reduction) to produce a true black box. Alternatively, the resulting black box might merely be a reinterpretation of the data in the original object, as is the case where matrix entries are all nonnegative and smaller than the modulus. </p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aec963a3de8c6b312665f9ed973c60992"></a><!-- doxytag: member="LinBox::BlackboxFactory::makeBlackbox" ref="aec963a3de8c6b312665f9ed973c60992" args="(const Field &amp;F)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual Blackbox* makeBlackbox </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><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Given a field and vector type, construct a black box for the matrix over that field and using that vector type. </p>
<p>This should be implemented by the user </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td>Field over which to construct the black box </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a64490df2a5658e7d49ffa6868480335f"></a><!-- doxytag: member="LinBox::BlackboxFactory::maxNorm" ref="a64490df2a5658e7d49ffa6868480335f" args="(integer &amp;res)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a>&amp; maxNorm </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td>
          <td class="paramname"><em>res</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute and return the max-norm of the matrix. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">res</td><td>Place to store result </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_dense_matrix_factory.html#ab338d6222fc65b481d8607ebca799bf1">DenseMatrixFactory&lt; Field, BElement &gt;</a>, and <a class="el" href="class_lin_box_1_1_sparse_matrix_factory.html#ab52f6f680745849ad98acd831593552b">SparseMatrixFactory&lt; Field, BElement, Row, BRow &gt;</a>.</p>

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