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.