\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) - 14 \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) + \left({\left(a \cdot a + b \cdot b\right)}^{2} - 1\right)double f(double a, double b) {
double r102658 = a;
double r102659 = r102658 * r102658;
double r102660 = b;
double r102661 = r102660 * r102660;
double r102662 = r102659 + r102661;
double r102663 = 2.0;
double r102664 = pow(r102662, r102663);
double r102665 = 4.0;
double r102666 = 1.0;
double r102667 = r102666 + r102658;
double r102668 = r102659 * r102667;
double r102669 = 3.0;
double r102670 = r102669 * r102658;
double r102671 = r102666 - r102670;
double r102672 = r102661 * r102671;
double r102673 = r102668 + r102672;
double r102674 = r102665 * r102673;
double r102675 = r102664 + r102674;
double r102676 = r102675 - r102666;
return r102676;
}
double f(double a, double b) {
double r102677 = 4.0;
double r102678 = a;
double r102679 = r102678 * r102678;
double r102680 = 1.0;
double r102681 = r102680 + r102678;
double r102682 = r102679 * r102681;
double r102683 = b;
double r102684 = r102683 * r102683;
double r102685 = 3.0;
double r102686 = r102685 * r102678;
double r102687 = r102680 - r102686;
double r102688 = r102684 * r102687;
double r102689 = r102682 + r102688;
double r102690 = r102677 * r102689;
double r102691 = r102679 + r102684;
double r102692 = 2.0;
double r102693 = pow(r102691, r102692);
double r102694 = r102693 - r102680;
double r102695 = r102690 + r102694;
return r102695;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2019291
(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))