\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(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) + {\left(a \cdot a + b \cdot b\right)}^{2}\right) - 1double f(double a, double b) {
double r258205 = a;
double r258206 = r258205 * r258205;
double r258207 = b;
double r258208 = r258207 * r258207;
double r258209 = r258206 + r258208;
double r258210 = 2.0;
double r258211 = pow(r258209, r258210);
double r258212 = 4.0;
double r258213 = 1.0;
double r258214 = r258213 + r258205;
double r258215 = r258206 * r258214;
double r258216 = 3.0;
double r258217 = r258216 * r258205;
double r258218 = r258213 - r258217;
double r258219 = r258208 * r258218;
double r258220 = r258215 + r258219;
double r258221 = r258212 * r258220;
double r258222 = r258211 + r258221;
double r258223 = r258222 - r258213;
return r258223;
}
double f(double a, double b) {
double r258224 = 4.0;
double r258225 = a;
double r258226 = r258225 * r258225;
double r258227 = 1.0;
double r258228 = r258227 + r258225;
double r258229 = r258226 * r258228;
double r258230 = b;
double r258231 = r258230 * r258230;
double r258232 = 3.0;
double r258233 = r258232 * r258225;
double r258234 = r258227 - r258233;
double r258235 = r258231 * r258234;
double r258236 = r258229 + r258235;
double r258237 = r258224 * r258236;
double r258238 = r258226 + r258231;
double r258239 = 2.0;
double r258240 = pow(r258238, r258239);
double r258241 = r258237 + r258240;
double r258242 = r258241 - r258227;
return r258242;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied +-commutative0.2
Final simplification0.2
herbie shell --seed 2019308
(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))