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 xerbla(srname, info)
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 dsbtrd(vect, uplo, n, kd, ab, ldab, d, e, q, ldq, work, info)
DSBTRD
subroutine dpbstf(uplo, n, kd, ab, ldab, info)
DPBSTF
subroutine dsteqr(compz, n, d, e, z, ldz, work, info)
DSTEQR
subroutine dsterf(n, d, e, info)
DSTERF