150 SUBROUTINE dtrt02( UPLO, TRANS, DIAG, N, NRHS, A, LDA, X, LDX, B,
159 CHARACTER diag, trans, uplo
160 INTEGER lda, ldb, ldx, n, nrhs
161 DOUBLE PRECISION resid
164 DOUBLE PRECISION a( lda, * ),
b( ldb, * ), work( * ),
171 DOUBLE PRECISION zero, one
172 parameter( zero = 0.0d+0, one = 1.0d+0 )
176 DOUBLE PRECISION anorm, bnorm, eps, xnorm
193 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
200 IF(
lsame( trans,
'N' ) )
THEN
201 anorm =
dlantr(
'1', uplo, diag, n, n, a, lda, work )
203 anorm =
dlantr(
'I', uplo, diag, n, n, a, lda, work )
209 IF( anorm.LE.zero )
THEN
219 CALL
dcopy( n, x( 1,
j ), 1, work, 1 )
220 CALL
dtrmv( uplo, trans, diag, n, a, lda, work, 1 )
221 CALL
daxpy( n, -one,
b( 1,
j ), 1, work, 1 )
222 bnorm =
dasum( n, work, 1 )
223 xnorm =
dasum( n, x( 1,
j ), 1 )
224 IF( xnorm.LE.zero )
THEN
227 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
subroutine dtrt02(UPLO, TRANS, DIAG, N, NRHS, A, LDA, X, LDX, B, LDB, WORK, RESID)
DTRT02
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real b(3) integer i
double precision function dlantr(NORM, UPLO, DIAG, M, N, A, LDA, WORK)
DLANTR 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.
logical function lsame(CA, CB)
LSAME
double precision function dlamch(CMACH)
DLAMCH
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
double precision function dasum(N, DX, INCX)
DASUM
subroutine dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV