📄 class_polynomial_mod2.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>Crypto++: PolynomialMod2 Class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.2 --><div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul></div><div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div><h1>PolynomialMod2 Class Reference</h1><!-- doxytag: class="PolynomialMod2" --><code>#include <<a class="el" href="gf2n_8h-source.html">gf2n.h</a>></code><p><a href="class_polynomial_mod2-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>Polynomial with Coefficients in GF(2). <p><p><p>Definition at line <a class="el" href="gf2n_8h-source.html#l00017">17</a> of file <a class="el" href="gf2n_8h-source.html">gf2n.h</a>.<table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>ENUMS, EXCEPTIONS, and TYPEDEFS</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7027d2803057b129738a862611faf3d2"></a><!-- doxytag: member="PolynomialMod2::RandomizationParameter" ref="7027d2803057b129738a862611faf3d2" args="" -->typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#7027d2803057b129738a862611faf3d2">RandomizationParameter</a></td></tr><tr><td colspan="2"><br><h2>INPUT/OUTPUT</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e2b80f2028ca16b9a75a434e1fb24424"></a><!-- doxytag: member="PolynomialMod2::operator<<" ref="e2b80f2028ca16b9a75a434e1fb24424" args="(std::ostream &out, const PolynomialMod2 &a)" -->std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#e2b80f2028ca16b9a75a434e1fb24424">operator<<</a> (std::ostream &out, const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &a)</td></tr><tr><td colspan="2"><br><h2>CREATORS</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c67d4fb61b199c101f5de08d3aa2e782"></a><!-- doxytag: member="PolynomialMod2::PolynomialMod2" ref="c67d4fb61b199c101f5de08d3aa2e782" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#c67d4fb61b199c101f5de08d3aa2e782">PolynomialMod2</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">creates the zero polynomial <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6866391c010ebef60c452df7961e809c"></a><!-- doxytag: member="PolynomialMod2::PolynomialMod2" ref="6866391c010ebef60c452df7961e809c" args="(const PolynomialMod2 &t)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#6866391c010ebef60c452df7961e809c">PolynomialMod2</a> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &t)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">copy constructor <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#51790dcfe87a449169e8cb5c0f20da7e">PolynomialMod2</a> (word value, size_t bitLength=WORD_BITS)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">convert from word <a href="#51790dcfe87a449169e8cb5c0f20da7e"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dc62dcb615c688c00c924775920c752d"></a><!-- doxytag: member="PolynomialMod2::PolynomialMod2" ref="dc62dcb615c688c00c924775920c752d" args="(const byte *encodedPoly, size_t byteCount)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#dc62dcb615c688c00c924775920c752d">PolynomialMod2</a> (const byte *encodedPoly, size_t byteCount)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">convert from big-endian byte array <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ba40ce289e5ffaa47542391ead80aa85"></a><!-- doxytag: member="PolynomialMod2::PolynomialMod2" ref="ba40ce289e5ffaa47542391ead80aa85" args="(BufferedTransformation &encodedPoly, size_t byteCount)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#ba40ce289e5ffaa47542391ead80aa85">PolynomialMod2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &encodedPoly, size_t byteCount)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">convert 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><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="455d995dd1eee03b8412eacae4c61186"></a><!-- doxytag: member="PolynomialMod2::PolynomialMod2" ref="455d995dd1eee03b8412eacae4c61186" args="(RandomNumberGenerator &rng, size_t bitcount)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#455d995dd1eee03b8412eacae4c61186">PolynomialMod2</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, size_t bitcount)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">create a random polynomial uniformly distributed over all polynomials with degree less than bitcount <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="87949fb32436e1f2f96d7b813405c032"></a><!-- doxytag: member="PolynomialMod2::Monomial" ref="87949fb32436e1f2f96d7b813405c032" args="(size_t i)" -->static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> __cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#87949fb32436e1f2f96d7b813405c032">Monomial</a> (size_t i)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">return x^i <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6d843c32a41885cb33d0aec19e40dda6"></a><!-- doxytag: member="PolynomialMod2::Trinomial" ref="6d843c32a41885cb33d0aec19e40dda6" args="(size_t t0, size_t t1, size_t t2)" -->static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> __cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#6d843c32a41885cb33d0aec19e40dda6">Trinomial</a> (size_t t0, size_t t1, size_t t2)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">return x^t0 + x^t1 + x^t2 <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="507094d47020af3d23a9fd68cc4b527d"></a><!-- doxytag: member="PolynomialMod2::Pentanomial" ref="507094d47020af3d23a9fd68cc4b527d" args="(size_t t0, size_t t1, size_t t2, size_t t3, size_t t4)" -->static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> __cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#507094d47020af3d23a9fd68cc4b527d">Pentanomial</a> (size_t t0, size_t t1, size_t t2, size_t t3, size_t t4)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">return x^t0 + x^t1 + x^t2 + x^t3 + x^t4 <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bf3ecc0dafe04c57dacea983a9a6690e"></a><!-- doxytag: member="PolynomialMod2::AllOnes" ref="bf3ecc0dafe04c57dacea983a9a6690e" args="(size_t n)" -->static <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> __cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#bf3ecc0dafe04c57dacea983a9a6690e">AllOnes</a> (size_t n)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">return x^(n-1) + ... + x + 1 <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="11c7e95fb64a071952df785bb4036437"></a><!-- doxytag: member="PolynomialMod2::Zero" ref="11c7e95fb64a071952df785bb4036437" args="()" -->static const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> <br>&__cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#11c7e95fb64a071952df785bb4036437">Zero</a> ()</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6d96db42fd089c139d6af6da6d6bc331"></a><!-- doxytag: member="PolynomialMod2::One" ref="6d96db42fd089c139d6af6da6d6bc331" args="()" -->static const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> <br>&__cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#6d96db42fd089c139d6af6da6d6bc331">One</a> ()</td></tr><tr><td colspan="2"><br><h2>ENCODE/DECODE</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#00c84f8cb2e7262de75e4c1e28760d43">MinEncodedSize</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">minimum number of bytes to encode this polynomial <a href="#00c84f8cb2e7262de75e4c1e28760d43"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#1f444d22084163c2b69b5ade313aef14">Encode</a> (byte *output, size_t outputLen) const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">encode in big-endian format <a href="#1f444d22084163c2b69b5ade313aef14"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8bc634e489af8451856f5614748fb9c6"></a><!-- doxytag: member="PolynomialMod2::Encode" ref="8bc634e489af8451856f5614748fb9c6" args="(BufferedTransformation &bt, size_t outputLen) const " -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#8bc634e489af8451856f5614748fb9c6">Encode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, size_t outputLen) const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dc611fe09c3a9b919dce7b8b45cec29d"></a><!-- doxytag: member="PolynomialMod2::Decode" ref="dc611fe09c3a9b919dce7b8b45cec29d" args="(const byte *input, size_t inputLen)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#dc611fe09c3a9b919dce7b8b45cec29d">Decode</a> (const byte *input, size_t inputLen)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="60ed7031782a3e3051278ce5dfa1c099"></a><!-- doxytag: member="PolynomialMod2::Decode" ref="60ed7031782a3e3051278ce5dfa1c099" args="(BufferedTransformation &bt, size_t inputLen)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#60ed7031782a3e3051278ce5dfa1c099">Decode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, size_t inputLen)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="700d15948c49f52c01d0ad1bd25c1a3d"></a><!-- doxytag: member="PolynomialMod2::DEREncodeAsOctetString" ref="700d15948c49f52c01d0ad1bd25c1a3d" args="(BufferedTransformation &bt, size_t length) const " -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#700d15948c49f52c01d0ad1bd25c1a3d">DEREncodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, size_t length) const </td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">encode value as big-endian octet string <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="69c7853e0d24f1056be18112ee4f5a8e"></a><!-- doxytag: member="PolynomialMod2::BERDecodeAsOctetString" ref="69c7853e0d24f1056be18112ee4f5a8e" args="(BufferedTransformation &bt, size_t length)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#69c7853e0d24f1056be18112ee4f5a8e">BERDecodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, size_t length)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">decode value as big-endian octet string <br></td></tr><tr><td colspan="2"><br><h2>ACCESSORS</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="86f4e8502eacf95345d18a6240a217b2"></a><!-- doxytag: member="PolynomialMod2::BitCount" ref="86f4e8502eacf95345d18a6240a217b2" args="() const" -->unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#86f4e8502eacf95345d18a6240a217b2">BitCount</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">number of significant bits = <a class="el" href="class_polynomial_mod2.html#2d0e58a23b81b33ab3ccf9b7aa498603" title="the zero polynomial will return a degree of -1">Degree()</a> + 1 <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d22cb6a5fcb0a78646059cf0005d2f6b"></a><!-- doxytag: member="PolynomialMod2::ByteCount" ref="d22cb6a5fcb0a78646059cf0005d2f6b" args="() const" -->unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#d22cb6a5fcb0a78646059cf0005d2f6b">ByteCount</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">number of significant bytes = ceiling(<a class="el" href="class_polynomial_mod2.html#86f4e8502eacf95345d18a6240a217b2" title="number of significant bits = Degree() + 1">BitCount()</a>/8) <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="88292d16af59aaed460503b6339145b3"></a><!-- doxytag: member="PolynomialMod2::WordCount" ref="88292d16af59aaed460503b6339145b3" args="() const" -->unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#88292d16af59aaed460503b6339145b3">WordCount</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">number of significant words = ceiling(<a class="el" href="class_polynomial_mod2.html#d22cb6a5fcb0a78646059cf0005d2f6b" title="number of significant bytes = ceiling(BitCount()/8)">ByteCount()</a>/sizeof(word)) <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fcf3588d3c594c24370c5a08366af970"></a><!-- doxytag: member="PolynomialMod2::GetBit" ref="fcf3588d3c594c24370c5a08366af970" args="(size_t n) const" -->bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_polynomial_mod2.html#fcf3588d3c594c24370c5a08366af970">GetBit</a> (size_t n) const</td></tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -