\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\mathsf{fma}\left(4 \cdot b, b, {\left(a \cdot a + b \cdot b\right)}^{2} - 1\right)double f(double a, double b) {
double r232782 = a;
double r232783 = r232782 * r232782;
double r232784 = b;
double r232785 = r232784 * r232784;
double r232786 = r232783 + r232785;
double r232787 = 2.0;
double r232788 = pow(r232786, r232787);
double r232789 = 4.0;
double r232790 = r232789 * r232785;
double r232791 = r232788 + r232790;
double r232792 = 1.0;
double r232793 = r232791 - r232792;
return r232793;
}
double f(double a, double b) {
double r232794 = 4.0;
double r232795 = b;
double r232796 = r232794 * r232795;
double r232797 = a;
double r232798 = r232797 * r232797;
double r232799 = r232795 * r232795;
double r232800 = r232798 + r232799;
double r232801 = 2.0;
double r232802 = pow(r232800, r232801);
double r232803 = 1.0;
double r232804 = r232802 - r232803;
double r232805 = fma(r232796, r232795, r232804);
return r232805;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020062 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))