118 SUBROUTINE zpptrf( UPLO, N, AP, INFO )
135 DOUBLE PRECISION ZERO, ONE
136 parameter( zero = 0.0d+0, one = 1.0d+0 )
146 EXTERNAL lsame, zdotc
159 upper = lsame( uplo,
'U' )
160 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 162 ELSE IF( n.LT.0 )
THEN 166 CALL xerbla(
'ZPPTRF', -info )
187 $
CALL ztpsv(
'Upper',
'Conjugate transpose',
'Non-unit',
188 $ j-1, ap, ap( jc ), 1 )
192 ajj = dble( ap( jj ) ) - dble( zdotc( j-1,
193 $ ap( jc ), 1, ap( jc ), 1 ) )
194 IF( ajj.LE.zero )
THEN 198 ap( jj ) = sqrt( ajj )
209 ajj = dble( ap( jj ) )
210 IF( ajj.LE.zero )
THEN 221 CALL zdscal( n-j, one / ajj, ap( jj+1 ), 1 )
222 CALL zhpr(
'Lower', n-j, -one, ap( jj+1 ), 1,
subroutine zhpr(UPLO, N, ALPHA, X, INCX, AP)
ZHPR
subroutine zdscal(N, DA, ZX, INCX)
ZDSCAL
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
ZTPSV
subroutine zpptrf(UPLO, N, AP, INFO)
ZPPTRF