MatrixMultiply Interface

public interface MatrixMultiply

Contents


Module Procedures

private subroutine GemmMatrix_lsr(matA, matB, matC, IsATransposed_in, IsBTransposed_in, alpha_in, beta_in, threshold_in, blocked_memory_pool_in)

Multiply two matrices together, and add to the third. C := alphamatAop( matB ) + beta*matC

Arguments

Type IntentOptional AttributesName
type(Matrix_lsr), intent(in) :: matA

Matrix A.

type(Matrix_lsr), intent(in) :: matB

Matrix B.

type(Matrix_lsr), intent(inout) :: matC

matC = alphamatAop( matB ) + beta*matC.

logical, intent(in), optional :: IsATransposed_in

True if A is already transposed.

logical, intent(in), optional :: IsBTransposed_in

True if B is already transposed.

real(kind=NTREAL), intent(in), optional :: alpha_in

Scales the multiplication.

real(kind=NTREAL), intent(in), optional :: beta_in

Scales matrix we sum on to.

real(kind=NTREAL), intent(in), optional :: threshold_in

For flushing values to zero. Default value is 0.0.

type(MatrixMemoryPool_lr), intent(inout), optional TARGET:: blocked_memory_pool_in

An optional memory pool for doing the calculation.

private subroutine GemmMatrix_lsc(matA, matB, matC, IsATransposed_in, IsBTransposed_in, alpha_in, beta_in, threshold_in, blocked_memory_pool_in)

Multiply two matrices together, and add to the third. C := alphamatAop( matB ) + beta*matC

Arguments

Type IntentOptional AttributesName
type(Matrix_lsc), intent(in) :: matA

Matrix A.

type(Matrix_lsc), intent(in) :: matB

Matrix B.

type(Matrix_lsc), intent(inout) :: matC

matC = alphamatAop( matB ) + beta*matC.

logical, intent(in), optional :: IsATransposed_in

True if A is already transposed.

logical, intent(in), optional :: IsBTransposed_in

True if B is already transposed.

real(kind=NTREAL), intent(in), optional :: alpha_in

Scales the multiplication.

real(kind=NTREAL), intent(in), optional :: beta_in

Scales matrix we sum on to.

real(kind=NTREAL), intent(in), optional :: threshold_in

For flushing values to zero. Default value is 0.0.

type(MatrixMemoryPool_lc), intent(inout), optional TARGET:: blocked_memory_pool_in

An optional memory pool for doing the calculation.