linbox
Public Member Functions
NTL_ZZ_pX Class Reference

Ring (in fact, a unique factorization domain) of polynomial with coefficients in class NTL_ZZ_p (integers mod a wordsize prime). More...

#include <ntl-zz_px.h>

Inherits NTL_ZZ_pX_Initialiser, and UnparametricOperations< NTL::ZZ_pX >.

Public Member Functions

 NTL_ZZ_pX (const integer &p, size_t e=1)
 Standard LinBox field constructor. More...
 
 NTL_ZZ_pX (CoeffField cf)
 Constructor from a coefficient field.
 
template<class ANY >
Element & init (Element &p, const ANY &y) const
 Initialize p to the constant y (p = y*x^0)
 
Element & init (Element &p, const Coeff &y) const
 Initialize p to the constant y (p = y*x^0)
 
template<class ANY >
Element & init (Element &p, const std::vector< ANY > &v) const
 Initialize p from a vector of coefficients. More...
 
Element & init (Element &p, const std::vector< Coeff > &v) const
 Initialize p from a vector of coefficients. More...
 
template<class ANY >
std::vector< ANY > & convert (std::vector< ANY > &v, const Element &p) const
 Convert p to a vector of coefficients. More...
 
std::vector< Coeff > & convert (std::vector< Coeff > &v, const Element &p) const
 Convert p to a vector of coefficients. More...
 
bool isZero (const Element &x) const
 Test if an element equals zero.
 
bool isOne (const Element &x) const
 Test if an element equals one.
 
const CoeffFieldgetCoeffField () const
 The LinBox field for coefficients.
 
size_t deg (const Element &p) const
 Get the degree of a polynomial Unlike NTL, deg(0)=0.
 
Element & rev (Element &r, const Element &p)
 r will be set to the reverse of p. More...
 
Element & revin (Element &r)
 r is itself reversed. More...
 
Coeff & leadCoeff (Coeff &c, const Element &p) const
 Get the leading coefficient of this polynomial. More...
 
Coeff & getCoeff (Coeff &c, const Element &p, size_t i) const
 Get the coefficient of x^i in a given polynomial.
 
Element & setCoeff (Element &p, size_t i, const Coeff &c) const
 Set the coefficient of x^i in a given polynomial.
 
Element & quo (Element &res, const Element &a, const Element &b) const
 Get the quotient of two polynomials.
 
Element & quoin (Element &a, const Element &b) const
 a = quotient of a, b
 
Element & rem (Element &res, const Element &a, const Element &b) const
 Get the remainder under polynomial division.
 
Element & remin (Element &a, const Element &b) const
 a = remainder of a,b
 
void quorem (Element &q, Element &r, const Element &a, const Element &b) const
 Get the quotient and remainder under polynomial division.
 
integercharacteristic (integer &c) const
 Get characteristic of the field - same as characteristic of coefficient field. More...
 
integercardinality (integer &c) const
 Get the cardinality of the field. More...
 
std::ostream & write (std::ostream &os) const
 Write a description of the field.
 

Detailed Description

Ring (in fact, a unique factorization domain) of polynomial with coefficients in class NTL_ZZ_p (integers mod a wordsize prime).

All the same functions as any other ring, with the addition of: Coeff (type), CoeffField (type), getCoeffField, setCoeff, getCoeff, leadCoeff, deg

Constructor & Destructor Documentation

◆ NTL_ZZ_pX()

NTL_ZZ_pX ( const integer p,
size_t  e = 1 
)
inline

Standard LinBox field constructor.

The paramters here (prime, exponent) are only used to initialize the coefficient field.

Member Function Documentation

◆ init() [1/2]

Element& init ( Element &  p,
const std::vector< ANY > &  v 
) const
inline

Initialize p from a vector of coefficients.

The vector should be ordered the same way NTL does it: the front of the vector corresponds to the trailing coefficients, and the back of the vector corresponds to the leading coefficients. That is, v[i] = coefficient of x^i.

◆ init() [2/2]

Element& init ( Element &  p,
const std::vector< Coeff > &  v 
) const
inline

Initialize p from a vector of coefficients.

The vector should be ordered the same way NTL does it: the front of the vector corresponds to the trailing coefficients, and the back of the vector corresponds to the leading coefficients. That is, v[i] = coefficient of x^i.

◆ convert() [1/2]

std::vector<ANY>& convert ( std::vector< ANY > &  v,
const Element &  p 
) const
inline

Convert p to a vector of coefficients.

The vector will be ordered the same way NTL does it: the front of the vector corresponds to the trailing coefficients, and the back of the vector corresponds to the leading coefficients. That is, v[i] = coefficient of x^i.

◆ convert() [2/2]

std::vector<Coeff>& convert ( std::vector< Coeff > &  v,
const Element &  p 
) const
inline

Convert p to a vector of coefficients.

The vector will be ordered the same way NTL does it: the front of the vector corresponds to the trailing coefficients, and the back of the vector corresponds to the leading coefficients. That is, v[i] = coefficient of x^i.

◆ rev()

Element& rev ( Element &  r,
const Element &  p 
)
inline

r will be set to the reverse of p.

◆ revin()

Element& revin ( Element &  r)
inline

r is itself reversed.

◆ leadCoeff()

Coeff& leadCoeff ( Coeff &  c,
const Element &  p 
) const
inline

Get the leading coefficient of this polynomial.

◆ characteristic()

integer& characteristic ( integer c) const
inline

Get characteristic of the field - same as characteristic of coefficient field.

◆ cardinality()

integer& cardinality ( integer c) const
inline

Get the cardinality of the field.

Since the cardinality is infinite, by convention we return -1.


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