stdlib_linalg Module

Provides a support for various linear algebra procedures (Specification)



Interfaces

public interface cross_product

Computes the cross product of two vectors, returning a rank-1 and size-3 array (Specification)

  • private pure module function cross_product_cdp(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(in) :: a(3)
    complex(kind=dp), intent(in) :: b(3)

    Return Value complex(kind=dp), (3)

  • private pure module function cross_product_csp(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(in) :: a(3)
    complex(kind=sp), intent(in) :: b(3)

    Return Value complex(kind=sp), (3)

  • private pure module function cross_product_iint16(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: a(3)
    integer(kind=int16), intent(in) :: b(3)

    Return Value integer(kind=int16), (3)

  • private pure module function cross_product_iint32(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: a(3)
    integer(kind=int32), intent(in) :: b(3)

    Return Value integer(kind=int32), (3)

  • private pure module function cross_product_iint64(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: a(3)
    integer(kind=int64), intent(in) :: b(3)

    Return Value integer(kind=int64), (3)

  • private pure module function cross_product_iint8(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: a(3)
    integer(kind=int8), intent(in) :: b(3)

    Return Value integer(kind=int8), (3)

  • private pure module function cross_product_rdp(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: a(3)
    real(kind=dp), intent(in) :: b(3)

    Return Value real(kind=dp), (3)

  • private pure module function cross_product_rsp(a, b) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: a(3)
    real(kind=sp), intent(in) :: b(3)

    Return Value real(kind=sp), (3)

public interface diag

Creates a diagonal array or extract the diagonal elements of an array (Specification)

  • private module function diag_cdp(v) result(res)

    Arguments

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

    Return Value complex(kind=dp), (size(v),size(v))

  • private module function diag_cdp_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value complex(kind=dp), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_cdp_mat(A) result(res)

    Arguments

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

    Return Value complex(kind=dp), (minval(shape(A)))

  • private module function diag_cdp_mat_k(A, k) result(res)

    Arguments

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

    Return Value complex(kind=dp), (minval(shape(A))-abs(k))

  • private module function diag_csp(v) result(res)

    Arguments

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

    Return Value complex(kind=sp), (size(v),size(v))

  • private module function diag_csp_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value complex(kind=sp), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_csp_mat(A) result(res)

    Arguments

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

    Return Value complex(kind=sp), (minval(shape(A)))

  • private module function diag_csp_mat_k(A, k) result(res)

    Arguments

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

    Return Value complex(kind=sp), (minval(shape(A))-abs(k))

  • private module function diag_iint16(v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: v(:)

    Return Value integer(kind=int16), (size(v),size(v))

  • private module function diag_iint16_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value integer(kind=int16), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_iint16_mat(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)

    Return Value integer(kind=int16), (minval(shape(A)))

  • private module function diag_iint16_mat_k(A, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)
    integer, intent(in) :: k

    Return Value integer(kind=int16), (minval(shape(A))-abs(k))

  • private module function diag_iint32(v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: v(:)

    Return Value integer(kind=int32), (size(v),size(v))

  • private module function diag_iint32_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value integer(kind=int32), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_iint32_mat(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)

    Return Value integer(kind=int32), (minval(shape(A)))

  • private module function diag_iint32_mat_k(A, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)
    integer, intent(in) :: k

    Return Value integer(kind=int32), (minval(shape(A))-abs(k))

  • private module function diag_iint64(v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: v(:)

    Return Value integer(kind=int64), (size(v),size(v))

  • private module function diag_iint64_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value integer(kind=int64), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_iint64_mat(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)

    Return Value integer(kind=int64), (minval(shape(A)))

  • private module function diag_iint64_mat_k(A, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)
    integer, intent(in) :: k

    Return Value integer(kind=int64), (minval(shape(A))-abs(k))

  • private module function diag_iint8(v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: v(:)

    Return Value integer(kind=int8), (size(v),size(v))

  • private module function diag_iint8_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value integer(kind=int8), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_iint8_mat(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)

    Return Value integer(kind=int8), (minval(shape(A)))

  • private module function diag_iint8_mat_k(A, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)
    integer, intent(in) :: k

    Return Value integer(kind=int8), (minval(shape(A))-abs(k))

  • private module function diag_rdp(v) result(res)

    Arguments

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

    Return Value real(kind=dp), (size(v),size(v))

  • private module function diag_rdp_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value real(kind=dp), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_rdp_mat(A) result(res)

    Arguments

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

    Return Value real(kind=dp), (minval(shape(A)))

  • private module function diag_rdp_mat_k(A, k) result(res)

    Arguments

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

    Return Value real(kind=dp), (minval(shape(A))-abs(k))

  • private module function diag_rsp(v) result(res)

    Arguments

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

    Return Value real(kind=sp), (size(v),size(v))

  • private module function diag_rsp_k(v, k) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: v(:)
    integer, intent(in) :: k

    Return Value real(kind=sp), (size(v)+abs(k),size(v)+abs(k))

  • private module function diag_rsp_mat(A) result(res)

    Arguments

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

    Return Value real(kind=sp), (minval(shape(A)))

  • private module function diag_rsp_mat_k(A, k) result(res)

    Arguments

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

    Return Value real(kind=sp), (minval(shape(A))-abs(k))

public interface is_diagonal

Checks if a matrix (rank-2 array) is diagonal (Specification)

  • private pure function is_diagonal_rsp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_diagonal_rdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_diagonal_csp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_diagonal_cdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_diagonal_iint8(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_diagonal_iint16(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_diagonal_iint32(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_diagonal_iint64(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)

    Return Value logical

public interface is_hermitian

Checks if a matrix (rank-2 array) is Hermitian (Specification)

  • private pure function is_hermitian_rsp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_hermitian_rdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_hermitian_csp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_hermitian_cdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_hermitian_iint8(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_hermitian_iint16(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_hermitian_iint32(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_hermitian_iint64(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)

    Return Value logical

public interface is_hessenberg

Checks if a matrix (rank-2 array) is Hessenberg (Specification)

  • private function is_hessenberg_rsp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_hessenberg_rdp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_hessenberg_csp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_hessenberg_cdp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_hessenberg_iint8(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_hessenberg_iint16(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_hessenberg_iint32(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_hessenberg_iint64(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

public interface is_skew_symmetric

Checks if a matrix (rank-2 array) is skew-symmetric (Specification)

  • private pure function is_skew_symmetric_rsp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_skew_symmetric_rdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_skew_symmetric_csp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_skew_symmetric_cdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_skew_symmetric_iint8(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_skew_symmetric_iint16(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_skew_symmetric_iint32(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_skew_symmetric_iint64(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)

    Return Value logical

public interface is_square

Checks if a matrix (rank-2 array) is square (Specification)

  • private pure function is_square_rsp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_square_rdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_square_csp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_square_cdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_square_iint8(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_square_iint16(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_square_iint32(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_square_iint64(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)

    Return Value logical

public interface is_symmetric

Checks if a matrix (rank-2 array) is symmetric (Specification)

  • private pure function is_symmetric_rsp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_symmetric_rdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_symmetric_csp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_symmetric_cdp(A) result(res)

    Arguments

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

    Return Value logical

  • private pure function is_symmetric_iint8(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_symmetric_iint16(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_symmetric_iint32(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)

    Return Value logical

  • private pure function is_symmetric_iint64(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)

    Return Value logical

public interface is_triangular

Checks if a matrix (rank-2 array) is triangular (Specification)

  • private function is_triangular_rsp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_triangular_rdp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_triangular_csp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_triangular_cdp(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_triangular_iint8(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_triangular_iint16(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_triangular_iint32(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

  • private function is_triangular_iint64(A, uplo) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)
    character(len=1), intent(in) :: uplo

    Return Value logical

public interface kronecker_product

Computes the Kronecker product of two arrays of size M1xN1, and of M2xN2, returning an (M1M2)x(N1N2) array (Specification)

  • private pure module function kronecker_product_cdp(A, B) result(C)

    Arguments

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

    Return Value complex(kind=dp), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

  • private pure module function kronecker_product_csp(A, B) result(C)

    Arguments

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

    Return Value complex(kind=sp), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

  • private pure module function kronecker_product_iint16(A, B) result(C)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)
    integer(kind=int16), intent(in) :: B(:,:)

    Return Value integer(kind=int16), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

  • private pure module function kronecker_product_iint32(A, B) result(C)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)
    integer(kind=int32), intent(in) :: B(:,:)

    Return Value integer(kind=int32), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

  • private pure module function kronecker_product_iint64(A, B) result(C)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)
    integer(kind=int64), intent(in) :: B(:,:)

    Return Value integer(kind=int64), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

  • private pure module function kronecker_product_iint8(A, B) result(C)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)
    integer(kind=int8), intent(in) :: B(:,:)

    Return Value integer(kind=int8), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

  • private pure module function kronecker_product_rdp(A, B) result(C)

    Arguments

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

    Return Value real(kind=dp), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

  • private pure module function kronecker_product_rsp(A, B) result(C)

    Arguments

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

    Return Value real(kind=sp), (size(A,dim=1)*size(B,dim=1),size(A,dim=2)*size(B,dim=2))

public interface outer_product

Computes the outer product of two vectors, returning a rank-2 array (Specification)

  • private pure module function outer_product_cdp(u, v) result(res)

    Arguments

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

    Return Value complex(kind=dp), (size(u),size(v))

  • private pure module function outer_product_csp(u, v) result(res)

    Arguments

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

    Return Value complex(kind=sp), (size(u),size(v))

  • private pure module function outer_product_iint16(u, v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: u(:)
    integer(kind=int16), intent(in) :: v(:)

    Return Value integer(kind=int16), (size(u),size(v))

  • private pure module function outer_product_iint32(u, v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: u(:)
    integer(kind=int32), intent(in) :: v(:)

    Return Value integer(kind=int32), (size(u),size(v))

  • private pure module function outer_product_iint64(u, v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: u(:)
    integer(kind=int64), intent(in) :: v(:)

    Return Value integer(kind=int64), (size(u),size(v))

  • private pure module function outer_product_iint8(u, v) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: u(:)
    integer(kind=int8), intent(in) :: v(:)

    Return Value integer(kind=int8), (size(u),size(v))

  • private pure module function outer_product_rdp(u, v) result(res)

    Arguments

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

    Return Value real(kind=dp), (size(u),size(v))

  • private pure module function outer_product_rsp(u, v) result(res)

    Arguments

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

    Return Value real(kind=sp), (size(u),size(v))

public interface trace

Computes the trace of a matrix (Specification)

  • private function trace_rsp(A) result(res)

    Arguments

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

    Return Value real(kind=sp)

  • private function trace_rdp(A) result(res)

    Arguments

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

    Return Value real(kind=dp)

  • private function trace_csp(A) result(res)

    Arguments

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

    Return Value complex(kind=sp)

  • private function trace_cdp(A) result(res)

    Arguments

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

    Return Value complex(kind=dp)

  • private function trace_iint8(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int8), intent(in) :: A(:,:)

    Return Value integer(kind=int8)

  • private function trace_iint16(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int16), intent(in) :: A(:,:)

    Return Value integer(kind=int16)

  • private function trace_iint32(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: A(:,:)

    Return Value integer(kind=int32)

  • private function trace_iint64(A) result(res)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: A(:,:)

    Return Value integer(kind=int64)


Functions

public pure function eye(dim1, dim2) result(result)

License
Creative Commons License
Version
experimental

Constructs the identity matrix. (Specification)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: dim1
integer, intent(in), optional :: dim2

Return Value integer(kind=int8), allocatable, (:,:)