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 Polynomialfadd(float s)Scalar additionPolynomialfadd(Polynomialf b)Polynomial addition.PolynomialfaddAssign(float s)Scalar additionPolynomialfaddAssign(Polynomialf b)Polynomial addition.Polynomialfdeflate(float x)<T,T>::deflatevoiddelete()Polynomialfderivative()<T,T>::derivativePolynomialfderivative(long n)<T,T>::derivativePolynomialfdevideAssign(float s)Scalar divisionPolynomialfdivide(float s)Scalar divisionbooleanequals(Polynomialf b)Check if polynomials are equal.floatevaluate(float x)<T,T>::evaluateVectorFloatevaluateDerivatives(float x)<T,T>::evaluateDerivativesVectorFloatevaluateDerivatives(float x, long n)<T,T>::evaluateDerivativesfloatget(long i)static longgetCPtr(Polynomialf obj)Polynomialfmultiply(float s)Scalar multiplicationPolynomialNDEigenMatrix3fFloatmultiply(EigenMatrix3f A)Multiply polynomial with scalar coefficients with a matrix.
PolynomialNDEigenRowVector3fFloatmultiply(EigenRowVector3f a)rw::math::Polynomial<T>&, const Eigen::Matrix<T,3,1>&)PolynomialNDEigenVector3fFloatmultiply(EigenVector3f a)Multiply polynomial with scalar coefficients with a vector.
Polynomialfmultiply(Polynomialf polynomial)Polynomial multiplication
This multiplication functions uses a convolution of the coefficients.
More efficient implementations are possible.
PolynomialNDEigenMatrix3fFloatmultiply(PolynomialNDEigenMatrix3fFloat polynomial)Multiply polynomial with scalar coefficients with a 3D polynomial matrix.
PolynomialNDEigenRowVector3fFloatmultiply(PolynomialNDEigenRowVector3fFloat polynomial)PolynomialNDEigenVector3fFloatmultiply(PolynomialNDEigenVector3fFloat polynomial)Multiply polynomial with scalar coefficients with a 3D polynomial vector.
PolynomialfmultiplyAssign(float s)Scalar multiplicationPolynomialfnegate()Negate coefficients.voidset(long i, float d)Polynomialfsubtract(float s)Scalar subtractionPolynomialfsubtract(Polynomialf b)Polynomial subtraction.PolynomialfsubtractAssign(float s)Scalar subtractionPolynomialfsubtractAssign(Polynomialf b)Polynomial subtraction.java.lang.StringtoString()-
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:
deletein classPolynomialNDfFloat
-
evaluate
public float evaluate(float x)
<T,T>::evaluate- Overrides:
evaluatein classPolynomialNDfFloat- Parameters:
x- [in] the input parameter.- Returns:
- the value f(x) .
-
evaluateDerivatives
public VectorFloat evaluateDerivatives(float x, long n)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivativesin 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:
evaluateDerivativesin 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:
deflatein 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:
derivativein 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:
derivativein 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:
multiplyin 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:
dividein 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:
multiplyAssignin 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:
devideAssignin 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:
negatein 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:
toStringin classPolynomialNDfFloat
-
get
public float get(long i)
- Overrides:
getin classPolynomialNDfFloat
-
set
public void set(long i, float d)- Overrides:
setin classPolynomialNDfFloat
-
-