\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -5.613880646235681 \cdot 10^{87} \lor \neg \left(x \le 5.30749059840940589 \cdot 10^{-20}\right):\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{\left(x + 4\right) - x \cdot z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r27525 = x;
double r27526 = 4.0;
double r27527 = r27525 + r27526;
double r27528 = y;
double r27529 = r27527 / r27528;
double r27530 = r27525 / r27528;
double r27531 = z;
double r27532 = r27530 * r27531;
double r27533 = r27529 - r27532;
double r27534 = fabs(r27533);
return r27534;
}
double f(double x, double y, double z) {
double r27535 = x;
double r27536 = -5.613880646235681e+87;
bool r27537 = r27535 <= r27536;
double r27538 = 5.307490598409406e-20;
bool r27539 = r27535 <= r27538;
double r27540 = !r27539;
bool r27541 = r27537 || r27540;
double r27542 = 4.0;
double r27543 = r27535 + r27542;
double r27544 = y;
double r27545 = r27543 / r27544;
double r27546 = r27535 / r27544;
double r27547 = z;
double r27548 = r27546 * r27547;
double r27549 = r27545 - r27548;
double r27550 = fabs(r27549);
double r27551 = r27535 * r27547;
double r27552 = r27543 - r27551;
double r27553 = r27552 / r27544;
double r27554 = fabs(r27553);
double r27555 = r27541 ? r27550 : r27554;
return r27555;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -5.613880646235681e+87 or 5.307490598409406e-20 < x Initial program 0.1
if -5.613880646235681e+87 < x < 5.307490598409406e-20Initial program 2.6
rmApplied associate-*l/0.3
Applied sub-div0.3
Final simplification0.3
herbie shell --seed 2020059
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))