179 SUBROUTINE chbgv( JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W,
181 $ LDZ, WORK, RWORK, INFO )
189 INTEGER INFO, KA, KB, LDAB, LDBB, LDZ, N
192 REAL RWORK( * ), W( * )
193 COMPLEX AB( LDAB, * ), BB( LDBB, * ), WORK( * ),
202 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 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 chbtrd(vect, uplo, n, kd, ab, ldab, d, e, q, ldq, work, info)
CHBTRD
subroutine csteqr(compz, n, d, e, z, ldz, work, info)
CSTEQR