\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1double f(double a, double b) {
double r352553 = a;
double r352554 = r352553 * r352553;
double r352555 = b;
double r352556 = r352555 * r352555;
double r352557 = r352554 + r352556;
double r352558 = 2.0;
double r352559 = pow(r352557, r352558);
double r352560 = 4.0;
double r352561 = r352560 * r352556;
double r352562 = r352559 + r352561;
double r352563 = 1.0;
double r352564 = r352562 - r352563;
return r352564;
}
double f(double a, double b) {
double r352565 = a;
double r352566 = r352565 * r352565;
double r352567 = b;
double r352568 = r352567 * r352567;
double r352569 = r352566 + r352568;
double r352570 = 2.0;
double r352571 = pow(r352569, r352570);
double r352572 = 4.0;
double r352573 = r352572 * r352568;
double r352574 = r352571 + r352573;
double r352575 = 1.0;
double r352576 = r352574 - r352575;
return r352576;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020056 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))