pic_gemm Interface

public interface pic_gemm

general interface of the BLAS GEMM routines, will call SGEMM, DGEMM, CGEMM, ZGEMM

Usage: call pic_gemm(A, B, C, [optional] transa, [optional] transb, [optional] alpha, [optional] beta)

where A, B, C are matrices, transa and transb are optional transpose options, alpha and beta are optional scaling factors

By default, if not specified transA and transB are “N” (no transpose), and alpha and beta are 1.0 and 0.0 respectively.

The matrices A, B, C must be allocatable arrays, we deduce the shapes from them.

Calls

interface~~pic_gemm~~CallsGraph interface~pic_gemm pic_gemm proc~pic_dgemm pic_dgemm interface~pic_gemm->proc~pic_dgemm proc~pic_sgemm pic_sgemm interface~pic_gemm->proc~pic_sgemm proc~pic_zgemm pic_zgemm interface~pic_gemm->proc~pic_zgemm interface~blas_gemm blas_gemm proc~pic_dgemm->interface~blas_gemm proc~pic_sgemm->interface~blas_gemm proc~pic_zgemm->interface~blas_gemm

Module Procedures

private pure subroutine pic_sgemm(A, B, C, transa, transb, alpha, beta)

interface for single precision matrix multiplication

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: A(:,:)
real(kind=sp), intent(in) :: B(:,:)
real(kind=sp), intent(inout) :: C(:,:)
character(len=1), intent(in), optional :: transa
character(len=1), intent(in), optional :: transb
real(kind=sp), intent(in), optional :: alpha
real(kind=sp), intent(in), optional :: beta

private pure subroutine pic_dgemm(A, B, C, transa, transb, alpha, beta)

interface for single precision matrix multiplication

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: A(:,:)
real(kind=dp), intent(in) :: B(:,:)
real(kind=dp), intent(inout) :: C(:,:)
character(len=1), intent(in), optional :: transa
character(len=1), intent(in), optional :: transb
real(kind=dp), intent(in), optional :: alpha
real(kind=dp), intent(in), optional :: beta

private pure subroutine pic_zgemm(A, B, C, transa, transb, alpha, beta)

interface for single precision matrix multiplication

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in) :: A(:,:)
complex(kind=dp), intent(in) :: B(:,:)
complex(kind=dp), intent(inout) :: C(:,:)
character(len=1), intent(in), optional :: transa
character(len=1), intent(in), optional :: transb
complex(kind=dp), intent(in), optional :: alpha
complex(kind=dp), intent(in), optional :: beta