nonlin_polynomials Module



Contents


Interfaces

public interface assignment(=)

Defines polynomial assignment.

  • private subroutine poly_equals(x, y)

    Assigns the contents of one polynomial to another.

    Arguments

    Type IntentOptional Attributes Name
    class(polynomial), intent(inout) :: x

    The assignee.

    class(polynomial), intent(in) :: y

    The item to copy.

  • private subroutine poly_dbl_equals(x, y)

    Assigns a number to each coefficient of the polynomial.

    Arguments

    Type IntentOptional Attributes Name
    class(polynomial), intent(inout) :: x

    The assignee.

    real(kind=real64), intent(in) :: y

    The value to assign.

  • private subroutine poly_equals_array(x, y)

    Assigns the contents of an array as polynomial coefficients.

    Arguments

    Type IntentOptional Attributes Name
    class(polynomial), intent(inout) :: x

    The assignee.

    real(kind=real64), intent(in), dimension(:) :: y

    The coefficient array.

public interface operator(*)

Defines polynomial multiplication

  • private function poly_poly_mult(x, y) result(z)

    Multiplies two polynomials.

    Arguments

    Type IntentOptional Attributes Name
    class(polynomial), intent(in) :: x

    The left-hand-side argument.

    class(polynomial), intent(in) :: y

    The right-hand-side argument.

    Return Value type(polynomial)

    The resulting polynomial.

  • private function poly_dbl_mult(x, y) result(z)

    Multiplies a polynomial by a scalar value.

    Arguments

    Type IntentOptional Attributes Name
    class(polynomial), intent(in) :: x

    The left-hand-side argument.

    real(kind=real64), intent(in) :: y

    The right-hand-side argument.

    Return Value type(polynomial)

    The resulting polynomial.

  • private function dbl_poly_mult(x, y) result(z)

    Multiplies a polynomial by a scalar value.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: x

    The left-hand-side argument.

    class(polynomial), intent(in) :: y

    The right-hand-side argument.

    Return Value type(polynomial)

    The resulting polynomial.

public interface operator(+)

Defines polynomial addition.

  • private function poly_poly_add(x, y) result(z)

    Adds two polynomials.

    Arguments

    Type IntentOptional Attributes Name
    class(polynomial), intent(in) :: x

    The left-hand-side argument.

    class(polynomial), intent(in) :: y

    The right-hand-side argument.

    Return Value type(polynomial)

    The resulting polynomial.

public interface operator(-)

Defines polynomial subtraction.

  • private function poly_poly_subtract(x, y) result(z)

    Subtracts two polynomials.

    Arguments

    Type IntentOptional Attributes Name
    class(polynomial), intent(in) :: x

    The left-hand-side argument.

    class(polynomial), intent(in) :: y

    The right-hand-side argument.

    Return Value type(polynomial)

    The resulting polynomial.


Derived Types

type, public ::  polynomial

Defines a polynomial, and associated routines for performing polynomial operations.

Type-Bound Procedures

procedure , public :: companion_mtx => poly_companion_mtx Function
generic, public :: evaluate => evaluate_real, evaluate_complex
procedure , public :: fit => poly_fit Subroutine
procedure , public :: fit_thru_zero => poly_fit_thru_zero Subroutine
procedure , public :: get => get_poly_coefficient Function
procedure , public :: get_all => get_poly_coefficients Function
generic, public :: initialize => init_poly, init_poly_coeffs
procedure , public :: order => get_poly_order Function
procedure , public :: roots => poly_roots Function
procedure , public :: set => set_poly_coefficient Subroutine