\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\frac{\left(x + 4\right) - x \cdot z}{y}\right|double f(double x, double y, double z) {
double r40739 = x;
double r40740 = 4.0;
double r40741 = r40739 + r40740;
double r40742 = y;
double r40743 = r40741 / r40742;
double r40744 = r40739 / r40742;
double r40745 = z;
double r40746 = r40744 * r40745;
double r40747 = r40743 - r40746;
double r40748 = fabs(r40747);
return r40748;
}
double f(double x, double y, double z) {
double r40749 = x;
double r40750 = 4.0;
double r40751 = r40749 + r40750;
double r40752 = z;
double r40753 = r40749 * r40752;
double r40754 = r40751 - r40753;
double r40755 = y;
double r40756 = r40754 / r40755;
double r40757 = fabs(r40756);
return r40757;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -7.629642207394974e+129 or 9.321223284732019e+58 < x Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied add-cube-cbrt0.5
Applied times-frac0.5
Applied associate-*l*0.5
rmApplied *-un-lft-identity0.5
Applied associate-*l*0.5
Simplified0.1
Taylor expanded around 0 0.1
if -7.629642207394974e+129 < x < 9.321223284732019e+58Initial program 2.4
rmApplied associate-*l/0.6
Applied sub-div0.6
Final simplification3.4
herbie shell --seed 2019294
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))