124 SUBROUTINE strt01( UPLO, DIAG, N, A, LDA, AINV, LDAINV, RCOND,
134 INTEGER lda, ldainv, n
138 REAL a( lda, * ), ainv( ldainv, * ), work( * )
145 parameter( zero = 0.0e+0, one = 1.0e+0 )
149 REAL ainvnm, anorm, eps
175 anorm =
slantr(
'1', uplo, diag, n, n, a, lda, work )
176 ainvnm =
slantr(
'1', uplo, diag, n, n, ainv, ldainv, work )
177 IF( anorm.LE.zero .OR. ainvnm.LE.zero )
THEN
182 rcond = ( one / anorm ) / ainvnm
186 IF(
lsame( diag,
'U' ) )
THEN
194 IF(
lsame( uplo,
'U' ) )
THEN
196 CALL
strmv(
'Upper',
'No transpose', diag,
j, a, lda,
201 CALL
strmv(
'Lower',
'No transpose', diag, n-
j+1, a(
j,
j ),
202 $ lda, ainv(
j,
j ), 1 )
209 ainv(
j,
j ) = ainv(
j,
j ) - one
214 resid =
slantr(
'1', uplo,
'Non-unit', n, n, ainv, ldainv, work )
216 resid = ( ( resid*rcond ) /
REAL( N ) ) / eps
subroutine strt01(UPLO, DIAG, N, A, LDA, AINV, LDAINV, RCOND, WORK, RESID)
STRT01
subroutine strmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
STRMV
logical function lsame(CA, CB)
LSAME
real function slamch(CMACH)
SLAMCH
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
real function slantr(NORM, UPLO, DIAG, M, N, A, LDA, WORK)
SLANTR returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a trapezoidal or triangular matrix.