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.

 

 

 

y ← αAx + βy with A=AT

 

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

 

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

378HP MLIB User’s Guide