F_CHBMV/F_ZHBMVHermitian 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.

 

y ← αAx + βy with A=A

 

Refer to “SSBMV/DSBMV/CHBMV/ZHBMV” on page 244 for a description of

 

the equivalent HP MLIB legacy BLAS subprograms.

Matrix

Because it is not necessary to store or operate on the zeros outside the band of

Storage

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)

340HP MLIB User’s Guide