sqrtm Interface

public interface sqrtm

Computes the non-negative square root of a symmetric positive definite matrix using its singular value decomposition.

Description

This interface provides methods to compute the non-negative square root of a symmetric (hermitian) positive definite matrix .

Syntax

call sqrtm(A, sqrtmA, info)

Arguments

A: Symmetric (hermitian) positive definite matrix whose non-negative square root needs to be computed. It is an intent(in) argument.

sqrtmA: Non-negative square root of A. It has the same size, kind and type as A. It is an intent(out) argument.

info: Information flag. It is an intent(out) argument.


Subroutines

private module subroutine sqrtm_cdp(A, sqrtA, info)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout) :: A(:,:)
complex(kind=dp), intent(out) :: sqrtA(:,:)
integer, intent(out) :: info

private module subroutine sqrtm_csp(A, sqrtA, info)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(inout) :: A(:,:)
complex(kind=sp), intent(out) :: sqrtA(:,:)
integer, intent(out) :: info

private module subroutine sqrtm_rdp(A, sqrtA, info)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: A(:,:)
real(kind=dp), intent(out) :: sqrtA(:,:)
integer, intent(out) :: info

private module subroutine sqrtm_rsp(A, sqrtA, info)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(inout) :: A(:,:)
real(kind=sp), intent(out) :: sqrtA(:,:)
integer, intent(out) :: info