<!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++: TemplatePolynomialOver< 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>PolynomialOver< T > Class Template Reference</h1><code>#include <<a class="el" href="polynomi_8h-source.html">polynomi.h</a>></code> <p> <p>Inheritance diagram for PolynomialOver< T >: <p><center><img src="class_polynomial_over.png" usemap="#PolynomialOver< T >_map" border="0" alt=""></center> <map name="PolynomialOver< T >_map"> <area href="class_polynomial_over_fixed_ring.html" alt="PolynomialOverFixedRing< T, instance >" shape="rect" coords="0,56,245,80"> </map> <a href="class_polynomial_over-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class T><br> class PolynomialOver< T ></h3> represents single-variable polynomials over arbitrary rings <p> <p> <p> Definition at line <a class="el" href="polynomi_8h-source.html#l00017">17</a> of file <a class="el" href="polynomi_8h-source.html">polynomi.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_overz55_0" doxytag="PolynomialOver::Ring" ></a> typedef T </td><td class="memItemRight" valign=bottom><b>Ring</b></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz55_1" doxytag="PolynomialOver::CoefficientType" ></a> typedef T::Element </td><td class="memItemRight" valign=bottom><b>CoefficientType</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_overz57_0" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_0">PolynomialOver</a> ()</td></tr> <tr><td class="mdescLeft"> </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_overz57_1" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><b>PolynomialOver</b> (const Ring &ring, unsigned int count)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz57_2" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_2">PolynomialOver</a> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">copy constructor <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz57_3" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_3">PolynomialOver</a> (const CoefficientType &element)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">construct constant polynomial <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz57_4" doxytag="PolynomialOver::PolynomialOver" ></a> template<typename Iterator> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_4">PolynomialOver</a> (Iterator begin, Iterator end)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">construct polynomial with specified coefficients, starting from coefficient of x^0 <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz57_5" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_5">PolynomialOver</a> (const char *str, const Ring &ring)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">convert from string <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz57_6" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_6">PolynomialOver</a> (const byte *encodedPolynomialOver, unsigned int byteCount)</td></tr> <tr><td class="mdescLeft"> </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_overz57_7" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_7">PolynomialOver</a> (const byte *BEREncodedPolynomialOver)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">convert from Basic Encoding Rules encoded byte array <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz57_8" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_8">PolynomialOver</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">convert from BER encoded byte array stored in a <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> object <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_overz57_9" doxytag="PolynomialOver::PolynomialOver" ></a> </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_overz57_9">PolynomialOver</a> (<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, const Ring &ring)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">create a random PolynomialOver<T> <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_over_fixed_ringz59_0" doxytag="PolynomialOver::Degree" ></a> int </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_over_fixed_ringz59_0">Degree</a> (const Ring &ring) const</td></tr> <tr><td class="mdescLeft"> </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_over_fixed_ringz59_1" doxytag="PolynomialOver::CoefficientCount" ></a> unsigned int </td><td class="memItemRight" valign=bottom><b>CoefficientCount</b> (const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz59_2" doxytag="PolynomialOver::GetCoefficient" ></a> CoefficientType </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_over_fixed_ringz59_2">GetCoefficient</a> (unsigned int i, const Ring &ring) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return coefficient for x^i <br><br></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_overz61_0" doxytag="PolynomialOver::operator=" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > & </td><td class="memItemRight" valign=bottom><b>operator=</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz61_0" doxytag="PolynomialOver::Randomize" ></a> void </td><td class="memItemRight" valign=bottom><b>Randomize</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, const Ring &ring)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz61_1" doxytag="PolynomialOver::SetCoefficient" ></a> void </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_over_fixed_ringz61_1">SetCoefficient</a> (unsigned int i, const CoefficientType &value, const Ring &ring)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">set the coefficient for x^i to value <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz61_2" doxytag="PolynomialOver::Negate" ></a> void </td><td class="memItemRight" valign=bottom><b>Negate</b> (const Ring &ring)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz61_3" doxytag="PolynomialOver::swap" ></a> void </td><td class="memItemRight" valign=bottom><b>swap</b> (<a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t)</td></tr> <tr><td colspan=2><br><h2>BASIC ARITHMETIC ON POLYNOMIALS</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_0" doxytag="PolynomialOver::Equals" ></a> bool </td><td class="memItemRight" valign=bottom><b>Equals</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_1" doxytag="PolynomialOver::IsZero" ></a> bool </td><td class="memItemRight" valign=bottom><b>IsZero</b> (const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_2" doxytag="PolynomialOver::Plus" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>Plus</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_3" doxytag="PolynomialOver::Minus" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>Minus</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_4" doxytag="PolynomialOver::Inverse" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>Inverse</b> (const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_5" doxytag="PolynomialOver::Times" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>Times</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_6" doxytag="PolynomialOver::DividedBy" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>DividedBy</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_7" doxytag="PolynomialOver::Modulo" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>Modulo</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_8" doxytag="PolynomialOver::MultiplicativeInverse" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>MultiplicativeInverse</b> (const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_9" doxytag="PolynomialOver::IsUnit" ></a> bool </td><td class="memItemRight" valign=bottom><b>IsUnit</b> (const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_10" doxytag="PolynomialOver::Accumulate" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > & </td><td class="memItemRight" valign=bottom><b>Accumulate</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_11" doxytag="PolynomialOver::Reduce" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > & </td><td class="memItemRight" valign=bottom><b>Reduce</b> (const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &t, const Ring &ring)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_12" doxytag="PolynomialOver::Doubled" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>Doubled</b> (const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_13" doxytag="PolynomialOver::Squared" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > </td><td class="memItemRight" valign=bottom><b>Squared</b> (const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_14" doxytag="PolynomialOver::EvaluateAt" ></a> CoefficientType </td><td class="memItemRight" valign=bottom><b>EvaluateAt</b> (const CoefficientType &x, const Ring &ring) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_15" doxytag="PolynomialOver::ShiftLeft" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > & </td><td class="memItemRight" valign=bottom><b>ShiftLeft</b> (unsigned int n, const Ring &ring)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_16" doxytag="PolynomialOver::ShiftRight" ></a> <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > & </td><td class="memItemRight" valign=bottom><b>ShiftRight</b> (unsigned int n, const Ring &ring)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz63_17" doxytag="PolynomialOver::Divide" ></a> void </td><td class="memItemRight" valign=bottom><a class="el" href="class_polynomial_over.html#_polynomial_over_fixed_ringz63_17">Divide</a> (<a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &r, <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &q, const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &a, const <a class="el" href="class_polynomial_over.html">PolynomialOver</a>< Ring > &d, const Ring &ring)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">calculate r and q such that (a == d*q + r) && (0 <= degree of r < degree of 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_over_fixed_ringz65_0" doxytag="PolynomialOver::Input" ></a> std::istream & </td><td class="memItemRight" valign=bottom><b>Input</b> (std::istream &in, const Ring &ring)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_polynomial_over_fixed_ringz65_1" doxytag="PolynomialOver::Output" ></a> std::ostream & </td><td class="memItemRight" valign=bottom><b>Output</b> (std::ostream &out, const Ring &ring) const</td></tr> </table> <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><a class="el" href="polynomi_8cpp-source.html">polynomi.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>