![]() |
RobWorkProject
23.9.11-
|
Representation of a polynomial that can have non-scalar coefficients (polynomial matrix). More...
#include <PolynomialND.hpp>
Inherited by Polynomial< std::complex< double > >.
Public Member Functions | |
| PolynomialND (std::size_t order) | |
| Create polynomial with uninitialized coefficients. More... | |
| PolynomialND (const std::vector< Coef > &coefficients) | |
| Create polynomial from vector. More... | |
| PolynomialND (const PolynomialND< Coef, Scalar > &p) | |
| Create polynomial from other polynomial. More... | |
| virtual | ~PolynomialND () |
| Destructor. | |
| std::size_t | order () const |
| Get the order of the polynomial (the highest power). More... | |
| void | increaseOrder (std::size_t increase, const Coef &value) |
| Increase the order of this polynomial. More... | |
| void | increaseOrder (std::size_t increase=1) |
| Increase the order of this polynomial. More... | |
| Coef | evaluate (const Scalar &x) const |
| Evaluate the polynomial using Horner's Method. More... | |
| std::vector< Coef > | evaluateDerivatives (const Scalar &x, std::size_t n=1) const |
| Evaluate the first n derivatives of the polynomial using Horner's Method. More... | |
| PolynomialND< Coef, Scalar > | deflate (const Scalar &x) const |
| Perform deflation of polynomial. More... | |
| PolynomialND< Coef, Scalar > | derivative (std::size_t n=1) const |
| Get the derivative polynomial. More... | |
| const PolynomialND< Coef, Scalar > | operator- () const |
| Negate coefficients. More... | |
| bool | operator== (const PolynomialND< Coef, Scalar > &b) const |
| Check if polynomials are equal. More... | |
Coefficient access operators. | |
Operators used to access coefficients. | |
| const Coef & | operator() (std::size_t i) const |
| Get specific coefficient. More... | |
| Coef & | operator() (size_t i) |
| Get specific coefficient. More... | |
| const Coef & | operator[] (size_t i) const |
| Get specific coefficient. More... | |
| Coef & | operator[] (size_t i) |
| Get specific coefficient. More... | |
Arithmetic operators between polynomials. | |
Operators used to do arithmetic between two polynomials. | |
| const PolynomialND< Coef, Scalar > | operator- (const PolynomialND< Coef, Scalar > &b) const |
| Polynomial subtraction. More... | |
| PolynomialND< Coef, Scalar > & | operator-= (const PolynomialND< Coef, Scalar > &b) |
| Polynomial subtraction. More... | |
| const PolynomialND< Coef, Scalar > | operator+ (const PolynomialND< Coef, Scalar > &b) const |
| Polynomial addition. More... | |
| PolynomialND< Coef, Scalar > & | operator+= (const PolynomialND< Coef, Scalar > &b) |
| Polynomial addition. More... | |
| template<typename OutCoef , typename Coef2 = Coef> | |
| PolynomialND< OutCoef, Scalar > | multiply (const PolynomialND< Coef2, Scalar > &b) const |
| Polynomial multiplication. More... | |
| template<typename OutCoef , typename Coef2 = Coef> | |
| PolynomialND< OutCoef, Scalar > | multiply (const Coef2 &b) const |
| Multiply with a coefficient. More... | |
| void | operator= (const PolynomialND< Coef, Scalar > &b) |
| Assignment. More... | |
Protected Attributes | |
| std::vector< Coef > | _coef |
| The coefficient vector. | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const PolynomialND< Coef, Scalar > &p) |
| Printing polynomial to stream. More... | |
Arithmetic operators between polynomial and scalars. | |
| const PolynomialND< Coef, Scalar > | operator* (Scalar s) const |
| Scalar multiplication. More... | |
| const PolynomialND< Coef, Scalar > | operator/ (Scalar s) const |
| Scalar division. More... | |
| PolynomialND< Coef, Scalar > & | operator*= (Scalar s) |
| Scalar multiplication. More... | |
| PolynomialND< Coef, Scalar > & | operator/= (Scalar s) |
| Scalar division. More... | |
| const PolynomialND< Coef, Scalar > | operator* (Scalar s, const PolynomialND< Coef, Scalar > &p) |
| Scalar multiplication. More... | |
Representation of a polynomial that can have non-scalar coefficients (polynomial matrix).
Representation of a polynomial of the following form:
\( f(x) = C_n x^n + C_(n-1) x^(n-1) + C_2 x^2 + C_1 x + C_0 \)
The polynomial is represented as a list of coefficients ordered from lowest-order term to highest-order term, \( {c_0,c_1,...,c_n}\).
|
inlineexplicit |
Create polynomial with uninitialized coefficients.
| order | [in] the order of the polynomial. |
|
inline |
Create polynomial from vector.
| coefficients | [in] the coefficients ordered from lowest-order term to highest-order term. |
|
inline |
Create polynomial from other polynomial.
| p | [in] the polynomial to copy. |
|
inline |
Perform deflation of polynomial.
| x | [in] a root of the polynomial. |
|
inline |
Get the derivative polynomial.
| n | [in] gives the n'th derivative (default is n=1). |
|
inline |
Evaluate the polynomial using Horner's Method.
| x | [in] the input parameter. |
|
inline |
Evaluate the first n derivatives of the polynomial using Horner's Method.
| x | [in] the input parameter. |
| n | [in] the number of derivatives to find (default is the first derivative only) |
|
inline |
Increase the order of this polynomial.
| increase | [in] how much to increase the order (default is 1). |
| value | [in] initialize new coefficients to this value. |
|
inline |
Increase the order of this polynomial.
| increase | [in] how much to increase the order (default is 1). |
|
inline |
Multiply with a coefficient.
Each coefficient is post-multiplied with the given coefficient.
| b | [in] coefficient to multiply with. Post-multiplication is used - the dimensions must match. |
|
inline |
Polynomial multiplication.
A convolution of the coefficients is used. Notice that more efficient algorithms exist for polynomials with scalar coefficients.
| b | [in] polynomial to multiply. Post-multiplication is used - the dimensions must match. |
|
inline |
Get specific coefficient.
| i | [in] the power of the term to get coefficient for. |
|
inline |
Get specific coefficient.
| i | [in] the power of the term to get coefficient for. |
|
inline |
Scalar multiplication.
| s | [in] scalar to multiply with. |
|
inline |
Scalar multiplication.
| s | [in] the scalar to multiply with. |
|
inline |
|
inline |
Polynomial addition.
| b | [in] polynomial to add. |
|
inline |
Negate coefficients.
|
inline |
Polynomial subtraction.
| b | [in] polynomial of to subtract. |
|
inline |
Polynomial subtraction.
| b | [in] polynomial to subtract. |
|
inline |
Scalar division.
| s | [in] scalar to divide with. |
|
inline |
Scalar division.
| s | [in] the scalar to divide with. |
|
inline |
Assignment.
| b | [in] the polynomial to take coefficients from. |
|
inline |
Check if polynomials are equal.
| b | [in] the polynomial to compare with. |
|
inline |
Get specific coefficient.
| i | [in] the power of the term to get coefficient for. |
|
inline |
Get specific coefficient.
| i | [in] the power of the term to get coefficient for. |
|
inline |
Get the order of the polynomial (the highest power).
|
friend |
Scalar multiplication.
| s | [in] scalar to multiply with. |
| p | [in] polynomial to multiply with. |
|
friend |
Printing polynomial to stream.
| out | [in/out] the stream to write to. |
| p | [in] the polynomail to print. |