\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -1.6359444841938246 \cdot 10^{+35}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\mathbf{elif}\;x \le 4.712266768697627 \cdot 10^{-112}:\\
\;\;\;\;\left|\frac{\left(4 + x\right) - z \cdot x}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r1194510 = x;
double r1194511 = 4.0;
double r1194512 = r1194510 + r1194511;
double r1194513 = y;
double r1194514 = r1194512 / r1194513;
double r1194515 = r1194510 / r1194513;
double r1194516 = z;
double r1194517 = r1194515 * r1194516;
double r1194518 = r1194514 - r1194517;
double r1194519 = fabs(r1194518);
return r1194519;
}
double f(double x, double y, double z) {
double r1194520 = x;
double r1194521 = -1.6359444841938246e+35;
bool r1194522 = r1194520 <= r1194521;
double r1194523 = 4.0;
double r1194524 = r1194523 + r1194520;
double r1194525 = y;
double r1194526 = r1194524 / r1194525;
double r1194527 = z;
double r1194528 = r1194527 / r1194525;
double r1194529 = r1194520 * r1194528;
double r1194530 = r1194526 - r1194529;
double r1194531 = fabs(r1194530);
double r1194532 = 4.712266768697627e-112;
bool r1194533 = r1194520 <= r1194532;
double r1194534 = r1194527 * r1194520;
double r1194535 = r1194524 - r1194534;
double r1194536 = r1194535 / r1194525;
double r1194537 = fabs(r1194536);
double r1194538 = r1194533 ? r1194537 : r1194531;
double r1194539 = r1194522 ? r1194531 : r1194538;
return r1194539;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -1.6359444841938246e+35 or 4.712266768697627e-112 < x Initial program 0.7
rmApplied div-inv0.7
Applied associate-*l*0.9
Simplified0.8
if -1.6359444841938246e+35 < x < 4.712266768697627e-112Initial program 2.6
rmApplied associate-*l/0.1
Applied sub-div0.1
Final simplification0.4
herbie shell --seed 2019139 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))