118 SUBROUTINE dpptrf( UPLO, N, AP, INFO )
129 DOUBLE PRECISION AP( * )
135 DOUBLE PRECISION ONE, ZERO
136 parameter( one = 1.0d+0, zero = 0.0d+0 )
145 DOUBLE PRECISION DDOT
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(
'DPPTRF', -info )
187 $
CALL dtpsv(
'Upper',
'Transpose',
'Non-unit', j-1, ap,
192 ajj = ap( jj ) - ddot( j-1, ap( jc ), 1, ap( jc ), 1 )
193 IF( ajj.LE.zero )
THEN 197 ap( jj ) = sqrt( ajj )
209 IF( ajj.LE.zero )
THEN 220 CALL dscal( n-j, one / ajj, ap( jj+1 ), 1 )
221 CALL dspr(
'Lower', n-j, -one, ap( jj+1 ), 1,
subroutine dtpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
DTPSV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dspr(UPLO, N, ALPHA, X, INCX, AP)
DSPR
subroutine dpptrf(UPLO, N, AP, INFO)
DPPTRF
subroutine dscal(N, DA, DX, INCX)
DSCAL