146 SUBROUTINE spteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
158 REAL d( * ), e( * ), work( * ), z( ldz, * )
165 parameter( zero = 0.0e0, one = 1.0e0 )
175 REAL c( 1, 1 ), vt( 1, 1 )
178 INTEGER i, icompz, nru
189 IF(
lsame( compz,
'N' ) )
THEN
191 ELSE IF(
lsame( compz,
'V' ) )
THEN
193 ELSE IF(
lsame( compz,
'I' ) )
THEN
198 IF( icompz.LT.0 )
THEN
200 ELSE IF( n.LT.0 )
THEN
202 ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
207 CALL
xerbla(
'SPTEQR', -info )
222 $ CALL
slaset(
'Full', n, n, zero, one, z, ldz )
226 CALL
spttrf( n, d, e, info )
230 d( i ) = sqrt( d( i ) )
233 e( i ) = e( i )*d( i )
239 IF( icompz.GT.0 )
THEN
244 CALL
sbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
251 d( i ) = d( i )*d( i )
subroutine slaset(UPLO, M, N, ALPHA, BETA, A, LDA)
SLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
LOGICAL function lsame(CA, CB)
LSAME
subroutine sbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO)
SBDSQR
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine spttrf(N, D, E, INFO)
SPTTRF
subroutine spteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
SPTEQR