28#ifndef POLYNOMIAL_SUM_H
29#define POLYNOMIAL_SUM_H
87 void truncate(
const std::size_t &truncateOrder);
96 const double &s)
const;
106 std::vector<std::vector<double>> &finalPolynomial)
const;
115 const std::vector<double> &dSvalues)
const;
124 std::vector<std::size_t>
getdSfactors(
const std::size_t &p)
const;
142 const double &s)
const {
T::PETE_Expr_t::PETE_Return_t sum(const PETE_Expr< T > &expr)
bool isPolynomialZero(const std::size_t &p) const
Check if term p is a zero polynomial Returns true if p is negative or outside the range of list rang...
void printPolynomial() const
Print polynomial, for internal debugging.
void addPolynomial(const PolynomialSum &poly)
Add poly to the sum by concatenating the lists.
void putSumTogether(const std::vector< double > &dSvalues, std::vector< std::vector< double > > &finalPolynomial) const
Put together all terms in the PolynomialSum by evaluating the S(s)-derivatives and multiply them wit...
void truncate(const std::size_t &truncateOrder)
Truncate series in x at truncateOrder.
void sortTerms()
Sort polynomialSum_m such that the TwoPolynomial objects with fewest S(s)-derivatives come first,...
PolynomialSum & operator=(const PolynomialSum &sum)
Assigment operator.
void multiplyPolynomial(const TwoPolynomial &poly)
Multiply term with input polynomial.
PolynomialSum()
Default constructor, initialises empty sum.
std::vector< TwoPolynomial > polynomialSum_m
void differentiateX()
Differentiate each term wrt x.
~PolynomialSum()
Desctructor, does nothing.
std::size_t numberOfTerms() const
Returns number of terms in the sum.
std::vector< std::size_t > getdSfactors(const std::size_t &p) const
Returns lists of S(s)-derivatives in term p Returns empty list if p is negative or outside list rang...
double evaluatePolynomial(const std::size_t &p, const double &x, const double &s) const
Evaluate polynomial in term p at the point (x, s) If p is outside list range zero is returned.
void differentiateS()
Differentiate each term wrt s.
double evaluatePolynomial2(const double &x, const double &s, const std::vector< double > &dSvalues) const
Evaluate polynomial after putting the sum together into one polynomial.