Package org.robwork.sdurw
Class Polynomialid
- java.lang.Object
-
- org.robwork.sdurw.PolynomialNDidComplexDouble
-
- org.robwork.sdurw.Polynomialid
-
public class Polynomialid extends PolynomialNDidComplexDouble
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 Polynomialid(long order)
Create polynomial with coefficients initialized to zero.Polynomialid(long cPtr, boolean cMemoryOwn)
Polynomialid(VectorComplexDouble coefficients)
Create polynomial from vector.Polynomialid(Polynomialid p)
Create polynomial from other polynomial.Polynomialid(PolynomialNDidComplexDouble p)
Create polynomial from other polynomial.
-
Method Summary
-
Methods inherited from class org.robwork.sdurw.PolynomialNDidComplexDouble
add, equals, getCPtr, increaseOrder, increaseOrder, increaseOrder, order, subtract
-
-
-
-
Constructor Detail
-
Polynomialid
public Polynomialid(long cPtr, boolean cMemoryOwn)
-
Polynomialid
public Polynomialid(long order)
Create polynomial with coefficients initialized to zero.- Parameters:
order
- [in] the order of the polynomial.
-
Polynomialid
public Polynomialid(VectorComplexDouble coefficients)
Create polynomial from vector.- Parameters:
coefficients
- [in] the coefficients ordered from lowest-order term to highest-order
term.
-
Polynomialid
public Polynomialid(Polynomialid p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
Polynomialid
public Polynomialid(PolynomialNDidComplexDouble p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
-
Method Detail
-
getCPtr
public static long getCPtr(Polynomialid obj)
-
delete
public void delete()
- Overrides:
delete
in classPolynomialNDidComplexDouble
-
evaluate
public complexd evaluate(complexd x)
<T,T>::evaluate- Overrides:
evaluate
in classPolynomialNDidComplexDouble
- Parameters:
x
- [in] the input parameter.- Returns:
- the value f(x) .
-
evaluateDerivatives
public VectorComplexDouble evaluateDerivatives(complexd x, long n)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivatives
in classPolynomialNDidComplexDouble
- 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 VectorComplexDouble evaluateDerivatives(complexd x)
<T,T>::evaluateDerivatives- Overrides:
evaluateDerivatives
in classPolynomialNDidComplexDouble
- Parameters:
x
- [in] the input parameter.
- Returns:
- a vector of values {f(x),\dot{f}(x),\ddot{f}(x),\cdots} .
-
deflate
public Polynomialid deflate(complexd x)
<T,T>::deflate- Overrides:
deflate
in classPolynomialNDidComplexDouble
- 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 Polynomialid derivative(long n)
<T,T>::derivative- Overrides:
derivative
in classPolynomialNDidComplexDouble
- 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 Polynomialid derivative()
<T,T>::derivative- Overrides:
derivative
in classPolynomialNDidComplexDouble
- Returns:
- a new polynomial of same order minus one.
Note: To evaluate derivatives use the evaluate derivative method which is more precise.
-
add
public Polynomialid add(complexd s)
Scalar addition- Parameters:
s
- [in] scalar to add.- Returns:
- new polynomial after addition.
-
subtract
public Polynomialid subtract(complexd s)
Scalar subtraction- Parameters:
s
- [in] scalar to subtract.- Returns:
- new polynomial after subtraction.
-
multiply
public Polynomialid multiply(complexd s)
Scalar multiplication- Overrides:
multiply
in classPolynomialNDidComplexDouble
- Parameters:
s
- [in] scalar to multiply with.- Returns:
- new polynomial after multiplication.
-
multiply
public Polynomialid multiply(Polynomialid 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 PolynomialNDEigenVector3idComplexDouble multiply(PolynomialNDEigenVector3idComplexDouble polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial vector.
- Parameters:
polynomial
- [in] polynomial vector.- Returns:
- a 3D polynomial vector.
-
multiply
public PolynomialNDEigenRowVector3idComplexDouble multiply(PolynomialNDEigenRowVector3idComplexDouble polynomial)
-
multiply
public SWIGTYPE_p_rw__math__PolynomialNDT_Eigen__MatrixT_std__complexT_double_t_3_3_t_std__complexT_double_t_t multiply(SWIGTYPE_p_rw__math__PolynomialNDT_Eigen__MatrixT_std__complexT_double_t_3_3_t_std__complexT_double_t_t polynomial)
Multiply polynomial with scalar coefficients with a 3D polynomial matrix.
- Parameters:
polynomial
- [in] polynomial matrix.- Returns:
- a 3D polynomial matrix.
-
multiply
public PolynomialNDEigenVector3idComplexDouble multiply(EigenVector3id a)
Multiply polynomial with scalar coefficients with a vector.
- Parameters:
a
- [in] vector to multiply with.- Returns:
- a 3D polynomial vector.
-
multiply
public PolynomialNDEigenRowVector3idComplexDouble multiply(EigenRowVector3id a)
rw::math::Polynomial<T>&, const Eigen::Matrix<T,3,1>&)
-
multiply
public SWIGTYPE_p_rw__math__PolynomialNDT_Eigen__MatrixT_std__complexT_double_t_3_3_t_std__complexT_double_t_t multiply(EigenMatrix3id A)
Multiply polynomial with scalar coefficients with a matrix.
- Parameters:
A
- [in] matrix to multiply with.- Returns:
- a 3D polynomial matrix.
-
divide
public Polynomialid divide(complexd s)
Scalar division- Overrides:
divide
in classPolynomialNDidComplexDouble
- Parameters:
s
- [in] scalar to divide with.- Returns:
- new polynomial after division.
-
addAssign
public Polynomialid addAssign(complexd s)
Scalar addition- Parameters:
s
- [in] scalar to add.- Returns:
- same polynomial with coefficients changed.
-
subtractAssign
public Polynomialid subtractAssign(complexd s)
Scalar subtraction- Parameters:
s
- [in] scalar to subtract.- Returns:
- same polynomial with coefficients changed.
-
multiplyAssign
public Polynomialid multiplyAssign(complexd s)
Scalar multiplication- Overrides:
multiplyAssign
in classPolynomialNDidComplexDouble
- Parameters:
s
- [in] the scalar to multiply with.- Returns:
- reference to same polynomial with changed coefficients.
-
devideAssign
public Polynomialid devideAssign(complexd s)
Scalar division- Overrides:
devideAssign
in classPolynomialNDidComplexDouble
- Parameters:
s
- [in] the scalar to divide with.- Returns:
- reference to same polynomial with changed coefficients.
-
subtract
public Polynomialid subtract(Polynomialid b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial of to subtract.- Returns:
- new polynomial after subtraction.
-
subtractAssign
public Polynomialid subtractAssign(Polynomialid b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial to subtract.- Returns:
- same polynomial with different coefficients after subtraction.
-
add
public Polynomialid add(Polynomialid b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- new polynomial after addition.
-
addAssign
public Polynomialid addAssign(Polynomialid b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- same polynomial with different coefficients after addition.
-
negate
public Polynomialid negate()
Negate coefficients.- Overrides:
negate
in classPolynomialNDidComplexDouble
- Returns:
- new polynomial with coefficients negated.
-
equals
public boolean equals(Polynomialid 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 classPolynomialNDidComplexDouble
-
get
public complexd get(long i)
- Overrides:
get
in classPolynomialNDidComplexDouble
-
set
public void set(long i, complexd d)
- Overrides:
set
in classPolynomialNDidComplexDouble
-
-