120 SUBROUTINE dpptrf( UPLO, N, AP, INFO )
132 DOUBLE PRECISION AP( * )
138 DOUBLE PRECISION ONE, ZERO
139 parameter ( one = 1.0d+0, zero = 0.0d+0 )
148 DOUBLE PRECISION DDOT
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(
'DPPTRF', -info )
190 $
CALL dtpsv(
'Upper',
'Transpose',
'Non-unit', j-1, ap,
195 ajj = ap( jj ) - ddot( j-1, ap( jc ), 1, ap( jc ), 1 )
196 IF( ajj.LE.zero )
THEN
200 ap( jj ) = sqrt( ajj )
212 IF( ajj.LE.zero )
THEN
223 CALL dscal( n-j, one / ajj, ap( jj+1 ), 1 )
224 CALL dspr(
'Lower', n-j, -one, ap( jj+1 ), 1,
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dpptrf(UPLO, N, AP, INFO)
DPPTRF
subroutine dtpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
DTPSV
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine dspr(UPLO, N, ALPHA, X, INCX, AP)
DSPR