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 xerbla(srname, 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 cpbstf(uplo, n, kd, ab, ldab, info)
CPBSTF
subroutine csteqr(compz, n, d, e, z, ldz, work, info)
CSTEQR
subroutine ssterf(n, d, e, info)
SSTERF