<!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++  <span id="projectnumber">7.0</span> </div> <div id="projectbrief">Free C++ class library of cryptographic 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&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> | <a href="#friends">Friends</a> | <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  </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"> </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"> </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 </td><td class="memItemRight" valign="bottom"><b>GF2NT</b></td></tr> <tr class="separator:a2e0505b1597d5b697c52bfc7420f4f73"><td class="memSeparator" colspan="2"> </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 </td><td class="memItemRight" valign="bottom"><b>RandomizationParameter</b></td></tr> <tr class="separator:a7027d2803057b129738a862611faf3d2"><td class="memSeparator" colspan="2"> </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>  </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"> </td><td class="mdescRight">Construct the zero polynomial. <br /></td></tr> <tr class="separator:ac67d4fb61b199c101f5de08d3aa2e782"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6866391c010ebef60c452df7961e809c"><td class="memItemLeft" align="right" valign="top"><a id="a6866391c010ebef60c452df7961e809c"></a>  </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> &t)</td></tr> <tr class="memdesc:a6866391c010ebef60c452df7961e809c"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a51790dcfe87a449169e8cb5c0f20da7e"><td class="memItemLeft" align="right" valign="top"> </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"> </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"> </td></tr> <tr class="memitem:adc62dcb615c688c00c924775920c752d"><td class="memItemLeft" align="right" valign="top"><a id="adc62dcb615c688c00c924775920c752d"></a>  </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"> </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"> </td></tr> <tr class="memitem:aba40ce289e5ffaa47542391ead80aa85"><td class="memItemLeft" align="right" valign="top"><a id="aba40ce289e5ffaa47542391ead80aa85"></a>  </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> &encodedPoly, size_t byteCount)</td></tr> <tr class="memdesc:aba40ce289e5ffaa47542391ead80aa85"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a455d995dd1eee03b8412eacae4c61186"><td class="memItemLeft" align="right" valign="top"> </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> &rng, size_t bitcount)</td></tr> <tr class="memdesc:a455d995dd1eee03b8412eacae4c61186"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a87949fb32436e1f2f96d7b813405c032"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> </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"> </td><td class="mdescRight">Provides x^i. <a href="#a87949fb32436e1f2f96d7b813405c032">More...</a><br /></td></tr> <tr class="separator:a87949fb32436e1f2f96d7b813405c032"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6d843c32a41885cb33d0aec19e40dda6"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> </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"> </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"> </td></tr> <tr class="memitem:a507094d47020af3d23a9fd68cc4b527d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> </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"> </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"> </td></tr> <tr class="memitem:abf3ecc0dafe04c57dacea983a9a6690e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> </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"> </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"> </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> & </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"> </td><td class="mdescRight">The Zero polinomial. <a href="#a11c7e95fb64a071952df785bb4036437">More...</a><br /></td></tr> <tr class="separator:a11c7e95fb64a071952df785bb4036437"><td class="memSeparator" colspan="2"> </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> & </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"> </td><td class="mdescRight">The One polinomial. <a href="#a6d96db42fd089c139d6af6da6d6bc331">More...</a><br /></td></tr> <tr class="separator:a6d96db42fd089c139d6af6da6d6bc331"><td class="memSeparator" colspan="2"> </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 </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"> </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"> </td></tr> <tr class="memitem:a1f444d22084163c2b69b5ade313aef14"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> <tr class="memitem:a59b7f35fec343b24e4f6b74856c7eb17"><td class="memItemLeft" align="right" valign="top"><a id="a59b7f35fec343b24e4f6b74856c7eb17"></a> void </td><td class="memItemRight" valign="bottom"><b>Encode</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, size_t outputLen) const</td></tr> <tr class="separator:a59b7f35fec343b24e4f6b74856c7eb17"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adc611fe09c3a9b919dce7b8b45cec29d"><td class="memItemLeft" align="right" valign="top"><a id="adc611fe09c3a9b919dce7b8b45cec29d"></a> void </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"> </td></tr> <tr class="memitem:a60ed7031782a3e3051278ce5dfa1c099"><td class="memItemLeft" align="right" valign="top"><a id="a60ed7031782a3e3051278ce5dfa1c099"></a> void </td><td class="memItemRight" valign="bottom"><b>Decode</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, size_t inputLen)</td></tr> <tr class="separator:a60ed7031782a3e3051278ce5dfa1c099"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1773769992c5487674bcb8a0688fd6f8"><td class="memItemLeft" align="right" valign="top"><a id="a1773769992c5487674bcb8a0688fd6f8"></a> void </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> &bt, size_t length) const</td></tr> <tr class="memdesc:a1773769992c5487674bcb8a0688fd6f8"><td class="mdescLeft"> </td><td class="mdescRight">encode value as big-endian octet string <br /></td></tr> <tr class="separator:a1773769992c5487674bcb8a0688fd6f8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a69c7853e0d24f1056be18112ee4f5a8e"><td class="memItemLeft" align="right" valign="top"><a id="a69c7853e0d24f1056be18112ee4f5a8e"></a> void </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> &bt, size_t length)</td></tr> <tr class="memdesc:a69c7853e0d24f1056be18112ee4f5a8e"><td class="mdescLeft"> </td><td class="mdescRight">decode value as big-endian octet string <br /></td></tr> <tr class="separator:a69c7853e0d24f1056be18112ee4f5a8e"><td class="memSeparator" colspan="2"> </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 </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"> </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"> </td></tr> <tr class="memitem:ad22cb6a5fcb0a78646059cf0005d2f6b"><td class="memItemLeft" align="right" valign="top"><a id="ad22cb6a5fcb0a78646059cf0005d2f6b"></a> unsigned int </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"> </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"> </td></tr> <tr class="memitem:a88292d16af59aaed460503b6339145b3"><td class="memItemLeft" align="right" valign="top"><a id="a88292d16af59aaed460503b6339145b3"></a> unsigned int </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"> </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"> </td></tr> <tr class="memitem:afcf3588d3c594c24370c5a08366af970"><td class="memItemLeft" align="right" valign="top"><a id="afcf3588d3c594c24370c5a08366af970"></a> bool </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"> </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"> </td></tr> <tr class="memitem:a7a24a5ec904f384e4285d133dbe07757"><td class="memItemLeft" align="right" valign="top"><a id="a7a24a5ec904f384e4285d133dbe07757"></a> byte </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"> </td><td class="mdescRight">return the n-th byte <br /></td></tr> <tr class="separator:a7a24a5ec904f384e4285d133dbe07757"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d0e58a23b81b33ab3ccf9b7aa498603"><td class="memItemLeft" align="right" valign="top"><a id="a2d0e58a23b81b33ab3ccf9b7aa498603"></a> signed int </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"> </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"> </td></tr> <tr class="memitem:a92653519c01aa965f80a24d6952bc34e"><td class="memItemLeft" align="right" valign="top"><a id="a92653519c01aa965f80a24d6952bc34e"></a> unsigned int </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"> </td><td class="mdescRight">degree + 1 <br /></td></tr> <tr class="separator:a92653519c01aa965f80a24d6952bc34e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af6e946183e623ed1303a43c2b84b6a1f"><td class="memItemLeft" align="right" valign="top"><a id="af6e946183e623ed1303a43c2b84b6a1f"></a> int </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"> </td><td class="mdescRight">return coefficient for x^i <br /></td></tr> <tr class="separator:af6e946183e623ed1303a43c2b84b6a1f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abe556e571c5b1725394d61122f4e8b6c"><td class="memItemLeft" align="right" valign="top"><a id="abe556e571c5b1725394d61122f4e8b6c"></a> int </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"> </td><td class="mdescRight">return coefficient for x^i <br /></td></tr> <tr class="separator:abe556e571c5b1725394d61122f4e8b6c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a91d774c1b3a0b936317265dbf7e5ad75"><td class="memItemLeft" align="right" valign="top"><a id="a91d774c1b3a0b936317265dbf7e5ad75"></a> bool </td><td class="memItemRight" valign="bottom"><b>IsZero</b> () const</td></tr> <tr class="separator:a91d774c1b3a0b936317265dbf7e5ad75"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a10dae5f0d3e0d167500d83ffd7f546dc"><td class="memItemLeft" align="right" valign="top"><a id="a10dae5f0d3e0d167500d83ffd7f546dc"></a> bool </td><td class="memItemRight" valign="bottom"><b>Equals</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &rhs) const</td></tr> <tr class="separator:a10dae5f0d3e0d167500d83ffd7f546dc"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:acb7a27cfd427af99b60e67503db0b6d6"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator &=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:ac80f48000222a8dadaa7092a3eaaa6a3"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator^=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:a46d95294f13b9b537868389d741b41a8"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:a074e88a48db114f9f2e7ca859401c24d"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator-=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:aa4e227e47fe190e2964f7ae00aa495ee"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator*=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:ae2a0905b339295d8581ee7d1c5b74979"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator/=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:a8a74c272ce43e483be9fe609d4a28d96"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator%=</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr> <tr class="separator:add621d7f99d46c8f30f1208bc82a37ca"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator<<=</b> (unsigned int)</td></tr> <tr class="separator:ad73f6f1c7331f2b745c0d61f11d881b9"><td class="memSeparator" colspan="2"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator>>=</b> (unsigned int)</td></tr> <tr class="separator:a16f09c3dcc4ac6019c4f42012b177a37"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7021f18e89d4494b6f2ddede2ac29b3a"><td class="memItemLeft" align="right" valign="top"><a id="a7021f18e89d4494b6f2ddede2ac29b3a"></a> void </td><td class="memItemRight" valign="bottom"><b>Randomize</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, size_t bitcount)</td></tr> <tr class="separator:a7021f18e89d4494b6f2ddede2ac29b3a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab3855a5f77e9bbc7d82a4239ccf59329"><td class="memItemLeft" align="right" valign="top"><a id="ab3855a5f77e9bbc7d82a4239ccf59329"></a> void </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"> </td></tr> <tr class="memitem:af15c7ead361d1f7ea23d5e4bd5535989"><td class="memItemLeft" align="right" valign="top"><a id="af15c7ead361d1f7ea23d5e4bd5535989"></a> void </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"> </td><td class="mdescRight">set the n-th byte to value <br /></td></tr> <tr class="separator:af15c7ead361d1f7ea23d5e4bd5535989"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a862faf0cf7d2a2d8a30cd2a17c3d9146"><td class="memItemLeft" align="right" valign="top"><a id="a862faf0cf7d2a2d8a30cd2a17c3d9146"></a> void </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"> </td></tr> <tr class="memitem:a21587324d54a4ae453960770b18c398d"><td class="memItemLeft" align="right" valign="top"><a id="a21587324d54a4ae453960770b18c398d"></a> void </td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &a)</td></tr> <tr class="separator:a21587324d54a4ae453960770b18c398d"><td class="memSeparator" colspan="2"> </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 </td><td class="memItemRight" valign="bottom"><b>operator!</b> () const</td></tr> <tr class="separator:ac444b1db16f62393ba63ec16096664b2"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>operator+</b> () const</td></tr> <tr class="separator:a2638a0fb364145eb07a3cd6ed58de1af"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>operator-</b> () const</td></tr> <tr class="separator:abcf3e64ba4bb2f0aad40c217397284d4"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>And</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &b) const</td></tr> <tr class="separator:ab7cd684a5b77c0cc3cc5f1d2788be8f5"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>Xor</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &b) const</td></tr> <tr class="separator:aeebb2b39ea3be6d1d798838366ae5a6e"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>Plus</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &b) const</td></tr> <tr class="separator:a3a73ce7fbdfd65b5830d0a05d8b4757c"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>Minus</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &b) const</td></tr> <tr class="separator:abaffe2c4f50b52b5bfe1f930e36c67ab"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>Times</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &b) const</td></tr> <tr class="separator:a3aaf95991468e4ee02f742b87f2bcfe3"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>DividedBy</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &b) const</td></tr> <tr class="separator:a83a23f133e58844a7c35eed6f75325bf"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>Modulo</b> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &b) const</td></tr> <tr class="separator:a44875ba4e6dbe0e443023252adcbe131"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>operator>></b> (unsigned int n) const</td></tr> <tr class="separator:a42142bcaccb6a31e1dcf11986776faf3"><td class="memSeparator" colspan="2"> </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> </td><td class="memItemRight" valign="bottom"><b>operator<<</b> (unsigned int n) const</td></tr> <tr class="separator:a04ad49a00ee8da34a957b17daf4bbd3d"><td class="memSeparator" colspan="2"> </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 </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"> </td><td class="mdescRight">sum modulo 2 of all coefficients <br /></td></tr> <tr class="separator:ac2821c87852466235b4e1a2f4cc01334"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3ea60cfae9134470da9b8f7c37122acb"><td class="memItemLeft" align="right" valign="top"><a id="a3ea60cfae9134470da9b8f7c37122acb"></a> bool </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"> </td><td class="mdescRight">check for irreducibility <br /></td></tr> <tr class="separator:a3ea60cfae9134470da9b8f7c37122acb"><td class="memSeparator" colspan="2"> </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> </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"> </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"> </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> </td><td class="memItemRight" valign="bottom"><b>Squared</b> () const</td></tr> <tr class="separator:aebb432d1ab5e16d056165e316254b258"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4cdb6f0136198255766326388ddd4d42"><td class="memItemLeft" align="right" valign="top"><a id="a4cdb6f0136198255766326388ddd4d42"></a> bool </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"> </td><td class="mdescRight">only 1 is a unit <br /></td></tr> <tr class="separator:a4cdb6f0136198255766326388ddd4d42"><td class="memSeparator" colspan="2"> </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> </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"> </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"> </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> </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> &) const</td></tr> <tr class="memdesc:a9daebc240dd1edd2e1abb5b05e2e3818"><td class="mdescLeft"> </td><td class="mdescRight">calculate multiplicative inverse of *this mod n <br /></td></tr> <tr class="separator:a9daebc240dd1edd2e1abb5b05e2e3818"><td class="memSeparator" colspan="2"> </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> </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> &a, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &n)</td></tr> <tr class="memdesc:a3940dec2ab787489ad4ce67013fe4611"><td class="mdescLeft"> </td><td class="mdescRight">greatest common divisor <br /></td></tr> <tr class="separator:a3940dec2ab787489ad4ce67013fe4611"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a73d92da2ee829619041eca82567b87bc"><td class="memItemLeft" align="right" valign="top"><a id="a73d92da2ee829619041eca82567b87bc"></a> static void </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> &r, <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &q, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &a, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &d)</td></tr> <tr class="memdesc:a73d92da2ee829619041eca82567b87bc"><td class="mdescLeft"> </td><td class="mdescRight">calculate r and q such that (a == d*q + r) && (deg(r) < deg(d)) <br /></td></tr> <tr class="separator:a73d92da2ee829619041eca82567b87bc"><td class="memSeparator" colspan="2"> </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 & </td><td class="memItemRight" valign="bottom"><b>operator<<</b> (std::ostream &out, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &a)</td></tr> <tr class="separator:ae2b80f2028ca16b9a75a434e1fb24424"><td class="memSeparator" colspan="2"> </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 & Destructor Documentation</h2> <a id="a51790dcfe87a449169e8cb5c0f20da7e"></a> <h2 class="memtitle"><span class="permalink"><a href="#a51790dcfe87a449169e8cb5c0f20da7e">◆ </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 </td> <td class="paramname"><em>value</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>bitLength</em> = <code>WORD_BITS</code> </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">◆ </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> & </td> <td class="paramname"><em>rng</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>bitcount</em> </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">◆ </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 </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">◆ </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 </td> <td class="paramname"><em>t0</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>t1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>t2</em> </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">◆ </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 </td> <td class="paramname"><em>t0</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>t1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>t2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>t3</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>t4</em> </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">◆ </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 </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">◆ </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> & 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">◆ </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> & 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">◆ </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">◆ </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 * </td> <td class="paramname"><em>output</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>outputLen</em> </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 < MinEncodedSize, the most significant bytes will be dropped if outputLen > 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  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.14 </small></address> </body> </html>