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

348 HP MLIB User’s Guide
F_CHPMV/F_ZHPMV Hermitian packed matrix-vector multiply
Name F_CHPMV/F_ZHPMV
Hermitian packed matrix-vector multiply
Purpose F_xHPMV multiplies a vector x by a Hermitian packed matrix A, scales the
resulting vector and adds it to the scaled vector operand y. If n is less than or
equal to zero, or if β is equal to one and α is equal to zero, this routine returns
immediately. The imaginary part of the diagonal entries of the matrix operand
are supposed to be zero and should not be referenced.
Refer to “SSPMV/DSPMV/CHPMV/ZHPMV” on page 249 for a description of
the equivalent HP MLIB legacy BLAS subprograms.
Matrix
Storage
Because either triangle of A can be obtained from the other, you only need to
provide one triangle of A, either the upper or the lower triangle. Compared to
storing the entire matrix, you save memory by supplying that triangle stored
column-by-column in packed form in a 1-dimensional array. Refer to
“SSPMV/DSPMV/CHPMV/ZHPMV” on page 249 for an example of the packed
storage of symmetric or Hermitian matrices.
Usage VECLIB
INTEGER*4 INCX, INCY, N, UPLO
COMPLEX*8 ALPHA, BETA
COMPLEX*8 AP( * ), X( * ), Y( * )
SUBROUTINE F_CHPMV (UPLO, N, ALPHA, AP, X, INCX, BETA, Y,
INCY)
INTEGER*4 INCX, INCY, N, UPLO
COMPLEX*16 ALPHA, BETA
COMPLEX*16 AP( * ), X( * ), Y( * )
SUBROUTINE F_ZHPMV (UPLO, N, ALPHA, AP, X, INCX, BETA, Y,
INCY)
VECLIB8
INTEGER*8 INCX, INCY, N, UPLO
COMPLEX*8 ALPHA, BETA
COMPLEX*8 AP( * ), X( * ), Y( * )
SUBROUTINE F_CHPMV (UPLO, N, ALPHA, AP, X, INCX, BETA, Y,
INCY)
y αAx βy with A=A
+