\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\left(\left(b \cdot b\right) \cdot 4 + \mathsf{fma}\left(b \cdot b, \mathsf{fma}\left(b, b, \left(a \cdot a\right) \cdot 2\right), {a}^{4}\right)\right) - 1double f(double a, double b) {
double r2756530 = a;
double r2756531 = r2756530 * r2756530;
double r2756532 = b;
double r2756533 = r2756532 * r2756532;
double r2756534 = r2756531 + r2756533;
double r2756535 = 2.0;
double r2756536 = pow(r2756534, r2756535);
double r2756537 = 4.0;
double r2756538 = r2756537 * r2756533;
double r2756539 = r2756536 + r2756538;
double r2756540 = 1.0;
double r2756541 = r2756539 - r2756540;
return r2756541;
}
double f(double a, double b) {
double r2756542 = b;
double r2756543 = r2756542 * r2756542;
double r2756544 = 4.0;
double r2756545 = r2756543 * r2756544;
double r2756546 = a;
double r2756547 = r2756546 * r2756546;
double r2756548 = 2.0;
double r2756549 = r2756547 * r2756548;
double r2756550 = fma(r2756542, r2756542, r2756549);
double r2756551 = pow(r2756546, r2756544);
double r2756552 = fma(r2756543, r2756550, r2756551);
double r2756553 = r2756545 + r2756552;
double r2756554 = 1.0;
double r2756555 = r2756553 - r2756554;
return r2756555;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Taylor expanded around -inf 0.0
Simplified0.2
rmApplied pow10.2
Applied pow-plus0.2
Applied pow10.2
Applied pow10.2
Applied pow-sqr0.2
Applied pow-prod-up0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019153 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))