double f(double a, double b) {
double r10276030 = a;
double r10276031 = r10276030 * r10276030;
double r10276032 = b;
double r10276033 = r10276032 * r10276032;
double r10276034 = r10276031 + r10276033;
double r10276035 = 2.0;
double r10276036 = pow(r10276034, r10276035);
double r10276037 = 4.0;
double r10276038 = 1.0;
double r10276039 = r10276038 + r10276030;
double r10276040 = r10276031 * r10276039;
double r10276041 = 3.0;
double r10276042 = r10276041 * r10276030;
double r10276043 = r10276038 - r10276042;
double r10276044 = r10276033 * r10276043;
double r10276045 = r10276040 + r10276044;
double r10276046 = r10276037 * r10276045;
double r10276047 = r10276036 + r10276046;
double r10276048 = r10276047 - r10276038;
return r10276048;
}
double f(double a, double b) {
double r10276049 = b;
double r10276050 = r10276049 * r10276049;
double r10276051 = -3.0;
double r10276052 = a;
double r10276053 = 1.0;
double r10276054 = fma(r10276051, r10276052, r10276053);
double r10276055 = r10276052 * r10276052;
double r10276056 = fma(r10276055, r10276052, r10276055);
double r10276057 = fma(r10276050, r10276054, r10276056);
double r10276058 = 4.0;
double r10276059 = fma(r10276049, r10276049, r10276055);
double r10276060 = -1.0;
double r10276061 = fma(r10276059, r10276059, r10276060);
double r10276062 = fma(r10276057, r10276058, r10276061);
return r10276062;
}
\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(b \cdot b\right) \cdot \left((-3 \cdot a + 1)_*\right) + \left((\left(a \cdot a\right) \cdot a + \left(a \cdot a\right))_*\right))_*\right) \cdot 4 + \left((\left((b \cdot b + \left(a \cdot a\right))_*\right) \cdot \left((b \cdot b + \left(a \cdot a\right))_*\right) + -1)_*\right))_*



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019101 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))