\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\mathsf{fma}\left(4, \left(\sqrt[3]{\mathsf{fma}\left(\left(b \cdot b\right), \left(a + 3\right), \left(a \cdot \left(a - a \cdot a\right)\right)\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\left(b \cdot b\right), \left(a + 3\right), \left(a \cdot \left(a - a \cdot a\right)\right)\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\left(b \cdot b\right), \left(a + 3\right), \left(a \cdot \left(a - a \cdot a\right)\right)\right)}\right)\right), \left(\mathsf{fma}\left(\left(\mathsf{fma}\left(b, b, \left(a \cdot a\right)\right)\right), \left(\mathsf{fma}\left(b, b, \left(a \cdot a\right)\right)\right), -1\right)\right)\right)double f(double a, double b) {
double r9232050 = a;
double r9232051 = r9232050 * r9232050;
double r9232052 = b;
double r9232053 = r9232052 * r9232052;
double r9232054 = r9232051 + r9232053;
double r9232055 = 2.0;
double r9232056 = pow(r9232054, r9232055);
double r9232057 = 4.0;
double r9232058 = 1.0;
double r9232059 = r9232058 - r9232050;
double r9232060 = r9232051 * r9232059;
double r9232061 = 3.0;
double r9232062 = r9232061 + r9232050;
double r9232063 = r9232053 * r9232062;
double r9232064 = r9232060 + r9232063;
double r9232065 = r9232057 * r9232064;
double r9232066 = r9232056 + r9232065;
double r9232067 = r9232066 - r9232058;
return r9232067;
}
double f(double a, double b) {
double r9232068 = 4.0;
double r9232069 = b;
double r9232070 = r9232069 * r9232069;
double r9232071 = a;
double r9232072 = 3.0;
double r9232073 = r9232071 + r9232072;
double r9232074 = r9232071 * r9232071;
double r9232075 = r9232071 - r9232074;
double r9232076 = r9232071 * r9232075;
double r9232077 = fma(r9232070, r9232073, r9232076);
double r9232078 = cbrt(r9232077);
double r9232079 = r9232078 * r9232078;
double r9232080 = r9232078 * r9232079;
double r9232081 = fma(r9232069, r9232069, r9232074);
double r9232082 = -1.0;
double r9232083 = fma(r9232081, r9232081, r9232082);
double r9232084 = fma(r9232068, r9232080, r9232083);
return r9232084;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
rmApplied add-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2019133 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))