3066 parameter( zero = ( 0.0, 0.0 ) )
3068 parameter( rzero = 0.0, rone = 1.0 )
3072 INTEGER KK, LDA, LDB, LDC, LDCC, M, N, NOUT
3074 CHARACTER*1 TRANSA, TRANSB
3076 COMPLEX A( LDA, * ), B( LDB, * ), C( LDC, * ),
3077 $ CC( LDCC, * ), CT( * )
3083 LOGICAL CTRANA, CTRANB, TRANA, TRANB
3085 INTRINSIC abs, aimag, conjg, max, real, sqrt
3089 abs1( cl ) = abs( real( cl ) ) + abs( aimag( cl ) )
3091 trana = transa.EQ.
'T'.OR.transa.EQ.
'C'
3092 tranb = transb.EQ.
'T'.OR.transb.EQ.
'C'
3093 ctrana = transa.EQ.
'C'
3094 ctranb = transb.EQ.
'C'
3106 IF( .NOT.trana.AND..NOT.tranb )
THEN
3109 ct( i ) = ct( i ) + a( i, k )*b( k, j )
3110 g( i ) = g( i ) + abs1( a( i, k ) )*abs1( b( k, j ) )
3113 ELSE IF( trana.AND..NOT.tranb )
THEN
3117 ct( i ) = ct( i ) + conjg( a( k, i ) )*b( k, j )
3118 g( i ) = g( i ) + abs1( a( k, i ) )*
3125 ct( i ) = ct( i ) + a( k, i )*b( k, j )
3126 g( i ) = g( i ) + abs1( a( k, i ) )*
3131 ELSE IF( .NOT.trana.AND.tranb )
THEN
3135 ct( i ) = ct( i ) + a( i, k )*conjg( b( j, k ) )
3136 g( i ) = g( i ) + abs1( a( i, k ) )*
3143 ct( i ) = ct( i ) + a( i, k )*b( j, k )
3144 g( i ) = g( i ) + abs1( a( i, k ) )*
3149 ELSE IF( trana.AND.tranb )
THEN
3154 ct( i ) = ct( i ) + conjg( a( k, i ) )*
3155 $ conjg( b( j, k ) )
3156 g( i ) = g( i ) + abs1( a( k, i ) )*
3163 ct( i ) = ct( i ) + conjg( a( k, i ) )*b( j, k )
3164 g( i ) = g( i ) + abs1( a( k, i ) )*
3173 ct( i ) = ct( i ) + a( k, i )*conjg( b( j, k ) )
3174 g( i ) = g( i ) + abs1( a( k, i ) )*
3181 ct( i ) = ct( i ) + a( k, i )*b( j, k )
3182 g( i ) = g( i ) + abs1( a( k, i ) )*
3190 ct( i ) = alpha*ct( i ) + beta*c( i, j )
3191 g( i ) = abs1( alpha )*g( i ) +
3192 $ abs1( beta )*abs1( c( i, j ) )
3199 erri = abs1( ct( i ) - cc( i, j ) )/eps
3200 IF( g( i ).NE.rzero )
3201 $ erri = erri/g( i )
3202 err = max( err, erri )
3203 IF( err*sqrt( eps ).GE.rone )
3215 WRITE( nout, fmt = 9999 )
3218 WRITE( nout, fmt = 9998 )i, ct( i ), cc( i, j )
3220 WRITE( nout, fmt = 9998 )i, cc( i, j ), ct( i )
3224 $
WRITE( nout, fmt = 9997 )j
3229 9999
FORMAT(
' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
3230 $
'F ACCURATE *******', /
' EXPECTED RE',
3231 $
'SULT COMPUTED RESULT' )
3232 9998
FORMAT( 1x, i7, 2(
' (', g15.6,
',', g15.6,
')' ) )
3233 9997
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )