\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\mathsf{fma}\left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}, \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 r189640 = a;
double r189641 = r189640 * r189640;
double r189642 = b;
double r189643 = r189642 * r189642;
double r189644 = r189641 + r189643;
double r189645 = 2.0;
double r189646 = pow(r189644, r189645);
double r189647 = 4.0;
double r189648 = 1.0;
double r189649 = r189648 + r189640;
double r189650 = r189641 * r189649;
double r189651 = 3.0;
double r189652 = r189651 * r189640;
double r189653 = r189648 - r189652;
double r189654 = r189643 * r189653;
double r189655 = r189650 + r189654;
double r189656 = r189647 * r189655;
double r189657 = r189646 + r189656;
double r189658 = r189657 - r189648;
return r189658;
}
double f(double a, double b) {
double r189659 = a;
double r189660 = r189659 * r189659;
double r189661 = b;
double r189662 = r189661 * r189661;
double r189663 = r189660 + r189662;
double r189664 = 2.0;
double r189665 = pow(r189663, r189664);
double r189666 = sqrt(r189665);
double r189667 = 4.0;
double r189668 = 1.0;
double r189669 = r189668 + r189659;
double r189670 = r189660 * r189669;
double r189671 = 3.0;
double r189672 = r189671 * r189659;
double r189673 = r189668 - r189672;
double r189674 = r189662 * r189673;
double r189675 = r189670 + r189674;
double r189676 = r189667 * r189675;
double r189677 = fma(r189666, r189666, r189676);
double r189678 = r189677 - r189668;
return r189678;
}



Bits error versus a



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