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

212 HP MLIB User’s Guide
SGBMV/DGBMV/CGBMV/ZGBMV Matrix-vector multiply
Name SGBMV/DGBMV/CGBMV/ZGBMV
Matrix-vector multiply
Purpose These subprograms compute the matrix-vector products Ax, A
T
x, and A*x,
where A is an m-by-n band matrix stored in a two-dimensional array, A
T
is the
transpose of A, and A* is the conjugate transpose of A.
A band matrix is a matrix whose nonzero elements all are near the principal
diagonal. Specifically, a
ij
=0 ifij > kl or ji > ku for some integers kl and ku.
The smallest such kl and ku for a given matrix are called the lower and upper
bandwidths, respectively, and k = kl+ku+1 is the total bandwidth.
The product can be stored in the result array or optionally added to or
subtracted from it. This is handled in a convenient, but general, way by two
scalar arguments, α and β, which are used as multipliers of the matrix-vector
product and the result vector. Specifically, these subprograms compute
matrix-vector products of the forms
Refer to “F_SGBMV/F_DGBMV/F_CGBMV/F_ZGBMV” on page 355 for a
description of the BLAS Standard subprograms for general matrix-vector
multiply.
Matrix
Storage
Because it is not necessary to store or operate on the zeros outside the band of
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.
yaAx←βy+ yaA
T
x←βy+ and yaA*x βy.+,,