SSBMV/DSBMV/CHBMV/ZHBMV |
Upper triangular storage
The upper triangle of A is stored in an array ab with at least kd+1 = 3 rows and 7 columns as follows:
* | * | 13 | 24 | 35 | 46 | 57 |
* | 12 | 23 | 34 | 45 | 56 | 67 |
11 | 22 | 33 | 44 | 55 | 66 | 77 |
The asterisks represent elements in the
the upper triangle of A, it is stored in ab(kd+1+i−j,j). Therefore, the columns of the upper triangle of A are stored in the columns of ab, and the diagonals of the upper triangle of A are stored in the rows of ab, with the principal diagonal in row kd+1, the first superdiagonal starting in the second position in row kd, and so on.
Lower triangular storage
The lower triangle of A is stored in the array ab as follows:
11 | 22 | 33 | 44 | 55 | 66 | 77 |
12 | 23 | 34 | 45 | 56 | 67 | * |
13 | 24 | 35 | 46 | 57 | * | * |
The asterisks represent elements in the
the lower triangle of A, it is stored in ab(1+i−j,j). Therefore, the columns of the lower triangle of A are stored in the columns of ab, and the diagonals of the lower triangle of A are stored in the rows of ab, with the principal diagonal in the first row, the first subdiagonal in the second row, and so on.
Usage | VECLIB: |
|
| CHARACTER*1 | uplo |
| INTEGER*4 | n, kd, ldab, incx, incy |
| REAL*4 | alpha, beta, ab(ldab, n), x(lenx), y(leny) |
CALL SSBMV(uplo, n, kd, alpha, ab, ldab, x, incx, beta, y, incy)
CHARACTER*1 | uplo |
INTEGER*4 | n, kd, ldab, incx, incy |
REAL*8 | alpha, beta, ab(ldab, n), x(lenx), y(leny) |
CALL DSBMV(uplo, n, kd, alpha, ab, ldab, x, incx, beta, y, incy)
Chapter 3 Basic Matrix Operations 245