PolynomialOverFixedRing< T, instance > Class Template Reference

#include <polynomi.h>

Inheritance diagram for PolynomialOverFixedRing< T, instance >:

PolynomialOver< T > List of all members.

Detailed Description

template<class T, int instance>
class PolynomialOverFixedRing< T, instance >

Polynomials over a fixed ring.

Having a fixed ring allows overloaded operators

Definition at line 159 of file polynomi.h.

CREATORS

 PolynomialOverFixedRing (unsigned int count=0)
 creates the zero polynomial
 PolynomialOverFixedRing (const ThisType &t)
 copy constructor
 PolynomialOverFixedRing (const B &t)
 PolynomialOverFixedRing (const CoefficientType &element)
 construct constant polynomial
template<typename Iterator>
 PolynomialOverFixedRing (Iterator first, Iterator last)
 construct polynomial with specified coefficients, starting from coefficient of x^0
 PolynomialOverFixedRing (const char *str)
 convert from string
 PolynomialOverFixedRing (const byte *encodedPoly, unsigned int byteCount)
 convert from big-endian byte array
 PolynomialOverFixedRing (const byte *BEREncodedPoly)
 convert from Basic Encoding Rules encoded byte array
 PolynomialOverFixedRing (BufferedTransformation &bt)
 convert from BER encoded byte array stored in a BufferedTransformation object
 PolynomialOverFixedRing (RandomNumberGenerator &rng, const RandomizationParameter &parameter)
 create a random PolynomialOverFixedRing
static const ThisTypeZero ()
static const ThisTypeOne ()

OTHER ARITHMETIC FUNCTIONS

ThisType MultiplicativeInverse () const
bool IsUnit () const
ThisType Doubled () const
ThisType Squared () const
CoefficientType EvaluateAt (const CoefficientType &x) const
static void Divide (ThisType &r, ThisType &q, const ThisType &a, const ThisType &d)
 calculate r and q such that (a == d*q + r) && (0 <= r < abs(d))

BASIC ARITHMETIC ON POLYNOMIALS

bool Equals (const PolynomialOver< Ring > &t, const Ring &ring) const
bool IsZero (const Ring &ring) const
PolynomialOver< RingPlus (const PolynomialOver< Ring > &t, const Ring &ring) const
PolynomialOver< RingMinus (const PolynomialOver< Ring > &t, const Ring &ring) const
PolynomialOver< RingInverse (const Ring &ring) const
PolynomialOver< RingTimes (const PolynomialOver< Ring > &t, const Ring &ring) const
PolynomialOver< RingDividedBy (const PolynomialOver< Ring > &t, const Ring &ring) const
PolynomialOver< RingModulo (const PolynomialOver< Ring > &t, const Ring &ring) const
PolynomialOver< RingMultiplicativeInverse (const Ring &ring) const
bool IsUnit (const Ring &ring) const
PolynomialOver< Ring > & Accumulate (const PolynomialOver< Ring > &t, const Ring &ring)
PolynomialOver< Ring > & Reduce (const PolynomialOver< Ring > &t, const Ring &ring)
PolynomialOver< RingDoubled (const Ring &ring) const
PolynomialOver< RingSquared (const Ring &ring) const
CoefficientType EvaluateAt (const CoefficientType &x, const Ring &ring) const
PolynomialOver< Ring > & ShiftLeft (unsigned int n, const Ring &ring)
PolynomialOver< Ring > & ShiftRight (unsigned int n, const Ring &ring)
static void Divide (PolynomialOver< Ring > &r, PolynomialOver< Ring > &q, const PolynomialOver< Ring > &a, const PolynomialOver< Ring > &d, const Ring &ring)
 calculate r and q such that (a == d*q + r) && (0 <= degree of r < degree of d)

Public Types

typedef T Ring
typedef T::Element CoefficientType
typedef B::DivideByZero DivideByZero
typedef B::RandomizationParameter RandomizationParameter

Public Member Functions

ACCESSORS
int Degree () const
 the zero polynomial will return a degree of -1
unsigned int CoefficientCount () const
 degree + 1
CoefficientType GetCoefficient (unsigned int i) const
 return coefficient for x^i
CoefficientType operator[] (unsigned int i) const
 return coefficient for x^i
MANIPULATORS
ThisTypeoperator= (const ThisType &t)
ThisTypeoperator+= (const ThisType &t)
ThisTypeoperator-= (const ThisType &t)
ThisTypeoperator *= (const ThisType &t)
ThisTypeoperator/= (const ThisType &t)
ThisTypeoperator%= (const ThisType &t)
ThisTypeoperator<<= (unsigned int n)
ThisTypeoperator>>= (unsigned int n)
void SetCoefficient (unsigned int i, const CoefficientType &value)
 set the coefficient for x^i to value
void Randomize (RandomNumberGenerator &rng, const RandomizationParameter &parameter)
void Negate ()
void swap (ThisType &t)
UNARY OPERATORS
bool operator! () const
ThisType operator+ () const
ThisType operator- () const

Friends

BINARY OPERATORS
ThisType operator>> (ThisType a, unsigned int n)
ThisType operator<< (ThisType a, unsigned int n)
INPUT/OUTPUT
std::istream & operator>> (std::istream &in, ThisType &a)
std::ostream & operator<< (std::ostream &out, const ThisType &a)

Classes

struct  NewOnePolynomial


The documentation for this class was generated from the following files:
Generated on Sat Dec 23 02:07:31 2006 for Crypto++ by  doxygen 1.5.1-p1