107 SUBROUTINE ctrti2( UPLO, DIAG, N, A, LDA, INFO )
125 parameter( one = ( 1.0e+0, 0.0e+0 ) )
128 LOGICAL NOUNIT, UPPER
147 upper = lsame( uplo,
'U' )
148 nounit = lsame( diag,
'N' )
149 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
151 ELSE IF( .NOT.nounit .AND. .NOT.lsame( diag,
'U' ) )
THEN
153 ELSE IF( n.LT.0 )
THEN
155 ELSE IF( lda.LT.max( 1, n ) )
THEN
159 CALL xerbla(
'CTRTI2', -info )
169 a( j, j ) = one / a( j, j )
177 CALL ctrmv(
'Upper',
'No transpose', diag, j-1, a, lda,
179 CALL cscal( j-1, ajj, a( 1, j ), 1 )
187 a( j, j ) = one / a( j, j )
196 CALL ctrmv(
'Lower',
'No transpose', diag, n-j,
197 $ a( j+1, j+1 ), lda, a( j+1, j ), 1 )
198 CALL cscal( n-j, ajj, a( j+1, j ), 1 )
subroutine ctrmv(uplo, trans, diag, n, a, lda, x, incx)
CTRMV
subroutine ctrti2(uplo, diag, n, a, lda, info)
CTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).