Package org.robwork.sdurw
Class Polynomialf
- java.lang.Object
-
- org.robwork.sdurw.PolynomialNDfFloat
-
- org.robwork.sdurw.Polynomialf
-
public class Polynomialf extends PolynomialNDfFloat
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 Polynomialf(long order)
Create polynomial with coefficients initialized to zero.Polynomialf(long cPtr, boolean cMemoryOwn)
Polynomialf(VectorFloat coefficients)
Create polynomial from vector.Polynomialf(Polynomialf p)
Create polynomial from other polynomial.Polynomialf(PolynomialNDfFloat p)
Create polynomial from other polynomial.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Polynomialf
add(float s)
Scalar additionPolynomialf
add(Polynomialf b)
Polynomial addition.Polynomialf
addAssign(float s)
Scalar additionPolynomialf
addAssign(Polynomialf b)
Polynomial addition.Polynomialf
deflate(float x)
<T,T>::deflatevoid
delete()
Polynomialf
derivative()
<T,T>::derivativePolynomialf
derivative(long n)
<T,T>::derivativePolynomialf
devideAssign(float s)
Scalar divisionPolynomialf
divide(float s)
Scalar divisionboolean
equals(Polynomialf b)
Check if polynomials are equal.float
evaluate(float x)
<T,T>::evaluateVectorFloat
evaluateDerivatives(float x)
<T,T>::evaluateDerivativesVectorFloat
evaluateDerivatives(float x, long n)
<T,T>::evaluateDerivativesfloat
get(long i)
static long
getCPtr(Polynomialf obj)
Polynomialf
multiply(float s)
Scalar multiplicationPolynomialNDEigenMatrix3fFloat
multiply(EigenMatrix3f A)
Multiply polynomial with scalar coefficients with a matrix.
PolynomialNDEigenRowVector3fFloat
multiply(EigenRowVector3f a)
rw::math::Polynomial<T>&, const Eigen::Matrix<T,3,1>&)PolynomialNDEigenVector3fFloat
multiply(EigenVector3f a)
Multiply polynomial with scalar coefficients with a vector.
Polynomialf
multiply(Polynomialf polynomial)
Polynomial multiplication
This multiplication functions uses a convolution of the coefficients.
More efficient implementations are possible.
PolynomialNDEigenMatrix3fFloat
multiply(PolynomialNDEigenMatrix3fFloat polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial matrix.
PolynomialNDEigenRowVector3fFloat
multiply(PolynomialNDEigenRowVector3fFloat polynomial)
PolynomialNDEigenVector3fFloat
multiply(PolynomialNDEigenVector3fFloat polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial vector.
Polynomialf
multiplyAssign(float s)
Scalar multiplicationPolynomialf
negate()
Negate coefficients.void
set(long i, float d)
Polynomialf
subtract(float s)
Scalar subtractionPolynomialf
subtract(Polynomialf b)
Polynomial subtraction.Polynomialf
subtractAssign(float s)
Scalar subtractionPolynomialf
subtractAssign(Polynomialf b)
Polynomial subtraction.java.lang.String
toString()
-
Methods inherited from class org.robwork.sdurw.PolynomialNDfFloat
add, equals, getCPtr, increaseOrder, increaseOrder, increaseOrder, order, subtract
-
-
-
-
Constructor Detail
-
Polynomialf
public Polynomialf(long cPtr, boolean cMemoryOwn)
-
Polynomialf
public Polynomialf(long order)
Create polynomial with coefficients initialized to zero.- Parameters:
order
- [in] the order of the polynomial.
-
Polynomialf
public Polynomialf(VectorFloat coefficients)
Create polynomial from vector.- Parameters:
coefficients
- [in] the coefficients ordered from lowest-order term to highest-order
term.
-
Polynomialf
public Polynomialf(Polynomialf p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
Polynomialf
public Polynomialf(PolynomialNDfFloat p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
-
Method Detail
-
getCPtr
public static long getCPtr(Polynomialf obj)
-
delete
public void delete()
- Overrides:
delete
in classPolynomialNDfFloat
-
evaluate
public float evaluate(float x)
<T,T>::evaluate- Overrides:
evaluate
in classPolynomialNDfFloat
- Parameters:
x
- [in] the input parameter.- Returns:
- the value f(x) .
-
evaluateDerivatives
public VectorFloat evaluateDerivatives(float x, long n)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivatives
in classPolynomialNDfFloat
- 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 VectorFloat evaluateDerivatives(float x)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivatives
in classPolynomialNDfFloat
- Parameters:
x
- [in] the input parameter.
- Returns:
- a vector of values {f(x),\dot{f}(x),\ddot{f}(x),\cdots} .
-
deflate
public Polynomialf deflate(float x)
<T,T>::deflate- Overrides:
deflate
in classPolynomialNDfFloat
- 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 Polynomialf derivative(long n)
<T,T>::derivative- Overrides:
derivative
in classPolynomialNDfFloat
- 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 Polynomialf derivative()
<T,T>::derivative- Overrides:
derivative
in classPolynomialNDfFloat
- Returns:
- a new polynomial of same order minus one.
Note: To evaluate derivatives use the evaluate derivative method which is more precise.
-
add
public Polynomialf add(float s)
Scalar addition- Parameters:
s
- [in] scalar to add.- Returns:
- new polynomial after addition.
-
subtract
public Polynomialf subtract(float s)
Scalar subtraction- Parameters:
s
- [in] scalar to subtract.- Returns:
- new polynomial after subtraction.
-
multiply
public Polynomialf multiply(float s)
Scalar multiplication- Overrides:
multiply
in classPolynomialNDfFloat
- Parameters:
s
- [in] scalar to multiply with.- Returns:
- new polynomial after multiplication.
-
multiply
public Polynomialf multiply(Polynomialf 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 PolynomialNDEigenVector3fFloat multiply(PolynomialNDEigenVector3fFloat polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial vector.
- Parameters:
polynomial
- [in] polynomial vector.- Returns:
- a 3D polynomial vector.
-
multiply
public PolynomialNDEigenRowVector3fFloat multiply(PolynomialNDEigenRowVector3fFloat polynomial)
-
multiply
public PolynomialNDEigenMatrix3fFloat multiply(PolynomialNDEigenMatrix3fFloat polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial matrix.
- Parameters:
polynomial
- [in] polynomial matrix.- Returns:
- a 3D polynomial matrix.
-
multiply
public PolynomialNDEigenVector3fFloat multiply(EigenVector3f a)
Multiply polynomial with scalar coefficients with a vector.
- Parameters:
a
- [in] vector to multiply with.- Returns:
- a 3D polynomial vector.
-
multiply
public PolynomialNDEigenRowVector3fFloat multiply(EigenRowVector3f a)
rw::math::Polynomial<T>&, const Eigen::Matrix<T,3,1>&)
-
multiply
public PolynomialNDEigenMatrix3fFloat multiply(EigenMatrix3f A)
Multiply polynomial with scalar coefficients with a matrix.
- Parameters:
A
- [in] matrix to multiply with.- Returns:
- a 3D polynomial matrix.
-
divide
public Polynomialf divide(float s)
Scalar division- Overrides:
divide
in classPolynomialNDfFloat
- Parameters:
s
- [in] scalar to divide with.- Returns:
- new polynomial after division.
-
addAssign
public Polynomialf addAssign(float s)
Scalar addition- Parameters:
s
- [in] scalar to add.- Returns:
- same polynomial with coefficients changed.
-
subtractAssign
public Polynomialf subtractAssign(float s)
Scalar subtraction- Parameters:
s
- [in] scalar to subtract.- Returns:
- same polynomial with coefficients changed.
-
multiplyAssign
public Polynomialf multiplyAssign(float s)
Scalar multiplication- Overrides:
multiplyAssign
in classPolynomialNDfFloat
- Parameters:
s
- [in] the scalar to multiply with.- Returns:
- reference to same polynomial with changed coefficients.
-
devideAssign
public Polynomialf devideAssign(float s)
Scalar division- Overrides:
devideAssign
in classPolynomialNDfFloat
- Parameters:
s
- [in] the scalar to divide with.- Returns:
- reference to same polynomial with changed coefficients.
-
subtract
public Polynomialf subtract(Polynomialf b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial of to subtract.- Returns:
- new polynomial after subtraction.
-
subtractAssign
public Polynomialf subtractAssign(Polynomialf b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial to subtract.- Returns:
- same polynomial with different coefficients after subtraction.
-
add
public Polynomialf add(Polynomialf b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- new polynomial after addition.
-
addAssign
public Polynomialf addAssign(Polynomialf b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- same polynomial with different coefficients after addition.
-
negate
public Polynomialf negate()
Negate coefficients.- Overrides:
negate
in classPolynomialNDfFloat
- Returns:
- new polynomial with coefficients negated.
-
equals
public boolean equals(Polynomialf 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 classPolynomialNDfFloat
-
get
public float get(long i)
- Overrides:
get
in classPolynomialNDfFloat
-
set
public void set(long i, float d)
- Overrides:
set
in classPolynomialNDfFloat
-
-