\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -4.566012676414608 \cdot 10^{-11}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\mathbf{elif}\;x \le 1.7329015777673845 \cdot 10^{+52}:\\
\;\;\;\;\left|\frac{\left(4 + x\right) - z \cdot x}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{x}{y} \cdot z\right|\\
\end{array}double f(double x, double y, double z) {
double r894222 = x;
double r894223 = 4.0;
double r894224 = r894222 + r894223;
double r894225 = y;
double r894226 = r894224 / r894225;
double r894227 = r894222 / r894225;
double r894228 = z;
double r894229 = r894227 * r894228;
double r894230 = r894226 - r894229;
double r894231 = fabs(r894230);
return r894231;
}
double f(double x, double y, double z) {
double r894232 = x;
double r894233 = -4.566012676414608e-11;
bool r894234 = r894232 <= r894233;
double r894235 = 4.0;
double r894236 = r894235 + r894232;
double r894237 = y;
double r894238 = r894236 / r894237;
double r894239 = z;
double r894240 = r894239 / r894237;
double r894241 = r894232 * r894240;
double r894242 = r894238 - r894241;
double r894243 = fabs(r894242);
double r894244 = 1.7329015777673845e+52;
bool r894245 = r894232 <= r894244;
double r894246 = r894239 * r894232;
double r894247 = r894236 - r894246;
double r894248 = r894247 / r894237;
double r894249 = fabs(r894248);
double r894250 = r894232 / r894237;
double r894251 = r894250 * r894239;
double r894252 = r894238 - r894251;
double r894253 = fabs(r894252);
double r894254 = r894245 ? r894249 : r894253;
double r894255 = r894234 ? r894243 : r894254;
return r894255;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -4.566012676414608e-11Initial program 0.1
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.2
if -4.566012676414608e-11 < x < 1.7329015777673845e+52Initial program 2.3
rmApplied associate-*l/0.2
Applied sub-div0.2
if 1.7329015777673845e+52 < x Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied associate-/r*0.1
Simplified0.1
Final simplification0.2
herbie shell --seed 2019132 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))