\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -4.245390209416525 \cdot 10^{+107}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\mathbf{elif}\;x \le 6.0780598867908964 \cdot 10^{-49}:\\
\;\;\;\;\left|\mathsf{fma}\left(-z, \frac{x}{y}, \frac{x}{y} \cdot z\right) + \mathsf{fma}\left(1, \frac{4 + x}{y}, \frac{-1}{y} \cdot \left(z \cdot x\right)\right)\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 r972515 = x;
double r972516 = 4.0;
double r972517 = r972515 + r972516;
double r972518 = y;
double r972519 = r972517 / r972518;
double r972520 = r972515 / r972518;
double r972521 = z;
double r972522 = r972520 * r972521;
double r972523 = r972519 - r972522;
double r972524 = fabs(r972523);
return r972524;
}
double f(double x, double y, double z) {
double r972525 = x;
double r972526 = -4.245390209416525e+107;
bool r972527 = r972525 <= r972526;
double r972528 = 4.0;
double r972529 = r972528 + r972525;
double r972530 = y;
double r972531 = r972529 / r972530;
double r972532 = z;
double r972533 = r972532 / r972530;
double r972534 = r972525 * r972533;
double r972535 = r972531 - r972534;
double r972536 = fabs(r972535);
double r972537 = 6.0780598867908964e-49;
bool r972538 = r972525 <= r972537;
double r972539 = -r972532;
double r972540 = r972525 / r972530;
double r972541 = r972540 * r972532;
double r972542 = fma(r972539, r972540, r972541);
double r972543 = 1.0;
double r972544 = -1.0;
double r972545 = r972544 / r972530;
double r972546 = r972532 * r972525;
double r972547 = r972545 * r972546;
double r972548 = fma(r972543, r972531, r972547);
double r972549 = r972542 + r972548;
double r972550 = fabs(r972549);
double r972551 = r972538 ? r972550 : r972536;
double r972552 = r972527 ? r972536 : r972551;
return r972552;
}



Bits error versus x



Bits error versus y



Bits error versus z
if x < -4.245390209416525e+107 or 6.0780598867908964e-49 < x Initial program 0.1
rmApplied div-inv0.2
Applied associate-*l*0.3
Simplified0.2
if -4.245390209416525e+107 < x < 6.0780598867908964e-49Initial program 2.3
rmApplied *-un-lft-identity2.3
Applied prod-diff2.3
rmApplied div-inv2.3
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019143 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))