\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\frac{x + 4}{y} - \frac{x}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{z}{\sqrt[3]{y}}\right|double f(double x, double y, double z) {
double r40991 = x;
double r40992 = 4.0;
double r40993 = r40991 + r40992;
double r40994 = y;
double r40995 = r40993 / r40994;
double r40996 = r40991 / r40994;
double r40997 = z;
double r40998 = r40996 * r40997;
double r40999 = r40995 - r40998;
double r41000 = fabs(r40999);
return r41000;
}
double f(double x, double y, double z) {
double r41001 = x;
double r41002 = 4.0;
double r41003 = r41001 + r41002;
double r41004 = y;
double r41005 = r41003 / r41004;
double r41006 = cbrt(r41004);
double r41007 = r41006 * r41006;
double r41008 = r41001 / r41007;
double r41009 = z;
double r41010 = r41009 / r41006;
double r41011 = r41008 * r41010;
double r41012 = r41005 - r41011;
double r41013 = fabs(r41012);
return r41013;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 1.7
rmApplied div-inv1.7
Applied associate-*l*3.5
Simplified3.5
rmApplied add-cube-cbrt3.8
Applied *-un-lft-identity3.8
Applied times-frac3.8
Applied associate-*r*1.9
Simplified1.9
Final simplification1.9
herbie shell --seed 2019322 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))