matmul Interface

public interface matmul

This interface overloads the Fortran intrinsic matmul for a Toeplitz matrix, both for matrix-vector and matrix-matrix products. For a matrix-matrix product , only the matrix has to be a Toeplitz matrix. Both and need to be standard Fortran rank-2 arrays. All the underlying functions are defined as pure.

Syntax

   y = matmul(A, x)

Functions

private pure module function spmv(A, x) result(y)

Compute the matrix-vector product for a Toeplitz matrix . Both x and y are rank-1 arrays with the same kind as A.

Arguments

Type IntentOptional Attributes Name
type(Toeplitz), intent(in) :: A

Input matrix.

real(kind=dp), intent(in) :: x(:)

Input vector.

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

Output vector.

private pure module function spmvs(A, x) result(y)

Compute the matrix-matrix product for a Toeplitz matrix A. Both X and Y are rank-2 arrays with the same kind as A.

Arguments

Type IntentOptional Attributes Name
type(Toeplitz), intent(in) :: A

Input matrix.

real(kind=dp), intent(in) :: x(:,:)

Input matrix.

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

Output matrix.