SGBMV/DGBMV/CGBMV/ZGBMV

Matrix-vector multiply

Name SGBMV/DGBMV/CGBMV/ZGBMV

Matrix-vector multiply

Purpose These subprograms compute the matrix-vector products Ax, ATx, and A*x,

where A is an m-by-nband matrix stored in a two-dimensional array, AT 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, aij = 0 if ij > 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

y aAx + βy, y a AT x + βy, and y aA*x + βy.

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 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.

212HP MLIB User’s Guide