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

RingOfPolynomialsOver Class Template Reference

Ring of polynomials over another ring. More...

#include <polynomi.h>

Inheritance diagram for RingOfPolynomialsOver:

AbstractEuclideanDomain AbstractRing AbstractGroup List of all members.

Public Types

typedef T CoefficientRing
typedef PolynomialOver<T> Element
typedef Element::CoefficientType CoefficientType
typedef Element::RandomizationParameter RandomizationParameter

Public Methods

 RingOfPolynomialsOver (const CoefficientRing &ring)
Element RandomElement (RandomNumberGenerator &rng,const RandomizationParameter &parameter)
bool Equal (const Element &a,const Element &b)const
const Element& Zero ()const
const Element& Add (const Element &a,const Element &b)const
Element& Accumulate (Element &a,const Element &b)const
const Element& Inverse (const Element &a)const
const Element& Subtract (const Element &a,const Element &b)const
Element& Reduce (Element &a,const Element &b)const
const Element& Double (const Element &a)const
const Element& One ()const
const Element& Multiply (const Element &a,const Element &b)const
const Element& Square (const Element &a)const
bool IsUnit (const Element &a)const
const Element& MultiplicativeInverse (const Element &a)const
const Element& Divide (const Element &a,const Element &b)const
const Element& Mod (const Element &a,const Element &b)const
void DivisionAlgorithm (Element &r,Element &q,const Element &a,const Element &d)const
Element Interpolate (const CoefficientType x[],const CoefficientType y[],unsigned int n)const
CoefficientType InterpolateAt (const CoefficientType &position,const CoefficientType x[],const CoefficientType y[],unsigned int n)const

Protected Methods

void CalculateAlpha (::vector< CoefficientType > &alpha,const CoefficientType x[],const CoefficientType y[],unsigned int n)const

Protected Attributes

CoefficientRing m_ring

Detailed Description

template<class T> class RingOfPolynomialsOver

Ring of polynomials over another ring.

Definition at line 302 of file polynomi.h.


Member Typedef Documentation

template<class T>
typedef T RingOfPolynomialsOver<T>::CoefficientRing
 

Definition at line 305 of file polynomi.h.

template<class T>
typedef Element::CoefficientType RingOfPolynomialsOver<T>::CoefficientType
 

Definition at line 307 of file polynomi.h.

template<class T>
typedef PolynomialOver< T > RingOfPolynomialsOver<T>::Element
 

Reimplemented from AbstractEuclideanDomain.

Definition at line 306 of file polynomi.h.

template<class T>
typedef Element::RandomizationParameter RingOfPolynomialsOver<T>::RandomizationParameter
 

Definition at line 308 of file polynomi.h.


Constructor & Destructor Documentation

template<class T>
RingOfPolynomialsOver<T>::RingOfPolynomialsOver<T> ( const CoefficientRing & ring ) [inline]
 

Definition at line 310 of file polynomi.h.


Member Function Documentation

template<class T>
Element & RingOfPolynomialsOver<T>::Accumulate ( Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 324 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::Add ( const Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 321 of file polynomi.h.

template<class T>
void RingOfPolynomialsOver< T >::CalculateAlpha ( ::vector< CoefficientType > & alpha,
const CoefficientType x[],
const CoefficientType y[],
unsigned int n ) const [protected]
 

Definition at line 455 of file polynomi.cpp.

template<class T>
const Element & RingOfPolynomialsOver<T>::Divide ( const Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractRing.

Definition at line 355 of file polynomi.h.

template<class T>
void RingOfPolynomialsOver<T>::DivisionAlgorithm ( Element & r,
Element & q,
const Element & a,
const Element & d ) const [inline, virtual]
 

Reimplemented from AbstractEuclideanDomain.

Definition at line 361 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::Double ( const Element & a ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 336 of file polynomi.h.

template<class T>
bool RingOfPolynomialsOver<T>::Equal ( const Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 315 of file polynomi.h.

template<class T>
RingOfPolynomialsOver< T >::Element RingOfPolynomialsOver< T >::Interpolate ( const CoefficientType x[],
const CoefficientType y[],
unsigned int n ) const
 

Definition at line 475 of file polynomi.cpp.

template<class T>
RingOfPolynomialsOver< T >::CoefficientType RingOfPolynomialsOver< T >::InterpolateAt ( const CoefficientType & position,
const CoefficientType x[],
const CoefficientType y[],
unsigned int n ) const
 

Definition at line 497 of file polynomi.cpp.

template<class T>
const Element & RingOfPolynomialsOver<T>::Inverse ( const Element & a ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 327 of file polynomi.h.

template<class T>
bool RingOfPolynomialsOver<T>::IsUnit ( const Element & a ) const [inline, virtual]
 

Reimplemented from AbstractRing.

Definition at line 349 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::Mod ( const Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractEuclideanDomain.

Definition at line 358 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::MultiplicativeInverse ( const Element & a ) const [inline, virtual]
 

Reimplemented from AbstractRing.

Definition at line 352 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::Multiply ( const Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractRing.

Definition at line 343 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::One ( ) const [inline, virtual]
 

Reimplemented from AbstractRing.

Definition at line 340 of file polynomi.h.

template<class T>
Element RingOfPolynomialsOver<T>::RandomElement ( RandomNumberGenerator & rng,
const RandomizationParameter & parameter ) [inline]
 

Definition at line 312 of file polynomi.h.

template<class T>
Element & RingOfPolynomialsOver<T>::Reduce ( Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 333 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::Square ( const Element & a ) const [inline, virtual]
 

Reimplemented from AbstractRing.

Definition at line 346 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::Subtract ( const Element & a,
const Element & b ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 330 of file polynomi.h.

template<class T>
const Element & RingOfPolynomialsOver<T>::Zero ( ) const [inline, virtual]
 

Reimplemented from AbstractGroup.

Definition at line 318 of file polynomi.h.


Member Data Documentation

template<class T>
CoefficientRing RingOfPolynomialsOver<T>::m_ring [protected]
 

Definition at line 382 of file polynomi.h.


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