\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}}, \mathsf{fma}\left(4, \mathsf{fma}\left(a, a, b \cdot b\right), 4 \cdot {a}^{3}\right)\right) - 1double f(double a, double b) {
double r165439 = a;
double r165440 = r165439 * r165439;
double r165441 = b;
double r165442 = r165441 * r165441;
double r165443 = r165440 + r165442;
double r165444 = 2.0;
double r165445 = pow(r165443, r165444);
double r165446 = 4.0;
double r165447 = 1.0;
double r165448 = r165447 + r165439;
double r165449 = r165440 * r165448;
double r165450 = 3.0;
double r165451 = r165450 * r165439;
double r165452 = r165447 - r165451;
double r165453 = r165442 * r165452;
double r165454 = r165449 + r165453;
double r165455 = r165446 * r165454;
double r165456 = r165445 + r165455;
double r165457 = r165456 - r165447;
return r165457;
}
double f(double a, double b) {
double r165458 = a;
double r165459 = r165458 * r165458;
double r165460 = b;
double r165461 = r165460 * r165460;
double r165462 = r165459 + r165461;
double r165463 = 2.0;
double r165464 = pow(r165462, r165463);
double r165465 = sqrt(r165464);
double r165466 = 4.0;
double r165467 = fma(r165458, r165458, r165461);
double r165468 = 3.0;
double r165469 = pow(r165458, r165468);
double r165470 = r165466 * r165469;
double r165471 = fma(r165466, r165467, r165470);
double r165472 = fma(r165465, r165465, r165471);
double r165473 = 1.0;
double r165474 = r165472 - r165473;
return r165474;
}



Bits error versus a



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