\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\sqrt{{\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)} \cdot \left(\sqrt{\sqrt{{\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)}} \cdot \sqrt{\sqrt{{\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 r331730 = a;
double r331731 = r331730 * r331730;
double r331732 = b;
double r331733 = r331732 * r331732;
double r331734 = r331731 + r331733;
double r331735 = 2.0;
double r331736 = pow(r331734, r331735);
double r331737 = 4.0;
double r331738 = 1.0;
double r331739 = r331738 + r331730;
double r331740 = r331731 * r331739;
double r331741 = 3.0;
double r331742 = r331741 * r331730;
double r331743 = r331738 - r331742;
double r331744 = r331733 * r331743;
double r331745 = r331740 + r331744;
double r331746 = r331737 * r331745;
double r331747 = r331736 + r331746;
double r331748 = r331747 - r331738;
return r331748;
}
double f(double a, double b) {
double r331749 = a;
double r331750 = r331749 * r331749;
double r331751 = b;
double r331752 = r331751 * r331751;
double r331753 = r331750 + r331752;
double r331754 = 2.0;
double r331755 = pow(r331753, r331754);
double r331756 = 4.0;
double r331757 = 1.0;
double r331758 = r331757 + r331749;
double r331759 = r331750 * r331758;
double r331760 = 3.0;
double r331761 = r331760 * r331749;
double r331762 = r331757 - r331761;
double r331763 = r331752 * r331762;
double r331764 = r331759 + r331763;
double r331765 = r331756 * r331764;
double r331766 = r331755 + r331765;
double r331767 = sqrt(r331766);
double r331768 = sqrt(r331767);
double r331769 = r331768 * r331768;
double r331770 = r331767 * r331769;
double r331771 = r331770 - r331757;
return r331771;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2019362
(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))