Sophie

Sophie

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

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: FieldArchetype Class 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_field_archetype.html">FieldArchetype</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">FieldArchetype Class Reference<div class="ingroups"><a class="el" href="group__field.html">field</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::FieldArchetype" --><!-- doxytag: inherits="LinBox::FieldInterface" -->
<p>field specification and archetypical instance.  
 <a href="class_lin_box_1_1_field_archetype.html#details">More...</a></p>

<p><code>#include &lt;archetype.h&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png"/> Inheritance diagram for FieldArchetype:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="class_lin_box_1_1_field_archetype.png" usemap="#FieldArchetype_map" alt=""/>
  <map id="FieldArchetype_map" name="FieldArchetype_map">
<area href="class_lin_box_1_1_field_interface.html" title="This field base class exists solely to aid documentation organization." alt="FieldInterface" shape="rect" coords="0,0,99,24"/>
<area href="class_lin_box_1_1_ring_archetype.html" title="specification and archetypic instance for the ring interfaceThe RingArchetype and its encapsulated el..." alt="RingArchetype" shape="rect" coords="0,112,99,136"/>
</map>
 </div></div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Common Object Interface for a LinBox Field.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>These methods are required of all <a class="el" href="namespace_lin_box.html">LinBox</a> fields. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d5b68118c6cec7d27664e4749dafa72"></a><!-- doxytag: member="LinBox::FieldArchetype::Element" ref="a0d5b68118c6cec7d27664e4749dafa72" args="" -->
typedef <a class="el" href="class_lin_box_1_1_element_archetype.html">ElementArchetype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a0d5b68118c6cec7d27664e4749dafa72">Element</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">the type in which field elements are represented. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41293e3a23a0662b09f2084f49a5ca55"></a><!-- doxytag: member="LinBox::FieldArchetype::RandIter" ref="a41293e3a23a0662b09f2084f49a5ca55" args="" -->
typedef <a class="el" href="class_lin_box_1_1_rand_iter_archetype.html">RandIterArchetype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a41293e3a23a0662b09f2084f49a5ca55">RandIter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An object of this type is a generator of random field elements. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Object Management</div></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_field_archetype.html#ad95b615b2f337c584df43ddbabe76496">FieldArchetype</a> (const <a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> &amp;F)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#ad95b615b2f337c584df43ddbabe76496"></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_field_archetype.html#ae16ce7ef37ec1771edc4e7b26f332882">~FieldArchetype</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ae16ce7ef37ec1771edc4e7b26f332882"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a06ab873536d6166ea8e6afaf214e5122">operator=</a> (const <a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> &amp;F)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator.  <a href="#a06ab873536d6166ea8e6afaf214e5122"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#aae5203f2b54f2c34ff96409dcd395075">init</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;n=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of field element from an integer.  <a href="#aae5203f2b54f2c34ff96409dcd395075"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><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_field_archetype.html#acabae2d13a769c7ba3bdd83dbfe893e0">convert</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;n, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Conversion of field element to an integer.  <a href="#acabae2d13a769c7ba3bdd83dbfe893e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a7ed3d5d8b4d9f1ab407365c020b18c58">assign</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment of one field element to another.  <a href="#a7ed3d5d8b4d9f1ab407365c020b18c58"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><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_field_archetype.html#ade46ce0a344fcc718625a2296a8104ab">cardinality</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;c) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cardinality.  <a href="#ade46ce0a344fcc718625a2296a8104ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><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_field_archetype.html#aea4d4c3f059080408c3a6344cf9fff10">characteristic</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;c) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Characteristic.  <a href="#aea4d4c3f059080408c3a6344cf9fff10"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Arithmetic Operations</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>x &lt;- y op z; x &lt;- op y These operations require all elements, including x, to be initialized before the operation is called.</p>
<p>Uninitialized field elements will give undefined results. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a0763bd76c2ed93bc54973d632b98ec90">areEqual</a> (const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality of two elements.  <a href="#a0763bd76c2ed93bc54973d632b98ec90"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#aadf4e83f1ac414b0caa1bef2154dabdb">add</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition, x &lt;-- y + z.  <a href="#aadf4e83f1ac414b0caa1bef2154dabdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a2f2a41d18bd65f48cb5fb894fcd3b51b">sub</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtraction, x &lt;-- y - z.  <a href="#a2f2a41d18bd65f48cb5fb894fcd3b51b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#adf251fca0ae6bc767b0e9c5f2d6081f7">mul</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication, x &lt;-- y * z.  <a href="#adf251fca0ae6bc767b0e9c5f2d6081f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a4d8f0ac0be4b8a5a074f441d74bf4276">div</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Division, x &lt;-- y / z.  <a href="#a4d8f0ac0be4b8a5a074f441d74bf4276"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a608fc0675ac7788b016f686fa3a6ec7e">neg</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Additive <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a> (Negation), x &lt;-- - y.  <a href="#a608fc0675ac7788b016f686fa3a6ec7e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a9b2e67d87131ae67539834cd9cd3fa7a">inv</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplicative <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a>, x &lt;-- 1 / y.  <a href="#a9b2e67d87131ae67539834cd9cd3fa7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a09806701a7acb018cd70b179635720da">axpy</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;r, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;a, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Field element AXPY, r &lt;-- a * x + y.  <a href="#a09806701a7acb018cd70b179635720da"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Predicates</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a0865272ef30f366f2a7a06323ee7cc22">isZero</a> (const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Zero equality.  <a href="#a0865272ef30f366f2a7a06323ee7cc22"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#ab37695d9e0fb5b0064c85e8449ed596b">isOne</a> (const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One equality.  <a href="#ab37695d9e0fb5b0064c85e8449ed596b"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Inplace Arithmetic Operations</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>x &lt;- x op y; x &lt;- op x These operations require all elements, including x, to be initialized before the operation is called.</p>
<p>Uninitialized field elements will give undefined results. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a25ec1b0d3d2d8da69636a121ef781a55">addin</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Addition.  <a href="#a25ec1b0d3d2d8da69636a121ef781a55"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#aa14037ab7a2e80c0e663a760acbaff15">subin</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Subtraction.  <a href="#aa14037ab7a2e80c0e663a760acbaff15"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a6e17c2a1321787d89a51b9f0eee0f408">mulin</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Multiplication.  <a href="#a6e17c2a1321787d89a51b9f0eee0f408"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#ac5966c66651795d1636a032e8bcd28ef">divin</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Division.  <a href="#ac5966c66651795d1636a032e8bcd28ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a540bdfc0ce896b62d1a13247a2acfce2">negin</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Additive <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a> (Inplace Negation).  <a href="#a540bdfc0ce896b62d1a13247a2acfce2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#acf833d5877bb610fef71aac14074d5ce">invin</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Multiplicative <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a>.  <a href="#acf833d5877bb610fef71aac14074d5ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a2a6378ec17b22af66cfa5e6901461cd1">axpyin</a> (<a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;r, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;a, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace AXPY.  <a href="#a2a6378ec17b22af66cfa5e6901461cd1"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Input/Output Operations</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#acd22def76f55c19076bb6c86104beaf0">write</a> (std::ostream &amp;os) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print field.  <a href="#acd22def76f55c19076bb6c86104beaf0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a7f1e7ece6c12a9a3feb091f90c7c9ac1">read</a> (std::istream &amp;is)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read field.  <a href="#a7f1e7ece6c12a9a3feb091f90c7c9ac1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a332d58769d8dc6ba08d307db48386588">write</a> (std::ostream &amp;os, const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print field element.  <a href="#a332d58769d8dc6ba08d307db48386588"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a054db1ecf60ae64391b553dfc6316205">read</a> (std::istream &amp;is, <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read field element.  <a href="#a054db1ecf60ae64391b553dfc6316205"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Implementation-Specific Methods.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>These methods are not required of all <a class="el" href="namespace_lin_box.html">LinBox</a>\ Fields and are included only for this implementation of the archetype. </p>
</div></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_field_archetype.html#a7e4ead790fae2739bfb7da000be9a59c">FieldArchetype</a> (<a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> *field_ptr, <a class="el" href="class_lin_box_1_1_element_abstract.html">ElementAbstract</a> *elem_ptr, <a class="el" href="class_lin_box_1_1_rand_iter_abstract.html">RandIterAbstract</a> *randIter_ptr=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a7e4ead790fae2739bfb7da000be9a59c"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field_qcq &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a6f6df7b7c334d0978a65b5350a7ec05b">FieldArchetype</a> (Field_qcq *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a6f6df7b7c334d0978a65b5350a7ec05b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field_qcq &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a9122233fbf5c2f3e4fd7b1237e38fb1c">constructor</a> (<a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> *trait, Field_qcq *field_ptr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template method for constructing archetype from a derived class of <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a>.  <a href="#a9122233fbf5c2f3e4fd7b1237e38fb1c"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Field_qcq &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a28d34cf83a537ab108861ac780009ed8">constructor</a> (void *trait, Field_qcq *field_ptr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Template method for constructing archetype from a class not derived from <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a>.  <a href="#a28d34cf83a537ab108861ac780009ed8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0797ffb94563678f9de835990aace764"></a><!-- doxytag: member="LinBox::FieldArchetype::FieldArchetype" ref="a0797ffb94563678f9de835990aace764" args="()" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a0797ffb94563678f9de835990aace764">FieldArchetype</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Only authorize inhertied classes to use the empty constructor. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a615b9bc7364f903ad92d77a0626bdf23">_field_ptr</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> object.  <a href="#a615b9bc7364f903ad92d77a0626bdf23"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_element_abstract.html">ElementAbstract</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a2df3782f6453615519872d14aa10cecf">_elem_ptr</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="class_lin_box_1_1_element_abstract.html" title="Abstract element base class, a technicality.">ElementAbstract</a> object.  <a href="#a2df3782f6453615519872d14aa10cecf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_rand_iter_abstract.html">RandIterAbstract</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_archetype.html#a418143fcded940a0977a41a8f33c727b">_randIter_ptr</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to <a class="el" href="class_lin_box_1_1_rand_iter_abstract.html" title="Random field element generator.">RandIterAbstract</a> object.  <a href="#a418143fcded940a0977a41a8f33c727b"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>field specification and archetypical instance. </p>
<p>The FieldArchetype and its encapsulated element class contain pointers to the <a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> and its encapsulated field element, respectively. FieldAbstract then uses virtual member functions to define operations on its encapsulated field element. This field element has no knowledge of the field properties being used on it which means the field object must supply these operations.</p>
<p>It does not contain elements zero and one because they can be created whenever necessary, although it might be beneficial from an efficiency stand point to include them. However, because of archetype use three, the elements themselves cannot be contained, but rather pointers to them. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ad95b615b2f337c584df43ddbabe76496"></a><!-- doxytag: member="LinBox::FieldArchetype::FieldArchetype" ref="ad95b615b2f337c584df43ddbabe76496" args="(const FieldArchetype &amp;F)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> &amp;&#160;</td>
          <td class="paramname"><em>F</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor. </p>
<p>Each field class is expected to provide a copy constructor. This is required to allow field objects to be passed by value into functions.</p>
<p>In this archetype implementation, this means copying the field to which <code> F._field_ptr</code> points, the element to which <code> F._elem_ptr</code> points, and the random element generator to which <code> F._randIter_ptr</code> points. </p>

</div>
</div>
<a class="anchor" id="ae16ce7ef37ec1771edc4e7b26f332882"></a><!-- doxytag: member="LinBox::FieldArchetype::~FieldArchetype" ref="ae16ce7ef37ec1771edc4e7b26f332882" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>
<p>This destroys the field object, but it does not destroy any field element objects.</p>
<p>In this archetype implementation, destruction is deletion of the field object to which <code> _field_ptr</code> points, the field element to which <code> _elem_ptr</code> points, and the random element generator to which <code> _randIter_ptr</code> points. </p>

</div>
</div>
<a class="anchor" id="a7e4ead790fae2739bfb7da000be9a59c"></a><!-- doxytag: member="LinBox::FieldArchetype::FieldArchetype" ref="a7e4ead790fae2739bfb7da000be9a59c" args="(FieldAbstract *field_ptr, ElementAbstract *elem_ptr, RandIterAbstract *randIter_ptr=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> *&#160;</td>
          <td class="paramname"><em>field_ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.html">ElementAbstract</a> *&#160;</td>
          <td class="paramname"><em>elem_ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_rand_iter_abstract.html">RandIterAbstract</a> *&#160;</td>
          <td class="paramname"><em>randIter_ptr</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Constructs field from pointer to <a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> and its encapsulated element and random element generator. Not part of the interface. Creates new copies of field, element, and random iterator generator objects in dynamic memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">field_ptr</td><td>pointer to <a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a>. </td></tr>
    <tr><td class="paramname">elem_ptr</td><td>pointer to <a class="el" href="class_lin_box_1_1_element_abstract.html">ElementAbstract</a>, which is the encapsulated element of <a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a>. </td></tr>
    <tr><td class="paramname">randIter_ptr</td><td>pointer to <a class="el" href="class_lin_box_1_1_rand_iter_abstract.html">RandIterAbstract</a>, which is the encapsulated random iterator generator of <a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6f6df7b7c334d0978a65b5350a7ec05b"></a><!-- doxytag: member="LinBox::FieldArchetype::FieldArchetype" ref="a6f6df7b7c334d0978a65b5350a7ec05b" args="(Field_qcq *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> </td>
          <td>(</td>
          <td class="paramtype">Field_qcq *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Constructs field from ANYTHING matching the interface using the enveloppe as a <a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> and its encapsulated element and random element generator if needed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a06ab873536d6166ea8e6afaf214e5122"></a><!-- doxytag: member="LinBox::FieldArchetype::operator=" ref="a06ab873536d6166ea8e6afaf214e5122" args="(const FieldArchetype &amp;F)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a> &amp;&#160;</td>
          <td class="paramname"><em>F</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assignment operator. </p>
<p>In this archetype implementation, this means copying the field to which <code> F._field_ptr</code> points, the element to which <code> F._elem_ptr</code> points, and the random element generator to which <code> F._randIter_ptr</code> points.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">F</td><td><code> <a class="el" href="class_lin_box_1_1_field_archetype.html" title="field specification and archetypical instance.">FieldArchetype</a></code> object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aae5203f2b54f2c34ff96409dcd395075"></a><!-- doxytag: member="LinBox::FieldArchetype::init" ref="aae5203f2b54f2c34ff96409dcd395075" args="(Element &amp;x, const integer &amp;n=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialization of field element from an integer. </p>
<p>x becomes the image of n under the natural map from the integers to the prime subfield. It is the result obtained from adding n 1's in the field.</p>
<p>This function assumes the output field element x has already been constructed, but that it is not necessarily already initialized. In this archetype implementation, this means the <code> _elem_ptr</code> of x exists, but that it may be the null pointer.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>output field element. </td></tr>
    <tr><td class="paramname">n</td><td>input integer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acabae2d13a769c7ba3bdd83dbfe893e0"></a><!-- doxytag: member="LinBox::FieldArchetype::convert" ref="acabae2d13a769c7ba3bdd83dbfe893e0" args="(integer &amp;n, const Element &amp;y=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a>&amp; convert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Conversion of field element to an integer. </p>
<p>The meaning of conversion is specific to each field class. However, if x is in the prime subfield, the integer n returned is such that an init from n will reproduce x. Most often, <img class="formulaInl" alt="$0 \leq n < \mathrm{characteristic}$" src="form_47.png"/>.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to n. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>output integer. </td></tr>
    <tr><td class="paramname">y</td><td>input field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7ed3d5d8b4d9f1ab407365c020b18c58"></a><!-- doxytag: member="LinBox::FieldArchetype::assign" ref="a7ed3d5d8b4d9f1ab407365c020b18c58" args="(Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; assign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assignment of one field element to another. </p>
<p>This function assumes both field elements have already been constructed and initialized.</p>
<p>In this archetype implementation, this means for both x and y, <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>destination field element. </td></tr>
    <tr><td class="paramname">y</td><td>source field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ade46ce0a344fcc718625a2296a8104ab"></a><!-- doxytag: member="LinBox::FieldArchetype::cardinality" ref="ade46ce0a344fcc718625a2296a8104ab" args="(integer &amp;c) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a>&amp; cardinality </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cardinality. </p>
<p>Return c, integer representing cardinality of the field. c becomes a non-negative integer for all fields with finite cardinality, and -1 to signify a field of infinite cardinality. </p>

</div>
</div>
<a class="anchor" id="aea4d4c3f059080408c3a6344cf9fff10"></a><!-- doxytag: member="LinBox::FieldArchetype::characteristic" ref="aea4d4c3f059080408c3a6344cf9fff10" args="(integer &amp;c) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a>&amp; characteristic </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Characteristic. </p>
<p>Return c, integer representing characteristic of the field (the least positive n such that the sum of n copies of x is 0 for all field elements x). c becomes a positive integer for all fields with finite characteristic, and 0 to signify a field of infinite characteristic. </p>

</div>
</div>
<a class="anchor" id="a0763bd76c2ed93bc54973d632b98ec90"></a><!-- doxytag: member="LinBox::FieldArchetype::areEqual" ref="a0763bd76c2ed93bc54973d632b98ec90" args="(const Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool areEqual </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Equality of two elements. </p>
<p>This function assumes both field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for both x and y, <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>boolean true if equal, false if not. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element </td></tr>
    <tr><td class="paramname">y</td><td>field element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aadf4e83f1ac414b0caa1bef2154dabdb"></a><!-- doxytag: member="LinBox::FieldArchetype::add" ref="aadf4e83f1ac414b0caa1bef2154dabdb" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Addition, x &lt;-- y + z. </p>
<p>This function assumes all the field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for x, y, and z, <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>

</div>
</div>
<a class="anchor" id="a2f2a41d18bd65f48cb5fb894fcd3b51b"></a><!-- doxytag: member="LinBox::FieldArchetype::sub" ref="a2f2a41d18bd65f48cb5fb894fcd3b51b" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; sub </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Subtraction, x &lt;-- y - z. </p>
<p>This function assumes all the field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for x, y, and z, <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>

</div>
</div>
<a class="anchor" id="adf251fca0ae6bc767b0e9c5f2d6081f7"></a><!-- doxytag: member="LinBox::FieldArchetype::mul" ref="adf251fca0ae6bc767b0e9c5f2d6081f7" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; mul </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Multiplication, x &lt;-- y * z. </p>
<p>This function assumes all the field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for x, y, and z, <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>

</div>
</div>
<a class="anchor" id="a4d8f0ac0be4b8a5a074f441d74bf4276"></a><!-- doxytag: member="LinBox::FieldArchetype::div" ref="a4d8f0ac0be4b8a5a074f441d74bf4276" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; div </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Division, x &lt;-- y / z. </p>
<p>This function assumes all the field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for x, y, and z, <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>

</div>
</div>
<a class="anchor" id="a608fc0675ac7788b016f686fa3a6ec7e"></a><!-- doxytag: member="LinBox::FieldArchetype::neg" ref="a608fc0675ac7788b016f686fa3a6ec7e" args="(Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; neg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Additive <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a> (Negation), x &lt;-- - y. </p>
<p>This function assumes both field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for both x and y <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>

</div>
</div>
<a class="anchor" id="a9b2e67d87131ae67539834cd9cd3fa7a"></a><!-- doxytag: member="LinBox::FieldArchetype::inv" ref="a9b2e67d87131ae67539834cd9cd3fa7a" args="(Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; inv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Multiplicative <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a>, x &lt;-- 1 / y. </p>
<p>Requires that y is a unit (i.e. nonzero in a field). This function assumes both field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for both x and y <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>

</div>
</div>
<a class="anchor" id="a09806701a7acb018cd70b179635720da"></a><!-- doxytag: member="LinBox::FieldArchetype::axpy" ref="a09806701a7acb018cd70b179635720da" args="(Element &amp;r, const Element &amp;a, const Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; axpy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Field element AXPY, r &lt;-- a * x + y. </p>
<p>This function assumes all field elements have already been constructed and initialized. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to r. </dd></dl>

</div>
</div>
<a class="anchor" id="a0865272ef30f366f2a7a06323ee7cc22"></a><!-- doxytag: member="LinBox::FieldArchetype::isZero" ref="a0865272ef30f366f2a7a06323ee7cc22" args="(const Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isZero </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Zero equality. </p>
<p>Test if field element is equal to zero. This function assumes the field element has already been constructed and initialized.</p>
<p>In this implementation, this means the <code>_elem_ptr</code> of x exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>boolean true if equals zero, false if not. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab37695d9e0fb5b0064c85e8449ed596b"></a><!-- doxytag: member="LinBox::FieldArchetype::isOne" ref="ab37695d9e0fb5b0064c85e8449ed596b" args="(const Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isOne </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One equality. </p>
<p>Test if field element is equal to one. This function assumes the field element has already been constructed and initialized.</p>
<p>In this implementation, this means the <code> _elem_ptr</code> of x exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>boolean true if equals one, false if not. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a25ec1b0d3d2d8da69636a121ef781a55"></a><!-- doxytag: member="LinBox::FieldArchetype::addin" ref="a25ec1b0d3d2d8da69636a121ef781a55" args="(Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; addin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inplace Addition. </p>
<p>x += y This function assumes both field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for both x and y <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa14037ab7a2e80c0e663a760acbaff15"></a><!-- doxytag: member="LinBox::FieldArchetype::subin" ref="aa14037ab7a2e80c0e663a760acbaff15" args="(Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; subin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inplace Subtraction. </p>
<p>x -= y This function assumes both field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for both x and y <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6e17c2a1321787d89a51b9f0eee0f408"></a><!-- doxytag: member="LinBox::FieldArchetype::mulin" ref="a6e17c2a1321787d89a51b9f0eee0f408" args="(Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; mulin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inplace Multiplication. </p>
<p>x *= y This function assumes both field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for both x and y <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac5966c66651795d1636a032e8bcd28ef"></a><!-- doxytag: member="LinBox::FieldArchetype::divin" ref="ac5966c66651795d1636a032e8bcd28ef" args="(Element &amp;x, const Element &amp;y) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; divin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inplace Division. </p>
<p>x /= y This function assumes both field elements have already been constructed and initialized.</p>
<p>In this implementation, this means for both x and y <code> _elem_ptr</code> exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a540bdfc0ce896b62d1a13247a2acfce2"></a><!-- doxytag: member="LinBox::FieldArchetype::negin" ref="a540bdfc0ce896b62d1a13247a2acfce2" args="(Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; negin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inplace Additive <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a> (Inplace Negation). </p>
<p>x = - x This function assumes the field element has already been constructed and initialized.</p>
<p>In this implementation, this means the <code> _elem_ptr</code> of x exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element (reference returned). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acf833d5877bb610fef71aac14074d5ce"></a><!-- doxytag: member="LinBox::FieldArchetype::invin" ref="acf833d5877bb610fef71aac14074d5ce" args="(Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; invin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inplace Multiplicative <a class="el" href="class_lin_box_1_1_inverse.html" title="A Blackbox for the inverse.">Inverse</a>. </p>
<p>x = 1 / x This function assumes the field elementhas already been constructed and initialized.</p>
<p>In this implementation, this means the <code> _elem_ptr</code> of x exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to x. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element (reference returned). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2a6378ec17b22af66cfa5e6901461cd1"></a><!-- doxytag: member="LinBox::FieldArchetype::axpyin" ref="a2a6378ec17b22af66cfa5e6901461cd1" args="(Element &amp;r, const Element &amp;a, const Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a>&amp; axpyin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inplace AXPY. </p>
<p>r += a * x This function assumes all field elements have already been constructed and initialized. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to r. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>field element (reference returned). </td></tr>
    <tr><td class="paramname">a</td><td>field element. </td></tr>
    <tr><td class="paramname">x</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acd22def76f55c19076bb6c86104beaf0"></a><!-- doxytag: member="LinBox::FieldArchetype::write" ref="acd22def76f55c19076bb6c86104beaf0" args="(std::ostream &amp;os) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; write </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print field. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>output stream to which field is written. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>output stream to which field is written. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7f1e7ece6c12a9a3feb091f90c7c9ac1"></a><!-- doxytag: member="LinBox::FieldArchetype::read" ref="a7f1e7ece6c12a9a3feb091f90c7c9ac1" args="(std::istream &amp;is)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::istream&amp; read </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read field. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>input stream from which field is read. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">is</td><td>input stream from which field is read. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a332d58769d8dc6ba08d307db48386588"></a><!-- doxytag: member="LinBox::FieldArchetype::write" ref="a332d58769d8dc6ba08d307db48386588" args="(std::ostream &amp;os, const Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; write </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print field element. </p>
<p>This function assumes the field element has already been constructed and initialized.</p>
<p>In this implementation, this means for the <code> _elem_ptr</code> for x exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>output stream to which field element is written. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>output stream to which field element is written. </td></tr>
    <tr><td class="paramname">x</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a054db1ecf60ae64391b553dfc6316205"></a><!-- doxytag: member="LinBox::FieldArchetype::read" ref="a054db1ecf60ae64391b553dfc6316205" args="(std::istream &amp;is, Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::istream&amp; read </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_archetype.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read field element. </p>
<p>This function assumes the field element has already been constructed and initialized.</p>
<p>In this implementation, this means for the <code> _elem_ptr</code> for x exists and does not point to null.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>input stream from which field element is read. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">is</td><td>input stream from which field element is read. </td></tr>
    <tr><td class="paramname">x</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9122233fbf5c2f3e4fd7b1237e38fb1c"></a><!-- doxytag: member="LinBox::FieldArchetype::constructor" ref="a9122233fbf5c2f3e4fd7b1237e38fb1c" args="(FieldAbstract *trait, Field_qcq *field_ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void constructor </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a> *&#160;</td>
          <td class="paramname"><em>trait</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Field_qcq *&#160;</td>
          <td class="paramname"><em>field_ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Template method for constructing archetype from a derived class of <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a>. </p>
<p>This class is needed to help the constructor differentiate between classes derived from <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> and classes that aren't. Should be called with the same argument to both parameters? </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trait</td><td>pointer to <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> or class derived from it </td></tr>
    <tr><td class="paramname">field_ptr</td><td>pointer to class derived from <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a28d34cf83a537ab108861ac780009ed8"></a><!-- doxytag: member="LinBox::FieldArchetype::constructor" ref="a28d34cf83a537ab108861ac780009ed8" args="(void *trait, Field_qcq *field_ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void constructor </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>trait</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Field_qcq *&#160;</td>
          <td class="paramname"><em>field_ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Template method for constructing archetype from a class not derived from <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a>. </p>
<p>This class is needed to help the constructor differentiate between classes derived from <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> and classes that aren't. Should be called with the same argument to both parameters? </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">trait</td><td>pointer to class not derived from <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> </td></tr>
    <tr><td class="paramname">field_ptr</td><td>pointer to class not derived from <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="a615b9bc7364f903ad92d77a0626bdf23"></a><!-- doxytag: member="LinBox::FieldArchetype::_field_ptr" ref="a615b9bc7364f903ad92d77a0626bdf23" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a>* <a class="el" href="class_lin_box_1_1_field_archetype.html#a615b9bc7364f903ad92d77a0626bdf23">_field_ptr</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pointer to <a class="el" href="class_lin_box_1_1_field_abstract.html" title="field base class.">FieldAbstract</a> object. </p>
<p>Not part of the interface. Included to allow for archetype use three. </p>

</div>
</div>
<a class="anchor" id="a2df3782f6453615519872d14aa10cecf"></a><!-- doxytag: member="LinBox::FieldArchetype::_elem_ptr" ref="a2df3782f6453615519872d14aa10cecf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_element_abstract.html">ElementAbstract</a>* <a class="el" href="class_lin_box_1_1_field_archetype.html#a2df3782f6453615519872d14aa10cecf">_elem_ptr</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pointer to <a class="el" href="class_lin_box_1_1_element_abstract.html" title="Abstract element base class, a technicality.">ElementAbstract</a> object. </p>
<p>Not part of the interface. Included to allow for archetype use three. </p>

</div>
</div>
<a class="anchor" id="a418143fcded940a0977a41a8f33c727b"></a><!-- doxytag: member="LinBox::FieldArchetype::_randIter_ptr" ref="a418143fcded940a0977a41a8f33c727b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_rand_iter_abstract.html">RandIterAbstract</a>* <a class="el" href="class_lin_box_1_1_field_archetype.html#a418143fcded940a0977a41a8f33c727b">_randIter_ptr</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pointer to <a class="el" href="class_lin_box_1_1_rand_iter_abstract.html" title="Random field element generator.">RandIterAbstract</a> object. </p>
<p>Not part of the interface. Included to allow for archetype use three. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="field_2archetype_8h.html">field/archetype.h</a></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>