\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({a}^{2}, \left(1 + a\right) \cdot 4, {\left(a \cdot a + b \cdot b\right)}^{2}\right) + 4 \cdot \left(\left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r154269 = a;
double r154270 = r154269 * r154269;
double r154271 = b;
double r154272 = r154271 * r154271;
double r154273 = r154270 + r154272;
double r154274 = 2.0;
double r154275 = pow(r154273, r154274);
double r154276 = 4.0;
double r154277 = 1.0;
double r154278 = r154277 + r154269;
double r154279 = r154270 * r154278;
double r154280 = 3.0;
double r154281 = r154280 * r154269;
double r154282 = r154277 - r154281;
double r154283 = r154272 * r154282;
double r154284 = r154279 + r154283;
double r154285 = r154276 * r154284;
double r154286 = r154275 + r154285;
double r154287 = r154286 - r154277;
return r154287;
}
double f(double a, double b) {
double r154288 = a;
double r154289 = 2.0;
double r154290 = pow(r154288, r154289);
double r154291 = 1.0;
double r154292 = r154291 + r154288;
double r154293 = 4.0;
double r154294 = r154292 * r154293;
double r154295 = r154288 * r154288;
double r154296 = b;
double r154297 = r154296 * r154296;
double r154298 = r154295 + r154297;
double r154299 = 2.0;
double r154300 = pow(r154298, r154299);
double r154301 = fma(r154290, r154294, r154300);
double r154302 = 3.0;
double r154303 = r154302 * r154288;
double r154304 = r154291 - r154303;
double r154305 = r154297 * r154304;
double r154306 = r154293 * r154305;
double r154307 = r154301 + r154306;
double r154308 = r154307 - r154291;
return r154308;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied distribute-lft-in0.2
Applied associate-+r+0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020049 +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))