\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 r269632 = a;
double r269633 = r269632 * r269632;
double r269634 = b;
double r269635 = r269634 * r269634;
double r269636 = r269633 + r269635;
double r269637 = 2.0;
double r269638 = pow(r269636, r269637);
double r269639 = 4.0;
double r269640 = 1.0;
double r269641 = r269640 + r269632;
double r269642 = r269633 * r269641;
double r269643 = 3.0;
double r269644 = r269643 * r269632;
double r269645 = r269640 - r269644;
double r269646 = r269635 * r269645;
double r269647 = r269642 + r269646;
double r269648 = r269639 * r269647;
double r269649 = r269638 + r269648;
double r269650 = r269649 - r269640;
return r269650;
}
double f(double a, double b) {
double r269651 = a;
double r269652 = r269651 * r269651;
double r269653 = b;
double r269654 = r269653 * r269653;
double r269655 = r269652 + r269654;
double r269656 = 2.0;
double r269657 = pow(r269655, r269656);
double r269658 = 4.0;
double r269659 = 1.0;
double r269660 = r269659 + r269651;
double r269661 = r269652 * r269660;
double r269662 = 3.0;
double r269663 = r269662 * r269651;
double r269664 = r269659 - r269663;
double r269665 = r269654 * r269664;
double r269666 = r269661 + r269665;
double r269667 = r269658 * r269666;
double r269668 = r269657 + r269667;
double r269669 = r269668 - r269659;
return r269669;
}



Bits error versus a



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