98 SUBROUTINE zget10( M, N, A, LDA, B, LDB, WORK, RWORK, RESULT )
105 INTEGER LDA, LDB, M, N
106 DOUBLE PRECISION RESULT
109 DOUBLE PRECISION RWORK( * )
110 COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * )
116 DOUBLE PRECISION ONE, ZERO
117 parameter( one = 1.0d+0, zero = 0.0d+0 )
121 DOUBLE PRECISION ANORM, EPS, UNFL, WNORM
124 DOUBLE PRECISION DLAMCH, DZASUM, ZLANGE
125 EXTERNAL dlamch, dzasum, zlange
131 INTRINSIC dble, dcmplx, max, min
137 IF( m.LE.0 .OR. n.LE.0 )
THEN
142 unfl = dlamch(
'Safe minimum' )
143 eps = dlamch(
'Precision' )
147 CALL zcopy( m, a( 1, j ), 1, work, 1 )
148 CALL zaxpy( m, dcmplx( -one ), b( 1, j ), 1, work, 1 )
149 wnorm = max( wnorm, dzasum( n, work, 1 ) )
152 anorm = max( zlange(
'1', m, n, a, lda, rwork ), unfl )
154 IF( anorm.GT.wnorm )
THEN
155 result = ( wnorm / anorm ) / ( m*eps )
157 IF( anorm.LT.one )
THEN
158 result = ( min( wnorm, m*anorm ) / anorm ) / ( m*eps )
160 result = min( wnorm / anorm, dble( m ) ) / ( m*eps )
subroutine zaxpy(n, za, zx, incx, zy, incy)
ZAXPY
subroutine zcopy(n, zx, incx, zy, incy)
ZCOPY
subroutine zget10(m, n, a, lda, b, ldb, work, rwork, result)
ZGET10