PolynomialSolversModule Module

A Module For Computing General Matrix Polynomials.



Contents


Interfaces

public interface ConstructPolynomial

  • private subroutine ConstructPolynomial_stand(this, degree)

    Construct a polynomial.

    Arguments

    Type IntentOptional AttributesName
    type(Polynomial_t), intent(inout) :: this

    The polynomial to construct.

    integer, intent(in) :: degree

    The degree of the polynomial.

public interface DestructPolynomial

  • private subroutine DestructPolynomial_stand(this)

    Destruct a polynomial object.

    Arguments

    Type IntentOptional AttributesName
    type(Polynomial_t), intent(inout) :: this

    The polynomial to destruct.

public interface SetCoefficient

  • private subroutine SetCoefficient_stand(this, degree, coefficient)

    Set coefficient of a polynomial.

    Arguments

    Type IntentOptional AttributesName
    type(Polynomial_t), intent(inout) :: this

    The polynomial to set.

    integer, intent(in) :: degree

    Degree for which to set the coefficient.

    real(kind=NTREAL), intent(in) :: coefficient

    Coefficient value.

public interface Compute

  • private subroutine Compute_stand(InputMat, OutputMat, poly, solver_parameters_in)

    Compute A Matrix Polynomial Using Horner's Method.

    Arguments

    Type IntentOptional AttributesName
    type(Matrix_ps), intent(in) :: InputMat

    The input matrix

    type(Matrix_ps), intent(inout) :: OutputMat

    OutputMat = poly(InputMat)

    type(Polynomial_t), intent(in) :: poly

    Polynomial to compute.

    type(SolverParameters_t), intent(in), optional :: solver_parameters_in

    Parameters for the solver.

public interface FactorizedCompute

  • private subroutine FactorizedCompute_stand(InputMat, OutputMat, poly, solver_parameters_in)

    Compute A Matrix Polynomial Using Paterson and Stockmeyer's method. This method first factors the polynomial to reduce the number of matrix multiplies required.

    Arguments

    Type IntentOptional AttributesName
    type(Matrix_ps), intent(in) :: InputMat

    The input matrix

    type(Matrix_ps), intent(inout) :: OutputMat

    OutputMat = poly(InputMat)

    type(Polynomial_t), intent(in) :: poly

    The polynomial to compute.

    type(SolverParameters_t), intent(in), optional :: solver_parameters_in

    Parameters for the solver.


Derived Types

type, public :: Polynomial_t

A datatype that represents a polynomial.

Components

TypeVisibility AttributesNameInitial
real(kind=NTREAL), public, DIMENSION(:), ALLOCATABLE:: coefficients

Coefficients of the polynomial.