\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 r6267522 = a;
double r6267523 = r6267522 * r6267522;
double r6267524 = b;
double r6267525 = r6267524 * r6267524;
double r6267526 = r6267523 + r6267525;
double r6267527 = 2.0;
double r6267528 = pow(r6267526, r6267527);
double r6267529 = 4.0;
double r6267530 = 1.0;
double r6267531 = r6267530 + r6267522;
double r6267532 = r6267523 * r6267531;
double r6267533 = 3.0;
double r6267534 = r6267533 * r6267522;
double r6267535 = r6267530 - r6267534;
double r6267536 = r6267525 * r6267535;
double r6267537 = r6267532 + r6267536;
double r6267538 = r6267529 * r6267537;
double r6267539 = r6267528 + r6267538;
double r6267540 = r6267539 - r6267530;
return r6267540;
}
double f(double a, double b) {
double r6267541 = a;
double r6267542 = r6267541 * r6267541;
double r6267543 = b;
double r6267544 = r6267543 * r6267543;
double r6267545 = r6267542 + r6267544;
double r6267546 = sqrt(r6267545);
double r6267547 = 2.0;
double r6267548 = pow(r6267546, r6267547);
double r6267549 = hypot(r6267541, r6267543);
double r6267550 = pow(r6267549, r6267547);
double r6267551 = 4.0;
double r6267552 = 1.0;
double r6267553 = 3.0;
double r6267554 = r6267541 * r6267553;
double r6267555 = r6267552 - r6267554;
double r6267556 = r6267544 * r6267555;
double r6267557 = r6267541 + r6267552;
double r6267558 = cbrt(r6267557);
double r6267559 = r6267558 * r6267558;
double r6267560 = r6267542 * r6267559;
double r6267561 = r6267558 * r6267560;
double r6267562 = r6267556 + r6267561;
double r6267563 = r6267551 * r6267562;
double r6267564 = fma(r6267548, r6267550, r6267563);
double r6267565 = r6267564 - r6267552;
return r6267565;
}



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))