\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({\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) - 1double f(double a, double b) {
double r189226 = a;
double r189227 = r189226 * r189226;
double r189228 = b;
double r189229 = r189228 * r189228;
double r189230 = r189227 + r189229;
double r189231 = 2.0;
double r189232 = pow(r189230, r189231);
double r189233 = 4.0;
double r189234 = 1.0;
double r189235 = r189234 + r189226;
double r189236 = r189227 * r189235;
double r189237 = 3.0;
double r189238 = r189237 * r189226;
double r189239 = r189234 - r189238;
double r189240 = r189229 * r189239;
double r189241 = r189236 + r189240;
double r189242 = r189233 * r189241;
double r189243 = r189232 + r189242;
double r189244 = r189243 - r189234;
return r189244;
}
double f(double a, double b) {
double r189245 = a;
double r189246 = r189245 * r189245;
double r189247 = b;
double r189248 = r189247 * r189247;
double r189249 = r189246 + r189248;
double r189250 = 2.0;
double r189251 = pow(r189249, r189250);
double r189252 = 4.0;
double r189253 = 1.0;
double r189254 = r189253 + r189245;
double r189255 = r189246 * r189254;
double r189256 = 3.0;
double r189257 = r189256 * r189245;
double r189258 = r189253 - r189257;
double r189259 = r189248 * r189258;
double r189260 = r189255 + r189259;
double r189261 = r189252 * r189260;
double r189262 = r189251 + r189261;
double r189263 = r189262 - r189253;
return r189263;
}



Bits error versus a



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