
DTBMV(l) BLAS routine DTBMV(l)
NAME
DTBMV  perform one of the matrixvector operations x := A*x, or x := A'*x,
SYNOPSIS
SUBROUTINE DTBMV ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX )
INTEGER INCX, K, LDA, N
CHARACTER*1 DIAG, TRANS, UPLO
DOUBLE PRECISION A( LDA, * ), X( * )
PURPOSE
DTBMV performs one of the matrixvector operations
where x is an n element vector and A is an n by n unit, or nonunit, upper or lower tri
angular band matrix, with ( k + 1 ) diagonals.
PARAMETERS
UPLO  CHARACTER*1.
On entry, UPLO specifies whether the matrix is an upper or lower triangular matrix
as follows:
UPLO = 'U' or 'u' A is an upper triangular matrix.
UPLO = 'L' or 'l' A is a lower triangular matrix.
Unchanged on exit.
TRANS  CHARACTER*1.
On entry, TRANS specifies the operation to be performed as follows:
TRANS = 'N' or 'n' x := A*x.
TRANS = 'T' or 't' x := A'*x.
TRANS = 'C' or 'c' x := A'*x.
Unchanged on exit.
DIAG  CHARACTER*1.
On entry, DIAG specifies whether or not A is unit triangular as follows:
DIAG = 'U' or 'u' A is assumed to be unit triangular.
DIAG = 'N' or 'n' A is not assumed to be unit triangular.
Unchanged on exit.
N  INTEGER.
On entry, N specifies the order of the matrix A. N must be at least zero.
Unchanged on exit.
K  INTEGER.
On entry with UPLO = 'U' or 'u', K specifies the number of superdiagonals of the
matrix A. On entry with UPLO = 'L' or 'l', K specifies the number of subdiagonals
of the matrix A. K must satisfy 0 .le. K. Unchanged on exit.
A  DOUBLE PRECISION array of DIMENSION ( LDA, n ).
Before entry with UPLO = 'U' or 'u', the leading ( k + 1 ) by n part of the array A
must contain the upper triangular band part of the matrix of coefficients, supplied
column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the
array, the first superdiagonal starting at position 2 in row k, and so on. The top
left k by k triangle of the array A is not referenced. The following program seg
ment will transfer an upper triangular band matrix from conventional full matrix
storage to band storage:
DO 20, J = 1, N M = K + 1  J DO 10, I = MAX( 1, J  K ), J A( M + I, J ) = matrix(
I, J ) 10 CONTINUE 20 CONTINUE
Before entry with UPLO = 'L' or 'l', the leading ( k + 1 ) by n part of the array A
must contain the lower triangular band part of the matrix of coefficients, supplied
column by column, with the leading diagonal of the matrix in row 1 of the array,
the first subdiagonal starting at position 1 in row 2, and so on. The bottom right
k by k triangle of the array A is not referenced. The following program segment
will transfer a lower triangular band matrix from conventional full matrix storage
to band storage:
DO 20, J = 1, N M = 1  J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I,
J ) 10 CONTINUE 20 CONTINUE
Note that when DIAG = 'U' or 'u' the elements of the array A corresponding to the
diagonal elements of the matrix are not referenced, but are assumed to be unity.
Unchanged on exit.
LDA  INTEGER.
On entry, LDA specifies the first dimension of A as declared in the calling (sub)
program. LDA must be at least ( k + 1 ). Unchanged on exit.
X  DOUBLE PRECISION array of dimension at least
( 1 + ( n  1 )*abs( INCX ) ). Before entry, the incremented array X must contain
the n element vector x. On exit, X is overwritten with the tranformed vector x.
INCX  INTEGER.
On entry, INCX specifies the increment for the elements of X. INCX must not be
zero. Unchanged on exit.
Level 2 Blas routine.
 Written on 22October1986. Jack Dongarra, Argonne National Lab. Jeremy Du
Croz, Nag Central Office. Sven Hammarling, Nag Central Office. Richard Hanson,
Sandia National Labs.
BLAS routine 16 October 1992 DTBMV(l) 
