120 SUBROUTINE zpptrf( UPLO, N, AP, INFO )
138 DOUBLE PRECISION ZERO, ONE
139 parameter ( zero = 0.0d+0, one = 1.0d+0 )
149 EXTERNAL lsame, zdotc
162 upper = lsame( uplo,
'U' )
163 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
165 ELSE IF( n.LT.0 )
THEN
169 CALL xerbla(
'ZPPTRF', -info )
190 $
CALL ztpsv(
'Upper',
'Conjugate transpose',
'Non-unit',
191 $ j-1, ap, ap( jc ), 1 )
195 ajj = dble( ap( jj ) ) - zdotc( j-1, ap( jc ), 1, ap( jc ),
197 IF( ajj.LE.zero )
THEN
201 ap( jj ) = sqrt( ajj )
212 ajj = dble( ap( jj ) )
213 IF( ajj.LE.zero )
THEN
224 CALL zdscal( n-j, one / ajj, ap( jj+1 ), 1 )
225 CALL zhpr(
'Lower', n-j, -one, ap( jj+1 ), 1,
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
ZTPSV
subroutine zhpr(UPLO, N, ALPHA, X, INCX, AP)
ZHPR
subroutine zdscal(N, DA, ZX, INCX)
ZDSCAL
subroutine zpptrf(UPLO, N, AP, INFO)
ZPPTRF