Class PolynomialNDEigenRowVector3dDouble


  • public class PolynomialNDEigenRowVector3dDouble
    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 Detail

      • PolynomialNDEigenRowVector3dDouble

        public PolynomialNDEigenRowVector3dDouble​(long cPtr,
                                                  boolean cMemoryOwn)
      • PolynomialNDEigenRowVector3dDouble

        public PolynomialNDEigenRowVector3dDouble​(long order)
        Create polynomial with uninitialized coefficients.
        Parameters:
        order - [in] the order of the polynomial.
      • PolynomialNDEigenRowVector3dDouble

        public PolynomialNDEigenRowVector3dDouble​(VectorEigenRowVector3d coefficients)
        Create polynomial from vector.
        Parameters:
        coefficients - [in] the coefficients ordered from lowest-order term to highest-order
        term.
      • PolynomialNDEigenRowVector3dDouble

        public PolynomialNDEigenRowVector3dDouble​(PolynomialNDEigenRowVector3dDouble p)
        Create polynomial from other polynomial.
        Parameters:
        p - [in] the polynomial to copy.
    • Method Detail

      • 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,
                                  EigenRowVector3d 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 EigenRowVector3d evaluate​(double x)
        Evaluate the polynomial using Horner's Method.
        Parameters:
        x - [in] the input parameter.
        Returns:
        the value f(x).
      • evaluateDerivatives

        public VectorEigenRowVector3d evaluateDerivatives​(double 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 VectorEigenRowVector3d evaluateDerivatives​(double 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 PolynomialNDEigenRowVector3dDouble deflate​(double 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 PolynomialNDEigenRowVector3dDouble 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 PolynomialNDEigenRowVector3dDouble 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 PolynomialNDEigenRowVector3dDouble multiply​(double s)
        Scalar multiplication
        Parameters:
        s - [in] scalar to multiply with.
        Returns:
        new polynomial after multiplication.
      • divide

        public PolynomialNDEigenRowVector3dDouble divide​(double s)
        Scalar division
        Parameters:
        s - [in] scalar to divide with.
        Returns:
        new polynomial after division.
      • multiplyAssign

        public PolynomialNDEigenRowVector3dDouble multiplyAssign​(double s)
        Scalar multiplication
        Parameters:
        s - [in] the scalar to multiply with.
        Returns:
        reference to same polynomial with changed coefficients.
      • devideAssign

        public PolynomialNDEigenRowVector3dDouble devideAssign​(double s)
        Scalar division
        Parameters:
        s - [in] the scalar to divide with.
        Returns:
        reference to same polynomial with changed coefficients.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(PolynomialNDEigenRowVector3dDouble b)
        Check if polynomials are equal.
        Parameters:
        b - [in] the polynomial to compare with.
        Returns:
        true if equal, false if not.