\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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 1double f(double a, double b) {
double r9303707 = a;
double r9303708 = r9303707 * r9303707;
double r9303709 = b;
double r9303710 = r9303709 * r9303709;
double r9303711 = r9303708 + r9303710;
double r9303712 = 2.0;
double r9303713 = pow(r9303711, r9303712);
double r9303714 = 4.0;
double r9303715 = 1.0;
double r9303716 = r9303715 + r9303707;
double r9303717 = r9303708 * r9303716;
double r9303718 = 3.0;
double r9303719 = r9303718 * r9303707;
double r9303720 = r9303715 - r9303719;
double r9303721 = r9303710 * r9303720;
double r9303722 = r9303717 + r9303721;
double r9303723 = r9303714 * r9303722;
double r9303724 = r9303713 + r9303723;
double r9303725 = r9303724 - r9303715;
return r9303725;
}
double f(double a, double b) {
double r9303726 = a;
double r9303727 = r9303726 * r9303726;
double r9303728 = b;
double r9303729 = r9303728 * r9303728;
double r9303730 = r9303727 + r9303729;
double r9303731 = 2.0;
double r9303732 = pow(r9303730, r9303731);
double r9303733 = 1.0;
double r9303734 = r9303726 + r9303733;
double r9303735 = r9303727 * r9303734;
double r9303736 = 3.0;
double r9303737 = r9303736 * r9303726;
double r9303738 = r9303733 - r9303737;
double r9303739 = r9303729 * r9303738;
double r9303740 = r9303735 + r9303739;
double r9303741 = 4.0;
double r9303742 = r9303740 * r9303741;
double r9303743 = r9303732 + r9303742;
double r9303744 = sqrt(r9303743);
double r9303745 = r9303744 * r9303744;
double r9303746 = r9303745 - r9303733;
return r9303746;
}



Bits error versus a



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