Basic Polynomial Algebra Subprograms (BPAS)  v. 1.791
Public Member Functions | List of all members
BPASRecursivelyViewedPolynomial< Ring, Derived > Class Template Referenceabstract

An abstract class defining the interface of a multivariate polynomial that can be viewed recursively. More...

#include <BPASRecursivePolynomial.hpp>

Simplified semantic inheritance diagram for BPASRecursivelyViewedPolynomial< Ring, Derived >:
- Full inheritance diagram for BPASRecursivelyViewedPolynomial< Ring, Derived >:
[legend]

Public Member Functions

virtual Derived initial () const =0
 Get the initial, or leading coefficient, with respect to the main variable of this polynomial. More...
 
virtual Symbol mainVariable () const =0
 Get the main variable of this polynomial, that is, the one which is most significant under its variable ordering. More...
 
virtual int mainDegree () const =0
 Get the main degree of this polynomial, that is, the partial degree of the main variable. More...
 
virtual Derived rank () const =0
 Get the rank of this polynomial, that is, the main variable of this polynomial raised to the main degree. More...
 
virtual Derived tail () const =0
 Get the tail of this polynomial, that is, this polynomial after removing its leading term. More...
 
virtual Derived head () const =0
 Get the head of this polynomial, that is, the leading term of this polynomial. More...
 
virtual Derived separant () const =0
 Get the separant of this polynomial, that is, its derivative with respect to the main variable. More...
 
- Public Member Functions inherited from BPASMultivariatePolynomial< Ring, Derived >
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< SymbolringVariables () const =0
 Get all the variables in the polynomial ring. More...
 
virtual std::vector< Symbolvariables () const =0
 Get all the variables in this polynomial with positive degree. More...
 

Detailed Description

template<class Ring, class Derived>
class BPASRecursivelyViewedPolynomial< Ring, Derived >

An abstract class defining the interface of a multivariate polynomial that can be viewed recursively.

That is, it can be viewed as a univariate polynomial with multivariate polynomial coefficients.

Member Function Documentation

◆ head()

template<class Ring, class Derived>
virtual Derived BPASRecursivelyViewedPolynomial< Ring, Derived >::head ( ) const
pure virtual

Get the head of this polynomial, that is, the leading term of this polynomial.

It is equivalent to the initial of this polynomial multiplied by its rank.

Returns
the head of this polynomial.

Implemented in SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

◆ initial()

template<class Ring, class Derived>
virtual Derived BPASRecursivelyViewedPolynomial< Ring, Derived >::initial ( ) const
pure virtual

Get the initial, or leading coefficient, with respect to the main variable of this polynomial.

Returns
the initial of this polynomial.

Implemented in SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

◆ mainDegree()

template<class Ring, class Derived>
virtual int BPASRecursivelyViewedPolynomial< Ring, Derived >::mainDegree ( ) const
pure virtual

Get the main degree of this polynomial, that is, the partial degree of the main variable.

Returns
the main degree of the polynomial.

Implemented in SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

◆ mainVariable()

template<class Ring, class Derived>
virtual Symbol BPASRecursivelyViewedPolynomial< Ring, Derived >::mainVariable ( ) const
pure virtual

Get the main variable of this polynomial, that is, the one which is most significant under its variable ordering.

Returns
the main variable of the polynomial.

Implemented in SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

◆ rank()

template<class Ring, class Derived>
virtual Derived BPASRecursivelyViewedPolynomial< Ring, Derived >::rank ( ) const
pure virtual

Get the rank of this polynomial, that is, the main variable of this polynomial raised to the main degree.

This this returns a monomial.

Returns
the rank of this polynomial.

Implemented in SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

◆ separant()

template<class Ring, class Derived>
virtual Derived BPASRecursivelyViewedPolynomial< Ring, Derived >::separant ( ) const
pure virtual

Get the separant of this polynomial, that is, its derivative with respect to the main variable.

Returns
the separant of this polynomial.

Implemented in SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.

◆ tail()

template<class Ring, class Derived>
virtual Derived BPASRecursivelyViewedPolynomial< Ring, Derived >::tail ( ) const
pure virtual

Get the tail of this polynomial, that is, this polynomial after removing its leading term.

It is equivalent to the reductum of this polynomial, viewing it as a univariate polynomial in its main variable.

Returns
the tail of this polynomial.

Implemented in SparseMultivariateRationalPolynomial, and SparseMultivariateIntegerPolynomial.


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