115 SUBROUTINE sstev( JOBZ, N, D, E, Z, LDZ, WORK, INFO )
126 REAL D( * ), E( * ), WORK( * ), 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 xerbla(srname, info)
subroutine sscal(n, sa, sx, incx)
SSCAL
subroutine ssteqr(compz, n, d, e, z, ldz, work, info)
SSTEQR
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 matrices