Sophie

Sophie

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

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: RingAbstract 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_ring_abstract.html">RingAbstract</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a>  </div>
  <div class="headertitle">
<div class="title">RingAbstract Class Reference<div class="ingroups"><a class="el" href="group__ring.html">ring</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::RingAbstract" --><!-- doxytag: inherits="LinBox::FieldAbstract" -->
<p>Abstract ring base class.  
 <a href="class_lin_box_1_1_ring_abstract.html#details">More...</a></p>

<p><code>#include &lt;abstract.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 RingAbstract:</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_ring_abstract.png" usemap="#RingAbstract_map" alt=""/>
  <map id="RingAbstract_map" name="RingAbstract_map">
<area href="class_lin_box_1_1_field_abstract.html" title="field base class." alt="FieldAbstract" shape="rect" coords="0,0,139,24"/>
<area href="class_lin_box_1_1_ring_envelope.html" title="implement the ring archetype to minimize code bloat." alt="RingEnvelope&lt; Ring &gt;" shape="rect" coords="0,112,139,136"/>
</map>
 </div></div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57224c75173d55b2a72cb4a13e9d78d7"></a><!-- doxytag: member="LinBox::RingAbstract::Element" ref="a57224c75173d55b2a72cb4a13e9d78d7" args="" -->
typedef <a class="el" href="class_lin_box_1_1_element_abstract.html">FieldAbstract::Element</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_ring_abstract.html#a57224c75173d55b2a72cb4a13e9d78d7">Element</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">element type. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65f00b44da1b4e235382697921d8d05e"></a><!-- doxytag: member="LinBox::RingAbstract::RandIter" ref="a65f00b44da1b4e235382697921d8d05e" args="" -->
typedef <a class="el" href="class_lin_box_1_1_rand_iter_abstract.html">FieldAbstract::RandIter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_ring_abstract.html#a65f00b44da1b4e235382697921d8d05e">RandIter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Random iterator generator type. <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 colspan="2"><div class="groupText"><p>There are no public constructors for this class.</p>
<p>It should only be used in tandem with <a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a>. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <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_abstract.html#a1e517fe5ca94d1a5adfcc540ce099fb7">clone</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor.  <a href="#a1e517fe5ca94d1a5adfcc540ce099fb7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a47bfdcccd591af2c099b7feed89e8131">init</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of field element from an integer.  <a href="#a47bfdcccd591af2c099b7feed89e8131"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#ad7cc3358cf87219227aba5c25e582a45">convert</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Conversion of field element to an integer.  <a href="#ad7cc3358cf87219227aba5c25e582a45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a8611ea8bbd3d1a3f18545b1181bd8555">assign</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment of one field element to another.  <a href="#a8611ea8bbd3d1a3f18545b1181bd8555"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a75afa5a62104a85bf4ae0f90e07b5073">cardinality</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;c) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cardinality.  <a href="#a75afa5a62104a85bf4ae0f90e07b5073"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a8b06132af70bb3b6411ef5f45a7e9464">characteristic</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;c) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Characteristic.  <a href="#a8b06132af70bb3b6411ef5f45a7e9464"></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">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#acbf06b386850a6b5a340c754d7e909b5">areEqual</a> (const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality of two elements.  <a href="#acbf06b386850a6b5a340c754d7e909b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a6470a3cd30c5b11ff2b4c2164bf37c1e">add</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;z) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition.  <a href="#a6470a3cd30c5b11ff2b4c2164bf37c1e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#ac00abbce1365e5b4ad6571a7ee86e25a">sub</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;z) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtraction.  <a href="#ac00abbce1365e5b4ad6571a7ee86e25a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a9e12115cbbd4810bf1f731c1ff05f145">mul</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;z) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication.  <a href="#a9e12115cbbd4810bf1f731c1ff05f145"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#aec6fbb9637a5bafb3e2d8054186cea5b">div</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;z) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Division.  <a href="#aec6fbb9637a5bafb3e2d8054186cea5b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#ad5cb192ab045312047342ce7176c719a">neg</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</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).  <a href="#ad5cb192ab045312047342ce7176c719a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a91661310409f0b132c91f5697c62977a">inv</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</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>.  <a href="#a91661310409f0b132c91f5697c62977a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a47f7600399a96752192ca9165ff1c5fd">axpy</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;r, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;a, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Natural AXPY.  <a href="#a47f7600399a96752192ca9165ff1c5fd"></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 </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#ae1a2b7cb85f963e451be830caf53909f">isZero</a> (const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Zero equality.  <a href="#ae1a2b7cb85f963e451be830caf53909f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#ae2cf653d7dbaa44aba63c192a70df2ea">isOne</a> (const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">One equality.  <a href="#ae2cf653d7dbaa44aba63c192a70df2ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a6bac600eeaafd44cbdd782c4b5da43af">addin</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Addition.  <a href="#a6bac600eeaafd44cbdd782c4b5da43af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#afc4fafb3a04497d553f21b168d906054">subin</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Subtraction.  <a href="#afc4fafb3a04497d553f21b168d906054"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#aff837d6b4215a22260675856377b1051">mulin</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Multiplication.  <a href="#aff837d6b4215a22260675856377b1051"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#aa6462599ebcd132fdc88c16441c3670c">divin</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;y) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace Division.  <a href="#aa6462599ebcd132fdc88c16441c3670c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#acef05b3ba9ee4daf4cf8bfb97dac414d">negin</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</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="#acef05b3ba9ee4daf4cf8bfb97dac414d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a61bcbb86b75af24705cd46f3e17cdb3f">invin</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</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="#a61bcbb86b75af24705cd46f3e17cdb3f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#ac876199dea42039c63ea818a588252f2">axpyin</a> (<a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;r, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;a, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inplace AXPY.  <a href="#ac876199dea42039c63ea818a588252f2"></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">virtual std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#a919ba898f7c15a2c5cb347c2371188c1">write</a> (std::ostream &amp;os) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print field.  <a href="#a919ba898f7c15a2c5cb347c2371188c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#aa40dd79f95d3726a91b0fab47c18cdb3">write</a> (std::ostream &amp;os, const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print field element.  <a href="#aa40dd79f95d3726a91b0fab47c18cdb3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#ac954f8af69ed35bcaa71c9dba55ff819">read</a> (std::istream &amp;is)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read field.  <a href="#ac954f8af69ed35bcaa71c9dba55ff819"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_field_abstract.html#aed49201b19a64b23aa048c6c3275832b">read</a> (std::istream &amp;is, <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read field element.  <a href="#aed49201b19a64b23aa048c6c3275832b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Object Management</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp2ddd0d4d3fedce3d0582a29118ca23db"></a>There are no public constructors for this class.</p>
<p>It should only be used in tandem with <a class="el" href="class_lin_box_1_1_field_archetype.html">FieldArchetype</a>. </p>
</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a812cc7989a6c43ba5593ccd13fd2275b"></a><!-- doxytag: member="LinBox::RingAbstract::RingArchetype" ref="a812cc7989a6c43ba5593ccd13fd2275b" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_ring_abstract.html#a812cc7989a6c43ba5593ccd13fd2275b">RingArchetype</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_lin_box_1_1_field_archetype.html" title="field specification and archetypical instance.">FieldArchetype</a> is friend. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_ring_abstract.html#a347d4dcbfc100a6b5c6b3c32fd24039e">~RingAbstract</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a347d4dcbfc100a6b5c6b3c32fd24039e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_ring_abstract.html#a1488847996a7e4c0002fb9a5bea22dd7">isUnit</a> (const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual copy constructor.  <a href="#a1488847996a7e4c0002fb9a5bea22dd7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_ring_abstract.html#a4b83e924778ac3ac038618962a49c151">isZeroDivisor</a> (const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;x) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Divisibility of zero test.  <a href="#a4b83e924778ac3ac038618962a49c151"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Abstract ring base class. </p>
<p>Found in the file </p>
<dl class="see"><dt><b>See also:</b></dt><dd>{linbox/ring/abstract.h}. Abstract base class used to implement the <a class="el" href="group__ring.html" title="LinBox rings, ring wrappers, ring construction tools.">ring</a> archetype to minimize code bloat. All public member functions of this class are purely virtual and must be implemented by all derived classes.</dd></dl>
<p>If a template is instantiated on the ring archetype, we can change the ring it is using by changing the derived class of this class. This allows us to change the ring used in a template without having to reinstantiate it. This minimizes code bloat, but it also introduces indirection through the use of pointers and virtual functions which is inefficient. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a347d4dcbfc100a6b5c6b3c32fd24039e"></a><!-- doxytag: member="LinBox::RingAbstract::~RingAbstract" ref="a347d4dcbfc100a6b5c6b3c32fd24039e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="class_lin_box_1_1_ring_abstract.html">RingAbstract</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>
<p>Required because of virtual member functions. Virtual. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a1488847996a7e4c0002fb9a5bea22dd7"></a><!-- doxytag: member="LinBox::RingAbstract::isUnit" ref="a1488847996a7e4c0002fb9a5bea22dd7" args="(const Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool isUnit </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Virtual copy constructor. </p>
<p>Required because constructors cannot be virtual. Passes construction on to derived classes. Purely virtual. This function is not part of the common object interface. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to new object in dynamic memory. Invertibility test. Test if ring element is invertible. This function assumes the ring element has already been constructed and initialized. Purely virtual. </dd>
<dd>
boolean true if invertible, false if not. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>ring element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_ring_envelope.html#a3ad2bf7bf3965c62208da8c541bd65f9">RingEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a4b83e924778ac3ac038618962a49c151"></a><!-- doxytag: member="LinBox::RingAbstract::isZeroDivisor" ref="a4b83e924778ac3ac038618962a49c151" args="(const Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool isZeroDivisor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Divisibility of zero test. </p>
<p>Test if ring element is a zero divisor. This function assumes the ring element has already been constructed and initialized. Purely virtual. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>boolean true if divides zero, false if not. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>ring element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_ring_envelope.html#a353b457052d7c1faeb4d1c16279ee78a">RingEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a1e517fe5ca94d1a5adfcc540ce099fb7"></a><!-- doxytag: member="LinBox::RingAbstract::clone" ref="a1e517fe5ca94d1a5adfcc540ce099fb7" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_field_abstract.html">FieldAbstract</a>* clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Virtual copy constructor. </p>
<p>Required because constructors cannot be virtual. Passes construction on to derived classes. Purely virtual. This function is not part of the common object interface. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to new object in dynamic memory. </dd></dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a262dfb4f3ee9562f43deab8892ee33b2">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a262dfb4f3ee9562f43deab8892ee33b2">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a262dfb4f3ee9562f43deab8892ee33b2">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a47bfdcccd591af2c099b7feed89e8131"></a><!-- doxytag: member="LinBox::RingAbstract::init" ref="a47bfdcccd591af2c099b7feed89e8131" args="(Element &amp;x, const integer &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialization of field element from an integer. </p>
<p>Behaves like C++ allocator construct. This function assumes the output field element x has already been constructed, but that it is not already initialized. Purely virtual. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to field element. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field element to contain output (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>integer. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a2fb68bbaad94d7bcaa6ac885ec419bf7">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a2fb68bbaad94d7bcaa6ac885ec419bf7">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a2fb68bbaad94d7bcaa6ac885ec419bf7">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ad7cc3358cf87219227aba5c25e582a45"></a><!-- doxytag: member="LinBox::RingAbstract::convert" ref="ad7cc3358cf87219227aba5c25e582a45" args="(integer &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a>&amp; convert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</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_abstract.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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Conversion of field element to an integer. </p>
<p>This function assumes the output field element x has already been constructed, but that it is not already initialized. Purely virtual. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to integer. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>reference to interger to contain output (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>constant field element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a10841216d71b4a65b0eb3bbea2f84560">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a10841216d71b4a65b0eb3bbea2f84560">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a10841216d71b4a65b0eb3bbea2f84560">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a8611ea8bbd3d1a3f18545b1181bd8555"></a><!-- doxytag: member="LinBox::RingAbstract::assign" ref="a8611ea8bbd3d1a3f18545b1181bd8555" args="(Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; assign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a673f829e78dd90ff25a1fcbbcbb2034c">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a673f829e78dd90ff25a1fcbbcbb2034c">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a673f829e78dd90ff25a1fcbbcbb2034c">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a75afa5a62104a85bf4ae0f90e07b5073"></a><!-- doxytag: member="LinBox::RingAbstract::cardinality" ref="a75afa5a62104a85bf4ae0f90e07b5073" args="(integer &amp;c) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a>&amp; 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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cardinality. </p>
<p>Return integer representing cardinality of the domain. Returns a non-negative integer for all domains with finite cardinality, and returns -1 to signify a domain of infinite cardinality. Purely virtual. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>integer representing cardinality of the domain </dd></dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#ade46ce0a344fcc718625a2296a8104ab">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#ade46ce0a344fcc718625a2296a8104ab">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#ade46ce0a344fcc718625a2296a8104ab">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a8b06132af70bb3b6411ef5f45a7e9464"></a><!-- doxytag: member="LinBox::RingAbstract::characteristic" ref="a8b06132af70bb3b6411ef5f45a7e9464" args="(integer &amp;c) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a>&amp; 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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Characteristic. </p>
<p>Return integer representing characteristic of the domain. Returns a positive integer to all domains with finite characteristic, and returns 0 to signify a domain of infinite characteristic. Purely virtual. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>integer representing characteristic of the domain. </dd></dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#aea4d4c3f059080408c3a6344cf9fff10">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#aea4d4c3f059080408c3a6344cf9fff10">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#aea4d4c3f059080408c3a6344cf9fff10">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="acbf06b386850a6b5a340c754d7e909b5"></a><!-- doxytag: member="LinBox::RingAbstract::areEqual" ref="acbf06b386850a6b5a340c754d7e909b5" args="(const Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool areEqual </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#ad2ac546fc349e938c31e5cf280464148">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#ad2ac546fc349e938c31e5cf280464148">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#ad2ac546fc349e938c31e5cf280464148">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6470a3cd30c5b11ff2b4c2164bf37c1e"></a><!-- doxytag: member="LinBox::RingAbstract::add" ref="a6470a3cd30c5b11ff2b4c2164bf37c1e" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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_abstract.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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Addition. </p>
<p>x = y + z This function assumes all the field elements have already been constructed and initialized. Purely virtual. </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>
    <tr><td class="paramname">z</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#ad79742154851ab5aaf333135dbb4c306">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#ad79742154851ab5aaf333135dbb4c306">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#ad79742154851ab5aaf333135dbb4c306">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ac00abbce1365e5b4ad6571a7ee86e25a"></a><!-- doxytag: member="LinBox::RingAbstract::sub" ref="ac00abbce1365e5b4ad6571a7ee86e25a" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; sub </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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_abstract.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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Subtraction. </p>
<p>x = y - z This function assumes all the field elements have already been constructed and initialized. Purely virtual. </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>
    <tr><td class="paramname">z</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#ae96d5d3ccd2bbd123b991534a0a9f3bc">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#ae96d5d3ccd2bbd123b991534a0a9f3bc">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#ae96d5d3ccd2bbd123b991534a0a9f3bc">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a9e12115cbbd4810bf1f731c1ff05f145"></a><!-- doxytag: member="LinBox::RingAbstract::mul" ref="a9e12115cbbd4810bf1f731c1ff05f145" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; mul </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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_abstract.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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Multiplication. </p>
<p>x = y * z This function assumes all the field elements have already been constructed and initialized. Purely virtual. </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>
    <tr><td class="paramname">z</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a98a253ef2f843aa213b79c3f13fc821c">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a98a253ef2f843aa213b79c3f13fc821c">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a98a253ef2f843aa213b79c3f13fc821c">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aec6fbb9637a5bafb3e2d8054186cea5b"></a><!-- doxytag: member="LinBox::RingAbstract::div" ref="aec6fbb9637a5bafb3e2d8054186cea5b" args="(Element &amp;x, const Element &amp;y, const Element &amp;z) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; div </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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_abstract.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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Division. </p>
<p>x = y / z This function assumes all the field elements have already been constructed and initialized. Purely virtual. </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>
    <tr><td class="paramname">z</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a8b893efc55555869218421756dfaa7bd">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a8b893efc55555869218421756dfaa7bd">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a8b893efc55555869218421756dfaa7bd">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ad5cb192ab045312047342ce7176c719a"></a><!-- doxytag: member="LinBox::RingAbstract::neg" ref="ad5cb192ab045312047342ce7176c719a" args="(Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; neg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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). </p>
<p>x = - y This function assumes both field elements have already been constructed and initialized. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a14df70f3cfcabb0292e438646da0c306">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a14df70f3cfcabb0292e438646da0c306">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a14df70f3cfcabb0292e438646da0c306">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a91661310409f0b132c91f5697c62977a"></a><!-- doxytag: member="LinBox::RingAbstract::inv" ref="a91661310409f0b132c91f5697c62977a" args="(Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; inv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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>. </p>
<p>x = 1 / y This function assumes both field elements have already been constructed and initialized. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a5c82db46e3aed7f7b7b13ff7a3678d7f">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a5c82db46e3aed7f7b7b13ff7a3678d7f">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a5c82db46e3aed7f7b7b13ff7a3678d7f">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a47f7600399a96752192ca9165ff1c5fd"></a><!-- doxytag: member="LinBox::RingAbstract::axpy" ref="a47f7600399a96752192ca9165ff1c5fd" args="(Element &amp;r, const Element &amp;a, const Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; axpy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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_abstract.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_abstract.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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Natural AXPY. </p>
<p>r = a * x + y This function assumes all field elements have already been constructed and initialized. Purely virtual. </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>
    <tr><td class="paramname">y</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a5341ec8c8577c85915cc94b6ce4109f2">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a5341ec8c8577c85915cc94b6ce4109f2">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a5341ec8c8577c85915cc94b6ce4109f2">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ae1a2b7cb85f963e451be830caf53909f"></a><!-- doxytag: member="LinBox::RingAbstract::isZero" ref="ae1a2b7cb85f963e451be830caf53909f" args="(const Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool isZero </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a175255ecaff220c008279280318dbe23">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a175255ecaff220c008279280318dbe23">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a175255ecaff220c008279280318dbe23">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ae2cf653d7dbaa44aba63c192a70df2ea"></a><!-- doxytag: member="LinBox::RingAbstract::isOne" ref="ae2cf653d7dbaa44aba63c192a70df2ea" args="(const Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool isOne </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a33bc11daa67557dcd93142a42c5d12e1">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a33bc11daa67557dcd93142a42c5d12e1">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a33bc11daa67557dcd93142a42c5d12e1">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6bac600eeaafd44cbdd782c4b5da43af"></a><!-- doxytag: member="LinBox::RingAbstract::addin" ref="a6bac600eeaafd44cbdd782c4b5da43af" args="(Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; addin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#af71d1721f7741100988bc6a64e8b6ef9">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a9da101d4e9080eaf90e034e16af0fa48">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#af71d1721f7741100988bc6a64e8b6ef9">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="afc4fafb3a04497d553f21b168d906054"></a><!-- doxytag: member="LinBox::RingAbstract::subin" ref="afc4fafb3a04497d553f21b168d906054" args="(Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; subin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#abb8e2df18b09bdfaf05ed7d6576f3256">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#aa648278ad7f3c072f25e80d061524a73">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#abb8e2df18b09bdfaf05ed7d6576f3256">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aff837d6b4215a22260675856377b1051"></a><!-- doxytag: member="LinBox::RingAbstract::mulin" ref="aff837d6b4215a22260675856377b1051" args="(Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; mulin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#aa488c0e8732503dd36268819b44b6826">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#aee9f335487358f84c89013d7aac2b8a6">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#aa488c0e8732503dd36268819b44b6826">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aa6462599ebcd132fdc88c16441c3670c"></a><!-- doxytag: member="LinBox::RingAbstract::divin" ref="aa6462599ebcd132fdc88c16441c3670c" args="(Element &amp;x, const Element &amp;y) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; divin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#ab146c35c8b3f267aafd3881b81ce48d5">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a23753cf3507db4227524f9cac22e85e0">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#ab146c35c8b3f267aafd3881b81ce48d5">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="acef05b3ba9ee4daf4cf8bfb97dac414d"></a><!-- doxytag: member="LinBox::RingAbstract::negin" ref="acef05b3ba9ee4daf4cf8bfb97dac414d" args="(Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; negin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a0c82d6a4688c13b7ec54f6ad5746ffd6">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a0c82d6a4688c13b7ec54f6ad5746ffd6">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a0c82d6a4688c13b7ec54f6ad5746ffd6">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a61bcbb86b75af24705cd46f3e17cdb3f"></a><!-- doxytag: member="LinBox::RingAbstract::invin" ref="a61bcbb86b75af24705cd46f3e17cdb3f" args="(Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; invin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td> const<code> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a3850e9868ea1093cbe79f8979fc00ad3">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a3850e9868ea1093cbe79f8979fc00ad3">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a3850e9868ea1093cbe79f8979fc00ad3">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ac876199dea42039c63ea818a588252f2"></a><!-- doxytag: member="LinBox::RingAbstract::axpyin" ref="ac876199dea42039c63ea818a588252f2" args="(Element &amp;r, const Element &amp;a, const Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="class_lin_box_1_1_element_abstract.html">Element</a>&amp; axpyin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_element_abstract.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_abstract.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_abstract.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> [pure virtual, inherited]</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. Purely virtual </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#aa9a4fc3b266e1d0a54857b420af225f0">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a90ea99dae95b84f46baad213e88d87c8">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#aa9a4fc3b266e1d0a54857b420af225f0">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a919ba898f7c15a2c5cb347c2371188c1"></a><!-- doxytag: member="LinBox::RingAbstract::write" ref="a919ba898f7c15a2c5cb347c2371188c1" args="(std::ostream &amp;os) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual 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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print field. </p>
<p>Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#acd22def76f55c19076bb6c86104beaf0">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#acd22def76f55c19076bb6c86104beaf0">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#acd22def76f55c19076bb6c86104beaf0">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aa40dd79f95d3726a91b0fab47c18cdb3"></a><!-- doxytag: member="LinBox::RingAbstract::write" ref="aa40dd79f95d3726a91b0fab47c18cdb3" args="(std::ostream &amp;os, const Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual 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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#ace4a5e73238f68cfb9b39567800cddbd">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#ace4a5e73238f68cfb9b39567800cddbd">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#ace4a5e73238f68cfb9b39567800cddbd">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ac954f8af69ed35bcaa71c9dba55ff819"></a><!-- doxytag: member="LinBox::RingAbstract::read" ref="ac954f8af69ed35bcaa71c9dba55ff819" args="(std::istream &amp;is)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual 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> [pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read field. </p>
<p>Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a7f1e7ece6c12a9a3feb091f90c7c9ac1">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a7f1e7ece6c12a9a3feb091f90c7c9ac1">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a7f1e7ece6c12a9a3feb091f90c7c9ac1">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aed49201b19a64b23aa048c6c3275832b"></a><!-- doxytag: member="LinBox::RingAbstract::read" ref="aed49201b19a64b23aa048c6c3275832b" args="(std::istream &amp;is, Element &amp;x) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual 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_abstract.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> [pure virtual, inherited]</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. Purely virtual. </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>

<p>Implemented in <a class="el" href="class_lin_box_1_1_field_envelope.html#a52636cdb3a33f02a60ff54047a2bd9ad">FieldEnvelope&lt; Field &gt;</a>, <a class="el" href="class_lin_box_1_1_ring_envelope.html#a52636cdb3a33f02a60ff54047a2bd9ad">RingEnvelope&lt; Ring &gt;</a>, and <a class="el" href="class_lin_box_1_1_field_envelope.html#a52636cdb3a33f02a60ff54047a2bd9ad">FieldEnvelope&lt; Ring &gt;</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ring/abstract.h</li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Tue Aug 30 2011 for linbox by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>