\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -4.5186598216349587 \cdot 10^{+49}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\mathbf{elif}\;x \le 5.426503285374244 \cdot 10^{-130}:\\
\;\;\;\;\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 r1681731 = x;
double r1681732 = 4.0;
double r1681733 = r1681731 + r1681732;
double r1681734 = y;
double r1681735 = r1681733 / r1681734;
double r1681736 = r1681731 / r1681734;
double r1681737 = z;
double r1681738 = r1681736 * r1681737;
double r1681739 = r1681735 - r1681738;
double r1681740 = fabs(r1681739);
return r1681740;
}
double f(double x, double y, double z) {
double r1681741 = x;
double r1681742 = -4.5186598216349587e+49;
bool r1681743 = r1681741 <= r1681742;
double r1681744 = 4.0;
double r1681745 = r1681744 + r1681741;
double r1681746 = y;
double r1681747 = r1681745 / r1681746;
double r1681748 = z;
double r1681749 = r1681748 / r1681746;
double r1681750 = r1681741 * r1681749;
double r1681751 = r1681747 - r1681750;
double r1681752 = fabs(r1681751);
double r1681753 = 5.426503285374244e-130;
bool r1681754 = r1681741 <= r1681753;
double r1681755 = r1681748 * r1681741;
double r1681756 = r1681745 - r1681755;
double r1681757 = r1681756 / r1681746;
double r1681758 = fabs(r1681757);
double r1681759 = r1681754 ? r1681758 : r1681752;
double r1681760 = r1681743 ? r1681752 : r1681759;
return r1681760;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -4.5186598216349587e+49 or 5.426503285374244e-130 < x Initial program 0.7
rmApplied div-inv0.7
Applied associate-*l*0.8
Simplified0.7
if -4.5186598216349587e+49 < x < 5.426503285374244e-130Initial program 2.4
rmApplied associate-*l/0.2
Applied sub-div0.2
Final simplification0.4
herbie shell --seed 2019165 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))