\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 r275558 = a;
double r275559 = r275558 * r275558;
double r275560 = b;
double r275561 = r275560 * r275560;
double r275562 = r275559 + r275561;
double r275563 = 2.0;
double r275564 = pow(r275562, r275563);
double r275565 = 4.0;
double r275566 = 1.0;
double r275567 = r275566 + r275558;
double r275568 = r275559 * r275567;
double r275569 = 3.0;
double r275570 = r275569 * r275558;
double r275571 = r275566 - r275570;
double r275572 = r275561 * r275571;
double r275573 = r275568 + r275572;
double r275574 = r275565 * r275573;
double r275575 = r275564 + r275574;
double r275576 = r275575 - r275566;
return r275576;
}
double f(double a, double b) {
double r275577 = a;
double r275578 = r275577 * r275577;
double r275579 = b;
double r275580 = r275579 * r275579;
double r275581 = r275578 + r275580;
double r275582 = 2.0;
double r275583 = pow(r275581, r275582);
double r275584 = 4.0;
double r275585 = 1.0;
double r275586 = r275585 + r275577;
double r275587 = r275578 * r275586;
double r275588 = 3.0;
double r275589 = r275588 * r275577;
double r275590 = r275585 - r275589;
double r275591 = r275580 * r275590;
double r275592 = r275587 + r275591;
double r275593 = r275584 * r275592;
double r275594 = r275583 + r275593;
double r275595 = r275594 - r275585;
return r275595;
}



Bits error versus a



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