\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(\left(a \cdot a\right) \cdot 1 + {a}^{3}\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r297759 = a;
double r297760 = r297759 * r297759;
double r297761 = b;
double r297762 = r297761 * r297761;
double r297763 = r297760 + r297762;
double r297764 = 2.0;
double r297765 = pow(r297763, r297764);
double r297766 = 4.0;
double r297767 = 1.0;
double r297768 = r297767 + r297759;
double r297769 = r297760 * r297768;
double r297770 = 3.0;
double r297771 = r297770 * r297759;
double r297772 = r297767 - r297771;
double r297773 = r297762 * r297772;
double r297774 = r297769 + r297773;
double r297775 = r297766 * r297774;
double r297776 = r297765 + r297775;
double r297777 = r297776 - r297767;
return r297777;
}
double f(double a, double b) {
double r297778 = a;
double r297779 = r297778 * r297778;
double r297780 = b;
double r297781 = r297780 * r297780;
double r297782 = r297779 + r297781;
double r297783 = 2.0;
double r297784 = pow(r297782, r297783);
double r297785 = 4.0;
double r297786 = 1.0;
double r297787 = r297779 * r297786;
double r297788 = 3.0;
double r297789 = pow(r297778, r297788);
double r297790 = r297787 + r297789;
double r297791 = 3.0;
double r297792 = r297791 * r297778;
double r297793 = r297786 - r297792;
double r297794 = r297781 * r297793;
double r297795 = r297790 + r297794;
double r297796 = r297785 * r297795;
double r297797 = r297784 + r297796;
double r297798 = r297797 - r297786;
return r297798;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied distribute-lft-in0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020059 +o rules:numerics
(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))