\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} + \left(\sqrt[3]{4} \cdot \sqrt[3]{4}\right) \cdot \left(\mathsf{fma}\left(a \cdot a, 1 - a, \left(b \cdot b\right) \cdot \left(3 + a\right)\right) \cdot \sqrt[3]{4}\right)\right) - 1double f(double a, double b) {
double r375049 = a;
double r375050 = r375049 * r375049;
double r375051 = b;
double r375052 = r375051 * r375051;
double r375053 = r375050 + r375052;
double r375054 = 2.0;
double r375055 = pow(r375053, r375054);
double r375056 = 4.0;
double r375057 = 1.0;
double r375058 = r375057 - r375049;
double r375059 = r375050 * r375058;
double r375060 = 3.0;
double r375061 = r375060 + r375049;
double r375062 = r375052 * r375061;
double r375063 = r375059 + r375062;
double r375064 = r375056 * r375063;
double r375065 = r375055 + r375064;
double r375066 = r375065 - r375057;
return r375066;
}
double f(double a, double b) {
double r375067 = a;
double r375068 = r375067 * r375067;
double r375069 = b;
double r375070 = r375069 * r375069;
double r375071 = r375068 + r375070;
double r375072 = 2.0;
double r375073 = pow(r375071, r375072);
double r375074 = 4.0;
double r375075 = cbrt(r375074);
double r375076 = r375075 * r375075;
double r375077 = 1.0;
double r375078 = r375077 - r375067;
double r375079 = 3.0;
double r375080 = r375079 + r375067;
double r375081 = r375070 * r375080;
double r375082 = fma(r375068, r375078, r375081);
double r375083 = r375082 * r375075;
double r375084 = r375076 * r375083;
double r375085 = r375073 + r375084;
double r375086 = r375085 - r375077;
return r375086;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied add-cube-cbrt0.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020056 +o rules:numerics
(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))