ChebyshevSolversModule Module

A Module For Computing Matrix functions based on Chebyshev polynomials.



Contents


Interfaces

public interface ConstructPolynomial

  • private pure subroutine ConstructPolynomial_cheby(this, degree)

    Construct a Chebyshev polynomial object.

    Arguments

    Type IntentOptional Attributes Name
    type(ChebyshevPolynomial_t), intent(inout) :: this

    The polynomial to construct.

    integer, intent(in) :: degree

    Degree of the polynomial.

public interface DestructPolynomial

  • private pure subroutine DestructPolynomial_cheby(this)

    Destruct a polynomial object.

    Arguments

    Type IntentOptional Attributes Name
    type(ChebyshevPolynomial_t), intent(inout) :: this

    The polynomial to destruct.

public interface SetCoefficient

  • private subroutine SetCoefficient_cheby(this, degree, coefficient)

    Set a coefficient of a Chebyshev polynomial.

    Arguments

    Type IntentOptional Attributes Name
    type(ChebyshevPolynomial_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_cheby(InputMat, OutputMat, poly, solver_parameters_in)

    Compute The Chebyshev Polynomial of the matrix. This method uses the standard Chebyshev Polynomial expansion.

    Arguments

    Type IntentOptional Attributes Name
    type(Matrix_ps), intent(in) :: InputMat

    The input matrix

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

    OutputMat = poly(InputMat)

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

    The Chebyshev polynomial to compute.

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

    Parameters for the solver.

public interface FactorizedCompute

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

    Compute The Chebyshev Polynomial of the matrix. This version first factors the Chebyshev Polynomial and computes the function using a divide and conquer algorithm. Based on a simplified version of the first method in \cite liang2003improved .

    Arguments

    Type IntentOptional Attributes Name
    type(Matrix_ps), intent(in) :: InputMat

    The input matrix

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

    OutputMat = poly(InputMat)

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

    The Chebyshev polynomial to compute.

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

    Parameters for the solver.


Derived Types

type, public ::  ChebyshevPolynomial_t

A datatype that represents a Chebyshev polynomial.

Components

Type Visibility Attributes Name Initial
real(kind=NTREAL), public, DIMENSION(:), ALLOCATABLE :: coefficients

Coefficients of the polynomial.