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 spttrf(N, D, E, INFO)
SPTTRF
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 spteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
SPTEQR
subroutine sbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO)
SBDSQR