6684
6685
6686
6687
6688
6689
6690
6691 REAL ALPHA, BETA, ERRBND, PREC, X, Y
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729 REAL ONE, TWO, ZERO
6730 parameter( one = 1.0e+0, two = 2.0e+0,
6731 $ zero = 0.0e+0 )
6732
6733
6734 REAL ADDBND, FACT, SUMPOS, SUMNEG, TMP
6735
6736
6737
6738
6739
6740 sumpos = zero
6741 sumneg = zero
6742 fact = one + two * prec
6743 addbnd = two * two * two * prec
6744
6745 tmp = alpha * x
6746 IF( tmp.GE.zero ) THEN
6747 sumpos = sumpos + tmp * fact
6748 ELSE
6749 sumneg = sumneg - tmp * fact
6750 END IF
6751
6752 tmp = beta * y
6753 IF( tmp.GE.zero ) THEN
6754 sumpos = sumpos + tmp * fact
6755 ELSE
6756 sumneg = sumneg - tmp * fact
6757 END IF
6758
6759 y = ( beta * y ) + ( alpha * x )
6760
6761 errbnd = addbnd *
max( sumpos, sumneg )
6762
6763 RETURN
6764
6765
6766