\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\left(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1double f(double a, double b) {
double r109666 = a;
double r109667 = r109666 * r109666;
double r109668 = b;
double r109669 = r109668 * r109668;
double r109670 = r109667 + r109669;
double r109671 = 2.0;
double r109672 = pow(r109670, r109671);
double r109673 = 4.0;
double r109674 = 1.0;
double r109675 = r109674 + r109666;
double r109676 = r109667 * r109675;
double r109677 = 3.0;
double r109678 = r109677 * r109666;
double r109679 = r109674 - r109678;
double r109680 = r109669 * r109679;
double r109681 = r109676 + r109680;
double r109682 = r109673 * r109681;
double r109683 = r109672 + r109682;
double r109684 = r109683 - r109674;
return r109684;
}
double f(double a, double b) {
double r109685 = 4.0;
double r109686 = a;
double r109687 = r109686 * r109686;
double r109688 = 1.0;
double r109689 = r109688 + r109686;
double r109690 = r109687 * r109689;
double r109691 = b;
double r109692 = r109691 * r109691;
double r109693 = 3.0;
double r109694 = r109693 * r109686;
double r109695 = r109688 - r109694;
double r109696 = r109692 * r109695;
double r109697 = r109690 + r109696;
double r109698 = r109685 * r109697;
double r109699 = r109687 + r109692;
double r109700 = 2.0;
double r109701 = pow(r109699, r109700);
double r109702 = r109698 + r109701;
double r109703 = r109702 - r109688;
return r109703;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied +-commutative0.2
Final simplification0.2
herbie shell --seed 2019308
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))