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

378 HP MLIB User’s Guide
F_SSBMV/F_DSBMV/F_CSBMV/F_ZSBMV Symmetric band matrix-vector multiply
Name F_SSBMV/F_DSBMV/F_CSBMV/F_ZSBMV
Symmetric band matrix-vector multiply
Purpose F_xSBMV multiplies a vector x by a real or complex symmetric band 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.
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
REAL*4 ALPHA, BETA, A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_SSBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
INTEGER*4 INCX, INCY, K, LDA, N, UPLO
REAL*8 ALPHA, BETA, A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_DSBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
INTEGER*4 INCX, INCY, K, LDA, N, UPLO
COMPLEX*8 ALPHA, BETA, A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_CSBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
INTEGER*4 INCX, INCY, K, LDA, N, UPLO
COMPLEX*16 ALPHA, BETA, A( LDA, * ), X( * ), Y( * )
SUBROUTINE F_ZSBMV (UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA,
Y, INCY)
VECLIB8
y αAx βy with A=A
T
+