144 SUBROUTINE spteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
155 REAL D( * ), E( * ), WORK( * ), Z( ldz, * )
162 parameter( zero = 0.0e0, one = 1.0e0 )
172 REAL C( 1, 1 ), VT( 1, 1 )
175 INTEGER I, ICOMPZ, NRU
186 IF( lsame( compz,
'N' ) )
THEN 188 ELSE IF( lsame( compz,
'V' ) )
THEN 190 ELSE IF( lsame( compz,
'I' ) )
THEN 195 IF( icompz.LT.0 )
THEN 197 ELSE IF( n.LT.0 )
THEN 199 ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
204 CALL xerbla(
'SPTEQR', -info )
219 $
CALL slaset(
'Full', n, n, zero, one, z, ldz )
223 CALL spttrf( n, d, e, info )
227 d( i ) = sqrt( d( i ) )
230 e( i ) = e( i )*d( i )
236 IF( icompz.GT.0 )
THEN 241 CALL sbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
248 d( i ) = d( i )*d( i )
subroutine xerbla(SRNAME, INFO)
XERBLA
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...
subroutine sbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO)
SBDSQR
subroutine spteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
SPTEQR
subroutine spttrf(N, D, E, INFO)
SPTTRF