SSBMV/DSBMV/CHBMV/ZHBMV

Matrix-vector multiply

Name SSBMV/DSBMV/CHBMV/ZHBMV

Matrix-vector multiply

Purpose These subprograms compute the matrix-vector product Ax, where A is an n-by-nreal symmetric or complex Hermitian band matrix and x is a real or complex n-vector. The product can be stored in the result array, or it can be 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 the matrix-vector product of the form:

y aAx + βy.

The structure of A is indicated by the name of the subprogram used:

SSBMV

or

DSBMV

A is a real symmetric band matrix

CHBMV

or

ZHBMV

A is a complex Hermitian band matrix

A symmetric or Hermitian band matrix is a symmetric or Hermitian matrix whose nonzero elements all are on, or fairly near, the principal diagonal. Specifically, aij ≠ 0 only if ijkd for some integer kd, called the half

bandwidth.

Refer to “F_SSBMV/F_DSBMV/F_CSBMV/F_ZSBMV” on page 378 and

“F_CHBMV/F_ZHBMV” on page 340 for a description of the equivalent BLAS Standard 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.

The following examples illustrate the storage of symmetric band matrices. Consider the following matrix A of order n = 7 and half bandwidth kd = 2:

11

12

13

0

0

0

0

12

22

23

24

0

0

0

13

23

33

34

35

0

0

0

24

34

44

45

46

0

0

0

35

45

55

56

57

0

0

0

46

56

66

67

0

0

0

0

57

67

77

244HP MLIB User’s Guide