\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(\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) \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 r255771 = a;
double r255772 = r255771 * r255771;
double r255773 = b;
double r255774 = r255773 * r255773;
double r255775 = r255772 + r255774;
double r255776 = 2.0;
double r255777 = pow(r255775, r255776);
double r255778 = 4.0;
double r255779 = 1.0;
double r255780 = r255779 + r255771;
double r255781 = r255772 * r255780;
double r255782 = 3.0;
double r255783 = r255782 * r255771;
double r255784 = r255779 - r255783;
double r255785 = r255774 * r255784;
double r255786 = r255781 + r255785;
double r255787 = r255778 * r255786;
double r255788 = r255777 + r255787;
double r255789 = r255788 - r255779;
return r255789;
}
double f(double a, double b) {
double r255790 = a;
double r255791 = r255790 * r255790;
double r255792 = b;
double r255793 = r255792 * r255792;
double r255794 = r255791 + r255793;
double r255795 = 2.0;
double r255796 = pow(r255794, r255795);
double r255797 = 4.0;
double r255798 = 1.0;
double r255799 = r255798 + r255790;
double r255800 = r255791 * r255799;
double r255801 = 3.0;
double r255802 = r255801 * r255790;
double r255803 = r255798 - r255802;
double r255804 = r255793 * r255803;
double r255805 = r255800 + r255804;
double r255806 = r255797 * r255805;
double r255807 = r255796 + r255806;
double r255808 = sqrt(r255807);
double r255809 = sqrt(r255808);
double r255810 = r255809 * r255809;
double r255811 = r255810 * r255808;
double r255812 = r255811 - r255798;
return r255812;
}



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 2020046
(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))