\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\mathsf{fma}\left(4, \mathsf{fma}\left(a \cdot a, 1 + a, \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right), {\left(\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}\right)}^{2} \cdot {\left(\sqrt[3]{\sqrt[3]{a \cdot a + b \cdot b} \cdot \sqrt[3]{a \cdot a + b \cdot b}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{a \cdot a + b \cdot b}} \cdot \sqrt[3]{\sqrt{a \cdot a + b \cdot b}}}\right)}^{2} - 1\right)double f(double a, double b) {
double r173960 = a;
double r173961 = r173960 * r173960;
double r173962 = b;
double r173963 = r173962 * r173962;
double r173964 = r173961 + r173963;
double r173965 = 2.0;
double r173966 = pow(r173964, r173965);
double r173967 = 4.0;
double r173968 = 1.0;
double r173969 = r173968 + r173960;
double r173970 = r173961 * r173969;
double r173971 = 3.0;
double r173972 = r173971 * r173960;
double r173973 = r173968 - r173972;
double r173974 = r173963 * r173973;
double r173975 = r173970 + r173974;
double r173976 = r173967 * r173975;
double r173977 = r173966 + r173976;
double r173978 = r173977 - r173968;
return r173978;
}
double f(double a, double b) {
double r173979 = 4.0;
double r173980 = a;
double r173981 = r173980 * r173980;
double r173982 = 1.0;
double r173983 = r173982 + r173980;
double r173984 = b;
double r173985 = r173984 * r173984;
double r173986 = 3.0;
double r173987 = r173986 * r173980;
double r173988 = r173982 - r173987;
double r173989 = r173985 * r173988;
double r173990 = fma(r173981, r173983, r173989);
double r173991 = r173981 + r173985;
double r173992 = cbrt(r173991);
double r173993 = r173992 * r173992;
double r173994 = 2.0;
double r173995 = pow(r173993, r173994);
double r173996 = cbrt(r173993);
double r173997 = sqrt(r173991);
double r173998 = cbrt(r173997);
double r173999 = r173998 * r173998;
double r174000 = cbrt(r173999);
double r174001 = r173996 * r174000;
double r174002 = pow(r174001, r173994);
double r174003 = r173995 * r174002;
double r174004 = r174003 - r173982;
double r174005 = fma(r173979, r173990, r174004);
return r174005;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
rmApplied add-cube-cbrt0.7
Applied unpow-prod-down0.7
rmApplied add-cube-cbrt0.7
Applied cbrt-prod0.7
rmApplied add-sqr-sqrt0.7
Applied cbrt-prod0.7
Final simplification0.7
herbie shell --seed 2019362 +o rules:numerics
(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))