100 SUBROUTINE zget10( M, N, A, LDA, B, LDB, WORK, RWORK, RESULT )
108 INTEGER lda, ldb, m, n
109 DOUBLE PRECISION result
112 DOUBLE PRECISION rwork( * )
113 COMPLEX*16 a( lda, * ),
b( ldb, * ), work( * )
119 DOUBLE PRECISION one, zero
120 parameter( one = 1.0d+0, zero = 0.0d+0 )
124 DOUBLE PRECISION anorm, eps, unfl, wnorm
134 INTRINSIC dble, dcmplx, max, min
140 IF( m.LE.0 .OR. n.LE.0 )
THEN
145 unfl =
dlamch(
'Safe minimum' )
146 eps =
dlamch(
'Precision' )
150 CALL
zcopy( m, a( 1,
j ), 1, work, 1 )
151 CALL
zaxpy( m, dcmplx( -one ),
b( 1,
j ), 1, work, 1 )
152 wnorm = max( wnorm,
dzasum( n, work, 1 ) )
155 anorm = max(
zlange(
'1', m, n, a, lda, rwork ), unfl )
157 IF( anorm.GT.wnorm )
THEN
158 result = ( wnorm / anorm ) / ( m*eps )
160 IF( anorm.LT.one )
THEN
161 result = ( min( wnorm, m*anorm ) / anorm ) / ( m*eps )
163 result = min( wnorm / anorm, dble( m ) ) / ( m*eps )
DOUBLE PRECISION function dzasum(N, ZX, INCX)
DZASUM
DOUBLE PRECISION function zlange(NORM, M, N, A, LDA, WORK)
ZLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real b(3) integer i
subroutine zcopy(N, ZX, INCX, ZY, INCY)
ZCOPY
subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)
ZAXPY
subroutine zget10(M, N, A, LDA, B, LDB, WORK, RWORK, RESULT)
ZGET10
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
DOUBLE PRECISION function dlamch(CMACH)
DLAMCH