SSBMV(3dxml) — Subroutines
Name
ssbmv, dsbmv, chbmv, zhbmv − Matrix-vector product for a symmetric or hermitian band matrix
FORMAT
{S,D}SBMV (uplo, n, k, alpha, a, lda, x, incx, beta, y, incy) {C,Z}HBMV (uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)
Arguments
uplocharacter∗1
On entry, specifies whether the upper- or lower-triangular part of the array A is referenced:
If uplo = ’U’ or ’u’, the upper-triangular part of A is referenced.
If uplo = ’L’ or ’l’, the lower-triangular part of A is referenced.
On exit, uplo is unchanged.
ninteger∗4
On entry, the order of the matrix A; n >= 0.
On exit, n is unchanged.
kinteger∗4
On entry, if uplo specifies the upper portion of matrix A, k represents the number of super-diagonals of the matrix. If uplo specifies the lower portion, k is the number of subdiagonals; k >= 0.
On exit, k is unchanged.
alphareal∗4 | real∗8 | complex∗8 | complex∗16
On entry, the scalar alpha∗.
On exit, alpha is unchanged.
areal∗4 | real∗8 | complex∗8 | complex∗16
On entry, a two-dimensional array with dimensions lda by n.
When uplo specifies the upper portion of the matrix, the leading (k + 1) by n part of the array must contain the upper-triangular band part of the matrix, supplied column by column. The main diagonal of the matrix is stored in row (k + 1) of the array, the first super-diagonal is stored in row k starting at position 2, and so on. The top left k by k triangle of the array A is not referenced.
When uplo specifies the lower portion of the matrix, the leading (k + 1) by n part of the array must contain the lower-triangular band part of the matrix, supplied column by column. The main diagonal of the matrix is stored in row 1 of the array, the first sub-diagonal is stored in row 2, starting at position 1, and so on. The bottom right k by k triangle of the array A is not referenced.
For CHBMV and ZHBMV routines, the imaginary parts of the diagonal elements are not accessed, need not be set, and are assumed to be zero.
On exit, a is unchanged.
ldainteger∗4
On entry, the first dimension of array A; lda >= (k+1).
On exit, lda is unchanged.
xreal∗4 | real∗8 | complex∗8 | complex∗16
On entry, a one-dimensional array X of length at least (1+(n-1)∗|incx|). Array X contains the vector x.
On exit, x is unchanged.
incxinteger∗4
On entry, the increment for the elements of X; incx must not equal zero.
On exit, incx is unchanged.
betareal∗4 | real∗8 | complex∗8 | complex∗16
On entry, the scalar beta.
On exit, beta is unchanged.
yreal∗4 | real∗8 | complex∗8 | complex∗16
On entry, a one-dimensional array Y of length at least (1+(n-1)∗|incy|).
If beta= 0, y need not be set. If betais not equal to zero, the incremented array Y must contain the vector y.
On exit, y is overwritten by the updated vector y.
incyinteger∗4
On entry, the increment for the elements of Y; incy must not equal zero.
On exit, incy is unchanged.
Description
SSBMV and DSBMV compute a matrix-vector product for a real symmetric band matrix. CHBMV and ZHBMV compute a matrix-vector product for a complex Hermitian band matrix. Both products are described by the following operation: y = alpha∗Ax + beta∗y
alphaand betaare scalars, and x and y are vectors with n elements. In the case of SSBMV and DSBMV, A is a symmetric matrix and in the case of CHBMV and ZHBMV, A is a Hermitian matrix.
Example
REAL∗8 A(2,10), X(10), Y(10), alpha, beta
N = 10
K = 1
alpha = 2.0D0
LDA = 2
INCX = 1
beta = 1.0D0
INCY = 1
CALL DSBMV(’U’,N,K,alpha,A,LDA,X,INCX,beta,Y,INCY)
This FORTRAN code computes the product y = alpha∗Ax + y) where A is a symmetric tridiagonal matrix, with A stored in upper-triangular form.
COMPLEX∗8 A(2,10), X(10), Y(10), alpha, beta
N = 10
K = 1
alpha = (2.0, 2.2)
LDA = 2
INCX = 1
beta = (1.0, 0.0)
This FORTRAN code computes the product y = alpha∗Ax + y) where A is a Hermitian tridiagonal matrix, with the upper diagonal of A stored.