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