\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 r314090 = a;
double r314091 = r314090 * r314090;
double r314092 = b;
double r314093 = r314092 * r314092;
double r314094 = r314091 + r314093;
double r314095 = 2.0;
double r314096 = pow(r314094, r314095);
double r314097 = 4.0;
double r314098 = r314097 * r314093;
double r314099 = r314096 + r314098;
double r314100 = 1.0;
double r314101 = r314099 - r314100;
return r314101;
}
double f(double a, double b) {
double r314102 = a;
double r314103 = r314102 * r314102;
double r314104 = b;
double r314105 = r314104 * r314104;
double r314106 = r314103 + r314105;
double r314107 = 2.0;
double r314108 = pow(r314106, r314107);
double r314109 = 4.0;
double r314110 = r314109 * r314105;
double r314111 = r314108 + r314110;
double r314112 = 1.0;
double r314113 = r314111 - r314112;
return r314113;
}



Bits error versus a



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