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 dpptrf(UPLO, N, AP, INFO)
DPPTRF
subroutine dtpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
DTPSV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine dspr(UPLO, N, ALPHA, X, INCX, AP)
DSPR