\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -2.1618774464985056 \cdot 10^{+63}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{x}{y} \cdot z\right|\\
\mathbf{elif}\;x \le 3.5037736689937804 \cdot 10^{-122}:\\
\;\;\;\;\left|\frac{\left(4 + x\right) - x \cdot z}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{x}{y} \cdot z\right|\\
\end{array}double f(double x, double y, double z) {
double r491039 = x;
double r491040 = 4.0;
double r491041 = r491039 + r491040;
double r491042 = y;
double r491043 = r491041 / r491042;
double r491044 = r491039 / r491042;
double r491045 = z;
double r491046 = r491044 * r491045;
double r491047 = r491043 - r491046;
double r491048 = fabs(r491047);
return r491048;
}
double f(double x, double y, double z) {
double r491049 = x;
double r491050 = -2.1618774464985056e+63;
bool r491051 = r491049 <= r491050;
double r491052 = 4.0;
double r491053 = r491052 + r491049;
double r491054 = y;
double r491055 = r491053 / r491054;
double r491056 = r491049 / r491054;
double r491057 = z;
double r491058 = r491056 * r491057;
double r491059 = r491055 - r491058;
double r491060 = fabs(r491059);
double r491061 = 3.5037736689937804e-122;
bool r491062 = r491049 <= r491061;
double r491063 = r491049 * r491057;
double r491064 = r491053 - r491063;
double r491065 = r491064 / r491054;
double r491066 = fabs(r491065);
double r491067 = r491062 ? r491066 : r491060;
double r491068 = r491051 ? r491060 : r491067;
return r491068;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -2.1618774464985056e+63 or 3.5037736689937804e-122 < x Initial program 0.4
if -2.1618774464985056e+63 < x < 3.5037736689937804e-122Initial program 2.3
rmApplied associate-*l/0.3
Applied sub-div0.3
Final simplification0.4
herbie shell --seed 2019152
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))