133      DOUBLE PRECISION   ZERO, ONE
 
  134      parameter( zero = 0.0d+0, one = 1.0d+0 )
 
  144      EXTERNAL           lsame, zdotc
 
  157      upper = lsame( uplo, 
'U' )
 
  158      IF( .NOT.upper .AND. .NOT.lsame( uplo, 
'L' ) ) 
THEN 
  160      ELSE IF( n.LT.0 ) 
THEN 
  164         CALL xerbla( 
'ZPPTRF', -info )
 
  185     $         
CALL ztpsv( 
'Upper', 
'Conjugate transpose',
 
  187     $                     j-1, ap, ap( jc ), 1 )
 
  191            ajj = dble( ap( jj ) ) - dble( zdotc( j-1,
 
  192     $            ap( jc ), 1, ap( jc ), 1 ) )
 
  193            IF( ajj.LE.zero ) 
THEN 
  197            ap( jj ) = sqrt( ajj )
 
  208            ajj = dble( ap( jj ) )
 
  209            IF( ajj.LE.zero ) 
THEN 
  220               CALL zdscal( n-j, one / ajj, ap( jj+1 ), 1 )
 
  221               CALL zhpr( 
'Lower', n-j, -one, ap( jj+1 ), 1,
 
 
subroutine xerbla(srname, info)
subroutine zhpr(uplo, n, alpha, x, incx, ap)
ZHPR
subroutine zpptrf(uplo, n, ap, info)
ZPPTRF
subroutine zdscal(n, da, zx, incx)
ZDSCAL
subroutine ztpsv(uplo, trans, diag, n, ap, x, incx)
ZTPSV