2470 parameter ( zero = ( 0.0d0, 0.0d0 ) )
2471 DOUBLE PRECISION rzero, rone
2472 parameter ( rzero = 0.0d0, rone = 1.0d0 )
2474 COMPLEX*16 alpha, beta
2475 DOUBLE PRECISION eps, err
2476 INTEGER incx, incy, m, n, nmax, nout
2480 COMPLEX*16 a( nmax, * ), x( * ), y( * ), yt( * ), yy( * )
2481 DOUBLE PRECISION g( * )
2484 DOUBLE PRECISION erri
2485 INTEGER i, incxl, incyl, iy, j, jx, kx, ky, ml, nl
2488 INTRINSIC abs, dimag, dconjg, max, dble, sqrt
2490 DOUBLE PRECISION abs1
2492 abs1( c ) = abs( dble( c ) ) + abs( dimag( c ) )
2495 ctran = trans.EQ.
'C'
2496 IF( tran.OR.ctran )
THEN
2528 yt( iy ) = yt( iy ) + a( j, i )*x( jx )
2529 g( iy ) = g( iy ) + abs1( a( j, i ) )*abs1( x( jx ) )
2532 ELSE IF( ctran )
THEN
2534 yt( iy ) = yt( iy ) + dconjg( a( j, i ) )*x( jx )
2535 g( iy ) = g( iy ) + abs1( a( j, i ) )*abs1( x( jx ) )
2540 yt( iy ) = yt( iy ) + a( i, j )*x( jx )
2541 g( iy ) = g( iy ) + abs1( a( i, j ) )*abs1( x( jx ) )
2545 yt( iy ) = alpha*yt( iy ) + beta*y( iy )
2546 g( iy ) = abs1( alpha )*g( iy ) + abs1( beta )*abs1( y( iy ) )
2554 erri = abs( yt( i ) - yy( 1 + ( i - 1 )*abs( incy ) ) )/eps
2555 IF( g( i ).NE.rzero )
2556 $ erri = erri/g( i )
2557 err = max( err, erri )
2558 IF( err*sqrt( eps ).GE.rone )
2567 WRITE( nout, fmt = 9999 )
2570 WRITE( nout, fmt = 9998 )i, yt( i ),
2571 $ yy( 1 + ( i - 1 )*abs( incy ) )
2573 WRITE( nout, fmt = 9998 )i,
2574 $ yy( 1 + ( i - 1 )*abs( incy ) ), yt( i )
2581 9999
FORMAT(
' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
2582 $
'F ACCURATE *******', /
' EXPECTED RE',
2583 $
'SULT COMPUTED RESULT' )
2584 9998
FORMAT( 1x, i7, 2(
' (', g15.6,
',', g15.6,
')' ) )