[ Previous  Next  Table of Contents  Index  Library Home 
Legal 
Search ]
Technical Reference: Base Operating System and Extensions , Volume 2
Performs matrixvector operations
using a Hermitian band matrix.
BLAS Library
(libblas.a)
SUBROUTINE CHBMV(UPLO, N, K, ALPHA, A, LDA,
X, INCX, BETA, Y, INCY)
COMPLEX ALPHA, BETA
INTEGER INCX, INCY, K, LDA, N
CHARACTER*1 UPLO
COMPLEX A(LDA,*), X(*), Y(*)
SUBROUTINE ZHBMV(UPLO, N, K, ALPHA, A, LDA,
X, INCX, BETA, Y, INCY)
COMPLEX*16 ALPHA,BETA
INTEGER INCX,INCY,K,LDA,N
CHARACTER*1 UPLO
COMPLEX*16 A(LDA,*), X(*), Y(*)
The CHBMV or
ZHBMV subroutine performs the matrixvector operation:
y := alpha
* A * x + beta * y
where alpha and beta are scalars,
x and y are N element vectors, and A is an N
by N Hermitian band matrix with K superdiagonals.
UPLO
 On entry, UPLO specifies whether the upper or lower triangular
part of the band matrix A is being supplied as follows:
 UPLO = 'U'
or 'u'
 The upper triangular part of A is being supplied.
 UPLO = 'L'
or 'l'
 The lower triangular part of A is being supplied.
Unchanged on exit.

N
 On entry, N specifies the order of the matrix
A; N must be at least 0; unchanged on
exit.

K
 On entry, K specifies the number of superdiagonals of the
matrix A; K must satisfy 0 .le.
K; unchanged on exit.

ALPHA
 On entry, ALPHA specifies the scalar alpha; unchanged on
exit.

A
 An array of dimension ( LDA, N ). On 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 Hermitian matrix, 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 segment
transfers the upper triangular part of a Hermitian 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
Note: On 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
Hermitian matrix, 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 transfers the lower triangular part of a Hermitian 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
The imaginary parts of the
diagonal elements need not be set and are assumed to be 0. Unchanged on
exit.

LDA
 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
 A vector of dimension at least (1 + (N1) * abs(
INCX ) ); on entry, the incremented array X must
contain the vector x; unchanged on exit.

INCX
 On entry, INCX specifies the increment for the elements of
X; INCX must not be 0 unchanged on exit.

BETA
 On entry, BETA specifies the scalar beta unchanged on
exit.

Y
 A vector of dimension at least (1 + (N1) * abs(
INCY ) ); on entry, the incremented array Y must
contain the vector y; on exit, Y is overwritten by the updated
vector y.

INCY
 On entry, INCY specifies the increment for the elements of
Y; INCY must not be 0; unchanged on
exit.

[ Previous  Next  Table of Contents  Index 
Library Home 
Legal 
Search ]