\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({\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) - 1double f(double a, double b) {
double r198640 = a;
double r198641 = r198640 * r198640;
double r198642 = b;
double r198643 = r198642 * r198642;
double r198644 = r198641 + r198643;
double r198645 = 2.0;
double r198646 = pow(r198644, r198645);
double r198647 = 4.0;
double r198648 = 1.0;
double r198649 = r198648 + r198640;
double r198650 = r198641 * r198649;
double r198651 = 3.0;
double r198652 = r198651 * r198640;
double r198653 = r198648 - r198652;
double r198654 = r198643 * r198653;
double r198655 = r198650 + r198654;
double r198656 = r198647 * r198655;
double r198657 = r198646 + r198656;
double r198658 = r198657 - r198648;
return r198658;
}
double f(double a, double b) {
double r198659 = a;
double r198660 = r198659 * r198659;
double r198661 = b;
double r198662 = r198661 * r198661;
double r198663 = r198660 + r198662;
double r198664 = 2.0;
double r198665 = pow(r198663, r198664);
double r198666 = 4.0;
double r198667 = 1.0;
double r198668 = r198667 + r198659;
double r198669 = r198660 * r198668;
double r198670 = 3.0;
double r198671 = r198670 * r198659;
double r198672 = r198667 - r198671;
double r198673 = r198662 * r198672;
double r198674 = r198669 + r198673;
double r198675 = r198666 * r198674;
double r198676 = r198665 + r198675;
double r198677 = r198676 - r198667;
return r198677;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019353
(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))