115 SUBROUTINE sstev( JOBZ, N, D, E, Z, LDZ, WORK, INFO )
126 REAL D( * ), E( * ), ( * ), Z( LDZ, * )
133 parameter( zero = 0.0e0, one = 1.0e0 )
138 REAL BIGNUM, EPS, RMAX, RMIN, SAFMIN, SIGMA, SMLNUM,
144 EXTERNAL lsame, slamch, slanst
156 wantz = lsame( jobz,
'V' )
159 IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
161 ELSE IF( n.LT.0 )
THEN
163 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
168 CALL xerbla(
'SSTEV ', -info )
185 safmin = slamch(
'Safe minimum' )
186 eps = slamch(
'Precision' )
187 smlnum = safmin / eps
188 bignum = one / smlnum
189 rmin = sqrt( smlnum )
190 rmax = sqrt( bignum )
195 tnrm = slanst(
'M', n, d, e )
196 IF( tnrm.GT.zero .AND. tnrm.LT.rmin )
THEN
199 ELSE IF( tnrm.GT.rmax )
THEN
203 IF( iscale.EQ.1 )
THEN
204 CALL sscal( n, sigma, d, 1 )
205 CALL sscal( n-1, sigma, e( 1 ), 1 )
211 IF( .NOT.wantz )
THEN
212 CALL ssterf( n, d, e, info )
214 CALL ssteqr(
'I', n, d, e, z, ldz, work, info )
219 IF( iscale.EQ.1 )
THEN
225 CALL sscal( imax, one / sigma, d, 1 )
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 matrices