173 SUBROUTINE dsbgv( JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W,
183 INTEGER INFO, KA, KB, LDAB, LDBB, LDZ, N
186 DOUBLE PRECISION AB( LDAB, * ), BB( LDBB, * ), W( * ),
187 $ WORK( * ), Z( LDZ, * )
195 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,
264 $ work( indwrk ), iinfo )
268 IF( .NOT.wantz )
THEN
269 CALL dsterf( n, w, work( inde ), info )
271 CALL dsteqr( jobz, n, w, work( inde ), z, ldz,
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 dsteqr(compz, n, d, e, z, ldz, work, info)
DSTEQR