Sophie

Sophie

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

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: PowerOfTwoModular&lt; Ints &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">linbox</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespace_lin_box.html">LinBox</a>      </li>
      <li class="navelem"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html">PowerOfTwoModular</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">PowerOfTwoModular&lt; Ints &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__ring.html">ring</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="LinBox::PowerOfTwoModular" -->
<p>Ring of elements modulo some power of two.  
 <a href="class_lin_box_1_1_power_of_two_modular.html#details">More...</a></p>

<p><code>#include &lt;poweroftwomodular.h&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_lin_box_1_1_power_of_two_modular_1_1_rand_iter.html">RandIter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Random iterator generator type.  <a href="struct_lin_box_1_1_power_of_two_modular_1_1_rand_iter.html#details">More...</a><br/></td></tr>
<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="a3a7aa647d5a12725d2e19aff0250b483"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::Element" ref="a3a7aa647d5a12725d2e19aff0250b483" args="" -->
typedef Ints&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Element 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 class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c2dc208362a03de5fdc81a3cbb4b23b"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::PowerOfTwoModular" ref="a8c2dc208362a03de5fdc81a3cbb4b23b" args="(void)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a8c2dc208362a03de5fdc81a3cbb4b23b">PowerOfTwoModular</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <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_power_of_two_modular.html#ac4bb2576b5123c8fde1fab6165264ec3">convert</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Conversion of field base element to a template class T.  <a href="#ac4bb2576b5123c8fde1fab6165264ec3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a7107baa1a4c6aa6dddf57231baaa7383">init</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const Ints &amp;y=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of field base element from an integer.  <a href="#a7107baa1a4c6aa6dddf57231baaa7383"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a7ed3d5d8b4d9f1ab407365c020b18c58">assign</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment of one field base 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_power_of_two_modular.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_power_of_two_modular.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 class="memItemLeft" align="right" valign="top"><a class="anchor" id="a748fd3fbd4afe4da528ddf2189a65bed"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::poweroftwo" ref="a748fd3fbd4afe4da528ddf2189a65bed" args="(int &amp;c)" -->
int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a748fd3fbd4afe4da528ddf2189a65bed">poweroftwo</a> (int &amp;c)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">poweroftwo <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 base 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_power_of_two_modular.html#a0763bd76c2ed93bc54973d632b98ec90">areEqual</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a0865272ef30f366f2a7a06323ee7cc22">isZero</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#ab37695d9e0fb5b0064c85e8449ed596b">isOne</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a0b93e65d03a783646c50d5738763898f">isUnit</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">isUnit.  <a href="#a0b93e65d03a783646c50d5738763898f"></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_power_of_two_modular.html#ad10c45375b1283ea28c0985a782ce2da">isZeroDivisor</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">isZeroDivisor.  <a href="#ad10c45375b1283ea28c0985a782ce2da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a1703f4d833a855cb3fb24788442b5bf8">gcd_poweroftwo</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gcd with 2^_poweroftwo .  <a href="#a1703f4d833a855cb3fb24788442b5bf8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2be3672fbf66f740a72a23494c359c10"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::doesdivide" ref="a2be3672fbf66f740a72a23494c359c10" args="(const Element &amp;x, const Element &amp;y) const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a2be3672fbf66f740a72a23494c359c10">doesdivide</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Does x divide y. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11faeea33803070950ec1fabc85d2b8d"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::poweroftwoinx" ref="a11faeea33803070950ec1fabc85d2b8d" args="(const Element &amp;x) const " -->
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a11faeea33803070950ec1fabc85d2b8d">poweroftwoinx</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Power of two in x Input Element x = 2^n*y where y is odd Output n. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a63e2176c259e1b1e278ac5c67e59ed75">bezout</a> (const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;gcd, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;u, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;v) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">bezout.  <a href="#a63e2176c259e1b1e278ac5c67e59ed75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#aadf4e83f1ac414b0caa1bef2154dabdb">add</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition.  <a href="#aadf4e83f1ac414b0caa1bef2154dabdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a2f2a41d18bd65f48cb5fb894fcd3b51b">sub</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtraction.  <a href="#a2f2a41d18bd65f48cb5fb894fcd3b51b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#adf251fca0ae6bc767b0e9c5f2d6081f7">mul</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication.  <a href="#adf251fca0ae6bc767b0e9c5f2d6081f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a4d8f0ac0be4b8a5a074f441d74bf4276">div</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;z) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Division.  <a href="#a4d8f0ac0be4b8a5a074f441d74bf4276"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a608fc0675ac7788b016f686fa3a6ec7e">neg</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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).  <a href="#a608fc0675ac7788b016f686fa3a6ec7e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a9b2e67d87131ae67539834cd9cd3fa7a">inv</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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>.  <a href="#a9b2e67d87131ae67539834cd9cd3fa7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a6550859e27a9bda24758471d87c74ae9">inv2</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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> 2.  <a href="#a6550859e27a9bda24758471d87c74ae9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a09806701a7acb018cd70b179635720da">axpy</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;r, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;a, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;y) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Natural AXPY.  <a href="#a09806701a7acb018cd70b179635720da"></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_power_of_two_modular.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_power_of_two_modular.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_power_of_two_modular.html#a332d58769d8dc6ba08d307db48386588">write</a> (std::ostream &amp;os, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print field base 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_power_of_two_modular.html#a054db1ecf60ae64391b553dfc6316205">read</a> (std::istream &amp;is, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read field base element.  <a href="#a054db1ecf60ae64391b553dfc6316205"></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"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a25ec1b0d3d2d8da69636a121ef781a55">addin</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#aa14037ab7a2e80c0e663a760acbaff15">subin</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a6e17c2a1321787d89a51b9f0eee0f408">mulin</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#ac5966c66651795d1636a032e8bcd28ef">divin</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a540bdfc0ce896b62d1a13247a2acfce2">negin</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#acf833d5877bb610fef71aac14074d5ce">invin</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a2a6378ec17b22af66cfa5e6901461cd1">axpyin</a> (<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;r, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;a, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d7e2f37f3a278c57b0f06ebfb6d7fd0"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::_poweroftwo" ref="a4d7e2f37f3a278c57b0f06ebfb6d7fd0" args="" -->
<a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a4d7e2f37f3a278c57b0f06ebfb6d7fd0">_poweroftwo</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Private (non-static) element for modulus. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class Ints&gt;<br/>
class LinBox::PowerOfTwoModular&lt; Ints &gt;</h3>

<p>Ring of elements modulo some power of two. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">element</td><td>Element type, e.g. long or integer </td></tr>
    <tr><td class="paramname">Intermediate</td><td>Type to use for intermediate computations. This should be a data type that can support integers twice the length of the maximal modulus used </td></tr>
  </table>
  </dd>
</dl>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ac4bb2576b5123c8fde1fab6165264ec3"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::convert" ref="ac4bb2576b5123c8fde1fab6165264ec3" args="(integer &amp;x, const Element &amp;y) 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>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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>Conversion of field base element to a template class T. </p>
<p>This function assumes the output field base element x has already been constructed, but that it is not already initialized. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to template class T. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>template class T to contain output (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>constant field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7107baa1a4c6aa6dddf57231baaa7383"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::init" ref="a7107baa1a4c6aa6dddf57231baaa7383" args="(Element &amp;x, const Ints &amp;y=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Ints &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>Initialization of field base element from an integer. </p>
<p>Behaves like C++ allocator construct. This function assumes the output field base element x has already been constructed, but that it is not already initialized. This is not a specialization of the template function because such a specialization is not allowed inside the class declaration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>reference to field base element. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>field base element to contain output (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>integer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7ed3d5d8b4d9f1ab407365c020b18c58"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; assign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base element to another. </p>
<p>This function assumes both field base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ade46ce0a344fcc718625a2296a8104ab"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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 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. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>integer representing cardinality of the domain </dd></dl>

</div>
</div>
<a class="anchor" id="aea4d4c3f059080408c3a6344cf9fff10"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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 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. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>integer representing characteristic of the domain. </dd></dl>

</div>
</div>
<a class="anchor" id="a0763bd76c2ed93bc54973d632b98ec90"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base elements have already been constructed and initialized. </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 base element </td></tr>
    <tr><td class="paramname">y</td><td>field base element </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0865272ef30f366f2a7a06323ee7cc22"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base element is equal to zero. This function assumes the field base element has already been constructed and initialized. </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 base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab37695d9e0fb5b0064c85e8449ed596b"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base element is equal to one. This function assumes the field base element has already been constructed and initialized. </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 base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0b93e65d03a783646c50d5738763898f"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::isUnit" ref="a0b93e65d03a783646c50d5738763898f" args="(const Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isUnit </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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>isUnit. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad10c45375b1283ea28c0985a782ce2da"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::isZeroDivisor" ref="ad10c45375b1283ea28c0985a782ce2da" args="(const Element &amp;x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isZeroDivisor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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>isZeroDivisor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1703f4d833a855cb3fb24788442b5bf8"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::gcd_poweroftwo" ref="a1703f4d833a855cb3fb24788442b5bf8" 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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; gcd_poweroftwo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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>Gcd with 2^_poweroftwo . </p>
<p>Valid for Ints up to 32 bits Specialization is required for bigger Ints </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td></td></tr>
    <tr><td class="paramname">y</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a63e2176c259e1b1e278ac5c67e59ed75"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::bezout" ref="a63e2176c259e1b1e278ac5c67e59ed75" args="(const Element &amp;x, const Element &amp;y, Element &amp;gcd, Element &amp;u, Element &amp;v) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; bezout </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>gcd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>bezout. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x,y</td><td></td></tr>
    <tr><td class="paramname">gcd</td><td></td></tr>
    <tr><td class="paramname">u,v</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acd22def76f55c19076bb6c86104beaf0"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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::PowerOfTwoModular::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::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base element. </p>
<p>This function assumes the field base element has already been constructed and initialized. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>output stream to which field base 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 base element is written. </td></tr>
    <tr><td class="paramname">x</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a054db1ecf60ae64391b553dfc6316205"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base element. </p>
<p>This function assumes the field base element has already been constructed and initialized. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>input stream from which field base 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 base element is read. </td></tr>
    <tr><td class="paramname">x</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aadf4e83f1ac414b0caa1bef2154dabdb"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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. </p>
<p>x = y + z This function assumes all the field base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
    <tr><td class="paramname">z</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2f2a41d18bd65f48cb5fb894fcd3b51b"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; sub </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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. </p>
<p>x = y - z This function assumes all the field base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
    <tr><td class="paramname">z</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adf251fca0ae6bc767b0e9c5f2d6081f7"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; mul </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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. </p>
<p>x = y * z This function assumes all the field base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
    <tr><td class="paramname">z</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4d8f0ac0be4b8a5a074f441d74bf4276"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; div </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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. </p>
<p>x = y / z This function assumes all the field base elements have already been constructed and initialized. This fonction assumes that x divides y. That can be verified by using doesdivide(x,y) </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
    <tr><td class="paramname">z</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a608fc0675ac7788b016f686fa3a6ec7e"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; neg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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). </p>
<p>x = - y This function assumes both field base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9b2e67d87131ae67539834cd9cd3fa7a"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; inv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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>. </p>
<p>x = 1 / y This function assumes both field base elements have already been constructed and initialized. This function assumes that y is odd (ie 1/y exists) </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6550859e27a9bda24758471d87c74ae9"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::inv2" ref="a6550859e27a9bda24758471d87c74ae9" 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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; inv2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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> 2. </p>
<p>x = 1 / y This function assumes both field base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a09806701a7acb018cd70b179635720da"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; axpy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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>Natural AXPY. </p>
<p>r = a * x + y 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>
    <tr><td class="paramname">y</td><td>field element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a25ec1b0d3d2d8da69636a121ef781a55"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; addin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa14037ab7a2e80c0e663a760acbaff15"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; subin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6e17c2a1321787d89a51b9f0eee0f408"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; mulin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac5966c66651795d1636a032e8bcd28ef"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; divin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base elements have already been constructed and initialized. </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 base element (reference returned). </td></tr>
    <tr><td class="paramname">y</td><td>field base element. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a540bdfc0ce896b62d1a13247a2acfce2"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; negin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base element has already been constructed and initialized. </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 base element (reference returned). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acf833d5877bb610fef71aac14074d5ce"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; invin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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 base elementhas already been constructed and initialized. </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 base element (reference returned). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2a6378ec17b22af66cfa5e6901461cd1"></a><!-- doxytag: member="LinBox::PowerOfTwoModular::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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a>&amp; axpyin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">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. 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>

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