\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\frac{x + 4}{y} - \frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\frac{\sqrt[3]{y}}{x}}\right|double f(double x, double y, double z) {
double r72964 = x;
double r72965 = 4.0;
double r72966 = r72964 + r72965;
double r72967 = y;
double r72968 = r72966 / r72967;
double r72969 = r72964 / r72967;
double r72970 = z;
double r72971 = r72969 * r72970;
double r72972 = r72968 - r72971;
double r72973 = fabs(r72972);
return r72973;
}
double f(double x, double y, double z) {
double r72974 = x;
double r72975 = 4.0;
double r72976 = r72974 + r72975;
double r72977 = y;
double r72978 = r72976 / r72977;
double r72979 = z;
double r72980 = cbrt(r72979);
double r72981 = r72980 * r72980;
double r72982 = cbrt(r72977);
double r72983 = r72982 * r72982;
double r72984 = r72981 / r72983;
double r72985 = r72982 / r72974;
double r72986 = r72980 / r72985;
double r72987 = r72984 * r72986;
double r72988 = r72978 - r72987;
double r72989 = fabs(r72988);
return r72989;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 1.6
rmApplied add-cube-cbrt1.9
Applied associate-*r*1.9
Simplified1.9
rmApplied pow11.9
Applied pow11.9
Applied pow11.9
Applied pow11.9
Applied pow-prod-down1.9
Applied pow-prod-down1.9
Applied pow-prod-down1.9
Simplified1.8
rmApplied *-un-lft-identity1.8
Applied add-cube-cbrt2.0
Applied times-frac2.0
Applied add-cube-cbrt2.1
Applied times-frac1.2
Simplified1.2
Final simplification1.2
herbie shell --seed 2019195 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4.0) y) (* (/ x y) z))))