Package org.robwork.sdurw_math
Class PolynomialNDidComplexDouble
- java.lang.Object
-
- org.robwork.sdurw_math.PolynomialNDidComplexDouble
-
public class PolynomialNDidComplexDouble 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 PolynomialNDidComplexDouble(long order)
Create polynomial with uninitialized coefficients.PolynomialNDidComplexDouble(long cPtr, boolean cMemoryOwn)
PolynomialNDidComplexDouble(VectorComplexDouble coefficients)
Create polynomial from vector.PolynomialNDidComplexDouble(PolynomialNDidComplexDouble p)
Create polynomial from other polynomial.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PolynomialNDidComplexDouble
add(PolynomialNDidComplexDouble b)
Polynomial addition.PolynomialNDidComplexDouble
addAssign(PolynomialNDidComplexDouble b)
Polynomial addition.void
assign(PolynomialNDidComplexDouble b)
Assignment.PolynomialNDidComplexDouble
deflate(complexd x)
Perform deflation of polynomial.void
delete()
PolynomialNDidComplexDouble
derivative()
Get the derivative polynomial.
PolynomialNDidComplexDouble
derivative(long n)
Get the derivative polynomial.PolynomialNDidComplexDouble
devideAssign(complexd s)
Scalar divisionPolynomialNDidComplexDouble
divide(complexd s)
Scalar divisionboolean
equals(PolynomialNDidComplexDouble b)
Check if polynomials are equal.complexd
evaluate(complexd x)
Evaluate the polynomial using Horner's Method.VectorComplexDouble
evaluateDerivatives(complexd x)
Evaluate the first n derivatives of the polynomial using Horner's Method.VectorComplexDouble
evaluateDerivatives(complexd x, long n)
Evaluate the first n derivatives of the polynomial using Horner's Method.complexd
get(long i)
static long
getCPtr(PolynomialNDidComplexDouble obj)
void
increaseOrder()
void
increaseOrder(long increase)
void
increaseOrder(long increase, complexd value)
Increase the order of this polynomial.PolynomialNDidComplexDouble
multiply(complexd s)
Scalar multiplicationPolynomialNDidComplexDouble
multiplyAssign(complexd s)
Scalar multiplicationPolynomialNDidComplexDouble
negate()
Negate coefficients.long
order()
Get the order of the polynomial (the highest power).void
set(long i, complexd d)
PolynomialNDidComplexDouble
subtract(PolynomialNDidComplexDouble b)
Polynomial subtraction.PolynomialNDidComplexDouble
subtractAssign(PolynomialNDidComplexDouble b)
Polynomial subtraction.java.lang.String
toString()
-
-
-
Constructor Detail
-
PolynomialNDidComplexDouble
public PolynomialNDidComplexDouble(long cPtr, boolean cMemoryOwn)
-
PolynomialNDidComplexDouble
public PolynomialNDidComplexDouble(long order)
Create polynomial with uninitialized coefficients.- Parameters:
order
- [in] the order of the polynomial.
-
PolynomialNDidComplexDouble
public PolynomialNDidComplexDouble(VectorComplexDouble coefficients)
Create polynomial from vector.- Parameters:
coefficients
- [in] the coefficients ordered from lowest-order term to highest-order
term.
-
PolynomialNDidComplexDouble
public PolynomialNDidComplexDouble(PolynomialNDidComplexDouble p)
Create polynomial from other polynomial.- Parameters:
p
- [in] the polynomial to copy.
-
-
Method Detail
-
getCPtr
public static long getCPtr(PolynomialNDidComplexDouble 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, complexd 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.
-
increaseOrder
public void increaseOrder(long increase)
-
increaseOrder
public void increaseOrder()
-
evaluate
public complexd evaluate(complexd x)
Evaluate the polynomial using Horner's Method.- Parameters:
x
- [in] the input parameter.- Returns:
- the value f(x).
-
evaluateDerivatives
public VectorComplexDouble 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 VectorComplexDouble 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 PolynomialNDidComplexDouble 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 PolynomialNDidComplexDouble 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 PolynomialNDidComplexDouble 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.
-
get
public complexd get(long i)
-
set
public void set(long i, complexd d)
-
multiply
public PolynomialNDidComplexDouble multiply(complexd s)
Scalar multiplication- Parameters:
s
- [in] scalar to multiply with.- Returns:
- new polynomial after multiplication.
-
divide
public PolynomialNDidComplexDouble divide(complexd s)
Scalar division- Parameters:
s
- [in] scalar to divide with.- Returns:
- new polynomial after division.
-
multiplyAssign
public PolynomialNDidComplexDouble multiplyAssign(complexd s)
Scalar multiplication- Parameters:
s
- [in] the scalar to multiply with.- Returns:
- reference to same polynomial with changed coefficients.
-
devideAssign
public PolynomialNDidComplexDouble devideAssign(complexd s)
Scalar division- Parameters:
s
- [in] the scalar to divide with.- Returns:
- reference to same polynomial with changed coefficients.
-
subtract
public PolynomialNDidComplexDouble subtract(PolynomialNDidComplexDouble b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial of to subtract.- Returns:
- new polynomial after subtraction.
-
subtractAssign
public PolynomialNDidComplexDouble subtractAssign(PolynomialNDidComplexDouble b)
Polynomial subtraction.- Parameters:
b
- [in] polynomial to subtract.- Returns:
- same polynomial with different coefficients after subtraction.
-
add
public PolynomialNDidComplexDouble add(PolynomialNDidComplexDouble b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- new polynomial after addition.
-
addAssign
public PolynomialNDidComplexDouble addAssign(PolynomialNDidComplexDouble b)
Polynomial addition.- Parameters:
b
- [in] polynomial to add.- Returns:
- same polynomial with different coefficients after addition.
-
assign
public void assign(PolynomialNDidComplexDouble b)
Assignment.- Parameters:
b
- [in] the polynomial to take coefficients from.
-
negate
public PolynomialNDidComplexDouble negate()
Negate coefficients.- Returns:
- new polynomial with coefficients negated.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(PolynomialNDidComplexDouble b)
Check if polynomials are equal.- Parameters:
b
- [in] the polynomial to compare with.- Returns:
- true if equal, false if not.
-
-