109 SUBROUTINE ztrti2( UPLO, DIAG, N, A, LDA, INFO )
120 COMPLEX*16 A( LDA, * )
127 parameter( one = ( 1.0d+0, 0.0d+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(
'ZTRTI2', -info )
171 a( j, j ) = one / a( j, j )
179 CALL ztrmv(
'Upper',
'No transpose', diag, j-1, a, lda,
181 CALL zscal( j-1, ajj, a( 1, j ), 1 )
189 a( j, j ) = one / a( j, j )
198 CALL ztrmv(
'Lower',
'No transpose', diag, n-j,
199 $ a( j+1, j+1 ), lda, a( j+1, j ), 1 )
200 CALL zscal( n-j, ajj, a( j+1, j ), 1 )
subroutine xerbla(srname, info)
subroutine zscal(n, za, zx, incx)
ZSCAL
subroutine ztrmv(uplo, trans, diag, n, a, lda, x, incx)
ZTRMV
subroutine ztrti2(uplo, diag, n, a, lda, info)
ZTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).