Basic Polynomial Algebra Subprograms (BPAS)
v. 1.791

An abstract class defining the interface of a multivariate polynomial over an arbitrary BPASRing. More...
#include <BPASMultivarPolynomial.hpp>
Public Member Functions  
virtual void  differentiate (const Symbol &var)=0 
Differentiate this polynomial, with respect to a particular variable, setting itself to its derivative. More...  
virtual void  differentiate (const Symbol &var, int k)=0 
Differentiate this polynomial k times, with respect to a particular variable, setting itself to its derivative. More...  
virtual Derived  derivative (const Symbol &) const =0 
Differentiate this polynomial, with respect to a particular variable, setting itself to its derivative. More...  
virtual Derived  derivative (const Symbol &, int) const =0 
Differentiate this polynomial k times, with respect to a particular variable, setting itself to its derivative. More...  
virtual Derived  evaluate (int n, const Symbol *vars, const Ring *elems) const =0 
Evaluate this polynomial by substituting the input ring elements elems for the variables vars, such that vars[i] = elems[i]. More...  
virtual Derived  evaluate (const std::vector< Symbol > &vars, const std::vector< Ring > &elems) const =0 
Evaluate this polynomial by substituting the input ring elements elems for the variables vars, such that vars[i] = elems[i]. More...  
virtual int  numberOfVariables () const =0 
Get the number of variables in this multivariate polynomial which have positive degree. More...  
virtual int  numberOfRingVariables () const =0 
Get the number of variables defined for the poylnomial ring of this polynomial, that is, in the ambient space of this polynomial. More...  
virtual Integer  degree (const Symbol &v) const =0 
Get the partial degree of this polynomial with respect to the variable v. More...  
virtual Ring  coefficient (int n, const int *exps) const =0 
Get the coefficient of this polynomial with respect to the monomial defined by exponent vector exps of size n. More...  
virtual Ring  coefficient (const std::vector< int > &exps) const =0 
Get the coefficient of this polynomial with respect to the monomial defined by exponent vector exps. More...  
virtual void  setCoefficient (int n, const int *, const Ring &r)=0 
Set the coefficient of this polynomial for the monomial defined by exponent vector exps, of size n, to r. More...  
virtual void  setCoefficient (const std::vector< int > &v, const Ring &r)=0 
Set the coefficient of this polynomial for the monomial defined by exponent vector exps to r. More...  
virtual void  setRingVariables (const std::vector< Symbol > &xs)=0 
Set the variables in the polynomial ring to xs. More...  
virtual std::vector< Symbol >  ringVariables () const =0 
Get all the variables in the polynomial ring. More...  
virtual std::vector< Symbol >  variables () const =0 
Get all the variables in this polynomial with positive degree. More...  
An abstract class defining the interface of a multivariate polynomial over an arbitrary BPASRing.
This class is automatically determined to be an integral domain, GCD domain, etc. depending on the template specialization of Ring.

pure virtual 
Get the coefficient of this polynomial with respect to the monomial defined by exponent vector exps of size n.
The exponent vector should be defined over all variables in the polynomial ring.
n  the size of the exponent vector 
exps  the exponent vector 
Implemented in SparseMultivariateRationalPolynomial, SparseMultivariateIntegerPolynomial, and DistributedDenseMultivariateModularPolynomial< Field >.

pure virtual 
Get the coefficient of this polynomial with respect to the monomial defined by exponent vector exps.
The exponent vector should be defined over all variables in the polynomial ring.
exps  the exponent vector 
Implemented in SparseMultivariateRationalPolynomial, SparseMultivariateIntegerPolynomial, and DistributedDenseMultivariateModularPolynomial< Field >.

pure virtual 
Get the partial degree of this polynomial with respect to the variable v.
Implemented in SparseMultivariateRationalPolynomial, SparseMultivariateIntegerPolynomial, and DistributedDenseMultivariateModularPolynomial< Field >.

pure virtual 
Differentiate this polynomial, with respect to a particular variable, setting itself to its derivative.
var  the variable to derive with respect to. 
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Differentiate this polynomial k times, with respect to a particular variable, setting itself to its derivative.
var  the variable to derive with respect to. 
k  the number of times to differentiate. 
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Differentiate this polynomial, with respect to a particular variable, setting itself to its derivative.
var  the variable to derive with respect to. 
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Differentiate this polynomial k times, with respect to a particular variable, setting itself to its derivative.
var  the variable to derive with respect to. 
k  the number of times to differentiate. 
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Evaluate this polynomial by substituting the input ring elements elems for the variables vars, such that vars[i] = elems[i].
n  the size of the vars and elems arrays. 
vars  the variables to evaluate. 
elems  the ring elements to substitute for the varibales. 
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Evaluate this polynomial by substituting the input ring elements elems for the variables vars, such that vars[i] = elems[i].
vars  the variables to evaluate. 
elems  the ring elements to substitute for the varibales. 
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Get the number of variables defined for the poylnomial ring of this polynomial, that is, in the ambient space of this polynomial.
Implemented in SparseMultivariateRationalPolynomial, SparseMultivariateIntegerPolynomial, and DistributedDenseMultivariateModularPolynomial< Field >.

pure virtual 
Get the number of variables in this multivariate polynomial which have positive degree.
Implemented in SparseMultivariateRationalPolynomial, SparseMultivariateIntegerPolynomial, and DistributedDenseMultivariateModularPolynomial< Field >.

pure virtual 
Get all the variables in the polynomial ring.
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Set the coefficient of this polynomial for the monomial defined by exponent vector exps, of size n, to r.
The exponent vector should be defined over all variables in the polynomial ring.
n  the size of the exponent vector 
exps  the exponent vector 
r  the ring element to set as coefficient. 
Implemented in SparseMultivariateRationalPolynomial, SparseMultivariateIntegerPolynomial, and DistributedDenseMultivariateModularPolynomial< Field >.

pure virtual 
Set the coefficient of this polynomial for the monomial defined by exponent vector exps to r.
The exponent vector should be defined over all variables in the polynomial ring.
exps  the exponent vector 
r  the ring element to set as coefficient. 
Implemented in SparseMultivariateRationalPolynomial, SparseMultivariateIntegerPolynomial, and DistributedDenseMultivariateModularPolynomial< Field >.

pure virtual 
Set the variables in the polynomial ring to xs.
This can change be used to change the symbols of the variables as well as to increase or decrease the dimension of this polynomial ring. On a decrease, this polynomial may be invalidated if it has positive degree in a variable being removed.
xs  the vector of new symbols for the polynomial ring. 
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

pure virtual 
Get all the variables in this polynomial with positive degree.
Implemented in DistributedDenseMultivariateModularPolynomial< Field >, SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.