ZHBT21

   Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
   November 2006

Purpose

ZHBT21  generally checks a decomposition of the form

        A = U S U*

where * means conjugate transpose, A is hermitian banded, U is
unitary, and S is diagonal (if KS=0) or symmetric
tridiagonal (if KS=1).

Specifically:

        RESULT(1) = | A - U S U* | / ( |A| n ulp ) *and*
        RESULT(2) = | I - UU* | / ( n ulp )

Arguments

UPLO
(input) CHARACTER
If UPLO='U', the upper triangle of A and V will be used and
the (strictly) lower triangle will not be referenced.
If UPLO='L', the lower triangle of A and V will be used and
the (strictly) upper triangle will not be referenced.
N
(input) INTEGER
The size of the matrix.  If it is zero, ZHBT21 does nothing.
It must be at least zero.
KA
(input) INTEGER
The bandwidth of the matrix A.  It must be at least zero.  If
it is larger than N-1, then max( 0, N-1 ) will be used.
KS
(input) INTEGER
The bandwidth of the matrix S.  It may only be zero or one.
If zero, then S is diagonal, and E is not referenced.  If
one, then S is symmetric tri-diagonal.
A
(input) COMPLEX*16 array, dimension (LDA, N)
The original (unfactored) matrix.  It is assumed to be
hermitian, and only the upper (UPLO='U') or only the lower
(UPLO='L') will be referenced.
LDA
(input) INTEGER
The leading dimension of A.  It must be at least 1
and at least min( KA, N-1 ).
D
(input) DOUBLE PRECISION array, dimension (N)
The diagonal of the (symmetric tri-) diagonal matrix S.
E
(input) DOUBLE PRECISION array, dimension (N-1)
The off-diagonal of the (symmetric tri-) diagonal matrix S.
E(1) is the (1,2) and (2,1) element, E(2) is the (2,3) and
(3,2) element, etc.
Not referenced if KS=0.
U
(input) COMPLEX*16 array, dimension (LDU, N)
The unitary matrix in the decomposition, expressed as a
dense matrix (i.e., not as a product of Householder
transformations, Givens transformations, etc.)
LDU
(input) INTEGER
The leading dimension of U.  LDU must be at least N and
at least 1.
WORK
(workspace) COMPLEX*16 array, dimension (N**2)
RWORK
(workspace) DOUBLE PRECISION array, dimension (N)
RESULT
(output) DOUBLE PRECISION array, dimension (2)
The values computed by the two tests described above.  The
values are currently limited to 1/ulp, to avoid overflow.

Call Graph

Caller Graph