175 SUBROUTINE dsbgv( JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z,
184 INTEGER INFO, KA, KB, LDAB, LDBB, LDZ, N
187 DOUBLE PRECISION AB( ldab, * ), BB( ldbb, * ), W( * ),
188 $ work( * ), z( ldz, * )
196 INTEGER IINFO, INDE, INDWRK
209 wantz = lsame( jobz,
'V' )
210 upper = lsame( uplo,
'U' )
213 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 215 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 217 ELSE IF( n.LT.0 )
THEN 219 ELSE IF( ka.LT.0 )
THEN 221 ELSE IF( kb.LT.0 .OR. kb.GT.ka )
THEN 223 ELSE IF( ldab.LT.ka+1 )
THEN 225 ELSE IF( ldbb.LT.kb+1 )
THEN 227 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 231 CALL xerbla(
'DSBGV', -info )
242 CALL dpbstf( uplo, n, kb, bb, ldbb, info )
252 CALL dsbgst( jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, z, ldz,
253 $ work( indwrk ), iinfo )
262 CALL dsbtrd( vect, uplo, n, ka, ab, ldab, w, work( inde ), z, ldz,
263 $ work( indwrk ), iinfo )
267 IF( .NOT.wantz )
THEN 268 CALL dsterf( n, w, work( inde ), info )
270 CALL dsteqr( jobz, n, w, work( inde ), z, ldz, work( indwrk ),
subroutine dsbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
DSBTRD
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dpbstf(UPLO, N, KD, AB, LDAB, INFO)
DPBSTF
subroutine dsterf(N, D, E, INFO)
DSTERF
subroutine dsbgst(VECT, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, X, LDX, WORK, INFO)
DSBGST
subroutine dsbgv(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, INFO)
DSBGV
subroutine dsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DSTEQR