HP MLIB User's Guide Vol. 1 7th Ed.

Chapter 3 Basic Matrix Operations 365
General matrix-vector multiply F_SGEMV/F_DGEMV/F_CGEMV/F_ZGEMV
Name F_SGEMV/F_DGEMV/F_CGEMV/F_ZGEMV
General matrix-vector multiply
Purpose F_xGEMV multiplies a vector x by a general matrix A, its transpose, or its
conjugate transpose, scales the resulting vector, and adds it to the scaled vector
operand y. If m or n is less than or equal to zero, or if β is equal to one and α is
equal to zero, the routine returns immediately. If lda is less than one, or less
than m, an error flag is set and passed to the error handler.The matrix-vector
multiply can be defined as one of the following:
Refer to “SGEMV/DGEMV/CGEMV/ZGEMV” on page 232 for a description of
the equivalent HP MLIB legacy BLAS subprograms.
Usage VECLIB
INTEGER*4 INCX, INCY, LDA, M, N, TRANS
REAL*4 ALPHA, BETA
REAL*4 A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_SGEMV (TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
INTEGER*4 INCX, INCY, LDA, M, N, TRANS
REAL*8 ALPHA, BETA
REAL*8 A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_DGEMV (TRANS, M, N, ALPHA, A, LDA, X, INCX,
BETA, Y, INCY)
INTEGER*4 INCX, INCY, LDA, M, N, TRANS
COMPLEX*8 ALPHA, BETA
COMPLEX*8 A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_CGEMV (TRANS, M, N, ALPHA, A, LDA, X, INCX,
BETA, Y, INCY)
INTEGER*4 INCX, INCY, LDA, M, N, TRANS
COMPLEX*16 ALPHA, BETA
COMPLEX*16 A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_ZGEMV (TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
VECLIB8
y αAx βy+
y αA
T
x βy+
y αA
x βy+