117 SUBROUTINE sstev( JOBZ, N, D, E, Z, LDZ, WORK, INFO )
129 REAL D( * ), E( * ), WORK( * ), Z( ldz, * )
136 parameter ( zero = 0.0e0, one = 1.0e0 )
141 REAL BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, SMLNUM,
147 EXTERNAL lsame, slamch, slanst
159 wantz = lsame( jobz,
'V' )
162 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
164 ELSE IF( n.LT.0 )
THEN
166 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
171 CALL xerbla(
'SSTEV ', -info )
188 safmin = slamch(
'Safe minimum' )
189 eps = slamch(
'Precision' )
190 smlnum = safmin / eps
191 bignum = one / smlnum
192 rmin = sqrt( smlnum )
193 rmax = sqrt( bignum )
198 tnrm = slanst(
'M', n, d, e )
199 IF( tnrm.GT.zero .AND. tnrm.LT.rmin )
THEN
202 ELSE IF( tnrm.GT.rmax )
THEN
206 IF( iscale.EQ.1 )
THEN
207 CALL sscal( n, sigma, d, 1 )
208 CALL sscal( n-1, sigma, e( 1 ), 1 )
214 IF( .NOT.wantz )
THEN
215 CALL ssterf( n, d, e, info )
217 CALL ssteqr(
'I', n, d, e, z, ldz, work, info )
222 IF( iscale.EQ.1 )
THEN
228 CALL sscal( imax, one / sigma, d, 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ssteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
SSTEQR
subroutine sscal(N, SA, SX, INCX)
SSCAL
subroutine ssterf(N, D, E, INFO)
SSTERF
subroutine sstev(JOBZ, N, D, E, Z, LDZ, WORK, INFO)
SSTEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...