<!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< Ints > 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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 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 Structures</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data 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> | <a href="#pub-types">Public Types</a> | <a href="#pro-attribs">Protected Attributes</a> </div> <div class="headertitle"> <div class="title">PowerOfTwoModular< Ints > 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 <poweroftwomodular.h></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  </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"> </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 </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"> </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)" -->  </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"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const Ints &y=0) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &c) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &c) const </td></tr> <tr><td class="mdescLeft"> </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 &c)" --> int & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a748fd3fbd4afe4da528ddf2189a65bed">poweroftwo</a> (int &c)</td></tr> <tr><td class="mdescLeft"> </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 <- y op z; x <- 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 </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Equality of two elements. <a href="#a0763bd76c2ed93bc54973d632b98ec90"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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> &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Zero equality. <a href="#a0865272ef30f366f2a7a06323ee7cc22"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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> &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">One equality. <a href="#ab37695d9e0fb5b0064c85e8449ed596b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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> &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">isUnit. <a href="#a0b93e65d03a783646c50d5738763898f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </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> &x) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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 &x, const Element &y) const " --> bool </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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 &x) const " --> int </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> &x) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &gcd, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &u, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &v) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &z) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &z) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &z) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &z) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &r, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &a, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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 & </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 &os) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print field. <a href="#acd22def76f55c19076bb6c86104beaf0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::istream & </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 &is)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read field. <a href="#a7f1e7ece6c12a9a3feb091f90c7c9ac1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::ostream & </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 &os, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &x) const </td></tr> <tr><td class="mdescLeft"> </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 & </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 &is, <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &x) const </td></tr> <tr><td class="mdescLeft"> </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 <- x op y; x <- 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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &y) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &x) const </td></tr> <tr><td class="mdescLeft"> </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> & </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> &r, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &a, const <a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> &x) const </td></tr> <tr><td class="mdescLeft"> </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> </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"> </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<class Ints><br/> class LinBox::PowerOfTwoModular< Ints ></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 &x, const Element &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>& convert </td> <td>(</td> <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Ints &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>& init </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </td> <td class="paramname"><em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Ints & </td> <td class="paramname"><em>y</em> = <code>0</code> </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 &x, const Element &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>& assign </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &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>& cardinality </td> <td>(</td> <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> & </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 &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>& characteristic </td> <td>(</td> <td class="paramtype"><a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> & </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 &x, const Element &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> & </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> & </td> <td class="paramname"><em>y</em> </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 &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> & </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 &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> & </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 &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> & </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 &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> & </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 &x, const Element &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>& 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> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Element &y, Element &gcd, Element &u, Element &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>& 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> & </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> & </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> & </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> & </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> & </td> <td class="paramname"><em>v</em> </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 &os) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream& write </td> <td>(</td> <td class="paramtype">std::ostream & </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 &is)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::istream& read </td> <td>(</td> <td class="paramtype">std::istream & </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 &os, const Element &x) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream& write </td> <td>(</td> <td class="paramtype">std::ostream & </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> & </td> <td class="paramname"><em>x</em> </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 &is, Element &x) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::istream& read </td> <td>(</td> <td class="paramtype">std::istream & </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> & </td> <td class="paramname"><em>x</em> </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 &x, const Element &y, const Element &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>& add </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </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> & </td> <td class="paramname"><em>z</em> </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 &x, const Element &y, const Element &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>& sub </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </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> & </td> <td class="paramname"><em>z</em> </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 &x, const Element &y, const Element &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>& mul </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </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> & </td> <td class="paramname"><em>z</em> </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 &x, const Element &y, const Element &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>& div </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </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> & </td> <td class="paramname"><em>z</em> </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 &x, const Element &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>& neg </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Element &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>& inv </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Element &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>& inv2 </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &r, const Element &a, const Element &x, const Element &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>& axpy </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </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> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Element &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>& addin </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Element &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>& subin </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Element &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>& mulin </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &x, const Element &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>& divin </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </td> <td class="paramname"><em>y</em> </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 &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>& negin </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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 &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>& invin </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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 &r, const Element &a, const Element &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>& axpyin </td> <td>(</td> <td class="paramtype"><a class="el" href="class_lin_box_1_1_power_of_two_modular.html#a3a7aa647d5a12725d2e19aff0250b483">Element</a> & </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> & </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> & </td> <td class="paramname"><em>x</em> </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  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>