<!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++: GF2NT 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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div> <h1>GF2NT Class Reference</h1><code>#include <<a class="el" href="gf2n_8h-source.html">gf2n.h</a>></code> <p> <p>Inheritance diagram for GF2NT: <p><center><img src="class_g_f2_n_t.png" usemap="#GF2NT_map" border="0" alt=""></center> <map name="GF2NT_map"> <area href="class_g_f2_n_p.html" alt="GF2NP" shape="rect" coords="0,168,397,192"> <area href="class_quotient_ring.html" alt="QuotientRing< EuclideanDomainOf< PolynomialMod2 > >" shape="rect" coords="0,112,397,136"> <area href="class_abstract_ring.html" alt="AbstractRing< EuclideanDomainOf< PolynomialMod2 >::Element >" shape="rect" coords="0,56,397,80"> <area href="class_abstract_group.html" alt="AbstractGroup< EuclideanDomainOf< PolynomialMod2 >::Element >" shape="rect" coords="0,0,397,24"> </map> <a href="class_g_f2_n_t-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2> GF(2^n) with Trinomial Basis. <p> <p> Definition at line <a class="el" href="gf2n_8h-source.html#l00317">317</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>Public Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringw0" doxytag="GF2NT::EuclideanDomain" ></a> typedef <a class="el" href="class_euclidean_domain_of.html">EuclideanDomainOf</a><<br> <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> > </td><td class="memItemRight" valign=bottom><b>EuclideanDomain</b></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringw1" doxytag="GF2NT::Element" ></a> typedef <a class="el" href="class_euclidean_domain_of.html">EuclideanDomainOf</a><<br> <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> >::Element </td><td class="memItemRight" valign=bottom><b>Element</b></td></tr> <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta0" doxytag="GF2NT::GF2NT" ></a> </td><td class="memItemRight" valign=bottom><b>GF2NT</b> (unsigned int t0, unsigned int t1, unsigned int t2)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta1" doxytag="GF2NT::Clone" ></a> <a class="el" href="class_g_f2_n_p.html">GF2NP</a> * </td><td class="memItemRight" valign=bottom><b>Clone</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta2" doxytag="GF2NT::DEREncode" ></a> void </td><td class="memItemRight" valign=bottom><b>DEREncode</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta3" doxytag="GF2NT::Multiply" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>Multiply</b> (const Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta4" doxytag="GF2NT::Square" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>Square</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta5" doxytag="GF2NT::MultiplicativeInverse" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>MultiplicativeInverse</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta6" doxytag="GF2NT::DEREncodeElement" ></a> void </td><td class="memItemRight" valign=bottom><b>DEREncodeElement</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &out, const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta7" doxytag="GF2NT::BERDecodeElement" ></a> void </td><td class="memItemRight" valign=bottom><b>BERDecodeElement</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &in, Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta8" doxytag="GF2NT::Equal" ></a> bool </td><td class="memItemRight" valign=bottom><b>Equal</b> (const Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta9" doxytag="GF2NT::IsUnit" ></a> bool </td><td class="memItemRight" valign=bottom><b>IsUnit</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta10" doxytag="GF2NT::MaxElementBitLength" ></a> unsigned int </td><td class="memItemRight" valign=bottom><b>MaxElementBitLength</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta11" doxytag="GF2NT::MaxElementByteLength" ></a> unsigned int </td><td class="memItemRight" valign=bottom><b>MaxElementByteLength</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta12" doxytag="GF2NT::SquareRoot" ></a> Element </td><td class="memItemRight" valign=bottom><b>SquareRoot</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta13" doxytag="GF2NT::HalfTrace" ></a> Element </td><td class="memItemRight" valign=bottom><b>HalfTrace</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_ta14" doxytag="GF2NT::SolveQuadraticEquation" ></a> Element </td><td class="memItemRight" valign=bottom><b>SolveQuadraticEquation</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa1" doxytag="GF2NT::GetDomain" ></a> const EuclideanDomain & </td><td class="memItemRight" valign=bottom><b>GetDomain</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa2" doxytag="GF2NT::GetModulus" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>GetModulus</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa4" doxytag="GF2NT::Identity" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>Identity</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa5" doxytag="GF2NT::Add" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>Add</b> (const Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa6" doxytag="GF2NT::Accumulate" ></a> Element & </td><td class="memItemRight" valign=bottom><b>Accumulate</b> (Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa7" doxytag="GF2NT::Inverse" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>Inverse</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa8" doxytag="GF2NT::Subtract" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>Subtract</b> (const Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa9" doxytag="GF2NT::Reduce" ></a> Element & </td><td class="memItemRight" valign=bottom><b>Reduce</b> (Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa10" doxytag="GF2NT::Double" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>Double</b> (const Element &a) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa12" doxytag="GF2NT::MultiplicativeIdentity" ></a> const Element & </td><td class="memItemRight" valign=bottom><b>MultiplicativeIdentity</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringa16" doxytag="GF2NT::operator==" ></a> bool </td><td class="memItemRight" valign=bottom><b>operator==</b> (const <a class="el" href="class_quotient_ring.html">QuotientRing</a>< <a class="el" href="class_euclidean_domain_of.html">EuclideanDomainOf</a>< <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> > > &rhs) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa8" doxytag="GF2NT::Divide" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>Divide</b> (const Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa19" doxytag="GF2NT::Exponentiate" ></a> virtual Element </td><td class="memItemRight" valign=bottom><b>Exponentiate</b> (const Element &a, const <a class="el" href="class_integer.html">Integer</a> &e) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa20" doxytag="GF2NT::CascadeExponentiate" ></a> virtual Element </td><td class="memItemRight" valign=bottom><b>CascadeExponentiate</b> (const Element &x, const <a class="el" href="class_integer.html">Integer</a> &e1, const Element &y, const <a class="el" href="class_integer.html">Integer</a> &e2) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa21" doxytag="GF2NT::SimultaneousExponentiate" ></a> virtual void </td><td class="memItemRight" valign=bottom><b>SimultaneousExponentiate</b> (Element *results, const Element &base, const <a class="el" href="class_integer.html">Integer</a> *exponents, unsigned int exponentsCount) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa22" doxytag="GF2NT::MultiplicativeGroup" ></a> virtual const <a class="el" href="class_abstract_group.html">AbstractGroup</a><<br> <a class="el" href="class_euclidean_domain_of.html">EuclideanDomainOf</a>< <a class="el" href="class_polynomial_mod2.html">PolynomialMod2</a> <br> >::Element > & </td><td class="memItemRight" valign=bottom><b>MultiplicativeGroup</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa23" doxytag="GF2NT::InversionIsFast" ></a> virtual bool </td><td class="memItemRight" valign=bottom><b>InversionIsFast</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa24" doxytag="GF2NT::ScalarMultiply" ></a> virtual Element </td><td class="memItemRight" valign=bottom><b>ScalarMultiply</b> (const Element &a, const <a class="el" href="class_integer.html">Integer</a> &e) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa25" doxytag="GF2NT::CascadeScalarMultiply" ></a> virtual Element </td><td class="memItemRight" valign=bottom><b>CascadeScalarMultiply</b> (const Element &x, const <a class="el" href="class_integer.html">Integer</a> &e1, const Element &y, const <a class="el" href="class_integer.html">Integer</a> &e2) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa26" doxytag="GF2NT::SimultaneousMultiply" ></a> virtual void </td><td class="memItemRight" valign=bottom><b>SimultaneousMultiply</b> (Element *results, const Element &base, const <a class="el" href="class_integer.html">Integer</a> *exponents, unsigned int exponentsCount) const</td></tr> <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_g_f2_n_tp0" doxytag="GF2NT::m" ></a> unsigned int </td><td class="memItemRight" valign=bottom><b>m</b></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringp0" doxytag="GF2NT::m_domain" ></a> EuclideanDomain </td><td class="memItemRight" valign=bottom><b>m_domain</b></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_quotient_ringp1" doxytag="GF2NT::m_modulus" ></a> Element </td><td class="memItemRight" valign=bottom><b>m_modulus</b></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:04 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>