Sophie

Sophie

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

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: test-field.h File 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><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><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="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_cf620183c5c3807dc691899a7c45ab08.html">tests</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">test-field.h File Reference<div class="ingroups"><a class="el" href="group__tests.html">tests</a></div></div>  </div>
</div>
<div class="contents">

<p>tests field operations  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br/>
<code>#include &lt;sstream&gt;</code><br/>
<code>#include &lt;vector&gt;</code><br/>
<code>#include &lt;cstdio&gt;</code><br/>
<code>#include &quot;<a class="el" href="commentator_8h.html">linbox/util/commentator.h</a>&quot;</code><br/>
<code>#include &quot;linbox/util/field-axpy.h&quot;</code><br/>
<code>#include &quot;linbox/randiter/nonzero.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="integer_8h.html">linbox/integer.h</a>&quot;</code><br/>
<code>#include &quot;test-common.h&quot;</code><br/>
</div><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 Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#acd7e3a6e91f08cb2fa2d5a712e06d930">testField</a> (<a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *title, bool fieldp=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check each field or ring operation.  <a href="#acd7e3a6e91f08cb2fa2d5a712e06d930"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a9ec60f748edc2e7d88d7bf17494021ff"></a><!-- doxytag: member="test&#45;field.h::testFieldNegation" ref="a9ec60f748edc2e7d88d7bf17494021ff" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a9ec60f748edc2e7d88d7bf17494021ff">testFieldNegation</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests of algebraic properties of fields. <br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a01009a068f57c44f3833054b489d9116">testFieldInversion</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 5: Inversion of elements.  <a href="#a01009a068f57c44f3833054b489d9116"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a26c335b991110b5d2e105c78cfdc57f7">testFieldDistributivity</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 7a: Distributivity of multiplication over addition.  <a href="#a26c335b991110b5d2e105c78cfdc57f7"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#abf5665ac1c58f0ff695ca3d160399097">testFieldCommutativity</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 7b: Commutativity of multiplication and addition.  <a href="#abf5665ac1c58f0ff695ca3d160399097"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#adf8c73228187875ed2f0da6ec987403d">testFieldAssociativity</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 7c: Associativity of addition and multiplication.  <a href="#adf8c73228187875ed2f0da6ec987403d"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a0986fd39e007191331571f712c71953d">testGeometricSummation</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations, unsigned int n)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 2: Geometric summation.  <a href="#a0986fd39e007191331571f712c71953d"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a26441dc175b032470f5e5d0e69d95402">testFieldCharacteristic</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 3: Test of field characteristic.  <a href="#a26441dc175b032470f5e5d0e69d95402"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a7436cd3bcfbda835d167a7e33b68e69c">testFreshmansDream</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 4: The Freshman's Dream.  <a href="#a7436cd3bcfbda835d167a7e33b68e69c"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#ad7cf497bb6882429d51971255351d45f">testArithmeticConsistency</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 7: Consistency of in-place and out-of-place arithmetic.  <a href="#ad7cf497bb6882429d51971255351d45f"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#ad2ade4995182d8497bfa770602893b86">testRingTrivia</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a787258ad73e844ae81f4fcfb11609f94">testAxpyConsistency</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 8: Consistency of axpy.  <a href="#a787258ad73e844ae81f4fcfb11609f94"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a518e59a9d514a34d9ebc4c5c1922e769">testRanditerBasic</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *name, unsigned int iterations)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic test 9: Basic concept check of RandIter.  <a href="#a518e59a9d514a34d9ebc4c5c1922e769"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Generic field tests</div></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a704f47283ad5c0940cbd410b5a624024">testRandomIterator</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *text, unsigned int num_trials, unsigned int num_categories, unsigned int hist_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Random number test.  <a href="#a704f47283ad5c0940cbd410b5a624024"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="test-field_8h.html#a470849cba39b57fc06890a3220933908">testRandomIteratorStep</a> (const <a class="el" href="class_lin_box_1_1_modular_3_01uint32__t_01_4.html">Field</a> &amp;F, const char *text, unsigned int num_trials, unsigned int num_categories, unsigned int hist_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Random number test.  <a href="#a470849cba39b57fc06890a3220933908"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>tests field operations </p>
<dl class="test"><dt><b><a class="el" href="test.html#_test000017">Test:</a></b></dt><dd>tests field operations </dd></dl>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="acd7e3a6e91f08cb2fa2d5a712e06d930"></a><!-- doxytag: member="test&#45;field.h::testField" ref="acd7e3a6e91f08cb2fa2d5a712e06d930" args="(Field &amp;F, const char *title, bool fieldp=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testField </td>
          <td>(</td>
          <td class="paramtype"><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 char *&#160;</td>
          <td class="paramname"><em>title</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fieldp</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check each field or ring operation. </p>
<p>Test various field operations</p>
<p>F - Field over which to perform computations title - String to use as the descriptive title of this test fieldp - use true if inv and div must work for all nonzero denominators</p>
<p>Return true on success and false on failure </p>

<p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000041">Todo:</a></b></dt><dd>untested so far : </dd></dl>
<p>- ostream &amp;write (ostream &amp;os) const</p>
<ul>
<li>istream &amp;read (istream &amp;is)</li>
<li>ostream &amp;write (ostream &amp;os, const Element &amp;x) const</li>
<li>istream &amp;read (istream &amp;is, Element &amp;x) const</li>
<li>FieldArchetype (FieldAbstract*, ElementAbstract*, RandIterAbstract* = 0)</li>
</ul>
</p>

</div>
</div>
<a class="anchor" id="a01009a068f57c44f3833054b489d9116"></a><!-- doxytag: member="test&#45;field.h::testFieldInversion" ref="a01009a068f57c44f3833054b489d9116" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testFieldInversion </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 5: Inversion of elements. </p>
<p>Inverts random elements and checks that they are true inverses </p>

</div>
</div>
<a class="anchor" id="a26c335b991110b5d2e105c78cfdc57f7"></a><!-- doxytag: member="test&#45;field.h::testFieldDistributivity" ref="a26c335b991110b5d2e105c78cfdc57f7" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testFieldDistributivity </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 7a: Distributivity of multiplication over addition. </p>
<p>Given random field elements 'a', 'b', and 'c', checks that (a + b) * c = a * c + b * c and c * (a + b) = c * a + c * b </p>

</div>
</div>
<a class="anchor" id="abf5665ac1c58f0ff695ca3d160399097"></a><!-- doxytag: member="test&#45;field.h::testFieldCommutativity" ref="abf5665ac1c58f0ff695ca3d160399097" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testFieldCommutativity </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 7b: Commutativity of multiplication and addition. </p>
<p>Given random field elements 'a', 'b', checks that a*b = b*a a+b = b+a </p>

</div>
</div>
<a class="anchor" id="adf8c73228187875ed2f0da6ec987403d"></a><!-- doxytag: member="test&#45;field.h::testFieldAssociativity" ref="adf8c73228187875ed2f0da6ec987403d" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testFieldAssociativity </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 7c: Associativity of addition and multiplication. </p>
<p>Given random field elements 'a', 'b', and 'c', checks that (a * b) * c = a * (b * c) and (a + b) + c = a + (b + c) </p>

</div>
</div>
<a class="anchor" id="a0986fd39e007191331571f712c71953d"></a><!-- doxytag: member="test&#45;field.h::testGeometricSummation" ref="a0986fd39e007191331571f712c71953d" args="(const Field &amp;F, const char *name, unsigned int iterations, unsigned int n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testGeometricSummation </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 2: Geometric summation. </p>
<p>Generates a random field element 'a' and raises it through repeated exponentiation to the power n. Takes the sum k of all intermediate values and checks that a^n = (k-1)/(a-1). </p>

</div>
</div>
<a class="anchor" id="a26441dc175b032470f5e5d0e69d95402"></a><!-- doxytag: member="test&#45;field.h::testFieldCharacteristic" ref="a26441dc175b032470f5e5d0e69d95402" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testFieldCharacteristic </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 3: Test of field characteristic. </p>
<p>Take random field elements and add them p times, where p is the characteristic of the field. Checks that the sum is 0. The test is not too useful when the characteristic of the field is 0, but it should still work correctly. </p>

</div>
</div>
<a class="anchor" id="a7436cd3bcfbda835d167a7e33b68e69c"></a><!-- doxytag: member="test&#45;field.h::testFreshmansDream" ref="a7436cd3bcfbda835d167a7e33b68e69c" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testFreshmansDream </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 4: The Freshman's Dream. </p>
<p>Generates two random field elements 'a' and 'b', and checks whether (a + b)^p = a^p + b^p, where p is the characteristic of the field. Bails out (returning true) if the field is of characteristic 0. </p>

</div>
</div>
<a class="anchor" id="ad7cf497bb6882429d51971255351d45f"></a><!-- doxytag: member="test&#45;field.h::testArithmeticConsistency" ref="ad7cf497bb6882429d51971255351d45f" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testArithmeticConsistency </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 7: Consistency of in-place and out-of-place arithmetic. </p>
<p>Generates random elements 'a' and 'b' and performs all basic arithmetic operations in-place and out-of-place, checking for consistency.</p>
<p>Div and inv are checked in a separate function. </p>

</div>
</div>
<a class="anchor" id="ad2ade4995182d8497bfa770602893b86"></a><!-- doxytag: member="test&#45;field.h::testRingTrivia" ref="ad2ade4995182d8497bfa770602893b86" args="(const Field &amp;F, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testRingTrivia </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 char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><dl class="bug"><dt><b><a class="el" href="bug.html#_bug000018">Bug:</a></b></dt><dd>BlockRing does not know about 0 and 1 ! </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000042">Todo:</a></b></dt><dd>enable init with 1UL et -1L pour GMPRationalElement </dd></dl>
</p>

</div>
</div>
<a class="anchor" id="a787258ad73e844ae81f4fcfb11609f94"></a><!-- doxytag: member="test&#45;field.h::testAxpyConsistency" ref="a787258ad73e844ae81f4fcfb11609f94" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testAxpyConsistency </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 8: Consistency of axpy. </p>
<p>Generates random elements 'a', 'x', and 'y' and checks that a * x + y is the same for axpy, axpyin, add/mul </p>

</div>
</div>
<a class="anchor" id="a518e59a9d514a34d9ebc4c5c1922e769"></a><!-- doxytag: member="test&#45;field.h::testRanditerBasic" ref="a518e59a9d514a34d9ebc4c5c1922e769" args="(const Field &amp;F, const char *name, unsigned int iterations)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testRanditerBasic </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 char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>iterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic test 9: Basic concept check of RandIter. </p>
<p>In a loop, generates random element 'a', and fails if it is always zero. </p>

</div>
</div>
<a class="anchor" id="a704f47283ad5c0940cbd410b5a624024"></a><!-- doxytag: member="test&#45;field.h::testRandomIterator" ref="a704f47283ad5c0940cbd410b5a624024" args="(const Field &amp;F, const char *text, unsigned int num_trials, unsigned int num_categories, unsigned int hist_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testRandomIterator </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 char *&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>num_trials</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>num_categories</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>hist_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Random number test. </p>
<p>Test that the random iterator over the given field works.</p>
<p>Test up to five times, accepting any one, to increase probability of passing statistical tests. </p>

</div>
</div>
<a class="anchor" id="a470849cba39b57fc06890a3220933908"></a><!-- doxytag: member="test&#45;field.h::testRandomIteratorStep" ref="a470849cba39b57fc06890a3220933908" args="(const Field &amp;F, const char *text, unsigned int num_trials, unsigned int num_categories, unsigned int hist_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool testRandomIteratorStep </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 char *&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>num_trials</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>num_categories</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>hist_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Random number test. </p>
<p>Test that the random iterator over the given field works.</p>
<p>Test up to five times, accepting any one, to increase probability of passing statistical tests. </p>

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