Package org.robwork.sdurw
Class Polynomiald
- java.lang.Object
-
- org.robwork.sdurw.PolynomialNDdDouble
-
- org.robwork.sdurw.Polynomiald
-
public class Polynomiald extends PolynomialNDdDouble
Representation of an ordinary polynomial with scalar coefficients (that can be both
real and complex).
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} .
-
-
Constructor Summary
Constructors Constructor Description Polynomiald(long order)
Create polynomial with coefficients initialized to zero.Polynomiald(long cPtr, boolean cMemoryOwn)
Polynomiald(VectorDouble coefficients)
Create polynomial from vector.Polynomiald(Polynomiald p)
Create polynomial from other polynomial.Polynomiald(PolynomialNDdDouble p)
Create polynomial from other polynomial.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Polynomiald
add(double s)
Scalar additionPolynomiald
add(Polynomiald b)
Polynomial addition.Polynomiald
addAssign(double s)
Scalar additionPolynomiald
addAssign(Polynomiald b)
Polynomial addition.Polynomiald
deflate(double x)
<T,T>::deflatevoid
delete()
Polynomiald
derivative()
<T,T>::derivativePolynomiald
derivative(long n)
<T,T>::derivativePolynomiald
devideAssign(double s)
Scalar divisionPolynomiald
divide(double s)
Scalar divisionboolean
equals(Polynomiald b)
Check if polynomials are equal.double
evaluate(double x)
<T,T>::evaluateVectorDouble
evaluateDerivatives(double x)
<T,T>::evaluateDerivativesVectorDouble
evaluateDerivatives(double x, long n)
<T,T>::evaluateDerivativesdouble
get(long i)
static long
getCPtr(Polynomiald obj)
Polynomiald
multiply(double s)
Scalar multiplicationPolynomialNDEigenMatrix3dDouble
multiply(EigenMatrix3d A)
Multiply polynomial with scalar coefficients with a matrix.
PolynomialNDEigenRowVector3dDouble
multiply(EigenRowVector3d a)
rw::math::Polynomial<T>&, const Eigen::Matrix<T,3,1>&)PolynomialNDEigenVector3dDouble
multiply(EigenVector3d a)
Multiply polynomial with scalar coefficients with a vector.
Polynomiald
multiply(Polynomiald polynomial)
Polynomial multiplication
This multiplication functions uses a convolution of the coefficients.
More efficient implementations are possible.
PolynomialNDEigenMatrix3dDouble
multiply(PolynomialNDEigenMatrix3dDouble polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial matrix.
PolynomialNDEigenRowVector3dDouble
multiply(PolynomialNDEigenRowVector3dDouble polynomial)
PolynomialNDEigenVector3dDouble
multiply(PolynomialNDEigenVector3dDouble polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial vector.
Polynomiald
multiplyAssign(double s)
Scalar multiplicationPolynomiald
negate()
Negate coefficients.void
set(long i, double d)
Polynomiald
subtract(double s)
Scalar subtractionPolynomiald
subtract(Polynomiald b)
Polynomial subtraction.Polynomiald
subtractAssign(double s)
Scalar subtractionPolynomiald
subtractAssign(Polynomiald b)
Polynomial subtraction.java.lang.String
toString()
-
Methods inherited from class org.robwork.sdurw.PolynomialNDdDouble
add, equals, getCPtr, increaseOrder, increaseOrder, increaseOrder, order, subtract
-
-
-
-
Constructor Detail
-
Polynomiald
public Polynomiald(long cPtr, boolean cMemoryOwn)
-
Polynomiald
public Polynomiald(long order)
Create polynomial with coefficients initialized to zero.- Parameters:
order
- [in] the order of the polynomial.
-
Polynomiald
public Polynomiald(VectorDouble coefficients)
Create polynomial from vector.- Parameters:
coefficients
- [in] the coefficients ordered from lowest-order term to highest-order
term.
-
Polynomiald
public Polynomiald(Polynomiald p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
Polynomiald
public Polynomiald(PolynomialNDdDouble p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
-
Method Detail
-
getCPtr
public static long getCPtr(Polynomiald obj)
-
delete
public void delete()
- Overrides:
delete
in classPolynomialNDdDouble
-
evaluate
public double evaluate(double x)
<T,T>::evaluate- Overrides:
evaluate
in classPolynomialNDdDouble
- Parameters:
x
- [in] the input parameter.- Returns:
- the value f(x) .
-
evaluateDerivatives
public VectorDouble evaluateDerivatives(double x, long n)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivatives
in classPolynomialNDdDouble
- Parameters:
x
- [in] the input parameter.n
- [in] the number of derivatives to find (default is the first derivative only)- Returns:
- a vector of values {f(x),\dot{f}(x),\ddot{f}(x),\cdots} .
-
evaluateDerivatives
public VectorDouble evaluateDerivatives(double x)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivatives
in classPolynomialNDdDouble
- Parameters:
x
- [in] the input parameter.
- Returns:
- a vector of values {f(x),\dot{f}(x),\ddot{f}(x),\cdots} .
-
deflate
public Polynomiald deflate(double x)
<T,T>::deflate- Overrides:
deflate
in classPolynomialNDdDouble
- Parameters:
x
- [in] a root of the polynomial.- Returns:
- a new polynomial of same order minus one.
Note: There is no check that the given root is in fact a root of the polynomial.
-
derivative
public Polynomiald derivative(long n)
<T,T>::derivative- Overrides:
derivative
in classPolynomialNDdDouble
- Parameters:
n
- [in] gives the n'th derivative (default is n=1).- Returns:
- a new polynomial of same order minus one.
Note: To evaluate derivatives use the evaluate derivative method which is more precise.
-
derivative
public Polynomiald derivative()
<T,T>::derivative- Overrides:
derivative
in classPolynomialNDdDouble
- Returns:
- a new polynomial of same order minus one.
Note: To evaluate derivatives use the evaluate derivative method which is more precise.
-
add
public Polynomiald add(double s)
Scalar addition- Parameters:
s
- [in] scalar to add.- Returns:
- new polynomial after addition.
-
subtract
public Polynomiald subtract(double s)
Scalar subtraction- Parameters:
s
- [in] scalar to subtract.- Returns:
- new polynomial after subtraction.
-
multiply
public Polynomiald multiply(double s)
Scalar multiplication- Overrides:
multiply
in classPolynomialNDdDouble
- Parameters:
s
- [in] scalar to multiply with.- Returns:
- new polynomial after multiplication.
-
multiply
public Polynomiald multiply(Polynomiald polynomial)
Polynomial multiplication
This multiplication functions uses a convolution of the coefficients.
More efficient implementations are possible.
- Parameters:
polynomial
- [in] polynomial to multiply with.- Returns:
- new polynomial after multiplication.
-
multiply
public PolynomialNDEigenVector3dDouble multiply(PolynomialNDEigenVector3dDouble polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial vector.
- Parameters:
polynomial
- [in] polynomial vector.- Returns:
- a 3D polynomial vector.
-
multiply
public PolynomialNDEigenRowVector3dDouble multiply(PolynomialNDEigenRowVector3dDouble polynomial)
-
multiply
public PolynomialNDEigenMatrix3dDouble multiply(PolynomialNDEigenMatrix3dDouble polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial matrix.
- Parameters:
polynomial
- [in] polynomial matrix.- Returns:
- a 3D polynomial matrix.
-
multiply
public PolynomialNDEigenVector3dDouble multiply(EigenVector3d a)
Multiply polynomial with scalar coefficients with a vector.
- Parameters:
a
- [in] vector to multiply with.- Returns:
- a 3D polynomial vector.
-
multiply
public PolynomialNDEigenRowVector3dDouble multiply(EigenRowVector3d a)
rw::math::Polynomial<T>&, const Eigen::Matrix<T,3,1>&)
-
multiply
public PolynomialNDEigenMatrix3dDouble multiply(EigenMatrix3d A)
Multiply polynomial with scalar coefficients with a matrix.
- Parameters:
A
- [in] matrix to multiply with.- Returns:
- a 3D polynomial matrix.
-
divide
public Polynomiald divide(double s)
Scalar division- Overrides:
divide
in classPolynomialNDdDouble
- Parameters:
s
- [in] scalar to divide with.- Returns:
- new polynomial after division.
-
addAssign
public Polynomiald addAssign(double s)
Scalar addition- Parameters:
s
- [in] scalar to add.- Returns:
- same polynomial with coefficients changed.
-
subtractAssign
public Polynomiald subtractAssign(double s)
Scalar subtraction- Parameters:
s
- [in] scalar to subtract.- Returns:
- same polynomial with coefficients changed.
-
multiplyAssign
public Polynomiald multiplyAssign(double s)
Scalar multiplication- Overrides:
multiplyAssign
in classPolynomialNDdDouble
- Parameters:
s
- [in] the scalar to multiply with.- Returns:
- reference to same polynomial with changed coefficients.
-
devideAssign
public Polynomiald devideAssign(double s)
Scalar division- Overrides:
devideAssign
in classPolynomialNDdDouble
- Parameters:
s
- [in] the scalar to divide with.- Returns:
- reference to same polynomial with changed coefficients.
-
subtract
public Polynomiald subtract(Polynomiald b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial of to subtract.- Returns:
- new polynomial after subtraction.
-
subtractAssign
public Polynomiald subtractAssign(Polynomiald b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial to subtract.- Returns:
- same polynomial with different coefficients after subtraction.
-
add
public Polynomiald add(Polynomiald b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- new polynomial after addition.
-
addAssign
public Polynomiald addAssign(Polynomiald b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- same polynomial with different coefficients after addition.
-
negate
public Polynomiald negate()
Negate coefficients.- Overrides:
negate
in classPolynomialNDdDouble
- Returns:
- new polynomial with coefficients negated.
-
equals
public boolean equals(Polynomiald b)
Check if polynomials are equal.- Parameters:
b
- [in] the polynomial to compare with.- Returns:
- true if equal, false if not.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classPolynomialNDdDouble
-
get
public double get(long i)
- Overrides:
get
in classPolynomialNDdDouble
-
set
public void set(long i, double d)
- Overrides:
set
in classPolynomialNDdDouble
-
-