177 SUBROUTINE dsbgv( JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z,
187 INTEGER INFO, KA, KB, LDAB, LDBB, LDZ, N
190 DOUBLE PRECISION AB( ldab, * ), BB( ldbb, * ), W( * ),
191 $ work( * ), z( ldz, * )
199 INTEGER IINFO, INDE, INDWRK
212 wantz = lsame( jobz,
'V' )
213 upper = lsame( uplo,
'U' )
216 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 218 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 220 ELSE IF( n.LT.0 )
THEN 222 ELSE IF( ka.LT.0 )
THEN 224 ELSE IF( kb.LT.0 .OR. kb.GT.ka )
THEN 226 ELSE IF( ldab.LT.ka+1 )
THEN 228 ELSE IF( ldbb.LT.kb+1 )
THEN 230 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 234 CALL xerbla(
'DSBGV ', -info )
245 CALL dpbstf( uplo, n, kb, bb, ldbb, info )
255 CALL dsbgst( jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, z, ldz,
256 $ work( indwrk ), iinfo )
265 CALL dsbtrd( vect, uplo, n, ka, ab, ldab, w, work( inde ), z, ldz,
266 $ work( indwrk ), iinfo )
270 IF( .NOT.wantz )
THEN 271 CALL dsterf( n, w, work( inde ), info )
273 CALL dsteqr( jobz, n, w, work( inde ), z, ldz, work( indwrk ),
subroutine dsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DSTEQR
subroutine dsterf(N, D, E, INFO)
DSTERF
subroutine dpbstf(UPLO, N, KD, AB, LDAB, INFO)
DPBSTF
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dsbgv(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, INFO)
DSBGV
subroutine dsbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
DSBTRD
subroutine dsbgst(VECT, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, X, LDX, WORK, INFO)
DSBGST