111 SUBROUTINE dtrti2( UPLO, DIAG, N, A, LDA, INFO )
123 DOUBLE PRECISION a( lda, * )
130 parameter( one = 1.0d+0 )
133 LOGICAL nounit, upper
152 upper =
lsame( uplo,
'U' )
153 nounit =
lsame( diag,
'N' )
154 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
156 ELSE IF( .NOT.nounit .AND. .NOT.
lsame( diag,
'U' ) )
THEN
158 ELSE IF( n.LT.0 )
THEN
160 ELSE IF( lda.LT.max( 1, n ) )
THEN
164 CALL
xerbla(
'DTRTI2', -info )
174 a(
j,
j ) = one / a(
j,
j )
182 CALL
dtrmv(
'Upper',
'No transpose', diag,
j-1, a, lda,
184 CALL
dscal(
j-1, ajj, a( 1,
j ), 1 )
192 a(
j,
j ) = one / a(
j,
j )
201 CALL
dtrmv(
'Lower',
'No transpose', diag, n-
j,
202 $ a(
j+1,
j+1 ), lda, a(
j+1,
j ), 1 )
203 CALL
dscal( n-
j, ajj, a(
j+1,
j ), 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
logical function lsame(CA, CB)
LSAME
subroutine dscal(N, DA, DX, INCX)
DSCAL
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine dtrti2(UPLO, DIAG, N, A, LDA, INFO)
DTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).
subroutine dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV