Class PolynomialNDdDouble

  • Direct Known Subclasses:
    Polynomiald

    public class PolynomialNDdDouble
    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

      • PolynomialNDdDouble

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

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

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

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

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

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

        public PolynomialNDdDouble subtract​(PolynomialNDdDouble b)
        Polynomial subtraction.
        Parameters:
        b - [in] polynomial of to subtract.
        Returns:
        new polynomial after subtraction.
      • negate

        public PolynomialNDdDouble negate()
        Negate coefficients.
        Returns:
        new polynomial with coefficients negated.
      • equals

        public boolean equals​(PolynomialNDdDouble 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 class java.lang.Object
      • get

        public double get​(long i)
      • set

        public void set​(long i,
                        double d)