\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 \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)} - 1double f(double a, double b) {
double r268717 = a;
double r268718 = r268717 * r268717;
double r268719 = b;
double r268720 = r268719 * r268719;
double r268721 = r268718 + r268720;
double r268722 = 2.0;
double r268723 = pow(r268721, r268722);
double r268724 = 4.0;
double r268725 = 1.0;
double r268726 = r268725 + r268717;
double r268727 = r268718 * r268726;
double r268728 = 3.0;
double r268729 = r268728 * r268717;
double r268730 = r268725 - r268729;
double r268731 = r268720 * r268730;
double r268732 = r268727 + r268731;
double r268733 = r268724 * r268732;
double r268734 = r268723 + r268733;
double r268735 = r268734 - r268725;
return r268735;
}
double f(double a, double b) {
double r268736 = a;
double r268737 = r268736 * r268736;
double r268738 = b;
double r268739 = r268738 * r268738;
double r268740 = r268737 + r268739;
double r268741 = 2.0;
double r268742 = pow(r268740, r268741);
double r268743 = 4.0;
double r268744 = 1.0;
double r268745 = r268744 + r268736;
double r268746 = r268737 * r268745;
double r268747 = 3.0;
double r268748 = r268747 * r268736;
double r268749 = r268744 - r268748;
double r268750 = r268739 * r268749;
double r268751 = r268746 + r268750;
double r268752 = r268743 * r268751;
double r268753 = r268742 + r268752;
double r268754 = sqrt(r268753);
double r268755 = r268754 * r268754;
double r268756 = r268755 - r268744;
return r268756;
}



Bits error versus a



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