Package org.robwork.sdurw
Class PolynomialNDEigenVector3idComplexDouble
- java.lang.Object
-
- org.robwork.sdurw.PolynomialNDEigenVector3idComplexDouble
-
public class PolynomialNDEigenVector3idComplexDouble extends java.lang.Object
Representation of a polynomial that can have non-scalar coefficients (polynomial
matrix).
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 PolynomialNDEigenVector3idComplexDouble(long order)
Create polynomial with uninitialized coefficients.PolynomialNDEigenVector3idComplexDouble(long cPtr, boolean cMemoryOwn)
PolynomialNDEigenVector3idComplexDouble(PolynomialNDEigenVector3idComplexDouble p)
Create polynomial from other polynomial.PolynomialNDEigenVector3idComplexDouble(VectorEigenVector3id coefficients)
Create polynomial from vector.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PolynomialNDEigenVector3idComplexDouble
add(PolynomialNDEigenVector3idComplexDouble b)
Polynomial addition.PolynomialNDEigenVector3idComplexDouble
deflate(complexd x)
Perform deflation of polynomial.void
delete()
PolynomialNDEigenVector3idComplexDouble
derivative()
Get the derivative polynomial.
PolynomialNDEigenVector3idComplexDouble
derivative(long n)
Get the derivative polynomial.PolynomialNDEigenVector3idComplexDouble
devideAssign(complexd s)
PolynomialNDEigenVector3idComplexDouble
divide(complexd s)
Scalar divisionboolean
equals(PolynomialNDEigenVector3idComplexDouble b)
Check if polynomials are equal.EigenVector3id
evaluate(complexd x)
Evaluate the polynomial using Horner's Method.VectorEigenVector3id
evaluateDerivatives(complexd x)
Evaluate the first n derivatives of the polynomial using Horner's Method.VectorEigenVector3id
evaluateDerivatives(complexd x, long n)
Evaluate the first n derivatives of the polynomial using Horner's Method.EigenVector3id
get(long i)
static long
getCPtr(PolynomialNDEigenVector3idComplexDouble obj)
void
increaseOrder()
Increase the order of this polynomial.
Note: see increaseOrder(std::size_t,const Coef&) for a version that initializes the new
coefficients to a certain value.void
increaseOrder(long increase)
Increase the order of this polynomial.void
increaseOrder(long increase, EigenVector3id value)
Increase the order of this polynomial.PolynomialNDEigenVector3idComplexDouble
multiply(complexd s)
Scalar multiplicationPolynomialNDEigenVector3idComplexDouble
multiplyAssign(complexd s)
PolynomialNDEigenVector3idComplexDouble
negate()
Negate coefficients.long
order()
Get the order of the polynomial (the highest power).void
set(long i, EigenVector3id d)
PolynomialNDEigenVector3idComplexDouble
subtract(PolynomialNDEigenVector3idComplexDouble b)
Polynomial subtraction.java.lang.String
toString()
-
-
-
Constructor Detail
-
PolynomialNDEigenVector3idComplexDouble
public PolynomialNDEigenVector3idComplexDouble(long cPtr, boolean cMemoryOwn)
-
PolynomialNDEigenVector3idComplexDouble
public PolynomialNDEigenVector3idComplexDouble(long order)
Create polynomial with uninitialized coefficients.- Parameters:
order
- [in] the order of the polynomial.
-
PolynomialNDEigenVector3idComplexDouble
public PolynomialNDEigenVector3idComplexDouble(VectorEigenVector3id coefficients)
Create polynomial from vector.- Parameters:
coefficients
- [in] the coefficients ordered from lowest-order term to highest-order
term.
-
PolynomialNDEigenVector3idComplexDouble
public PolynomialNDEigenVector3idComplexDouble(PolynomialNDEigenVector3idComplexDouble p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
-
Method Detail
-
getCPtr
public static long getCPtr(PolynomialNDEigenVector3idComplexDouble obj)
-
delete
public void delete()
-
order
public long order()
Get the order of the polynomial (the highest power).- Returns:
- the order.
-
increaseOrder
public void increaseOrder(long increase)
Increase the order of this polynomial.- Parameters:
increase
- [in] how much to increase the order (default is 1).
Note: see increaseOrder(std::size_t,const Coef&) for a version that initializes the new
coefficients to a certain value.
-
increaseOrder
public void increaseOrder()
Increase the order of this polynomial.
Note: see increaseOrder(std::size_t,const Coef&) for a version that initializes the new
coefficients to a certain value.
-
increaseOrder
public void increaseOrder(long increase, EigenVector3id value)
Increase the order of this polynomial.- Parameters:
increase
- [in] how much to increase the order (default is 1).value
- [in] initialize new coefficients to this value.
-
evaluate
public EigenVector3id evaluate(complexd x)
Evaluate the polynomial using Horner's Method.- Parameters:
x
- [in] the input parameter.- Returns:
- the value f(x) .
-
evaluateDerivatives
public VectorEigenVector3id evaluateDerivatives(complexd x, long n)
Evaluate the first n derivatives of the polynomial using Horner's Method.- 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 VectorEigenVector3id evaluateDerivatives(complexd x)
Evaluate the first n derivatives of the polynomial using Horner's Method.- Parameters:
x
- [in] the input parameter.
- Returns:
- a vector of values {f(x),\dot{f}(x),\ddot{f}(x),\cdots} .
-
deflate
public PolynomialNDEigenVector3idComplexDouble deflate(complexd x)
Perform deflation of polynomial.- 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 PolynomialNDEigenVector3idComplexDouble derivative(long n)
Get the derivative polynomial.- 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 PolynomialNDEigenVector3idComplexDouble derivative()
Get the derivative polynomial.
- Returns:
- a new polynomial of same order minus one.
Note: To evaluate derivatives use the evaluate derivative method which is more precise.
-
multiply
public PolynomialNDEigenVector3idComplexDouble multiply(complexd s)
Scalar multiplication- Parameters:
s
- [in] scalar to multiply with.- Returns:
- new polynomial after multiplication.
-
divide
public PolynomialNDEigenVector3idComplexDouble divide(complexd s)
Scalar division- Parameters:
s
- [in] scalar to divide with.- Returns:
- new polynomial after division.
-
multiplyAssign
public PolynomialNDEigenVector3idComplexDouble multiplyAssign(complexd s)
-
devideAssign
public PolynomialNDEigenVector3idComplexDouble devideAssign(complexd s)
-
subtract
public PolynomialNDEigenVector3idComplexDouble subtract(PolynomialNDEigenVector3idComplexDouble b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial of to subtract.- Returns:
- new polynomial after subtraction.
-
add
public PolynomialNDEigenVector3idComplexDouble add(PolynomialNDEigenVector3idComplexDouble b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- new polynomial after addition.
-
negate
public PolynomialNDEigenVector3idComplexDouble negate()
Negate coefficients.- Returns:
- new polynomial with coefficients negated.
-
equals
public boolean equals(PolynomialNDEigenVector3idComplexDouble 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 classjava.lang.Object
-
get
public EigenVector3id get(long i)
-
set
public void set(long i, EigenVector3id d)
-
-