183 SUBROUTINE zhbgv( JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z,
184 $ LDZ, WORK, RWORK, INFO )
193 INTEGER INFO, KA, KB, LDAB, LDBB, LDZ, N
196 DOUBLE PRECISION RWORK( * ), W( * )
197 COMPLEX*16 AB( ldab, * ), BB( ldbb, * ), WORK( * ),
206 INTEGER IINFO, INDE, INDWRK
219 wantz = lsame( jobz,
'V' )
220 upper = lsame( uplo,
'U' )
223 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 225 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 227 ELSE IF( n.LT.0 )
THEN 229 ELSE IF( ka.LT.0 )
THEN 231 ELSE IF( kb.LT.0 .OR. kb.GT.ka )
THEN 233 ELSE IF( ldab.LT.ka+1 )
THEN 235 ELSE IF( ldbb.LT.kb+1 )
THEN 237 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 241 CALL xerbla(
'ZHBGV ', -info )
252 CALL zpbstf( uplo, n, kb, bb, ldbb, info )
262 CALL zhbgst( jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, z, ldz,
263 $ work, rwork( indwrk ), iinfo )
272 CALL zhbtrd( vect, uplo, n, ka, ab, ldab, w, rwork( inde ), z,
277 IF( .NOT.wantz )
THEN 278 CALL dsterf( n, w, rwork( inde ), info )
280 CALL zsteqr( jobz, n, w, rwork( inde ), z, ldz,
281 $ rwork( indwrk ), info )
subroutine zhbgst(VECT, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, X, LDX, WORK, RWORK, INFO)
ZHBGST
subroutine zpbstf(UPLO, N, KD, AB, LDAB, INFO)
ZPBSTF
subroutine dsterf(N, D, E, INFO)
DSTERF
subroutine zsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
ZSTEQR
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zhbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
ZHBTRD
subroutine zhbgv(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, RWORK, INFO)
ZHBGV