\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({\left(\sqrt{a \cdot a + b \cdot b}\right)}^{2}, {\left(\mathsf{hypot}\left(a, b\right)\right)}^{2}, 4 \cdot \left(\left(b \cdot b\right) \cdot \left(1 - a \cdot 3\right) + \sqrt[3]{a + 1} \cdot \left(\left(a \cdot a\right) \cdot \left(\sqrt[3]{a + 1} \cdot \sqrt[3]{a + 1}\right)\right)\right)\right) - 1double f(double a, double b) {
double r4022719 = a;
double r4022720 = r4022719 * r4022719;
double r4022721 = b;
double r4022722 = r4022721 * r4022721;
double r4022723 = r4022720 + r4022722;
double r4022724 = 2.0;
double r4022725 = pow(r4022723, r4022724);
double r4022726 = 4.0;
double r4022727 = 1.0;
double r4022728 = r4022727 + r4022719;
double r4022729 = r4022720 * r4022728;
double r4022730 = 3.0;
double r4022731 = r4022730 * r4022719;
double r4022732 = r4022727 - r4022731;
double r4022733 = r4022722 * r4022732;
double r4022734 = r4022729 + r4022733;
double r4022735 = r4022726 * r4022734;
double r4022736 = r4022725 + r4022735;
double r4022737 = r4022736 - r4022727;
return r4022737;
}
double f(double a, double b) {
double r4022738 = a;
double r4022739 = r4022738 * r4022738;
double r4022740 = b;
double r4022741 = r4022740 * r4022740;
double r4022742 = r4022739 + r4022741;
double r4022743 = sqrt(r4022742);
double r4022744 = 2.0;
double r4022745 = pow(r4022743, r4022744);
double r4022746 = hypot(r4022738, r4022740);
double r4022747 = pow(r4022746, r4022744);
double r4022748 = 4.0;
double r4022749 = 1.0;
double r4022750 = 3.0;
double r4022751 = r4022738 * r4022750;
double r4022752 = r4022749 - r4022751;
double r4022753 = r4022741 * r4022752;
double r4022754 = r4022738 + r4022749;
double r4022755 = cbrt(r4022754);
double r4022756 = r4022755 * r4022755;
double r4022757 = r4022739 * r4022756;
double r4022758 = r4022755 * r4022757;
double r4022759 = r4022753 + r4022758;
double r4022760 = r4022748 * r4022759;
double r4022761 = fma(r4022745, r4022747, r4022760);
double r4022762 = r4022761 - r4022749;
return r4022762;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied unpow-prod-down0.2
Applied fma-def0.2
rmApplied hypot-def0.2
rmApplied add-cube-cbrt0.2
Applied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2019151 +o rules:numerics
(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))