General band | F_SGBMV/F_DGBMV/F_CGBMV/F_ZGBMV | |
Name | F_SGBMV/F_DGBMV/F_CGBMV/F_ZGBMV | |
| General band | |
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 | |
|
| 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