37 std::vector<int> poly(1, 1);
42 const std::size_t &highestXorder):
43 power_m(
power), highestXorder_m(highestXorder) {
44 std::vector<int> poly(1, 1);
46 for (std::size_t i = 0; i <
power_m; i++) {
53 power_m(doperator.power_m), highestXorder_m(doperator.highestXorder_m) {
84 std::vector<int> p, q;
86 p.push_back(pow(-1, i));
87 q.push_back(pow(-1, i) * (i + 1));
constexpr T power(T base, unsigned exponent)
void truncate(const std::size_t &truncateOrder)
Truncate all polynomials to truncateOrder If truncateOrder is greater than the highest power of x th...
void multiplyPolynomial(const Polynomial &poly)
Multiplies each term with given polynomial.
void differentiateX()
Differentiate wrt x using product rule.
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 highestXorder_m
~RecursionRelation()
Desctructor, does nothing.
RecursionRelation & operator=(const RecursionRelation &recursion)
Assigment operator.
void truncate(std::size_t highestXorder)
Truncate series in x at highestXorder.
RecursionRelation()
Default constructor, initialises identity operator.
void applyOperator()
Increase power n by one.
DifferentialOperator operator_m