111 SUBROUTINE ztrti2( UPLO, DIAG, N, A, LDA, INFO )
123 COMPLEX*16 A( lda, * )
130 parameter ( one = ( 1.0d+0, 0.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(
'ZTRTI2', -info )
174 a( j, j ) = one / a( j, j )
182 CALL ztrmv(
'Upper',
'No transpose', diag, j-1, a, lda,
184 CALL zscal( j-1, ajj, a( 1, j ), 1 )
192 a( j, j ) = one / a( j, j )
201 CALL ztrmv(
'Lower',
'No transpose', diag, n-j,
202 $ a( j+1, j+1 ), lda, a( j+1, j ), 1 )
203 CALL zscal( n-j, ajj, a( j+1, j ), 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
ZTRMV
subroutine zscal(N, ZA, ZX, INCX)
ZSCAL
subroutine ztrti2(UPLO, DIAG, N, A, LDA, INFO)
ZTRTI2 computes the inverse of a triangular matrix (unblocked algorithm).