expm Interface

public interface expm

Description

Evaluate the exponential of a dense matrix using Pade approximations.

Syntax

    E = expm(A, order)

Arguments

E : real or complex rank-2 array with .

A : real or complex matrix that needs to be exponentiated.

order (optional) : Order of the Pade approximation. By default order = 10.


Module Procedures

private function expm_rsp(A, order) result(E)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: A(:,:)

Matrix to be exponentiated.

integer, intent(in), optional :: order

Order of the Pade approximation.

Return Value real(kind=sp), (size(A,1),size(A,1))

Output matrix E = exp(tA).

private function expm_rdp(A, order) result(E)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: A(:,:)

Matrix to be exponentiated.

integer, intent(in), optional :: order

Order of the Pade approximation.

Return Value real(kind=dp), (size(A,1),size(A,1))

Output matrix E = exp(tA).

private function expm_csp(A, order) result(E)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in) :: A(:,:)

Matrix to be exponentiated.

integer, intent(in), optional :: order

Order of the Pade approximation.

Return Value complex(kind=sp), (size(A,1),size(A,1))

Output matrix E = exp(tA).

private function expm_cdp(A, order) result(E)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in) :: A(:,:)

Matrix to be exponentiated.

integer, intent(in), optional :: order

Order of the Pade approximation.

Return Value complex(kind=dp), (size(A,1),size(A,1))

Output matrix E = exp(tA).