STBMV(3dxml) — Subroutines
Name
stbmv, dtbmv, ctbmv, ztbmv − Matrix-vector product for a triangular band matrix
FORMAT
{S,D,C,Z}TBMV (uplo, trans, diag, n, k, a, lda, x, incx)
Arguments
uplocharacter∗1
On entry, specifies whether the matrix A is an upper- or lower-triangular matrix:
If uplo = ’U’ or ’u’, A is an upper-triangular matrix.
If uplo = ’L’ or ’l’, A is a lower-triangular matrix.
On exit, uplo is unchanged.
transcharacter∗1
On entry, specifies the operation to be performed:
If trans = ’N’ or ’n’, the operation is y = alpha∗Ax + beta∗y.
If trans = ’T’ or ’t’, the operation is y = alpha∗transp(A)∗x + beta∗y.
If trans = ’C’ or ’c’, the operation is y = alpha∗conjug_transp(A)∗x + beta∗y.
On exit, trans is unchanged.
diagcharacter∗1
On entry, specifies whether the matrix A is unit-triangular:
If diag = ’U’ or ’u’, A is a unit-triangular matrix.
If diag = ’N’ or ’n’, A is not a unit-triangular matrix.
On exit, diag 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 is equal to ’U’ or matrix A. If uplo is equal to ’L’ or ’l’, the number of sub-diagonals k of the matrix A; k >= 0.
On exit, k 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 bottom 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 top right k by k triangle of the array A is not referenced.
If diag is equal to ’U’ or diagonal elements of the matrix are not referenced, but are assumed to be unity.
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 overwritten with the transformed vector x.
incxinteger∗4
On entry, the increment for the elements of X; incx must not equal zero.
On exit, incx is unchanged.
Description
The _TBMV subprograms compute a matrix-vector product for a triangular band matrix or its transpose: x = Ax or
x = transp(A)∗x .
In addition to these operations, the CTBMV and ZTBMV subprograms compute the matrix-vector product for the conjugate transpose:
x = conjug_transp(A)∗x.
x is a vector with n elements and A is an n by n band matrix, with (k + 1) diagonals. The band matrix is a unit or non-unit, upper- or lower-triangular matrix.
Example
REAL∗4 A(5,100), X(100)
INCX = 1
LDA = 5
K = 4
N = 100
CALL STBMV(’U’,’N’,’N’,N,K,A,LDA,X,INCX)
This FORTRAN code computes the product x = Ax where A is an upper-triangular, non-unit diagonal matrix, with 4 superdiagonals.