2 #ifndef _BPAS_MULTIVAR_POLYNOMIAL_H_ 3 #define _BPAS_MULTIVAR_POLYNOMIAL_H_ 6 #include "BPASPolynomial.hpp" 16 template <
class Ring,
class Derived>
79 virtual Derived
evaluate(
int n,
const Symbol* vars,
const Ring* elems)
const = 0;
90 virtual Derived
evaluate(
const std::vector<Symbol>& vars,
const std::vector<Ring>& elems)
const = 0;
127 virtual Ring
coefficient(
int n,
const int* exps)
const = 0;
137 virtual Ring
coefficient(
const std::vector<int>& exps)
const = 0;
150 virtual void setCoefficient(
int n,
const int*,
const Ring& r) = 0;
161 virtual void setCoefficient(
const std::vector<int>& v,
const Ring& r) = 0;
187 virtual std::vector<Symbol>
variables()
const = 0;
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 o...
virtual Integer degree(const Symbol &v) const =0
Get the partial degree of this polynomial with respect to the variable v.
virtual void setRingVariables(const std::vector< Symbol > &xs)=0
Set the variables in the polynomial ring to xs.
virtual int numberOfVariables() const =0
Get the number of variables in this multivariate polynomial which have positive degree.
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...
virtual int numberOfRingVariables() const =0
Get the number of variables defined for the poylnomial ring of this polynomial, that is...
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...
virtual Derived derivative(const Symbol &) const =0
Differentiate this polynomial, with respect to a particular variable, setting itself to its derivativ...
An abstract class defining the interface of a polynomial over an arbitrary BPASRing.
Definition: BPASPolynomial.hpp:32
An abstract class defining the interface of a multivariate polynomial over an arbitrary BPASRing...
Definition: BPASMultivarPolynomial.hpp:17
An arbitrary-precision Integer.
Definition: Integer.hpp:22
virtual std::vector< Symbol > ringVariables() const =0
Get all the variables in the polynomial ring.
An encapsulation of a mathematical symbol.
Definition: Symbol.hpp:23
virtual std::vector< Symbol > variables() const =0
Get all the variables in this polynomial with positive degree.
virtual void differentiate(const Symbol &var)=0
Differentiate this polynomial, with respect to a particular variable, setting itself to its derivativ...