Class Polynomiald


  • public class Polynomiald
    extends PolynomialNDdDouble
    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 Detail

      • Polynomiald

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

        public Polynomiald​(long order)
        Create polynomial with coefficients initialized to zero.
        Parameters:
        order - [in] the order of the polynomial.
      • Polynomiald

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

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

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

      • getCPtr

        public static long getCPtr​(Polynomiald obj)
      • evaluate

        public double evaluate​(double x)
        <T,T>::evaluate
        Overrides:
        evaluate in class PolynomialNDdDouble
        Parameters:
        x - [in] the input parameter.
        Returns:
        the value f(x) .
      • evaluateDerivatives

        public VectorDouble evaluateDerivatives​(double x,
                                                long n)
        <T,T>::evaluateDerivatives
        Overrides:
        evaluateDerivatives in class PolynomialNDdDouble
        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)
        <T,T>::evaluateDerivatives
        Overrides:
        evaluateDerivatives in class PolynomialNDdDouble
        Parameters:
        x - [in] the input parameter.

        Returns:
        a vector of values {f(x),\dot{f}(x),\ddot{f}(x),\cdots} .
      • deflate

        public Polynomiald deflate​(double x)
        <T,T>::deflate
        Overrides:
        deflate in class PolynomialNDdDouble
        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 Polynomiald derivative​(long n)
        <T,T>::derivative
        Overrides:
        derivative in class PolynomialNDdDouble
        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 Polynomiald derivative()
        <T,T>::derivative
        Overrides:
        derivative in class PolynomialNDdDouble
        Returns:
        a new polynomial of same order minus one.
        Note: To evaluate derivatives use the evaluate derivative method which is more precise.
      • add

        public Polynomiald add​(double s)
        Scalar addition
        Parameters:
        s - [in] scalar to add.
        Returns:
        new polynomial after addition.
      • subtract

        public Polynomiald subtract​(double s)
        Scalar subtraction
        Parameters:
        s - [in] scalar to subtract.
        Returns:
        new polynomial after subtraction.
      • multiply

        public Polynomiald multiply​(double s)
        Scalar multiplication
        Overrides:
        multiply in class PolynomialNDdDouble
        Parameters:
        s - [in] scalar to multiply with.
        Returns:
        new polynomial after multiplication.
      • multiply

        public Polynomiald multiply​(Polynomiald 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 PolynomialNDEigenVector3dDouble multiply​(EigenVector3d a)
        Multiply polynomial with scalar coefficients with a vector.

        Parameters:
        a - [in] vector to multiply with.
        Returns:
        a 3D polynomial vector.
      • multiply

        public PolynomialNDEigenMatrix3dDouble multiply​(EigenMatrix3d A)
        Multiply polynomial with scalar coefficients with a matrix.

        Parameters:
        A - [in] matrix to multiply with.
        Returns:
        a 3D polynomial matrix.
      • divide

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

        public Polynomiald addAssign​(double s)
        Scalar addition
        Parameters:
        s - [in] scalar to add.
        Returns:
        same polynomial with coefficients changed.
      • subtractAssign

        public Polynomiald subtractAssign​(double s)
        Scalar subtraction
        Parameters:
        s - [in] scalar to subtract.
        Returns:
        same polynomial with coefficients changed.
      • multiplyAssign

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

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

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

        public Polynomiald subtractAssign​(Polynomiald b)
        Polynomial subtraction.
        Parameters:
        b - [in] polynomial to subtract.
        Returns:
        same polynomial with different coefficients after subtraction.
      • add

        public Polynomiald add​(Polynomiald b)
        Polynomial addition.
        Parameters:
        b - [in] polynomial to add.
        Returns:
        new polynomial after addition.
      • addAssign

        public Polynomiald addAssign​(Polynomiald b)
        Polynomial addition.
        Parameters:
        b - [in] polynomial to add.
        Returns:
        same polynomial with different coefficients after addition.
      • equals

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