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)
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
subroutine spttrf(n, d, e, info)
SPTTRF