\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\frac{x + 4}{y} - \sqrt{\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}} \cdot \left(\left(\left|\frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right| \cdot z\right) \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right|double f(double x, double y, double z) {
double r32983 = x;
double r32984 = 4.0;
double r32985 = r32983 + r32984;
double r32986 = y;
double r32987 = r32985 / r32986;
double r32988 = r32983 / r32986;
double r32989 = z;
double r32990 = r32988 * r32989;
double r32991 = r32987 - r32990;
double r32992 = fabs(r32991);
return r32992;
}
double f(double x, double y, double z) {
double r32993 = x;
double r32994 = 4.0;
double r32995 = r32993 + r32994;
double r32996 = y;
double r32997 = r32995 / r32996;
double r32998 = cbrt(r32993);
double r32999 = r32998 * r32998;
double r33000 = cbrt(r32996);
double r33001 = r33000 * r33000;
double r33002 = r32999 / r33001;
double r33003 = sqrt(r33002);
double r33004 = r32998 / r33000;
double r33005 = fabs(r33004);
double r33006 = z;
double r33007 = r33005 * r33006;
double r33008 = r33007 * r33004;
double r33009 = r33003 * r33008;
double r33010 = r32997 - r33009;
double r33011 = fabs(r33010);
return r33011;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 1.6
rmApplied add-cube-cbrt1.9
Applied add-cube-cbrt2.0
Applied times-frac2.0
Applied associate-*l*0.6
rmApplied add-sqr-sqrt0.6
Applied associate-*l*0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))