<!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++: RingOfPolynomialsOver< 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.6.1 --> <div class="navigation" id="top"> <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="annotated.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="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="contents"> <h1>RingOfPolynomialsOver< T > Class Template Reference</h1><!-- doxytag: class="RingOfPolynomialsOver" --><!-- doxytag: inherits="AbstractEuclideanDomain< PolynomialOver< T > >" --> <p>Ring of polynomials over another ring. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="polynomi_8h_source.html">polynomi.h</a>></code></p> <div class="dynheader"> Inheritance diagram for RingOfPolynomialsOver< T >:</div> <div class="dynsection"> <div class="center"> <img src="class_ring_of_polynomials_over.gif" usemap="#RingOfPolynomialsOver< T >_map" alt=""/> <map id="RingOfPolynomialsOver< T >_map" name="RingOfPolynomialsOver< T >_map"> <area href="class_abstract_euclidean_domain.html" alt="AbstractEuclideanDomain< PolynomialOver< T > >" shape="rect" coords="0,112,302,136"/> <area href="class_abstract_ring.html" alt="AbstractRing< PolynomialOver< T > >" shape="rect" coords="0,56,302,80"/> <area href="class_abstract_group.html" alt="AbstractGroup< PolynomialOver< T > >" shape="rect" coords="0,0,302,24"/> </map> </div> </div> <p><a href="class_ring_of_polynomials_over-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="class_ring_of_polynomials_over_1_1_interpolation_failed.html">InterpolationFailed</a></td></tr> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abba882003d9c053e597f38b09c21ea3d"></a><!-- doxytag: member="RingOfPolynomialsOver::CoefficientRing" ref="abba882003d9c053e597f38b09c21ea3d" args="" --> typedef T </td><td class="memItemRight" valign="bottom"><b>CoefficientRing</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a9d435f7f8d004e1da6d46f16717704"></a><!-- doxytag: member="RingOfPolynomialsOver::Element" ref="a5a9d435f7f8d004e1da6d46f16717704" args="" --> typedef <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< T > </td><td class="memItemRight" valign="bottom"><b>Element</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad481c398f3ffa1af06ffa30d71c68659"></a><!-- doxytag: member="RingOfPolynomialsOver::CoefficientType" ref="ad481c398f3ffa1af06ffa30d71c68659" args="" --> typedef Element::CoefficientType </td><td class="memItemRight" valign="bottom"><b>CoefficientType</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec9d3bc0294c0289fa654eca1d44b157"></a><!-- doxytag: member="RingOfPolynomialsOver::RandomizationParameter" ref="aec9d3bc0294c0289fa654eca1d44b157" args="" --> typedef <br class="typebreak"/> <a class="el" href="class_polynomial_over_1_1_randomization_parameter.html">Element::RandomizationParameter</a> </td><td class="memItemRight" valign="bottom"><b>RandomizationParameter</b></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8698eb9f89d728c0986eea4d4810728"></a><!-- doxytag: member="RingOfPolynomialsOver::RingOfPolynomialsOver" ref="ab8698eb9f89d728c0986eea4d4810728" args="(const CoefficientRing &ring)" --> </td><td class="memItemRight" valign="bottom"><b>RingOfPolynomialsOver</b> (const CoefficientRing &ring)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae91186ec32cf80f2ae1b180e21563edf"></a><!-- doxytag: member="RingOfPolynomialsOver::RandomElement" ref="ae91186ec32cf80f2ae1b180e21563edf" args="(RandomNumberGenerator &rng, const RandomizationParameter &parameter)" --> <a class="el" href="class_polynomial_over.html">Element</a> </td><td class="memItemRight" valign="bottom"><b>RandomElement</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, const <a class="el" href="class_polynomial_over_1_1_randomization_parameter.html">RandomizationParameter</a> &parameter)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa58d0b61a4bf6fd24a64758c05fb94c6"></a><!-- doxytag: member="RingOfPolynomialsOver::Equal" ref="aa58d0b61a4bf6fd24a64758c05fb94c6" args="(const Element &a, const Element &b) const " --> bool </td><td class="memItemRight" valign="bottom"><b>Equal</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a31ed3404c66b4c0347fb943db3c328"></a><!-- doxytag: member="RingOfPolynomialsOver::Identity" ref="a3a31ed3404c66b4c0347fb943db3c328" args="() const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Identity</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9436f12848b90d2d574f91e5402ebd8f"></a><!-- doxytag: member="RingOfPolynomialsOver::Add" ref="a9436f12848b90d2d574f91e5402ebd8f" args="(const Element &a, const Element &b) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Add</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1148b4b76f0503e848651945208ebfb"></a><!-- doxytag: member="RingOfPolynomialsOver::Accumulate" ref="af1148b4b76f0503e848651945208ebfb" args="(Element &a, const Element &b) const " --> <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Accumulate</b> (<a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b98576e97a5dbf0404957e0c083021e"></a><!-- doxytag: member="RingOfPolynomialsOver::Inverse" ref="a4b98576e97a5dbf0404957e0c083021e" args="(const Element &a) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Inverse</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1dd5a16d33a36067b31d03bb28d250ff"></a><!-- doxytag: member="RingOfPolynomialsOver::Subtract" ref="a1dd5a16d33a36067b31d03bb28d250ff" args="(const Element &a, const Element &b) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Subtract</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44dfb84f8f5de3fcfb821cd1f919ddff"></a><!-- doxytag: member="RingOfPolynomialsOver::Reduce" ref="a44dfb84f8f5de3fcfb821cd1f919ddff" args="(Element &a, const Element &b) const " --> <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Reduce</b> (<a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade86f9cd3a1dcb9dc7fd5d86fe923256"></a><!-- doxytag: member="RingOfPolynomialsOver::Double" ref="ade86f9cd3a1dcb9dc7fd5d86fe923256" args="(const Element &a) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Double</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1da0e9ad41a0ee38dc11a444a2e2a318"></a><!-- doxytag: member="RingOfPolynomialsOver::MultiplicativeIdentity" ref="a1da0e9ad41a0ee38dc11a444a2e2a318" args="() const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>MultiplicativeIdentity</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a418ae866983ad978e9b3d9d099652ea8"></a><!-- doxytag: member="RingOfPolynomialsOver::Multiply" ref="a418ae866983ad978e9b3d9d099652ea8" args="(const Element &a, const Element &b) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Multiply</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7a8517cfb593d4b1bdffe3c1c2e2ab9"></a><!-- doxytag: member="RingOfPolynomialsOver::Square" ref="ae7a8517cfb593d4b1bdffe3c1c2e2ab9" args="(const Element &a) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Square</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bb85350da70c11bec5c0c4b2d51b960"></a><!-- doxytag: member="RingOfPolynomialsOver::IsUnit" ref="a0bb85350da70c11bec5c0c4b2d51b960" args="(const Element &a) const " --> bool </td><td class="memItemRight" valign="bottom"><b>IsUnit</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e72c2b40df4572b2438a2622423806f"></a><!-- doxytag: member="RingOfPolynomialsOver::MultiplicativeInverse" ref="a0e72c2b40df4572b2438a2622423806f" args="(const Element &a) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>MultiplicativeInverse</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff1570236efe880d1b75cc58160fc7e8"></a><!-- doxytag: member="RingOfPolynomialsOver::Divide" ref="aff1570236efe880d1b75cc58160fc7e8" args="(const Element &a, const Element &b) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Divide</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64b79df33528e81b4b95af379d150c73"></a><!-- doxytag: member="RingOfPolynomialsOver::Mod" ref="a64b79df33528e81b4b95af379d150c73" args="(const Element &a, const Element &b) const " --> const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Mod</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3005687481f23b8377941b98fd560fe"></a><!-- doxytag: member="RingOfPolynomialsOver::DivisionAlgorithm" ref="aa3005687481f23b8377941b98fd560fe" args="(Element &r, Element &q, const Element &a, const Element &d) const " --> void </td><td class="memItemRight" valign="bottom"><b>DivisionAlgorithm</b> (<a class="el" href="class_polynomial_over.html">Element</a> &r, <a class="el" href="class_polynomial_over.html">Element</a> &q, const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &d) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f36bbd09c0b766a2dd794b63028adf6"></a><!-- doxytag: member="RingOfPolynomialsOver::Interpolate" ref="a5f36bbd09c0b766a2dd794b63028adf6" args="(const CoefficientType x[], const CoefficientType y[], unsigned int n) const " --> <a class="el" href="class_polynomial_over.html">Element</a> </td><td class="memItemRight" valign="bottom"><b>Interpolate</b> (const CoefficientType x[], const CoefficientType y[], unsigned int n) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f5e10426b55fffebbc5b1f9b6646b45"></a><!-- doxytag: member="RingOfPolynomialsOver::InterpolateAt" ref="a3f5e10426b55fffebbc5b1f9b6646b45" args="(const CoefficientType &position, const CoefficientType x[], const CoefficientType y[], unsigned int n) const " --> CoefficientType </td><td class="memItemRight" valign="bottom"><b>InterpolateAt</b> (const CoefficientType &position, const CoefficientType x[], const CoefficientType y[], unsigned int n) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91957689dad55107d1c8c256d6dbf8b2"></a><!-- doxytag: member="RingOfPolynomialsOver::Gcd" ref="a91957689dad55107d1c8c256d6dbf8b2" args="(const Element &a, const Element &b) const" --> virtual const <a class="el" href="class_polynomial_over.html">Element</a> & </td><td class="memItemRight" valign="bottom"><b>Gcd</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &a, const <a class="el" href="class_polynomial_over.html">Element</a> &b) const</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23be7c80484bc46fd8beaa0a6aefa66d"></a><!-- doxytag: member="RingOfPolynomialsOver::Exponentiate" ref="a23be7c80484bc46fd8beaa0a6aefa66d" args="(const Element &a, const Integer &e) const" --> virtual <a class="el" href="class_polynomial_over.html">Element</a> </td><td class="memItemRight" valign="bottom"><b>Exponentiate</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &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="RingOfPolynomialsOver::CascadeExponentiate" ref="acbe859e24ea6ee1e22ed2a1261f7f9d0" args="(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const" --> virtual <a class="el" href="class_polynomial_over.html">Element</a> </td><td class="memItemRight" valign="bottom"><b>CascadeExponentiate</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &x, const <a class="el" href="class_integer.html">Integer</a> &e1, const <a class="el" href="class_polynomial_over.html">Element</a> &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="RingOfPolynomialsOver::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> (<a class="el" href="class_polynomial_over.html">Element</a> *results, const <a class="el" href="class_polynomial_over.html">Element</a> &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="RingOfPolynomialsOver::MultiplicativeGroup" ref="ab48b7bf4c39d1b2bd06ac92e71e0b905" args="() const" --> virtual const <a class="el" href="class_abstract_group.html">AbstractGroup</a><br class="typebreak"/> < <a class="el" href="class_polynomial_over.html">PolynomialOver</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="ac571ac9b67ad9b7ef893c715b1ec2f43"></a><!-- doxytag: member="RingOfPolynomialsOver::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="abf1b8d510593fd5a9e8111580107741b"></a><!-- doxytag: member="RingOfPolynomialsOver::ScalarMultiply" ref="abf1b8d510593fd5a9e8111580107741b" args="(const Element &a, const Integer &e) const" --> virtual <a class="el" href="class_polynomial_over.html">Element</a> </td><td class="memItemRight" valign="bottom"><b>ScalarMultiply</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &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="RingOfPolynomialsOver::CascadeScalarMultiply" ref="aca3e1ca578003aff2595cc8d73522894" args="(const Element &x, const Integer &e1, const Element &y, const Integer &e2) const" --> virtual <a class="el" href="class_polynomial_over.html">Element</a> </td><td class="memItemRight" valign="bottom"><b>CascadeScalarMultiply</b> (const <a class="el" href="class_polynomial_over.html">Element</a> &x, const <a class="el" href="class_integer.html">Integer</a> &e1, const <a class="el" href="class_polynomial_over.html">Element</a> &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="RingOfPolynomialsOver::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> (<a class="el" href="class_polynomial_over.html">Element</a> *results, const <a class="el" href="class_polynomial_over.html">Element</a> &base, const <a class="el" href="class_integer.html">Integer</a> *exponents, unsigned int exponentsCount) const</td></tr> <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab80f9ffd1ebb119d125718f31d1ef170"></a><!-- doxytag: member="RingOfPolynomialsOver::CalculateAlpha" ref="ab80f9ffd1ebb119d125718f31d1ef170" args="(std::vector< CoefficientType > &alpha, const CoefficientType x[], const CoefficientType y[], unsigned int n) const " --> void </td><td class="memItemRight" valign="bottom"><b>CalculateAlpha</b> (std::vector< CoefficientType > &alpha, const CoefficientType x[], const CoefficientType y[], unsigned int n) const </td></tr> <tr><td colspan="2"><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18dc9d8b05fbd86b93845c8710c59d74"></a><!-- doxytag: member="RingOfPolynomialsOver::m_ring" ref="a18dc9d8b05fbd86b93845c8710c59d74" args="" --> CoefficientRing </td><td class="memItemRight" valign="bottom"><b>m_ring</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1314f064e73c560b3d31982c4e26404"></a><!-- doxytag: member="RingOfPolynomialsOver::result" ref="af1314f064e73c560b3d31982c4e26404" args="" --> <a class="el" href="class_polynomial_over.html">Element</a> </td><td class="memItemRight" valign="bottom"><b>result</b></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class T><br/> class RingOfPolynomialsOver< T ></h3> <p>Ring of polynomials over another ring. </p> <p>Definition at line <a class="el" href="polynomi_8h_source.html#l00310">310</a> of file <a class="el" href="polynomi_8h_source.html">polynomi.h</a>.</p> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="polynomi_8h_source.html">polynomi.h</a></li> <li><a class="el" href="polynomi_8cpp_source.html">polynomi.cpp</a></li> </ul> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on 9 Dec 2009 for Crypto++ by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>