<!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++: TemplateAbstractEuclideanDomain< T > 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>AbstractEuclideanDomain< T > Class Template Reference</h1><code>#include <<a class="el" href="algebra_8h-source.html">algebra.h</a>></code> <p> <p>Inheritance diagram for AbstractEuclideanDomain< T >: <p><center><img src="class_abstract_euclidean_domain.png" usemap="#AbstractEuclideanDomain< T >_map" border="0" alt=""></center> <map name="AbstractEuclideanDomain< T >_map"> <area href="class_abstract_ring.html" alt="AbstractRing< T >" shape="rect" coords="0,56,188,80"> <area href="class_abstract_group.html" alt="AbstractGroup< T >" shape="rect" coords="0,0,188,24"> <area href="class_euclidean_domain_of.html" alt="EuclideanDomainOf< T >" shape="rect" coords="0,168,188,192"> </map> <a href="class_abstract_euclidean_domain-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class T><br> class AbstractEuclideanDomain< T ></h3> Abstract Euclidean Domain. <p> <p> Definition at line <a class="el" href="algebra_8h-source.html#l00138">138</a> of file <a class="el" href="algebra_8h-source.html">algebra.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="_abstract_euclidean_domainw0" doxytag="AbstractEuclideanDomain::Element" ></a> typedef T </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="_abstract_euclidean_domaina0" doxytag="AbstractEuclideanDomain::DivisionAlgorithm" ></a> virtual void </td><td class="memItemRight" valign=bottom><b>DivisionAlgorithm</b> (Element &r, Element &q, const Element &a, const Element &d) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_euclidean_domaina1" doxytag="AbstractEuclideanDomain::Mod" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>Mod</b> (const Element &a, const Element &b) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa18" doxytag="AbstractEuclideanDomain::Gcd" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>Gcd</b> (const Element &a, const Element &b) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa3" doxytag="AbstractEuclideanDomain::IsUnit" ></a> virtual bool </td><td class="memItemRight" valign=bottom><b>IsUnit</b> (const Element &a) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa4" doxytag="AbstractEuclideanDomain::MultiplicativeIdentity" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>MultiplicativeIdentity</b> () const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa5" doxytag="AbstractEuclideanDomain::Multiply" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>Multiply</b> (const Element &a, const Element &b) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa6" doxytag="AbstractEuclideanDomain::MultiplicativeInverse" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>MultiplicativeInverse</b> (const Element &a) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa7" doxytag="AbstractEuclideanDomain::Square" ></a> virtual 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="_abstract_ringa8" doxytag="AbstractEuclideanDomain::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="AbstractEuclideanDomain::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="AbstractEuclideanDomain::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="AbstractEuclideanDomain::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="AbstractEuclideanDomain::MultiplicativeGroup" ></a> virtual const <a class="el" href="class_abstract_group.html">AbstractGroup</a><<br> T > & </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="_abstract_ringa13" doxytag="AbstractEuclideanDomain::Equal" ></a> virtual bool </td><td class="memItemRight" valign=bottom><b>Equal</b> (const Element &a, const Element &b) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa14" doxytag="AbstractEuclideanDomain::Identity" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>Identity</b> () const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa15" doxytag="AbstractEuclideanDomain::Add" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>Add</b> (const Element &a, const Element &b) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_abstract_ringa16" doxytag="AbstractEuclideanDomain::Inverse" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>Inverse</b> (const Element &a) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_euclidean_domain_ofa23" doxytag="AbstractEuclideanDomain::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="_abstract_ringa18" doxytag="AbstractEuclideanDomain::Double" ></a> virtual 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="_abstract_ringa19" doxytag="AbstractEuclideanDomain::Subtract" ></a> virtual 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="_abstract_ringa20" doxytag="AbstractEuclideanDomain::Accumulate" ></a> virtual 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="_abstract_ringa21" doxytag="AbstractEuclideanDomain::Reduce" ></a> virtual 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="_euclidean_domain_ofa24" doxytag="AbstractEuclideanDomain::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="AbstractEuclideanDomain::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="AbstractEuclideanDomain::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="_abstract_euclidean_domainp0" doxytag="AbstractEuclideanDomain::result" ></a> Element </td><td class="memItemRight" valign=bottom><b>result</b></td></tr> </table> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="algebra_8h-source.html">algebra.h</a><li><a class="el" href="algebra_8cpp-source.html">algebra.cpp</a></ul> <hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:24:00 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>