144 SUBROUTINE ssbev( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK,
153 INTEGER INFO, KD, LDAB, LDZ, N
156 REAL AB( ldab, * ), W( * ), WORK( * ), Z( ldz, * )
163 parameter( zero = 0.0e0, one = 1.0e0 )
167 INTEGER IINFO, IMAX, INDE, INDWRK, ISCALE
168 REAL ANRM, BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA,
174 EXTERNAL lsame, slamch, slansb
186 wantz = lsame( jobz,
'V' )
187 lower = lsame( uplo,
'L' )
190 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 192 ELSE IF( .NOT.( lower .OR. lsame( uplo,
'U' ) ) )
THEN 194 ELSE IF( n.LT.0 )
THEN 196 ELSE IF( kd.LT.0 )
THEN 198 ELSE IF( ldab.LT.kd+1 )
THEN 200 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 205 CALL xerbla(
'SSBEV ', -info )
218 w( 1 ) = ab( kd+1, 1 )
227 safmin = slamch(
'Safe minimum' )
228 eps = slamch(
'Precision' )
229 smlnum = safmin / eps
230 bignum = one / smlnum
231 rmin = sqrt( smlnum )
232 rmax = sqrt( bignum )
236 anrm = slansb(
'M', uplo, n, kd, ab, ldab, work )
238 IF( anrm.GT.zero .AND. anrm.LT.rmin )
THEN 241 ELSE IF( anrm.GT.rmax )
THEN 245 IF( iscale.EQ.1 )
THEN 247 CALL slascl(
'B', kd, kd, one, sigma, n, n, ab, ldab, info )
249 CALL slascl(
'Q', kd, kd, one, sigma, n, n, ab, ldab, info )
257 CALL ssbtrd( jobz, uplo, n, kd, ab, ldab, w, work( inde ), z, ldz,
258 $ work( indwrk ), iinfo )
262 IF( .NOT.wantz )
THEN 263 CALL ssterf( n, w, work( inde ), info )
265 CALL ssteqr( jobz, n, w, work( inde ), z, ldz, work( indwrk ),
271 IF( iscale.EQ.1 )
THEN 277 CALL sscal( imax, one / sigma, w, 1 )
subroutine ssbev(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, INFO)
SSBEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine ssteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
SSTEQR
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine slascl(TYPE, KL, KU, CFROM, CTO, M, N, A, LDA, INFO)
SLASCL multiplies a general rectangular matrix by a real scalar defined as cto/cfrom.
subroutine ssbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
SSBTRD
subroutine ssterf(N, D, E, INFO)
SSTERF
subroutine sscal(N, SA, SX, INCX)
SSCAL