118 SUBROUTINE dtptri( UPLO, DIAG, N, AP, INFO )
130 DOUBLE PRECISION ap( * )
136 DOUBLE PRECISION one, zero
137 parameter( one = 1.0d+0, zero = 0.0d+0 )
140 LOGICAL nounit, upper
141 INTEGER j, jc, jclast, jj
156 upper =
lsame( uplo,
'U' )
157 nounit =
lsame( diag,
'N' )
158 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
160 ELSE IF( .NOT.nounit .AND. .NOT.
lsame( diag,
'U' ) )
THEN
162 ELSE IF( n.LT.0 )
THEN
166 CALL
xerbla(
'DTPTRI', -info )
177 IF( ap( jj ).EQ.zero )
183 IF( ap( jj ).EQ.zero )
185 jj = jj + n - info + 1
198 ap( jc+j-1 ) = one / ap( jc+j-1 )
206 CALL
dtpmv(
'Upper',
'No transpose', diag, j-1, ap,
208 CALL
dscal( j-1, ajj, ap( jc ), 1 )
219 ap( jc ) = one / ap( jc )
228 CALL
dtpmv(
'Lower',
'No transpose', diag, n-j,
229 $ ap( jclast ), ap( jc+1 ), 1 )
230 CALL
dscal( n-j, ajj, ap( jc+1 ), 1 )