Sophie

Sophie

distrib > Mandriva > 10.2 > i586 > media > contrib > by-pkgid > 7457b841ac8136d3a1a9d3d960c5252e > files > 826

libcryptopp-doc-5.2.1-2mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crypto++: PolynomialMod2 class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.7 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>PolynomialMod2 Class Reference</h1><code>#include &lt;<a class="el" href="gf2n_8h-source.html">gf2n.h</a>&gt;</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="_polynomial_mod2z17_0" doxytag="PolynomialMod2::RandomizationParameter" ></a>
typedef unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>RandomizationParameter</b></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="_polynomial_mod2z19_0" doxytag="PolynomialMod2::PolynomialMod2" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_0">PolynomialMod2</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">creates the zero polynomial <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_1" doxytag="PolynomialMod2::PolynomialMod2" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_1">PolynomialMod2</a> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">copy constructor <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_2">PolynomialMod2</a> (word value, unsigned int bitLength=WORD_BITS)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert from word  <a href="#_polynomial_mod2z19_2"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_3" doxytag="PolynomialMod2::PolynomialMod2" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_3">PolynomialMod2</a> (const byte *encodedPoly, unsigned int byteCount)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert from big-endian byte array <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_4" doxytag="PolynomialMod2::PolynomialMod2" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_4">PolynomialMod2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;encodedPoly, unsigned int byteCount)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert from big-endian form stored in a <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_5" doxytag="PolynomialMod2::PolynomialMod2" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_5">PolynomialMod2</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, unsigned int bitcount)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">create a random polynomial uniformly distributed over all polynomials with degree less than bitcount <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_6" doxytag="PolynomialMod2::Monomial" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_6">Monomial</a> (unsigned i)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return x^i <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_7" doxytag="PolynomialMod2::Trinomial" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_7">Trinomial</a> (unsigned t0, unsigned t1, unsigned t2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return x^t0 + x^t1 + x^t2 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_8" doxytag="PolynomialMod2::Pentanomial" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_8">Pentanomial</a> (unsigned t0, unsigned t1, unsigned t2, unsigned int t3, unsigned int t4)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return x^t0 + x^t1 + x^t2 + x^t3 + x^t4 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_9" doxytag="PolynomialMod2::AllOnes" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z19_9">AllOnes</a> (unsigned n)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return x^(n-1) + ... + x + 1 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_10" doxytag="PolynomialMod2::Zero" ></a>
const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>Zero</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z19_11" doxytag="PolynomialMod2::One" ></a>
const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>One</b> ()</td></tr>

<tr><td colspan=2><br><h2>ENCODE/DECODE</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z21_0">MinEncodedSize</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">minimum number of bytes to encode this polynomial  <a href="#_polynomial_mod2z21_0"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z21_1">Encode</a> (byte *output, unsigned int outputLen) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encode in big-endian format  <a href="#_polynomial_mod2z21_1"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z21_2" doxytag="PolynomialMod2::Encode" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>Encode</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, unsigned int outputLen) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z21_3" doxytag="PolynomialMod2::Decode" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>Decode</b> (const byte *input, unsigned int inputLen)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z21_4" doxytag="PolynomialMod2::Decode" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>Decode</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, unsigned int inputLen)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z21_5" doxytag="PolynomialMod2::DEREncodeAsOctetString" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z21_5">DEREncodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, unsigned int length) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encode value as big-endian octet string <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z21_6" doxytag="PolynomialMod2::BERDecodeAsOctetString" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z21_6">BERDecodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, unsigned int length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">decode value as big-endian octet string <br><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="_polynomial_mod2z23_0" doxytag="PolynomialMod2::BitCount" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_0">BitCount</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of significant bits = Degree() + 1 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_1" doxytag="PolynomialMod2::ByteCount" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_1">ByteCount</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of significant bytes = ceiling(BitCount()/8) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_2" doxytag="PolynomialMod2::WordCount" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_2">WordCount</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of significant words = ceiling(ByteCount()/sizeof(word)) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_3" doxytag="PolynomialMod2::GetBit" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_3">GetBit</a> (unsigned int n) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the n-th bit, n=0 being the least significant bit <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_4" doxytag="PolynomialMod2::GetByte" ></a>
byte&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_4">GetByte</a> (unsigned int n) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the n-th byte <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_5" doxytag="PolynomialMod2::Degree" ></a>
signed int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_5">Degree</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the zero polynomial will return a degree of -1 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_6" doxytag="PolynomialMod2::CoefficientCount" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_6">CoefficientCount</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">degree + 1 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_7" doxytag="PolynomialMod2::GetCoefficient" ></a>
int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_7">GetCoefficient</a> (unsigned int i) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return coefficient for x^i <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_8" doxytag="PolynomialMod2::operator[]" ></a>
int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z23_8">operator[]</a> (unsigned int i) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return coefficient for x^i <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_9" doxytag="PolynomialMod2::IsZero" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><b>IsZero</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z23_10" doxytag="PolynomialMod2::Equals" ></a>
bool&nbsp;</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><td colspan=2><br><h2>MANIPULATORS</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_0" doxytag="PolynomialMod2::operator=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_1" doxytag="PolynomialMod2::operator &=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_2" doxytag="PolynomialMod2::operator^=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_3" doxytag="PolynomialMod2::operator+=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_4" doxytag="PolynomialMod2::operator-=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_5" doxytag="PolynomialMod2::operator *=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_6" doxytag="PolynomialMod2::operator/=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_7" doxytag="PolynomialMod2::operator%=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_8" doxytag="PolynomialMod2::operator<<=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>operator&lt;&lt;=</b> (unsigned int)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_9" doxytag="PolynomialMod2::operator>>=" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>operator&gt;&gt;=</b> (unsigned int)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_10" doxytag="PolynomialMod2::Randomize" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>Randomize</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, unsigned int bitcount)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_11" doxytag="PolynomialMod2::SetBit" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>SetBit</b> (unsigned int i, int value=1)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_12" doxytag="PolynomialMod2::SetByte" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z25_12">SetByte</a> (unsigned int n, byte value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set the n-th byte to value <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_13" doxytag="PolynomialMod2::SetCoefficient" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>SetCoefficient</b> (unsigned int i, int value)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z25_14" doxytag="PolynomialMod2::swap" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>swap</b> (<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;a)</td></tr>

<tr><td colspan=2><br><h2>UNARY OPERATORS</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z27_0" doxytag="PolynomialMod2::operator!" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><b>operator!</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z27_1" doxytag="PolynomialMod2::operator+" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><b>operator+</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z27_2" doxytag="PolynomialMod2::operator-" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><b>operator-</b> () const</td></tr>

<tr><td colspan=2><br><h2>BINARY OPERATORS</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_0" doxytag="PolynomialMod2::And" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_1" doxytag="PolynomialMod2::Xor" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_2" doxytag="PolynomialMod2::Plus" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_3" doxytag="PolynomialMod2::Minus" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_4" doxytag="PolynomialMod2::Times" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_5" doxytag="PolynomialMod2::DividedBy" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_6" doxytag="PolynomialMod2::Modulo" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</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><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_7" doxytag="PolynomialMod2::operator>>" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><b>operator&gt;&gt;</b> (unsigned int n) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z29_8" doxytag="PolynomialMod2::operator<<" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><b>operator&lt;&lt;</b> (unsigned int n) const</td></tr>

<tr><td colspan=2><br><h2>OTHER ARITHMETIC FUNCTIONS</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_0" doxytag="PolynomialMod2::Parity" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_0">Parity</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sum modulo 2 of all coefficients <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_1" doxytag="PolynomialMod2::IsIrreducible" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_1">IsIrreducible</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check for irreducibility <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_2" doxytag="PolynomialMod2::Doubled" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_2">Doubled</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">is always zero since we're working modulo 2 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_3" doxytag="PolynomialMod2::Squared" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><b>Squared</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_4" doxytag="PolynomialMod2::IsUnit" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_4">IsUnit</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">only 1 is a unit <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_5" doxytag="PolynomialMod2::MultiplicativeInverse" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_5">MultiplicativeInverse</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return inverse if *this is a unit, otherwise return 0 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_6" doxytag="PolynomialMod2::InverseMod" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_6">InverseMod</a> (const <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> &amp;) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">calculate multiplicative inverse of *this mod n <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_7" doxytag="PolynomialMod2::Gcd" ></a>
<a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_7">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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">greatest common divisor <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_mod2z31_8" doxytag="PolynomialMod2::Divide" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_mod2.html#_polynomial_mod2z31_8">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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">calculate r and q such that (a == d*q + r) &amp;&amp; (deg(r) &lt; deg(d)) <br><br></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="_polynomial_mod2z33_0" doxytag="PolynomialMod2::operator<<" ></a>
std::ostream &amp;&nbsp;</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>

</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="_polynomial_mod2z19_2" doxytag="PolynomialMod2::PolynomialMod2" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> PolynomialMod2::PolynomialMod2           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">word&nbsp;</td>
          <td class="mdname" nowrap> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>bitLength</em> = <code>WORD_BITS</code></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
convert from word 
<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>
Definition at line <a class="el" href="gf2n_8cpp-source.html#l00022">22</a> of file <a class="el" href="gf2n_8cpp-source.html">gf2n.cpp</a>.
<p>
References <a class="el" href="secblock_8h-source.html#l00274">SecBlock&lt; T, A &gt;::size()</a>.    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="_polynomial_mod2z21_0" doxytag="PolynomialMod2::MinEncodedSize" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> unsigned int PolynomialMod2::MinEncodedSize           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
minimum number of bytes to encode this polynomial 
<p>
MinEncodedSize of 0 is 1 
<p>
Definition at line <a class="el" href="gf2n_8h-source.html#l00077">77</a> of file <a class="el" href="gf2n_8h-source.html">gf2n.h</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_polynomial_mod2z21_1" doxytag="PolynomialMod2::Encode" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> unsigned int PolynomialMod2::Encode           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>output</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>outputLen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const</td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
encode in big-endian format 
<p>
if outputLen &lt; MinEncodedSize, the most significant bytes will be dropped if outputLen &gt; MinEncodedSize, the most significant bytes will be padded
<p>
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>
References <a class="el" href="gf2n_8cpp-source.html#l00139">Encode()</a>.
<p>
Referenced by <a class="el" href="gf2n_8cpp-source.html#l00164">DEREncodeAsOctetString()</a>, and <a class="el" href="gf2n_8cpp-source.html#l00139">Encode()</a>.    </td>
  </tr>
</table>
<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><a class="el" href="gf2n_8cpp-source.html">gf2n.cpp</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:24:07 2004 for Crypto++ by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address>
</body>
</html>