\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(3 + 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(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r216575 = a;
double r216576 = r216575 * r216575;
double r216577 = b;
double r216578 = r216577 * r216577;
double r216579 = r216576 + r216578;
double r216580 = 2.0;
double r216581 = pow(r216579, r216580);
double r216582 = 4.0;
double r216583 = 1.0;
double r216584 = r216583 - r216575;
double r216585 = r216576 * r216584;
double r216586 = 3.0;
double r216587 = r216586 + r216575;
double r216588 = r216578 * r216587;
double r216589 = r216585 + r216588;
double r216590 = r216582 * r216589;
double r216591 = r216581 + r216590;
double r216592 = r216591 - r216583;
return r216592;
}
double f(double a, double b) {
double r216593 = a;
double r216594 = r216593 * r216593;
double r216595 = b;
double r216596 = r216595 * r216595;
double r216597 = r216594 + r216596;
double r216598 = 2.0;
double r216599 = pow(r216597, r216598);
double r216600 = 4.0;
double r216601 = 1.0;
double r216602 = r216601 - r216593;
double r216603 = r216594 * r216602;
double r216604 = 3.0;
double r216605 = r216604 + r216593;
double r216606 = r216596 * r216605;
double r216607 = r216603 + r216606;
double r216608 = r216600 * r216607;
double r216609 = r216599 + r216608;
double r216610 = r216609 - r216601;
return r216610;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019199
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))