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 Polynomialdadd(double s)Scalar additionPolynomialdadd(Polynomiald b)Polynomial addition.PolynomialdaddAssign(double s)Scalar additionPolynomialdaddAssign(Polynomiald b)Polynomial addition.Polynomialddeflate(double x)<T,T>::deflatevoiddelete()Polynomialdderivative()<T,T>::derivativePolynomialdderivative(long n)<T,T>::derivativePolynomialddevideAssign(double s)Scalar divisionPolynomialddivide(double s)Scalar divisionbooleanequals(Polynomiald b)Check if polynomials are equal.doubleevaluate(double x)<T,T>::evaluateVectorDoubleevaluateDerivatives(double x)<T,T>::evaluateDerivativesVectorDoubleevaluateDerivatives(double x, long n)<T,T>::evaluateDerivativesdoubleget(long i)static longgetCPtr(Polynomiald obj)Polynomialdmultiply(double s)Scalar multiplicationPolynomialNDEigenMatrix3dDoublemultiply(EigenMatrix3d A)Multiply polynomial with scalar coefficients with a matrix.
PolynomialNDEigenRowVector3dDoublemultiply(EigenRowVector3d a)rw::math::Polynomial<T>&, const Eigen::Matrix<T,3,1>&)PolynomialNDEigenVector3dDoublemultiply(EigenVector3d a)Multiply polynomial with scalar coefficients with a vector.
Polynomialdmultiply(Polynomiald polynomial)Polynomial multiplication
This multiplication functions uses a convolution of the coefficients.
More efficient implementations are possible.
PolynomialNDEigenMatrix3dDoublemultiply(PolynomialNDEigenMatrix3dDouble polynomial)Multiply polynomial with scalar coefficients with a 3D polynomial matrix.
PolynomialNDEigenRowVector3dDoublemultiply(PolynomialNDEigenRowVector3dDouble polynomial)PolynomialNDEigenVector3dDoublemultiply(PolynomialNDEigenVector3dDouble polynomial)Multiply polynomial with scalar coefficients with a 3D polynomial vector.
PolynomialdmultiplyAssign(double s)Scalar multiplicationPolynomialdnegate()Negate coefficients.voidset(long i, double d)Polynomialdsubtract(double s)Scalar subtractionPolynomialdsubtract(Polynomiald b)Polynomial subtraction.PolynomialdsubtractAssign(double s)Scalar subtractionPolynomialdsubtractAssign(Polynomiald b)Polynomial subtraction.java.lang.StringtoString()-
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:
deletein classPolynomialNDdDouble
-
evaluate
public double evaluate(double x)
<T,T>::evaluate- Overrides:
evaluatein classPolynomialNDdDouble- Parameters:
x- [in] the input parameter.- Returns:
- the value f(x) .
-
evaluateDerivatives
public VectorDouble evaluateDerivatives(double x, long n)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivativesin 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:
evaluateDerivativesin 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:
deflatein 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:
derivativein 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:
derivativein 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:
multiplyin 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:
dividein 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:
multiplyAssignin 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:
devideAssignin 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:
negatein 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:
toStringin classPolynomialNDdDouble
-
get
public double get(long i)
- Overrides:
getin classPolynomialNDdDouble
-
set
public void set(long i, double d)- Overrides:
setin classPolynomialNDdDouble
-
-