Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 0a67b807a02637f2cae68649d519a89d > files > 1484

libcryptopp-devel-7.0.0-1.mga7.armv7hl.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crypto++: PolynomialMod2 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crypto++
   &#160;<span id="projectnumber">7.0</span>
   </div>
   <div id="projectbrief">Free&nbsp;C&#43;&#43;&nbsp;class&nbsp;library&nbsp;of&nbsp;cryptographic&nbsp;schemes</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="class_polynomial_mod2-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PolynomialMod2 Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Polynomial with Coefficients in GF(2)  
 <a href="class_polynomial_mod2.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2_1_1_divide_by_zero.html">DivideByZero</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Excpetion thrown when divide by zero is encountered.  <a href="class_polynomial_mod2_1_1_divide_by_zero.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a2e0505b1597d5b697c52bfc7420f4f73"><td class="memItemLeft" align="right" valign="top"><a id="a2e0505b1597d5b697c52bfc7420f4f73"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>GF2NT</b></td></tr>
<tr class="separator:a2e0505b1597d5b697c52bfc7420f4f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
ENUMS, EXCEPTIONS, and TYPEDEFS</h2></td></tr>
<tr class="memitem:a7027d2803057b129738a862611faf3d2"><td class="memItemLeft" align="right" valign="top"><a id="a7027d2803057b129738a862611faf3d2"></a>
typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>RandomizationParameter</b></td></tr>
<tr class="separator:a7027d2803057b129738a862611faf3d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
CREATORS</h2></td></tr>
<tr class="memitem:ac67d4fb61b199c101f5de08d3aa2e782"><td class="memItemLeft" align="right" valign="top"><a id="ac67d4fb61b199c101f5de08d3aa2e782"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#ac67d4fb61b199c101f5de08d3aa2e782">PolynomialMod2</a> ()</td></tr>
<tr class="memdesc:ac67d4fb61b199c101f5de08d3aa2e782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the zero polynomial. <br /></td></tr>
<tr class="separator:ac67d4fb61b199c101f5de08d3aa2e782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6866391c010ebef60c452df7961e809c"><td class="memItemLeft" align="right" valign="top"><a id="a6866391c010ebef60c452df7961e809c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a6866391c010ebef60c452df7961e809c">PolynomialMod2</a> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="memdesc:a6866391c010ebef60c452df7961e809c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy construct a <a class="el" href="class_polynomial_mod2.html" title="Polynomial with Coefficients in GF(2) ">PolynomialMod2</a>. <br /></td></tr>
<tr class="separator:a6866391c010ebef60c452df7961e809c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51790dcfe87a449169e8cb5c0f20da7e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a51790dcfe87a449169e8cb5c0f20da7e">PolynomialMod2</a> (word value, size_t bitLength=WORD_BITS)</td></tr>
<tr class="memdesc:a51790dcfe87a449169e8cb5c0f20da7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a <a class="el" href="class_polynomial_mod2.html" title="Polynomial with Coefficients in GF(2) ">PolynomialMod2</a> from a word.  <a href="#a51790dcfe87a449169e8cb5c0f20da7e">More...</a><br /></td></tr>
<tr class="separator:a51790dcfe87a449169e8cb5c0f20da7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc62dcb615c688c00c924775920c752d"><td class="memItemLeft" align="right" valign="top"><a id="adc62dcb615c688c00c924775920c752d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#adc62dcb615c688c00c924775920c752d">PolynomialMod2</a> (const byte *encodedPoly, size_t byteCount)</td></tr>
<tr class="memdesc:adc62dcb615c688c00c924775920c752d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a <a class="el" href="class_polynomial_mod2.html" title="Polynomial with Coefficients in GF(2) ">PolynomialMod2</a> from big-endian byte array. <br /></td></tr>
<tr class="separator:adc62dcb615c688c00c924775920c752d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba40ce289e5ffaa47542391ead80aa85"><td class="memItemLeft" align="right" valign="top"><a id="aba40ce289e5ffaa47542391ead80aa85"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#aba40ce289e5ffaa47542391ead80aa85">PolynomialMod2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;encodedPoly, size_t byteCount)</td></tr>
<tr class="memdesc:aba40ce289e5ffaa47542391ead80aa85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a <a class="el" href="class_polynomial_mod2.html" title="Polynomial with Coefficients in GF(2) ">PolynomialMod2</a> from big-endian form stored in a <a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations. ">BufferedTransformation</a>. <br /></td></tr>
<tr class="separator:aba40ce289e5ffaa47542391ead80aa85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a455d995dd1eee03b8412eacae4c61186"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a455d995dd1eee03b8412eacae4c61186">PolynomialMod2</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, size_t bitcount)</td></tr>
<tr class="memdesc:a455d995dd1eee03b8412eacae4c61186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a uniformly distributed random polynomial.  <a href="#a455d995dd1eee03b8412eacae4c61186">More...</a><br /></td></tr>
<tr class="separator:a455d995dd1eee03b8412eacae4c61186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87949fb32436e1f2f96d7b813405c032"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a87949fb32436e1f2f96d7b813405c032">Monomial</a> (size_t i)</td></tr>
<tr class="memdesc:a87949fb32436e1f2f96d7b813405c032"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides x^i.  <a href="#a87949fb32436e1f2f96d7b813405c032">More...</a><br /></td></tr>
<tr class="separator:a87949fb32436e1f2f96d7b813405c032"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d843c32a41885cb33d0aec19e40dda6"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a6d843c32a41885cb33d0aec19e40dda6">Trinomial</a> (size_t t0, size_t t1, size_t t2)</td></tr>
<tr class="memdesc:a6d843c32a41885cb33d0aec19e40dda6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides x^t0 + x^t1 + x^t2.  <a href="#a6d843c32a41885cb33d0aec19e40dda6">More...</a><br /></td></tr>
<tr class="separator:a6d843c32a41885cb33d0aec19e40dda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a507094d47020af3d23a9fd68cc4b527d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a507094d47020af3d23a9fd68cc4b527d">Pentanomial</a> (size_t t0, size_t t1, size_t t2, size_t t3, size_t t4)</td></tr>
<tr class="memdesc:a507094d47020af3d23a9fd68cc4b527d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides x^t0 + x^t1 + x^t2 + x^t3 + x^t4.  <a href="#a507094d47020af3d23a9fd68cc4b527d">More...</a><br /></td></tr>
<tr class="separator:a507094d47020af3d23a9fd68cc4b527d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf3ecc0dafe04c57dacea983a9a6690e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#abf3ecc0dafe04c57dacea983a9a6690e">AllOnes</a> (size_t n)</td></tr>
<tr class="memdesc:abf3ecc0dafe04c57dacea983a9a6690e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides x^(n-1) + ...  <a href="#abf3ecc0dafe04c57dacea983a9a6690e">More...</a><br /></td></tr>
<tr class="separator:abf3ecc0dafe04c57dacea983a9a6690e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11c7e95fb64a071952df785bb4036437"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a11c7e95fb64a071952df785bb4036437">Zero</a> ()</td></tr>
<tr class="memdesc:a11c7e95fb64a071952df785bb4036437"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Zero polinomial.  <a href="#a11c7e95fb64a071952df785bb4036437">More...</a><br /></td></tr>
<tr class="separator:a11c7e95fb64a071952df785bb4036437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d96db42fd089c139d6af6da6d6bc331"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a6d96db42fd089c139d6af6da6d6bc331">One</a> ()</td></tr>
<tr class="memdesc:a6d96db42fd089c139d6af6da6d6bc331"><td class="mdescLeft">&#160;</td><td class="mdescRight">The One polinomial.  <a href="#a6d96db42fd089c139d6af6da6d6bc331">More...</a><br /></td></tr>
<tr class="separator:a6d96db42fd089c139d6af6da6d6bc331"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
ENCODE/DECODE</h2></td></tr>
<tr class="memitem:a00c84f8cb2e7262de75e4c1e28760d43"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a00c84f8cb2e7262de75e4c1e28760d43">MinEncodedSize</a> () const</td></tr>
<tr class="memdesc:a00c84f8cb2e7262de75e4c1e28760d43"><td class="mdescLeft">&#160;</td><td class="mdescRight">minimum number of bytes to encode this polynomial  <a href="#a00c84f8cb2e7262de75e4c1e28760d43">More...</a><br /></td></tr>
<tr class="separator:a00c84f8cb2e7262de75e4c1e28760d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f444d22084163c2b69b5ade313aef14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a1f444d22084163c2b69b5ade313aef14">Encode</a> (byte *output, size_t outputLen) const</td></tr>
<tr class="memdesc:a1f444d22084163c2b69b5ade313aef14"><td class="mdescLeft">&#160;</td><td class="mdescRight">encode in big-endian format  <a href="#a1f444d22084163c2b69b5ade313aef14">More...</a><br /></td></tr>
<tr class="separator:a1f444d22084163c2b69b5ade313aef14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59b7f35fec343b24e4f6b74856c7eb17"><td class="memItemLeft" align="right" valign="top"><a id="a59b7f35fec343b24e4f6b74856c7eb17"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>Encode</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t outputLen) const</td></tr>
<tr class="separator:a59b7f35fec343b24e4f6b74856c7eb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc611fe09c3a9b919dce7b8b45cec29d"><td class="memItemLeft" align="right" valign="top"><a id="adc611fe09c3a9b919dce7b8b45cec29d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>Decode</b> (const byte *input, size_t inputLen)</td></tr>
<tr class="separator:adc611fe09c3a9b919dce7b8b45cec29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60ed7031782a3e3051278ce5dfa1c099"><td class="memItemLeft" align="right" valign="top"><a id="a60ed7031782a3e3051278ce5dfa1c099"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>Decode</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t inputLen)</td></tr>
<tr class="separator:a60ed7031782a3e3051278ce5dfa1c099"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1773769992c5487674bcb8a0688fd6f8"><td class="memItemLeft" align="right" valign="top"><a id="a1773769992c5487674bcb8a0688fd6f8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a1773769992c5487674bcb8a0688fd6f8">DEREncodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t length) const</td></tr>
<tr class="memdesc:a1773769992c5487674bcb8a0688fd6f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">encode value as big-endian octet string <br /></td></tr>
<tr class="separator:a1773769992c5487674bcb8a0688fd6f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69c7853e0d24f1056be18112ee4f5a8e"><td class="memItemLeft" align="right" valign="top"><a id="a69c7853e0d24f1056be18112ee4f5a8e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a69c7853e0d24f1056be18112ee4f5a8e">BERDecodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t length)</td></tr>
<tr class="memdesc:a69c7853e0d24f1056be18112ee4f5a8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">decode value as big-endian octet string <br /></td></tr>
<tr class="separator:a69c7853e0d24f1056be18112ee4f5a8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
ACCESSORS</h2></td></tr>
<tr class="memitem:a86f4e8502eacf95345d18a6240a217b2"><td class="memItemLeft" align="right" valign="top"><a id="a86f4e8502eacf95345d18a6240a217b2"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a86f4e8502eacf95345d18a6240a217b2">BitCount</a> () const</td></tr>
<tr class="memdesc:a86f4e8502eacf95345d18a6240a217b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of significant bits = <a class="el" href="class_polynomial_mod2.html#a2d0e58a23b81b33ab3ccf9b7aa498603" title="the zero polynomial will return a degree of -1 ">Degree()</a> + 1 <br /></td></tr>
<tr class="separator:a86f4e8502eacf95345d18a6240a217b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad22cb6a5fcb0a78646059cf0005d2f6b"><td class="memItemLeft" align="right" valign="top"><a id="ad22cb6a5fcb0a78646059cf0005d2f6b"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#ad22cb6a5fcb0a78646059cf0005d2f6b">ByteCount</a> () const</td></tr>
<tr class="memdesc:ad22cb6a5fcb0a78646059cf0005d2f6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of significant bytes = ceiling(<a class="el" href="class_polynomial_mod2.html#a86f4e8502eacf95345d18a6240a217b2" title="number of significant bits = Degree() + 1 ">BitCount()</a>/8) <br /></td></tr>
<tr class="separator:ad22cb6a5fcb0a78646059cf0005d2f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88292d16af59aaed460503b6339145b3"><td class="memItemLeft" align="right" valign="top"><a id="a88292d16af59aaed460503b6339145b3"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a88292d16af59aaed460503b6339145b3">WordCount</a> () const</td></tr>
<tr class="memdesc:a88292d16af59aaed460503b6339145b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of significant words = ceiling(<a class="el" href="class_polynomial_mod2.html#ad22cb6a5fcb0a78646059cf0005d2f6b" title="number of significant bytes = ceiling(BitCount()/8) ">ByteCount()</a>/sizeof(word)) <br /></td></tr>
<tr class="separator:a88292d16af59aaed460503b6339145b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcf3588d3c594c24370c5a08366af970"><td class="memItemLeft" align="right" valign="top"><a id="afcf3588d3c594c24370c5a08366af970"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#afcf3588d3c594c24370c5a08366af970">GetBit</a> (size_t n) const</td></tr>
<tr class="memdesc:afcf3588d3c594c24370c5a08366af970"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the n-th bit, n=0 being the least significant bit <br /></td></tr>
<tr class="separator:afcf3588d3c594c24370c5a08366af970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a24a5ec904f384e4285d133dbe07757"><td class="memItemLeft" align="right" valign="top"><a id="a7a24a5ec904f384e4285d133dbe07757"></a>
byte&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a7a24a5ec904f384e4285d133dbe07757">GetByte</a> (size_t n) const</td></tr>
<tr class="memdesc:a7a24a5ec904f384e4285d133dbe07757"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the n-th byte <br /></td></tr>
<tr class="separator:a7a24a5ec904f384e4285d133dbe07757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d0e58a23b81b33ab3ccf9b7aa498603"><td class="memItemLeft" align="right" valign="top"><a id="a2d0e58a23b81b33ab3ccf9b7aa498603"></a>
signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a2d0e58a23b81b33ab3ccf9b7aa498603">Degree</a> () const</td></tr>
<tr class="memdesc:a2d0e58a23b81b33ab3ccf9b7aa498603"><td class="mdescLeft">&#160;</td><td class="mdescRight">the zero polynomial will return a degree of -1 <br /></td></tr>
<tr class="separator:a2d0e58a23b81b33ab3ccf9b7aa498603"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92653519c01aa965f80a24d6952bc34e"><td class="memItemLeft" align="right" valign="top"><a id="a92653519c01aa965f80a24d6952bc34e"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a92653519c01aa965f80a24d6952bc34e">CoefficientCount</a> () const</td></tr>
<tr class="memdesc:a92653519c01aa965f80a24d6952bc34e"><td class="mdescLeft">&#160;</td><td class="mdescRight">degree + 1 <br /></td></tr>
<tr class="separator:a92653519c01aa965f80a24d6952bc34e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6e946183e623ed1303a43c2b84b6a1f"><td class="memItemLeft" align="right" valign="top"><a id="af6e946183e623ed1303a43c2b84b6a1f"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#af6e946183e623ed1303a43c2b84b6a1f">GetCoefficient</a> (size_t i) const</td></tr>
<tr class="memdesc:af6e946183e623ed1303a43c2b84b6a1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">return coefficient for x^i <br /></td></tr>
<tr class="separator:af6e946183e623ed1303a43c2b84b6a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe556e571c5b1725394d61122f4e8b6c"><td class="memItemLeft" align="right" valign="top"><a id="abe556e571c5b1725394d61122f4e8b6c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#abe556e571c5b1725394d61122f4e8b6c">operator[]</a> (unsigned int i) const</td></tr>
<tr class="memdesc:abe556e571c5b1725394d61122f4e8b6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">return coefficient for x^i <br /></td></tr>
<tr class="separator:abe556e571c5b1725394d61122f4e8b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91d774c1b3a0b936317265dbf7e5ad75"><td class="memItemLeft" align="right" valign="top"><a id="a91d774c1b3a0b936317265dbf7e5ad75"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsZero</b> () const</td></tr>
<tr class="separator:a91d774c1b3a0b936317265dbf7e5ad75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10dae5f0d3e0d167500d83ffd7f546dc"><td class="memItemLeft" align="right" valign="top"><a id="a10dae5f0d3e0d167500d83ffd7f546dc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>Equals</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;rhs) const</td></tr>
<tr class="separator:a10dae5f0d3e0d167500d83ffd7f546dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
MANIPULATORS</h2></td></tr>
<tr class="memitem:acb7a27cfd427af99b60e67503db0b6d6"><td class="memItemLeft" align="right" valign="top"><a id="acb7a27cfd427af99b60e67503db0b6d6"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:acb7a27cfd427af99b60e67503db0b6d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac80f48000222a8dadaa7092a3eaaa6a3"><td class="memItemLeft" align="right" valign="top"><a id="ac80f48000222a8dadaa7092a3eaaa6a3"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator &amp;=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:ac80f48000222a8dadaa7092a3eaaa6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46d95294f13b9b537868389d741b41a8"><td class="memItemLeft" align="right" valign="top"><a id="a46d95294f13b9b537868389d741b41a8"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator^=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:a46d95294f13b9b537868389d741b41a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a074e88a48db114f9f2e7ca859401c24d"><td class="memItemLeft" align="right" valign="top"><a id="a074e88a48db114f9f2e7ca859401c24d"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:a074e88a48db114f9f2e7ca859401c24d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4e227e47fe190e2964f7ae00aa495ee"><td class="memItemLeft" align="right" valign="top"><a id="aa4e227e47fe190e2964f7ae00aa495ee"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator-=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:aa4e227e47fe190e2964f7ae00aa495ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2a0905b339295d8581ee7d1c5b74979"><td class="memItemLeft" align="right" valign="top"><a id="ae2a0905b339295d8581ee7d1c5b74979"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator*=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:ae2a0905b339295d8581ee7d1c5b74979"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a74c272ce43e483be9fe609d4a28d96"><td class="memItemLeft" align="right" valign="top"><a id="a8a74c272ce43e483be9fe609d4a28d96"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator/=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:a8a74c272ce43e483be9fe609d4a28d96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add621d7f99d46c8f30f1208bc82a37ca"><td class="memItemLeft" align="right" valign="top"><a id="add621d7f99d46c8f30f1208bc82a37ca"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator%=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>
<tr class="separator:add621d7f99d46c8f30f1208bc82a37ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad73f6f1c7331f2b745c0d61f11d881b9"><td class="memItemLeft" align="right" valign="top"><a id="ad73f6f1c7331f2b745c0d61f11d881b9"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;&lt;=</b> (unsigned int)</td></tr>
<tr class="separator:ad73f6f1c7331f2b745c0d61f11d881b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16f09c3dcc4ac6019c4f42012b177a37"><td class="memItemLeft" align="right" valign="top"><a id="a16f09c3dcc4ac6019c4f42012b177a37"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;=</b> (unsigned int)</td></tr>
<tr class="separator:a16f09c3dcc4ac6019c4f42012b177a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7021f18e89d4494b6f2ddede2ac29b3a"><td class="memItemLeft" align="right" valign="top"><a id="a7021f18e89d4494b6f2ddede2ac29b3a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>Randomize</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, size_t bitcount)</td></tr>
<tr class="separator:a7021f18e89d4494b6f2ddede2ac29b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3855a5f77e9bbc7d82a4239ccf59329"><td class="memItemLeft" align="right" valign="top"><a id="ab3855a5f77e9bbc7d82a4239ccf59329"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetBit</b> (size_t i, int value=1)</td></tr>
<tr class="separator:ab3855a5f77e9bbc7d82a4239ccf59329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15c7ead361d1f7ea23d5e4bd5535989"><td class="memItemLeft" align="right" valign="top"><a id="af15c7ead361d1f7ea23d5e4bd5535989"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#af15c7ead361d1f7ea23d5e4bd5535989">SetByte</a> (size_t n, byte value)</td></tr>
<tr class="memdesc:af15c7ead361d1f7ea23d5e4bd5535989"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the n-th byte to value <br /></td></tr>
<tr class="separator:af15c7ead361d1f7ea23d5e4bd5535989"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a862faf0cf7d2a2d8a30cd2a17c3d9146"><td class="memItemLeft" align="right" valign="top"><a id="a862faf0cf7d2a2d8a30cd2a17c3d9146"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetCoefficient</b> (size_t i, int value)</td></tr>
<tr class="separator:a862faf0cf7d2a2d8a30cd2a17c3d9146"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21587324d54a4ae453960770b18c398d"><td class="memItemLeft" align="right" valign="top"><a id="a21587324d54a4ae453960770b18c398d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;a)</td></tr>
<tr class="separator:a21587324d54a4ae453960770b18c398d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
UNARY OPERATORS</h2></td></tr>
<tr class="memitem:ac444b1db16f62393ba63ec16096664b2"><td class="memItemLeft" align="right" valign="top"><a id="ac444b1db16f62393ba63ec16096664b2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!</b> () const</td></tr>
<tr class="separator:ac444b1db16f62393ba63ec16096664b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2638a0fb364145eb07a3cd6ed58de1af"><td class="memItemLeft" align="right" valign="top"><a id="a2638a0fb364145eb07a3cd6ed58de1af"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator+</b> () const</td></tr>
<tr class="separator:a2638a0fb364145eb07a3cd6ed58de1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcf3e64ba4bb2f0aad40c217397284d4"><td class="memItemLeft" align="right" valign="top"><a id="abcf3e64ba4bb2f0aad40c217397284d4"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator-</b> () const</td></tr>
<tr class="separator:abcf3e64ba4bb2f0aad40c217397284d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
BINARY OPERATORS</h2></td></tr>
<tr class="memitem:ab7cd684a5b77c0cc3cc5f1d2788be8f5"><td class="memItemLeft" align="right" valign="top"><a id="ab7cd684a5b77c0cc3cc5f1d2788be8f5"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>And</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;b) const</td></tr>
<tr class="separator:ab7cd684a5b77c0cc3cc5f1d2788be8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeebb2b39ea3be6d1d798838366ae5a6e"><td class="memItemLeft" align="right" valign="top"><a id="aeebb2b39ea3be6d1d798838366ae5a6e"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Xor</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;b) const</td></tr>
<tr class="separator:aeebb2b39ea3be6d1d798838366ae5a6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a73ce7fbdfd65b5830d0a05d8b4757c"><td class="memItemLeft" align="right" valign="top"><a id="a3a73ce7fbdfd65b5830d0a05d8b4757c"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Plus</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;b) const</td></tr>
<tr class="separator:a3a73ce7fbdfd65b5830d0a05d8b4757c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaffe2c4f50b52b5bfe1f930e36c67ab"><td class="memItemLeft" align="right" valign="top"><a id="abaffe2c4f50b52b5bfe1f930e36c67ab"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Minus</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;b) const</td></tr>
<tr class="separator:abaffe2c4f50b52b5bfe1f930e36c67ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aaf95991468e4ee02f742b87f2bcfe3"><td class="memItemLeft" align="right" valign="top"><a id="a3aaf95991468e4ee02f742b87f2bcfe3"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Times</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;b) const</td></tr>
<tr class="separator:a3aaf95991468e4ee02f742b87f2bcfe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83a23f133e58844a7c35eed6f75325bf"><td class="memItemLeft" align="right" valign="top"><a id="a83a23f133e58844a7c35eed6f75325bf"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>DividedBy</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;b) const</td></tr>
<tr class="separator:a83a23f133e58844a7c35eed6f75325bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44875ba4e6dbe0e443023252adcbe131"><td class="memItemLeft" align="right" valign="top"><a id="a44875ba4e6dbe0e443023252adcbe131"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Modulo</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;b) const</td></tr>
<tr class="separator:a44875ba4e6dbe0e443023252adcbe131"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42142bcaccb6a31e1dcf11986776faf3"><td class="memItemLeft" align="right" valign="top"><a id="a42142bcaccb6a31e1dcf11986776faf3"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (unsigned int n) const</td></tr>
<tr class="separator:a42142bcaccb6a31e1dcf11986776faf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04ad49a00ee8da34a957b17daf4bbd3d"><td class="memItemLeft" align="right" valign="top"><a id="a04ad49a00ee8da34a957b17daf4bbd3d"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;&lt;</b> (unsigned int n) const</td></tr>
<tr class="separator:a04ad49a00ee8da34a957b17daf4bbd3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
OTHER ARITHMETIC FUNCTIONS</h2></td></tr>
<tr class="memitem:ac2821c87852466235b4e1a2f4cc01334"><td class="memItemLeft" align="right" valign="top"><a id="ac2821c87852466235b4e1a2f4cc01334"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#ac2821c87852466235b4e1a2f4cc01334">Parity</a> () const</td></tr>
<tr class="memdesc:ac2821c87852466235b4e1a2f4cc01334"><td class="mdescLeft">&#160;</td><td class="mdescRight">sum modulo 2 of all coefficients <br /></td></tr>
<tr class="separator:ac2821c87852466235b4e1a2f4cc01334"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ea60cfae9134470da9b8f7c37122acb"><td class="memItemLeft" align="right" valign="top"><a id="a3ea60cfae9134470da9b8f7c37122acb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a3ea60cfae9134470da9b8f7c37122acb">IsIrreducible</a> () const</td></tr>
<tr class="memdesc:a3ea60cfae9134470da9b8f7c37122acb"><td class="mdescLeft">&#160;</td><td class="mdescRight">check for irreducibility <br /></td></tr>
<tr class="separator:a3ea60cfae9134470da9b8f7c37122acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6006abf328c20f32a5858e96b91c8d"><td class="memItemLeft" align="right" valign="top"><a id="a5f6006abf328c20f32a5858e96b91c8d"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a5f6006abf328c20f32a5858e96b91c8d">Doubled</a> () const</td></tr>
<tr class="memdesc:a5f6006abf328c20f32a5858e96b91c8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">is always zero since we're working modulo 2 <br /></td></tr>
<tr class="separator:a5f6006abf328c20f32a5858e96b91c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebb432d1ab5e16d056165e316254b258"><td class="memItemLeft" align="right" valign="top"><a id="aebb432d1ab5e16d056165e316254b258"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Squared</b> () const</td></tr>
<tr class="separator:aebb432d1ab5e16d056165e316254b258"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cdb6f0136198255766326388ddd4d42"><td class="memItemLeft" align="right" valign="top"><a id="a4cdb6f0136198255766326388ddd4d42"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a4cdb6f0136198255766326388ddd4d42">IsUnit</a> () const</td></tr>
<tr class="memdesc:a4cdb6f0136198255766326388ddd4d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">only 1 is a unit <br /></td></tr>
<tr class="separator:a4cdb6f0136198255766326388ddd4d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a79c76a8039c159d0e3cfba93ad8184"><td class="memItemLeft" align="right" valign="top"><a id="a1a79c76a8039c159d0e3cfba93ad8184"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a1a79c76a8039c159d0e3cfba93ad8184">MultiplicativeInverse</a> () const</td></tr>
<tr class="memdesc:a1a79c76a8039c159d0e3cfba93ad8184"><td class="mdescLeft">&#160;</td><td class="mdescRight">return inverse if *this is a unit, otherwise return 0 <br /></td></tr>
<tr class="separator:a1a79c76a8039c159d0e3cfba93ad8184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9daebc240dd1edd2e1abb5b05e2e3818"><td class="memItemLeft" align="right" valign="top"><a id="a9daebc240dd1edd2e1abb5b05e2e3818"></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a9daebc240dd1edd2e1abb5b05e2e3818">InverseMod</a> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;) const</td></tr>
<tr class="memdesc:a9daebc240dd1edd2e1abb5b05e2e3818"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculate multiplicative inverse of *this mod n <br /></td></tr>
<tr class="separator:a9daebc240dd1edd2e1abb5b05e2e3818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3940dec2ab787489ad4ce67013fe4611"><td class="memItemLeft" align="right" valign="top"><a id="a3940dec2ab787489ad4ce67013fe4611"></a>
static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a3940dec2ab787489ad4ce67013fe4611">Gcd</a> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;a, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;n)</td></tr>
<tr class="memdesc:a3940dec2ab787489ad4ce67013fe4611"><td class="mdescLeft">&#160;</td><td class="mdescRight">greatest common divisor <br /></td></tr>
<tr class="separator:a3940dec2ab787489ad4ce67013fe4611"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73d92da2ee829619041eca82567b87bc"><td class="memItemLeft" align="right" valign="top"><a id="a73d92da2ee829619041eca82567b87bc"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#a73d92da2ee829619041eca82567b87bc">Divide</a> (<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;r, <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;q, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;a, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;d)</td></tr>
<tr class="memdesc:a73d92da2ee829619041eca82567b87bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculate r and q such that (a == d*q + r) &amp;&amp; (deg(r) &lt; deg(d)) <br /></td></tr>
<tr class="separator:a73d92da2ee829619041eca82567b87bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
INPUT/OUTPUT</h2></td></tr>
<tr class="memitem:ae2b80f2028ca16b9a75a434e1fb24424"><td class="memItemLeft" align="right" valign="top"><a id="ae2b80f2028ca16b9a75a434e1fb24424"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;&lt;</b> (std::ostream &amp;out, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;a)</td></tr>
<tr class="separator:ae2b80f2028ca16b9a75a434e1fb24424"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Polynomial with Coefficients in GF(2) </p>

<p class="definition">Definition at line <a class="el" href="gf2n_8h_source.html#l00026">26</a> of file <a class="el" href="gf2n_8h_source.html">gf2n.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a51790dcfe87a449169e8cb5c0f20da7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51790dcfe87a449169e8cb5c0f20da7e">&#9670;&nbsp;</a></span>PolynomialMod2() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PolynomialMod2::PolynomialMod2 </td>
          <td>(</td>
          <td class="paramtype">word&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bitLength</em> = <code>WORD_BITS</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Construct a <a class="el" href="class_polynomial_mod2.html" title="Polynomial with Coefficients in GF(2) ">PolynomialMod2</a> from a word. </p>
<p>value should be encoded with the least significant bit as coefficient to x^0 and most significant bit as coefficient to x^(WORD_BITS-1) bitLength denotes how much memory to allocate initially </p>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00033">33</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<a id="a455d995dd1eee03b8412eacae4c61186"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a455d995dd1eee03b8412eacae4c61186">&#9670;&nbsp;</a></span>PolynomialMod2() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PolynomialMod2::PolynomialMod2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bitcount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a uniformly distributed random polynomial. </p>
<p>Create a random polynomial uniformly distributed over all polynomials with degree less than bitcount </p>

<p class="definition">Definition at line <a class="el" href="gf2n_8h_source.html#l00064">64</a> of file <a class="el" href="gf2n_8h_source.html">gf2n.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a87949fb32436e1f2f96d7b813405c032"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87949fb32436e1f2f96d7b813405c032">&#9670;&nbsp;</a></span>Monomial()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> PolynomialMod2::Monomial </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides x^i. </p>
<dl class="section return"><dt>Returns</dt><dd>x^i </dd></dl>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00098">98</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<a id="a6d843c32a41885cb33d0aec19e40dda6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d843c32a41885cb33d0aec19e40dda6">&#9670;&nbsp;</a></span>Trinomial()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> PolynomialMod2::Trinomial </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides x^t0 + x^t1 + x^t2. </p>
<dl class="section return"><dt>Returns</dt><dd>x^t0 + x^t1 + x^t2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00105">105</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<a id="a507094d47020af3d23a9fd68cc4b527d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a507094d47020af3d23a9fd68cc4b527d">&#9670;&nbsp;</a></span>Pentanomial()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> PolynomialMod2::Pentanomial </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t4</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides x^t0 + x^t1 + x^t2 + x^t3 + x^t4. </p>
<dl class="section return"><dt>Returns</dt><dd>x^t0 + x^t1 + x^t2 + x^t3 + x^t4 </dd></dl>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00114">114</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<a id="abf3ecc0dafe04c57dacea983a9a6690e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf3ecc0dafe04c57dacea983a9a6690e">&#9670;&nbsp;</a></span>AllOnes()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> PolynomialMod2::AllOnes </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides x^(n-1) + ... </p>
<p>+ x + 1 </p><dl class="section return"><dt>Returns</dt><dd>x^(n-1) + ... + x + 1 </dd></dl>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00060">60</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<a id="a11c7e95fb64a071952df785bb4036437"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11c7e95fb64a071952df785bb4036437">&#9670;&nbsp;</a></span>Zero()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp; PolynomialMod2::Zero </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The Zero polinomial. </p>
<dl class="section return"><dt>Returns</dt><dd>the zero polynomial </dd></dl>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00134">134</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<a id="a6d96db42fd089c139d6af6da6d6bc331"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d96db42fd089c139d6af6da6d6bc331">&#9670;&nbsp;</a></span>One()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp; PolynomialMod2::One </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The One polinomial. </p>
<dl class="section return"><dt>Returns</dt><dd>the one polynomial </dd></dl>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00139">139</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<a id="a00c84f8cb2e7262de75e4c1e28760d43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00c84f8cb2e7262de75e4c1e28760d43">&#9670;&nbsp;</a></span>MinEncodedSize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int PolynomialMod2::MinEncodedSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>minimum number of bytes to encode this polynomial </p>
<p>MinEncodedSize of 0 is 1 </p>

<p class="definition">Definition at line <a class="el" href="gf2n_8h_source.html#l00092">92</a> of file <a class="el" href="gf2n_8h_source.html">gf2n.h</a>.</p>

</div>
</div>
<a id="a1f444d22084163c2b69b5ade313aef14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f444d22084163c2b69b5ade313aef14">&#9670;&nbsp;</a></span>Encode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PolynomialMod2::Encode </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>outputLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>encode in big-endian format </p>
<p>if outputLen &lt; MinEncodedSize, the most significant bytes will be dropped if outputLen &gt; MinEncodedSize, the most significant bytes will be padded </p>

<p class="definition">Definition at line <a class="el" href="gf2n_8cpp_source.html#l00150">150</a> of file <a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="gf2n_8h_source.html">gf2n.h</a></li>
<li><a class="el" href="gf2n_8cpp_source.html">gf2n.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Sep 16 2018 07:58:50 for Crypto++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>