general interface of the BLAS GEMV routines, will call SGEMV, DGEMV, CGEMV, ZGEMV
Usage: call pic_gemv(A, x, y, [optional] transa, [optional] alpha, [optional] beta)
where A is a matrix, x and y are vectors, transa is an optional transpose option, alpha and beta are optional scaling factors.
The matrix A must be an allocatable array, we deduce the shapes from it. TransA is “N” (no transpose) by default. And alpha and beta are 1.0 and 0.0 respectively.
interface for single precision matrix-vector multiplication
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(in) | :: | A(:,:) | |||
real(kind=sp), | intent(in) | :: | x(:) | |||
real(kind=sp), | intent(inout) | :: | y(:) | |||
character(len=1), | intent(in), | optional | :: | trans_a | ||
real(kind=sp), | intent(in), | optional | :: | alpha | ||
real(kind=sp), | intent(in), | optional | :: | beta |
interface for double precision matrix-vector multiplication
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | A(:,:) | |||
real(kind=dp), | intent(in) | :: | x(:) | |||
real(kind=dp), | intent(inout) | :: | y(:) | |||
character(len=1), | intent(in), | optional | :: | trans_a | ||
real(kind=dp), | intent(in), | optional | :: | alpha | ||
real(kind=dp), | intent(in), | optional | :: | beta |