<!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"/> <title>Crypto++: AbstractRing< T > Class Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Crypto++</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <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="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</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> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <h1>AbstractRing< T > Class Template Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="AbstractRing" --><!-- doxytag: inherits="AbstractGroup" --> <p>Abstract Ring. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="algebra_8h_source.html">algebra.h</a>></code></p> <div class="dynheader"> Inheritance diagram for AbstractRing< T >:</div> <div class="dyncontent"> <div class="center"> <img src="class_abstract_ring.png" usemap="#AbstractRing< T >_map" alt=""/> <map id="AbstractRing< T >_map" name="AbstractRing< T >_map"> <area href="class_abstract_group.html" alt="AbstractGroup< T >" shape="rect" coords="0,0,188,24"/> <area href="class_abstract_euclidean_domain.html" alt="AbstractEuclideanDomain< T >" shape="rect" coords="0,112,188,136"/> <area href="class_euclidean_domain_of.html" alt="EuclideanDomainOf< T >" shape="rect" coords="0,168,188,192"/> </map> </div></div> <p><a href="class_abstract_ring-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><b>MultiplicativeGroupT</b></td></tr> <tr><td colspan="2"><h2><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd93e8ce4e2897173310c68fcb60f3e9"></a><!-- doxytag: member="AbstractRing::Element" ref="acd93e8ce4e2897173310c68fcb60f3e9" args="" --> typedef T </td><td class="memItemRight" valign="bottom"><b>Element</b></td></tr> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc8afd5ce95e32e45d3c30a710bf36dc"></a><!-- doxytag: member="AbstractRing::AbstractRing" ref="acc8afd5ce95e32e45d3c30a710bf36dc" args="(const AbstractRing &source)" -->  </td><td class="memItemRight" valign="bottom"><b>AbstractRing</b> (const <a class="el" href="class_abstract_ring.html">AbstractRing</a> &source)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a26709c02c869d09d756653ae1129f8a9"></a><!-- doxytag: member="AbstractRing::operator=" ref="a26709c02c869d09d756653ae1129f8a9" args="(const AbstractRing &source)" --> <a class="el" href="class_abstract_ring.html">AbstractRing</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_abstract_ring.html">AbstractRing</a> &source)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc7079c244d980c670c329e483c4f107"></a><!-- doxytag: member="AbstractRing::IsUnit" ref="acc7079c244d980c670c329e483c4f107" args="(const Element &a) const =0" --> virtual bool </td><td class="memItemRight" valign="bottom"><b>IsUnit</b> (const Element &a) const =0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a390832165268e39e2a1f3263e5b44627"></a><!-- doxytag: member="AbstractRing::MultiplicativeIdentity" ref="a390832165268e39e2a1f3263e5b44627" args="() const =0" --> virtual const Element & </td><td class="memItemRight" valign="bottom"><b>MultiplicativeIdentity</b> () const =0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ba8818fc72fa298cd52fd483bdd6ad4"></a><!-- doxytag: member="AbstractRing::Multiply" ref="a4ba8818fc72fa298cd52fd483bdd6ad4" args="(const Element &a, const Element &b) const =0" --> 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" align="right" valign="top"><a class="anchor" id="aba109f4e7932d77a8251c1ec20627571"></a><!-- doxytag: member="AbstractRing::MultiplicativeInverse" ref="aba109f4e7932d77a8251c1ec20627571" args="(const Element &a) const =0" --> virtual const Element & </td><td class="memItemRight" valign="bottom"><b>MultiplicativeInverse</b> (const Element &a) const =0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adce7ac629f07850d5c45b473bed72ab0"></a><!-- doxytag: member="AbstractRing::Square" ref="adce7ac629f07850d5c45b473bed72ab0" args="(const Element &a) const " --> virtual const Element & </td><td class="memItemRight" valign="bottom"><b>Square</b> (const Element &a) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3240b133d9df74c34868c11901b304fe"></a><!-- doxytag: member="AbstractRing::Divide" ref="a3240b133d9df74c34868c11901b304fe" args="(const Element &a, const Element &b) const " --> 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" align="right" valign="top"><a class="anchor" id="a23be7c80484bc46fd8beaa0a6aefa66d"></a><!-- doxytag: member="AbstractRing::Exponentiate" ref="a23be7c80484bc46fd8beaa0a6aefa66d" args="(const Element &a, const Integer &e) const " --> 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" align="right" valign="top"><a class="anchor" id="acbe859e24ea6ee1e22ed2a1261f7f9d0"></a><!-- doxytag: member="AbstractRing::CascadeExponentiate" ref="acbe859e24ea6ee1e22ed2a1261f7f9d0" args="(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const " --> 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" align="right" valign="top"><a class="anchor" id="a56b1047d5e1c57d9b3c52e20af464cfe"></a><!-- doxytag: member="AbstractRing::SimultaneousExponentiate" ref="a56b1047d5e1c57d9b3c52e20af464cfe" args="(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const " --> 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" align="right" valign="top"><a class="anchor" id="ab48b7bf4c39d1b2bd06ac92e71e0b905"></a><!-- doxytag: member="AbstractRing::MultiplicativeGroup" ref="ab48b7bf4c39d1b2bd06ac92e71e0b905" args="() const " --> virtual const <a class="el" href="class_abstract_group.html">AbstractGroup</a>< T > & </td><td class="memItemRight" valign="bottom"><b>MultiplicativeGroup</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d72cb663566b7c056f846a561547bec"></a><!-- doxytag: member="AbstractRing::Equal" ref="a0d72cb663566b7c056f846a561547bec" args="(const Element &a, const Element &b) const =0" --> 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" align="right" valign="top"><a class="anchor" id="a929ba4e6a7d7d80344946efad0456d5b"></a><!-- doxytag: member="AbstractRing::Identity" ref="a929ba4e6a7d7d80344946efad0456d5b" args="() const =0" --> virtual const Element & </td><td class="memItemRight" valign="bottom"><b>Identity</b> () const =0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa813430d9e4244de24c487d090eb5797"></a><!-- doxytag: member="AbstractRing::Add" ref="aa813430d9e4244de24c487d090eb5797" args="(const Element &a, const Element &b) const =0" --> 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" align="right" valign="top"><a class="anchor" id="ab22563bc0dcb544399d7e22b3589e165"></a><!-- doxytag: member="AbstractRing::Inverse" ref="ab22563bc0dcb544399d7e22b3589e165" args="(const Element &a) const =0" --> virtual const Element & </td><td class="memItemRight" valign="bottom"><b>Inverse</b> (const Element &a) const =0</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac571ac9b67ad9b7ef893c715b1ec2f43"></a><!-- doxytag: member="AbstractRing::InversionIsFast" ref="ac571ac9b67ad9b7ef893c715b1ec2f43" args="() const " --> virtual bool </td><td class="memItemRight" valign="bottom"><b>InversionIsFast</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae54ef772d5f231729e188cbe3b9173f6"></a><!-- doxytag: member="AbstractRing::Double" ref="ae54ef772d5f231729e188cbe3b9173f6" args="(const Element &a) const " --> virtual const Element & </td><td class="memItemRight" valign="bottom"><b>Double</b> (const Element &a) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec47e8ec5a24a491315cdc26924e45ff"></a><!-- doxytag: member="AbstractRing::Subtract" ref="aec47e8ec5a24a491315cdc26924e45ff" args="(const Element &a, const Element &b) const " --> 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" align="right" valign="top"><a class="anchor" id="a45aa7c2240cb2f87184c7ad90df298ec"></a><!-- doxytag: member="AbstractRing::Accumulate" ref="a45aa7c2240cb2f87184c7ad90df298ec" args="(Element &a, const Element &b) const " --> virtual Element & </td><td class="memItemRight" valign="bottom"><b>Accumulate</b> (Element &a, const Element &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2cc747d7e6b910e137942bd5c01e5b87"></a><!-- doxytag: member="AbstractRing::Reduce" ref="a2cc747d7e6b910e137942bd5c01e5b87" args="(Element &a, const Element &b) const " --> virtual Element & </td><td class="memItemRight" valign="bottom"><b>Reduce</b> (Element &a, const Element &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf1b8d510593fd5a9e8111580107741b"></a><!-- doxytag: member="AbstractRing::ScalarMultiply" ref="abf1b8d510593fd5a9e8111580107741b" args="(const Element &a, const Integer &e) const " --> 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" align="right" valign="top"><a class="anchor" id="aca3e1ca578003aff2595cc8d73522894"></a><!-- doxytag: member="AbstractRing::CascadeScalarMultiply" ref="aca3e1ca578003aff2595cc8d73522894" args="(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const " --> 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" align="right" valign="top"><a class="anchor" id="a00a5cd4b22aab947ec107ec93ad13122"></a><!-- doxytag: member="AbstractRing::SimultaneousMultiply" ref="a00a5cd4b22aab947ec107ec93ad13122" args="(Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const " --> 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> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <div class="textblock"><h3>template<class T><br/> class AbstractRing< T ></h3> <p>Abstract Ring. </p> <p>Definition at line <a class="el" href="algebra_8h_source.html#l00044">44</a> of file <a class="el" href="algebra_8h_source.html">algebra.h</a>.</p> </div><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> <li><a class="el" href="algebra_8cpp_source.html">algebra.cpp</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Feb 8 2011 for Crypto++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address> </body> </html>