2927 parameter( zero = ( 0.0d0, 0.0d0 ) )
2928 DOUBLE PRECISION RZERO, RONE
2929 parameter( rzero = 0.0d0, rone = 1.0d0 )
2931 COMPLEX*16 ALPHA, BETA
2932 DOUBLE PRECISION EPS, ERR
2933 INTEGER INCX, INCY, M, N, NMAX, NOUT
2937 COMPLEX*16 A( NMAX, * ), X( * ), Y( * ), YT( * ), YY( * )
2938 DOUBLE PRECISION G( * )
2941 DOUBLE PRECISION ERRI
2942 INTEGER I, INCXL, INCYL, IY, J, JX, KX, KY, ML, NL
2945 INTRINSIC abs, dble, dconjg, dimag, max, sqrt
2947 DOUBLE PRECISION ABS1
2949 abs1( c ) = abs( dble( c ) ) + abs( dimag( c ) )
2952 ctran = trans.EQ.
'C'
2953 IF( tran.OR.ctran )
THEN
2985 yt( iy ) = yt( iy ) + a( j, i )*x( jx )
2986 g( iy ) = g( iy ) + abs1( a( j, i ) )*abs1( x( jx ) )
2989 ELSE IF( ctran )
THEN
2991 yt( iy ) = yt( iy ) + dconjg( a( j, i ) )*x( jx )
2992 g( iy ) = g( iy ) + abs1( a( j, i ) )*abs1( x( jx ) )
2997 yt( iy ) = yt( iy ) + a( i, j )*x( jx )
2998 g( iy ) = g( iy ) + abs1( a( i, j ) )*abs1( x( jx ) )
3002 yt( iy ) = alpha*yt( iy ) + beta*y( iy )
3003 g( iy ) = abs1( alpha )*g( iy ) + abs1( beta )*abs1( y( iy ) )
3011 erri = abs( yt( i ) - yy( 1 + ( i - 1 )*abs( incy ) ) )/eps
3012 IF( g( i ).NE.rzero )
3013 $ erri = erri/g( i )
3014 err = max( err, erri )
3015 IF( err*sqrt( eps ).GE.rone )
3024 WRITE( nout, fmt = 9999 )
3027 WRITE( nout, fmt = 9998 )i, yt( i ),
3028 $ yy( 1 + ( i - 1 )*abs( incy ) )
3030 WRITE( nout, fmt = 9998 )i,
3031 $ yy( 1 + ( i - 1 )*abs( incy ) ), yt( i )
3038 9999
FORMAT(
' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
3039 $
'F ACCURATE *******', /
' EXPECTED RE',
3040 $
'SULT COMPUTED RESULT' )
3041 9998
FORMAT( 1x, i7, 2(
' (', g15.6,
',', g15.6,
')' ) )