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 ssterf(N, D, E, INFO)
SSTERF
subroutine ssteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
SSTEQR
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...
subroutine sscal(N, SA, SX, INCX)
SSCAL