6944
 6945
 6946
 6947
 6948
 6949
 6950
 6951      DOUBLE PRECISION   ERRBND, PREC
 6952      COMPLEX*16         ALPHA, BETA, X, Y
 6953
 6954
 6955
 6956
 6957
 6958
 6959
 6960
 6961
 6962
 6963
 6964
 6965
 6966
 6967
 6968
 6969
 6970
 6971
 6972
 6973
 6974
 6975
 6976
 6977
 6978
 6979
 6980
 6981
 6982
 6983
 6984
 6985
 6986
 6987
 6988
 6989
 6990      DOUBLE PRECISION   ONE, TWO, ZERO
 6991      parameter( one = 1.0d+0, two = 2.0d+0,
 6992     $                   zero = 0.0d+0 )
 6993
 6994
 6995      DOUBLE PRECISION   ADDBND, FACT, SUMINEG, SUMIPOS, SUMRNEG,
 6996     $                   SUMRPOS
 6997      COMPLEX*16         TMP
 6998
 6999
 7000
 7001
 7002
 7003      sumipos = zero
 7004      sumineg = zero
 7005      sumrpos = zero
 7006      sumrneg = zero
 7007      fact = one + two * prec
 7008      addbnd = two * two * two * prec
 7009
 7010      tmp = alpha * x
 7011      IF( dble( tmp ).GE.zero ) THEN
 7012         sumrpos = sumrpos + dble( tmp ) * fact
 7013      ELSE
 7014         sumrneg = sumrneg - dble( tmp ) * fact
 7015      END IF
 7016      IF( dimag( tmp ).GE.zero ) THEN
 7017         sumipos = sumipos + dimag( tmp ) * fact
 7018      ELSE
 7019         sumineg = sumineg - dimag( tmp ) * fact
 7020      END IF
 7021
 7022      tmp = beta * y
 7023      IF( dble( tmp ).GE.zero ) THEN
 7024         sumrpos = sumrpos + dble( tmp ) * fact
 7025      ELSE
 7026         sumrneg = sumrneg - dble( tmp ) * fact
 7027      END IF
 7028      IF( dimag( tmp ).GE.zero ) THEN
 7029         sumipos = sumipos + dimag( tmp ) * fact
 7030      ELSE
 7031         sumineg = sumineg - dimag( tmp ) * fact
 7032      END IF
 7033
 7034      y = ( beta * y ) + ( alpha * x )
 7035
 7036      errbnd = addbnd * 
max( 
max( sumrpos, sumrneg ),
 
 7037     $                       
max( sumipos, sumineg ) )
 
 7038
 7039      RETURN
 7040
 7041
 7042