\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 r298503 = a;
double r298504 = r298503 * r298503;
double r298505 = b;
double r298506 = r298505 * r298505;
double r298507 = r298504 + r298506;
double r298508 = 2.0;
double r298509 = pow(r298507, r298508);
double r298510 = 4.0;
double r298511 = 1.0;
double r298512 = r298511 - r298503;
double r298513 = r298504 * r298512;
double r298514 = 3.0;
double r298515 = r298514 + r298503;
double r298516 = r298506 * r298515;
double r298517 = r298513 + r298516;
double r298518 = r298510 * r298517;
double r298519 = r298509 + r298518;
double r298520 = r298519 - r298511;
return r298520;
}
double f(double a, double b) {
double r298521 = a;
double r298522 = r298521 * r298521;
double r298523 = b;
double r298524 = r298523 * r298523;
double r298525 = r298522 + r298524;
double r298526 = 2.0;
double r298527 = pow(r298525, r298526);
double r298528 = 4.0;
double r298529 = 1.0;
double r298530 = r298529 - r298521;
double r298531 = r298522 * r298530;
double r298532 = 3.0;
double r298533 = r298532 + r298521;
double r298534 = r298524 * r298533;
double r298535 = r298531 + r298534;
double r298536 = r298528 * r298535;
double r298537 = r298527 + r298536;
double r298538 = r298537 - r298529;
return r298538;
}



Bits error versus a



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