146 SUBROUTINE zpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
158 DOUBLE PRECISION d( * ), e( * ), work( * )
159 COMPLEX*16 z( ldz, * )
165 COMPLEX*16 czero, cone
166 parameter( czero = ( 0.0d+0, 0.0d+0 ),
167 $ cone = ( 1.0d+0, 0.0d+0 ) )
177 COMPLEX*16 c( 1, 1 ), vt( 1, 1 )
180 INTEGER i, icompz, nru
191 IF(
lsame( compz,
'N' ) )
THEN
193 ELSE IF(
lsame( compz,
'V' ) )
THEN
195 ELSE IF(
lsame( compz,
'I' ) )
THEN
200 IF( icompz.LT.0 )
THEN
202 ELSE IF( n.LT.0 )
THEN
204 ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
209 CALL
xerbla(
'ZPTEQR', -info )
224 $ CALL
zlaset(
'Full', n, n, czero, cone, z, ldz )
228 CALL
dpttrf( n, d, e, info )
232 d( i ) = sqrt( d( i ) )
235 e( i ) = e( i )*d( i )
241 IF( icompz.GT.0 )
THEN
246 CALL
zbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
253 d( i ) = d( i )*d( i )