HP MLIB User's Guide Vol. 1 7th Ed.
340 HP MLIB User’s Guide
F_CHBMV/F_ZHBMV Hermitian banded matrix-vector multiply
Name F_CHBMV/F_ZHBMV
Hermitian banded matrix-vector multiply
Purpose F_xHBMV multiplies a vector x by a Hermitian banded 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 “SSBMV/DSBMV/CHBMV/ZHBMV” on page 244 for a description of
the equivalent HP MLIB legacy BLAS subprograms.
Matrix
Storage
Because it is not necessary to store or operate on the zeros outside the band of
A, and because either triangle of A can be obtained from the other, you only
need to provide the band within one triangle of A. Compared to storing the
entire matrix, this can save memory in two ways: only the elements within the
band are stored and of them only the upper or the lower triangle. Refer to
“SSBMV/DSBMV/CHBMV/ZHBMV” on page 244 for an example of the storage
of symmetric band matrices.
Usage VECLIB
INTEGER*4 INCX, INCY, K, LDA, N, UPLO
COMPLEX*8 ALPHA, BETA
COMPLEX*8 A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_CHBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
INTEGER*4 INCX, INCY, K, LDA, N, UPLO
COMPLEX*16 ALPHA, BETA
COMPLEX*16 A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_ZHBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
VECLIB8
INTEGER*8 INCX, INCY, K, LDA, N, UPLO
COMPLEX*8 ALPHA, BETA
COMPLEX*8 A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_CHBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
y αAx βy with A=A
∗
+←