142 SUBROUTINE spteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
153 REAL D( * ), E( * ), WORK( * ), Z( LDZ, * )
160 parameter( zero = 0.0e0, one = 1.0e0 )
170 REAL C( 1, 1 ), VT( 1, 1 )
173 INTEGER I, ICOMPZ, NRU
184 IF( lsame( compz,
'N' ) )
THEN
186 ELSE IF( lsame( compz,
'V' ) )
THEN
188 ELSE IF( lsame( compz,
'I' ) )
THEN
193 IF( icompz.LT.0 )
THEN
195 ELSE IF( n.LT.0 )
THEN
197 ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
202 CALL xerbla(
'SPTEQR', -info )
217 $
CALL slaset(
'Full', n, n, zero, one, z, ldz )
221 CALL spttrf( n, d, e, info )
225 d( i ) = sqrt( d( i ) )
228 e( i ) = e( i )*d( i )
234 IF( icompz.GT.0 )
THEN
239 CALL sbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
246 d( i ) = d( i )*d( i )
subroutine sbdsqr(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info)
SBDSQR
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