181 SUBROUTINE chbgv( JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z,
182 $ LDZ, WORK, RWORK, INFO )
190 INTEGER INFO, KA, KB, LDAB, LDBB, LDZ, N
193 REAL RWORK( * ), W( * )
194 COMPLEX AB( ldab, * ), BB( ldbb, * ), WORK( * ),
203 INTEGER IINFO, INDE, INDWRK
216 wantz = lsame( jobz,
'V' )
217 upper = lsame( uplo,
'U' )
220 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 222 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 224 ELSE IF( n.LT.0 )
THEN 226 ELSE IF( ka.LT.0 )
THEN 228 ELSE IF( kb.LT.0 .OR. kb.GT.ka )
THEN 230 ELSE IF( ldab.LT.ka+1 )
THEN 232 ELSE IF( ldbb.LT.kb+1 )
THEN 234 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 238 CALL xerbla(
'CHBGV', -info )
249 CALL cpbstf( uplo, n, kb, bb, ldbb, info )
259 CALL chbgst( jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, z, ldz,
260 $ work, rwork( indwrk ), iinfo )
269 CALL chbtrd( vect, uplo, n, ka, ab, ldab, w, rwork( inde ), z,
274 IF( .NOT.wantz )
THEN 275 CALL ssterf( n, w, rwork( inde ), info )
277 CALL csteqr( jobz, n, w, rwork( inde ), z, ldz,
278 $ rwork( indwrk ), info )
subroutine csteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
CSTEQR
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cpbstf(UPLO, N, KD, AB, LDAB, INFO)
CPBSTF
subroutine chbgst(VECT, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, X, LDX, WORK, RWORK, INFO)
CHBGST
subroutine chbgv(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, RWORK, INFO)
CHBGV
subroutine ssterf(N, D, E, INFO)
SSTERF
subroutine chbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
CHBTRD