Crypto++  5.6.4
Free C++ class library of cryptographic schemes
Classes | Public Types | List of all members
PolynomialOverFixedRing< T, instance > Class Template Reference

Polynomials over a fixed ring. More...

+ Inheritance diagram for PolynomialOverFixedRing< T, instance >:

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
ThisType & operator= (const ThisType &t)
 
ThisType & operator+= (const ThisType &t)
 
ThisType & operator-= (const ThisType &t)
 
ThisType & operator*= (const ThisType &t)
 
ThisType & operator/= (const ThisType &t)
 
ThisType & operator%= (const ThisType &t)
 
ThisType & operator<<= (unsigned int n)
 
ThisType & operator>>= (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)
 

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 ThisType & Zero ()
 
static const ThisType & One ()
 

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))
 

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 167 of file polynomi.h.


The documentation for this class was generated from the following files: