28#ifndef DIFFERENTIAL_OPERATOR_H
29#define DIFFERENTIAL_OPERATOR_H
62 const std::size_t &sDerivatives);
72 void resizeX(
const std::size_t &xDerivatives);
76 void resizeS(
const std::size_t &sDerivatives);
94 const std::size_t &s);
118 void truncate(
const std::size_t &truncateOrder);
128 const std::size_t &xDerivative,
129 const std::size_t &sDerivative)
const;
DifferentialOperator & operator=(const DifferentialOperator &doperator)
Assigment operator.
std::size_t sDerivatives_m
void printOperator() const
Print operator, for internal debugging.
bool isPolynomialZero(const std::size_t &x, const std::size_t &s) const
Check if polynomial with x x-derivaties and s s-derivatives is a zero polynomial If x or s is larger...
double evaluatePolynomial(const double &x, const std::size_t &xDerivative, const std::size_t &sDerivative) const
Evaluate polynomial with xDerivative x-derivatives and sDerivative s-derivatives If xDerivative or s...
void truncate(const std::size_t &truncateOrder)
Truncate all polynomials to truncateOrder If truncateOrder is greater than the highest power of x th...
std::size_t getSDerivatives() const
Returns highest derivative in s.
void multiplyPolynomial(const Polynomial &poly)
Multiplies each term with given polynomial.
DifferentialOperator()
Default constructor, initialises identity operator (constant 1)
void resizeX(const std::size_t &xDerivatives)
Set highest derivative in x to xDerivatives.
void differentiateX()
Differentiate wrt x using product rule.
std::vector< std::vector< Polynomial > > polynomials_m
void doubleDifferentiateS()
Differentiate wrt s twice.
void setPolynomial(const std::vector< int > &poly, const std::size_t &x, const std::size_t &s)
Assign the input polynomial If x or s is greater than xDerivatives_m or sDerivatives_m,...
void addOperator(const DifferentialOperator &doperator)
Add the operator to Operator, term by term.
std::size_t getXDerivatives() const
Returns highest derivative in x.
std::size_t xDerivatives_m
void resizeS(const std::size_t &sDerivatives)
Set highest derivative in s to sDerivatives.
~DifferentialOperator()
Destructor, does nothing.