109 SUBROUTINE ctrti2( UPLO, DIAG, N, A, LDA, INFO )
127 parameter( one = ( 1.0e+0, 0.0e+0 ) )
130 LOGICAL NOUNIT, UPPER
149 upper = lsame( uplo,
'U' )
150 nounit = lsame( diag,
'N' )
151 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
153 ELSE IF( .NOT.nounit .AND. .NOT.lsame( diag,
'U' ) )
THEN
155 ELSE IF( n.LT.0 )
THEN
157 ELSE IF( lda.LT.max( 1, n ) )
THEN
161 CALL xerbla(
'CTRTI2', -info )
171 a( j, j ) = one / a( j, j )
179 CALL ctrmv(
'Upper',
'No transpose', diag, j-1, a, lda,
181 CALL cscal( j-1, ajj, a( 1, j ), 1 )
189 a( j, j ) = one / a( j, j )
198 CALL ctrmv(
'Lower',
'No transpose', diag, n-j,
199 $ a( j+1, j+1 ), lda, a( j+1, j ), 1 )
200 CALL cscal( n-j, ajj, a( j+1, j ), 1 )
subroutine xerbla(srname, info)
subroutine cscal(n, ca, cx, incx)
CSCAL
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).