Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

PolynomialOverFixedRing Class Template Reference

Polynomials over a fixed ring. More...

#include <polynomi.h>

Inheritance diagram for PolynomialOverFixedRing:

PolynomialOver List of all members.

CREATORS

 PolynomialOverFixedRing (unsigned int count=0)
 creates the zero polynomial. More...

 PolynomialOverFixedRing (const ThisType &t)
 copy constructor. More...

 PolynomialOverFixedRing (const B &t)
 PolynomialOverFixedRing (const CoefficientType &element)
 construct constant polynomial. More...

template<typename Iterator>  PolynomialOverFixedRing (Iterator first,Iterator last)
 construct polynomial with specified coefficients, starting from coefficient of x^0. More...

 PolynomialOverFixedRing (const char *str)
 convert from string. More...

 PolynomialOverFixedRing (const byte *encodedPoly,unsigned int byteCount)
 convert from big-endian byte array. More...

 PolynomialOverFixedRing (const byte *BEREncodedPoly)
 convert from Basic Encoding Rules encoded byte array. More...

 PolynomialOverFixedRing (BufferedTransformation &bt)
 convert from BER encoded byte array stored in a BufferedTransformation object. More...

 PolynomialOverFixedRing (RandomNumberGenerator &rng,const RandomizationParameter &parameter)
 create a random PolynomialOverFixedRing. More...

const ThisType& Zero ()
const ThisType& One ()

OTHER ARITHMETIC FUNCTIONS

ThisType MultiplicativeInverse ()const
bool IsUnit ()const
ThisType Doubled ()const
ThisType Squared ()const
CoefficientType EvaluateAt (const CoefficientType &x)const
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)). More...


Public Types

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

Public Methods

ACCESSORS
int Degree ()const
 the zero polynomial will return a degree of -1. More...

unsigned int CoefficientCount ()const
 degree + 1. More...

CoefficientType GetCoefficient (unsigned int i)const
 return coefficient for x^i. More...

CoefficientType operator[] (unsigned int i)const
 return coefficient for x^i. More...

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. More...

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
class  operator>>
class  operator<<
INPUT/OUTPUT
class  operator>>
class  operator<<

Detailed Description

template<class T, int instance> class PolynomialOverFixedRing

Polynomials over a fixed ring.

Having a fixed ring allows overloaded operators

Definition at line 159 of file polynomi.h.


Member Typedef Documentation

template<class T, int instance>
typedef T::Element PolynomialOverFixedRing<T, instance>::CoefficientType
 

Reimplemented from PolynomialOver.

Definition at line 166 of file polynomi.h.

template<class T, int instance>
typedef B::DivideByZero PolynomialOverFixedRing<T, instance>::DivideByZero
 

Definition at line 167 of file polynomi.h.

template<class T, int instance>
typedef B::RandomizationParameter PolynomialOverFixedRing<T, instance>::RandomizationParameter
 

Definition at line 168 of file polynomi.h.

template<class T, int instance>
typedef T PolynomialOverFixedRing<T, instance>::Ring
 

Reimplemented from PolynomialOver.

Definition at line 165 of file polynomi.h.


Constructor & Destructor Documentation

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( unsigned int count = 0 ) [inline]
 

creates the zero polynomial.

Definition at line 173 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( const ThisType & t ) [inline]
 

copy constructor.

Definition at line 176 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( const B & t ) [inline, explicit]
 

Definition at line 178 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( const CoefficientType & element ) [inline]
 

construct constant polynomial.

Definition at line 181 of file polynomi.h.

template<class T, int instance>
template<typename Iterator>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( Iterator first,
Iterator last ) [inline]
 

construct polynomial with specified coefficients, starting from coefficient of x^0.

Definition at line 184 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( const char * str ) [inline, explicit]
 

convert from string.

Definition at line 188 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( const byte * encodedPoly,
unsigned int byteCount ) [inline]
 

convert from big-endian byte array.

Definition at line 191 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( const byte * BEREncodedPoly ) [inline, explicit]
 

convert from Basic Encoding Rules encoded byte array.

Definition at line 194 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( BufferedTransformation & bt ) [inline, explicit]
 

convert from BER encoded byte array stored in a BufferedTransformation object.

Definition at line 197 of file polynomi.h.

template<class T, int instance>
PolynomialOverFixedRing<T, instance>::PolynomialOverFixedRing<T, instance> ( RandomNumberGenerator & rng,
const RandomizationParameter & parameter ) [inline]
 

create a random PolynomialOverFixedRing.

Definition at line 200 of file polynomi.h.


Member Function Documentation

template<class T, int instance>
unsigned int PolynomialOverFixedRing<T, instance>::CoefficientCount ( ) const [inline]
 

degree + 1.

Definition at line 211 of file polynomi.h.

template<class T, int instance>
int PolynomialOverFixedRing<T, instance>::Degree ( ) const [inline]
 

the zero polynomial will return a degree of -1.

Definition at line 209 of file polynomi.h.

template<class T, int instance>
void PolynomialOverFixedRing<T, instance>::Divide ( ThisType & r,
ThisType & q,
const ThisType & a,
const ThisType & d ) [inline, static]
 

calculate r and q such that (a == d*q + r) && (0 <= r < abs(d)).

Definition at line 283 of file polynomi.h.

template<class T, int instance>
ThisType PolynomialOverFixedRing<T, instance>::Doubled ( ) const [inline]
 

Definition at line 276 of file polynomi.h.

template<class T, int instance>
CoefficientType PolynomialOverFixedRing<T, instance>::EvaluateAt ( const CoefficientType & x ) const [inline]
 

Definition at line 280 of file polynomi.h.

template<class T, int instance>
CoefficientType PolynomialOverFixedRing<T, instance>::GetCoefficient ( unsigned int i ) const [inline]
 

return coefficient for x^i.

Definition at line 213 of file polynomi.h.

template<class T, int instance>
bool PolynomialOverFixedRing<T, instance>::IsUnit ( ) const [inline]
 

Definition at line 273 of file polynomi.h.

template<class T, int instance>
ThisType PolynomialOverFixedRing<T, instance>::MultiplicativeInverse ( ) const [inline]
 

Definition at line 271 of file polynomi.h.

template<class T, int instance>
void PolynomialOverFixedRing<T, instance>::Negate ( ) [inline]
 

Definition at line 245 of file polynomi.h.

template<class T, int instance>
const ThisType & PolynomialOverFixedRing<T, instance>::One ( ) [static]
 

Definition at line 572 of file polynomi.cpp.

template<class T, int instance>
void PolynomialOverFixedRing<T, instance>::Randomize ( RandomNumberGenerator & rng,
const RandomizationParameter & parameter ) [inline]
 

Definition at line 242 of file polynomi.h.

template<class T, int instance>
void PolynomialOverFixedRing<T, instance>::SetCoefficient ( unsigned int i,
const CoefficientType & value ) [inline]
 

set the coefficient for x^i to value.

Definition at line 239 of file polynomi.h.

template<class T, int instance>
ThisType PolynomialOverFixedRing<T, instance>::Squared ( ) const [inline]
 

Definition at line 278 of file polynomi.h.

template<class T, int instance>
const ThisType & PolynomialOverFixedRing<T, instance>::Zero ( ) [static]
 

Definition at line 565 of file polynomi.cpp.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator *= ( const ThisType & t ) [inline]
 

Definition at line 227 of file polynomi.h.

template<class T, int instance>
bool PolynomialOverFixedRing<T, instance>::operator! ( ) const [inline]
 

Definition at line 253 of file polynomi.h.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator%= ( const ThisType & t ) [inline]
 

Definition at line 231 of file polynomi.h.

template<class T, int instance>
ThisType PolynomialOverFixedRing<T, instance>::operator+ ( ) const [inline]
 

Definition at line 255 of file polynomi.h.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator+= ( const ThisType & t ) [inline]
 

Definition at line 223 of file polynomi.h.

template<class T, int instance>
ThisType PolynomialOverFixedRing<T, instance>::operator- ( ) const [inline]
 

Definition at line 257 of file polynomi.h.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator-= ( const ThisType & t ) [inline]
 

Definition at line 225 of file polynomi.h.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator/= ( const ThisType & t ) [inline]
 

Definition at line 229 of file polynomi.h.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator<<= ( unsigned int n ) [inline]
 

Definition at line 234 of file polynomi.h.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator= ( const ThisType & t ) [inline]
 

Definition at line 221 of file polynomi.h.

template<class T, int instance>
ThisType & PolynomialOverFixedRing<T, instance>::operator>>= ( unsigned int n ) [inline]
 

Definition at line 236 of file polynomi.h.

template<class T, int instance>
CoefficientType PolynomialOverFixedRing<T, instance>::operator[] ( unsigned int i ) const [inline]
 

return coefficient for x^i.

Definition at line 215 of file polynomi.h.

template<class T, int instance>
void PolynomialOverFixedRing<T, instance>::swap ( ThisType & t ) [inline]
 

Definition at line 247 of file polynomi.h.


Friends And Related Function Documentation

template<class T, int instance>
ostream & operator<< ( ::ostream & out,
const ThisType & a ) [friend]
 

Definition at line 293 of file polynomi.h.

template<class T, int instance>
ThisType operator<< ( ThisType a,
unsigned int n ) [friend]
 

Definition at line 265 of file polynomi.h.

template<class T, int instance>
istream & operator>> ( ::istream & in,
ThisType & a ) [friend]
 

Definition at line 290 of file polynomi.h.

template<class T, int instance>
ThisType operator>> ( ThisType a,
unsigned int n ) [friend]
 

Definition at line 263 of file polynomi.h.


The documentation for this class was generated from the following files:
Generated at Mon Jan 15 01:17:00 2001 for Crypto++ by doxygen1.2.4 written by Dimitri van Heesch, © 1997-2000