\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(\mathsf{fma}\left(b \cdot b, b \cdot b, \mathsf{fma}\left(2, \left(b \cdot b\right) \cdot \left(a \cdot a\right), {a}^{4}\right)\right) + 4 \cdot \left(\left(1 - a \cdot 3\right) \cdot \left(b \cdot b\right) + \left(1 + a\right) \cdot \left(a \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r2287771 = a;
double r2287772 = r2287771 * r2287771;
double r2287773 = b;
double r2287774 = r2287773 * r2287773;
double r2287775 = r2287772 + r2287774;
double r2287776 = 2.0;
double r2287777 = pow(r2287775, r2287776);
double r2287778 = 4.0;
double r2287779 = 1.0;
double r2287780 = r2287779 + r2287771;
double r2287781 = r2287772 * r2287780;
double r2287782 = 3.0;
double r2287783 = r2287782 * r2287771;
double r2287784 = r2287779 - r2287783;
double r2287785 = r2287774 * r2287784;
double r2287786 = r2287781 + r2287785;
double r2287787 = r2287778 * r2287786;
double r2287788 = r2287777 + r2287787;
double r2287789 = r2287788 - r2287779;
return r2287789;
}
double f(double a, double b) {
double r2287790 = b;
double r2287791 = r2287790 * r2287790;
double r2287792 = 2.0;
double r2287793 = a;
double r2287794 = r2287793 * r2287793;
double r2287795 = r2287791 * r2287794;
double r2287796 = 4.0;
double r2287797 = pow(r2287793, r2287796);
double r2287798 = fma(r2287792, r2287795, r2287797);
double r2287799 = fma(r2287791, r2287791, r2287798);
double r2287800 = 1.0;
double r2287801 = 3.0;
double r2287802 = r2287793 * r2287801;
double r2287803 = r2287800 - r2287802;
double r2287804 = r2287803 * r2287791;
double r2287805 = r2287800 + r2287793;
double r2287806 = r2287805 * r2287794;
double r2287807 = r2287804 + r2287806;
double r2287808 = r2287796 * r2287807;
double r2287809 = r2287799 + r2287808;
double r2287810 = r2287809 - r2287800;
return r2287810;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Taylor expanded around inf 0.0
Simplified0.2
rmApplied pow20.2
Applied pow20.2
Applied pow-sqr0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019153 +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))