stdlib_matmul Interface

public interface stdlib_matmul

Summary

compute the matrix multiplication of more than two matrices with a single function call. (Specification)

Description

matrix multiply more than two matrices with a single function call the multiplication with the optimal parenthesization for efficiency of computation is done automatically Supported data types are real and complex.

Note: The matrices must be of compatible shapes to be multiplied


Functions

private module function stdlib_matmul_cdp(m1, m2, m3, m4, m5, err) result(r)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in) :: m1(:,:)
complex(kind=dp), intent(in) :: m2(:,:)
complex(kind=dp), intent(in), optional :: m3(:,:)
complex(kind=dp), intent(in), optional :: m4(:,:)
complex(kind=dp), intent(in), optional :: m5(:,:)
type(linalg_state_type), intent(out) :: err

Return Value complex(kind=dp), allocatable, (:,:)

private module function stdlib_matmul_csp(m1, m2, m3, m4, m5, err) result(r)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in) :: m1(:,:)
complex(kind=sp), intent(in) :: m2(:,:)
complex(kind=sp), intent(in), optional :: m3(:,:)
complex(kind=sp), intent(in), optional :: m4(:,:)
complex(kind=sp), intent(in), optional :: m5(:,:)
type(linalg_state_type), intent(out) :: err

Return Value complex(kind=sp), allocatable, (:,:)

private module function stdlib_matmul_dp(m1, m2, m3, m4, m5, err) result(r)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: m1(:,:)
real(kind=dp), intent(in) :: m2(:,:)
real(kind=dp), intent(in), optional :: m3(:,:)
real(kind=dp), intent(in), optional :: m4(:,:)
real(kind=dp), intent(in), optional :: m5(:,:)
type(linalg_state_type), intent(out) :: err

Return Value real(kind=dp), allocatable, (:,:)

private pure module function stdlib_matmul_pure_cdp(m1, m2, m3, m4, m5) result(r)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in) :: m1(:,:)
complex(kind=dp), intent(in) :: m2(:,:)
complex(kind=dp), intent(in), optional :: m3(:,:)
complex(kind=dp), intent(in), optional :: m4(:,:)
complex(kind=dp), intent(in), optional :: m5(:,:)

Return Value complex(kind=dp), allocatable, (:,:)

private pure module function stdlib_matmul_pure_csp(m1, m2, m3, m4, m5) result(r)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in) :: m1(:,:)
complex(kind=sp), intent(in) :: m2(:,:)
complex(kind=sp), intent(in), optional :: m3(:,:)
complex(kind=sp), intent(in), optional :: m4(:,:)
complex(kind=sp), intent(in), optional :: m5(:,:)

Return Value complex(kind=sp), allocatable, (:,:)

private pure module function stdlib_matmul_pure_dp(m1, m2, m3, m4, m5) result(r)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: m1(:,:)
real(kind=dp), intent(in) :: m2(:,:)
real(kind=dp), intent(in), optional :: m3(:,:)
real(kind=dp), intent(in), optional :: m4(:,:)
real(kind=dp), intent(in), optional :: m5(:,:)

Return Value real(kind=dp), allocatable, (:,:)

private pure module function stdlib_matmul_pure_sp(m1, m2, m3, m4, m5) result(r)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: m1(:,:)
real(kind=sp), intent(in) :: m2(:,:)
real(kind=sp), intent(in), optional :: m3(:,:)
real(kind=sp), intent(in), optional :: m4(:,:)
real(kind=sp), intent(in), optional :: m5(:,:)

Return Value real(kind=sp), allocatable, (:,:)

private module function stdlib_matmul_sp(m1, m2, m3, m4, m5, err) result(r)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: m1(:,:)
real(kind=sp), intent(in) :: m2(:,:)
real(kind=sp), intent(in), optional :: m3(:,:)
real(kind=sp), intent(in), optional :: m4(:,:)
real(kind=sp), intent(in), optional :: m5(:,:)
type(linalg_state_type), intent(out) :: err

Return Value real(kind=sp), allocatable, (:,:)