142      SUBROUTINE zpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
 
  153      DOUBLE PRECISION   D( * ), E( * ), WORK( * )
 
  154      COMPLEX*16         Z( LDZ, * )
 
  160      COMPLEX*16         CZERO, CONE
 
  161      parameter( czero = ( 0.0d+0, 0.0d+0 ),
 
  162     $                   cone = ( 1.0d+0, 0.0d+0 ) )
 
  172      COMPLEX*16         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( 
'ZPTEQR', -info )
 
  219     $   
CALL zlaset( 
'Full', n, n, czero, cone, z, ldz )
 
  223      CALL dpttrf( 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 zbdsqr( 
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
 
  248            d( i ) = d( i )*d( i )
 
 
subroutine zbdsqr(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, rwork, info)
ZBDSQR
subroutine zlaset(uplo, m, n, alpha, beta, a, lda)
ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine zpteqr(compz, n, d, e, z, ldz, work, info)
ZPTEQR