MatrixMultiply Interface

public interface MatrixMultiply

Contents


Module Procedures

private subroutine MatrixMultiply_ps(matA, matB, matC, alpha_in, beta_in, threshold_in, memory_pool_in)

Multiply two matrices together, and add to the third. C := alphamatAmatB+ beta*matC

Arguments

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

Matrix A.

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

Matrix B.

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

matC = alphamatAmatB + beta*matC

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.

type(MatrixMemoryPool_p), intent(inout), optional :: memory_pool_in

A memory pool for the calculation.