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 xerbla(srname, info)
subroutine dspr(uplo, n, alpha, x, incx, ap)
DSPR
subroutine dpptrf(uplo, n, ap, info)
DPPTRF
subroutine dscal(n, da, dx, incx)
DSCAL
subroutine dtpsv(uplo, trans, diag, n, ap, x, incx)
DTPSV