146 SUBROUTINE dpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
158 DOUBLE PRECISION D( * ), E( * ), WORK( * ), Z( LDZ, * )
164 DOUBLE PRECISION ZERO, ONE
165 parameter( zero = 0.0d0, one = 1.0d0 )
175 DOUBLE PRECISION 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(
'DPTEQR', -info )
222 $
CALL dlaset(
'Full', n, n, zero, one, z, ldz )
226 CALL dpttrf( 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 dbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
251 d( i ) = d( i )*d( i )