General band matrix-vector multiply

F_SGBMV/F_DGBMV/F_CGBMV/F_ZGBMV

Name

F_SGBMV/F_DGBMV/F_CGBMV/F_ZGBMV

 

General band matrix-vector multiply

Purpose

F_xGBMV multiplies a vector x by a general band matrix A, its transpose, or its

 

conjugate transpose, scales the resulting vector, and adds it to the scaled vector

 

operand y. If m or n is less than or equal to zero, or if β is equal to one and α is

 

equal to zero, the routine returns immediately. If kl or ku is less than zero, or if

 

lda is less than kl + ku + 1, an error flag is set and passed to the error handler.

 

The matrix-vector multiply can be defined as one of the following:

 

 

y ← αAx + βy

 

 

y ← α AT x + βy

 

 

y ← α A* x + βy

 

Refer to “SGBMV/DGBMV/CGBMV/ZGBMV” on page 212 for a description of

 

the equivalent HP MLIB legacy BLAS subprograms and an example of the

 

storage of general band matrices.

Matrix

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

Storage

A, you need only provide the elements within the band of A. The subprograms

 

for general band matrices use less storage than the subprograms for general

 

full matrices if kl+ku < n.

Usage

VECLIB

 

 

INTEGER*4

INCX, INCY, KL, KU, LDA, M, N, TRANS

 

REAL*4

ALPHA, BETA

 

REAL*4

A( LDA, * ), X( * ), Y( * )

 

SUBROUTINE F_SGBMV (TRANS, M, N, KL, KU, ALPHA, A, LDA, X,

 

INCX, BETA, Y, INCY)

 

INTEGER*4

INCX, INCY, KL, KU, LDA, M, N, TRANS

 

REAL*8

ALPHA, BETA

 

REAL*8

A( LDA, * ), X( * ), Y( * )

 

SUBROUTINE F_DGBMV (TRANS, M, N, KL, KU, ALPHA, A, LDA, X,

 

INCX, BETA, Y, INCY)

 

INTEGER*4

INCX, INCY, KL, KU, LDA, M, N, TRANS

 

COMPLEX*8

ALPHA, BETA

 

COMPLEX*8

A( LDA, * ), X( * ), Y( * )

 

SUBROUTINE F_CGBMV (TRANS, M, N, KL, KU, ALPHA, A, LDA, X,

 

INCX, BETA, Y, INCY)

Chapter 3 Basic Matrix Operations 355