\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;\frac{x + 4}{y} - \frac{x}{y} \cdot z \le -5.608942803594382 \cdot 10^{23} \lor \neg \left(\frac{x + 4}{y} - \frac{x}{y} \cdot z \le 3.5059797311862954 \cdot 10^{-146}\right):\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x + 4}{y} - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r34425 = x;
double r34426 = 4.0;
double r34427 = r34425 + r34426;
double r34428 = y;
double r34429 = r34427 / r34428;
double r34430 = r34425 / r34428;
double r34431 = z;
double r34432 = r34430 * r34431;
double r34433 = r34429 - r34432;
double r34434 = fabs(r34433);
return r34434;
}
double f(double x, double y, double z) {
double r34435 = x;
double r34436 = 4.0;
double r34437 = r34435 + r34436;
double r34438 = y;
double r34439 = r34437 / r34438;
double r34440 = r34435 / r34438;
double r34441 = z;
double r34442 = r34440 * r34441;
double r34443 = r34439 - r34442;
double r34444 = -5.608942803594382e+23;
bool r34445 = r34443 <= r34444;
double r34446 = 3.5059797311862954e-146;
bool r34447 = r34443 <= r34446;
double r34448 = !r34447;
bool r34449 = r34445 || r34448;
double r34450 = fabs(r34443);
double r34451 = r34441 / r34438;
double r34452 = r34435 * r34451;
double r34453 = r34439 - r34452;
double r34454 = fabs(r34453);
double r34455 = r34449 ? r34450 : r34454;
return r34455;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if (- (/ (+ x 4.0) y) (* (/ x y) z)) < -5.608942803594382e+23 or 3.5059797311862954e-146 < (- (/ (+ x 4.0) y) (* (/ x y) z)) Initial program 0.4
rmApplied associate-*l/5.2
rmApplied associate-/l*4.4
rmApplied associate-/r/0.4
if -5.608942803594382e+23 < (- (/ (+ x 4.0) y) (* (/ x y) z)) < 3.5059797311862954e-146Initial program 4.6
rmApplied div-inv4.6
Applied associate-*l*0.1
Simplified0.1
Final simplification0.3
herbie shell --seed 2020064 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))