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...