\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(\left(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a + 1\right) \cdot \left(a \cdot a\right)\right) \cdot 4 + \left(\left({a}^{4} + \left(\left(b \cdot b\right) \cdot \left(a \cdot a\right)\right) \cdot 2\right) + {b}^{4}\right)\right) - 1double f(double a, double b) {
double r2553593 = a;
double r2553594 = r2553593 * r2553593;
double r2553595 = b;
double r2553596 = r2553595 * r2553595;
double r2553597 = r2553594 + r2553596;
double r2553598 = 2.0;
double r2553599 = pow(r2553597, r2553598);
double r2553600 = 4.0;
double r2553601 = 1.0;
double r2553602 = r2553601 + r2553593;
double r2553603 = r2553594 * r2553602;
double r2553604 = 3.0;
double r2553605 = r2553604 * r2553593;
double r2553606 = r2553601 - r2553605;
double r2553607 = r2553596 * r2553606;
double r2553608 = r2553603 + r2553607;
double r2553609 = r2553600 * r2553608;
double r2553610 = r2553599 + r2553609;
double r2553611 = r2553610 - r2553601;
return r2553611;
}
double f(double a, double b) {
double r2553612 = 1.0;
double r2553613 = 3.0;
double r2553614 = a;
double r2553615 = r2553613 * r2553614;
double r2553616 = r2553612 - r2553615;
double r2553617 = b;
double r2553618 = r2553617 * r2553617;
double r2553619 = r2553616 * r2553618;
double r2553620 = r2553614 + r2553612;
double r2553621 = r2553614 * r2553614;
double r2553622 = r2553620 * r2553621;
double r2553623 = r2553619 + r2553622;
double r2553624 = 4.0;
double r2553625 = r2553623 * r2553624;
double r2553626 = pow(r2553614, r2553624);
double r2553627 = r2553618 * r2553621;
double r2553628 = 2.0;
double r2553629 = r2553627 * r2553628;
double r2553630 = r2553626 + r2553629;
double r2553631 = pow(r2553617, r2553624);
double r2553632 = r2553630 + r2553631;
double r2553633 = r2553625 + r2553632;
double r2553634 = r2553633 - r2553612;
return r2553634;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Taylor expanded around inf 0.0
Simplified0.2
rmApplied pow20.2
Applied pow10.2
Applied pow-plus0.2
Applied pow-prod-up0.1
Simplified0.1
rmApplied pow10.1
Applied pow-plus0.1
Applied pow10.1
Applied pow10.1
Applied pow-prod-up0.1
Applied pow-prod-up0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019153
(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))