ExponentialSolversModule Module

A Module For Computing Matrix Exponentials and Logarithms.



Contents


Subroutines

public subroutine ComputeExponential(InputMat, OutputMat, solver_parameters_in)

Compute the exponential of a matrix.

Arguments

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

The input matrix

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

OutputMat = exp(InputMat)

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

Parameters for the solver

public subroutine ComputeExponentialPade(InputMat, OutputMat, solver_parameters_in)

Compute the exponential of a matrix using a pade approximation. Be warned, the pade method can result in a lot of intermediate fill.

Arguments

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

The input matrix

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

OutputMat = exp(InputMat)

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

Parameters for the solver

public subroutine ComputeExponentialTaylor(InputMat, OutputMat, solver_parameters_in)

Compute the exponential of a matrix using a taylor series expansion. This is only really useful if you have a very small spectrum, because quite a bit of scaling is required.

Arguments

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

The input matrix

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

OutputMat = exp(InputMat)

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

Parameters for the solver

public subroutine ComputeLogarithm(InputMat, OutputMat, solver_parameters_in)

Compute the logarithm of a matrix.

Arguments

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

The input matrix

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

OutputMat = exp(InputMat)

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

Parameters for the solver

public subroutine ComputeLogarithmTaylor(InputMat, OutputMat, solver_parameters_in)

Compute the logarithm of a matrix using a taylor series expansion.

Arguments

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

The input matrix

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

OutputMat = exp(InputMat)

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

Parameters for the solver