\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -1.109110258294614752055774941493075991437 \cdot 10^{97}:\\
\;\;\;\;\left|\frac{1}{\frac{y}{x + 4}} - \frac{z}{\frac{y}{x}}\right|\\
\mathbf{elif}\;x \le 4.00953015364486885541650984422639355434 \cdot 10^{48}:\\
\;\;\;\;\left|\frac{\left(x + 4\right) - x \cdot z}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\left(x + 4\right) \cdot \frac{1}{y} - \frac{x}{y} \cdot z\right|\\
\end{array}double f(double x, double y, double z) {
double r32867 = x;
double r32868 = 4.0;
double r32869 = r32867 + r32868;
double r32870 = y;
double r32871 = r32869 / r32870;
double r32872 = r32867 / r32870;
double r32873 = z;
double r32874 = r32872 * r32873;
double r32875 = r32871 - r32874;
double r32876 = fabs(r32875);
return r32876;
}
double f(double x, double y, double z) {
double r32877 = x;
double r32878 = -1.1091102582946148e+97;
bool r32879 = r32877 <= r32878;
double r32880 = 1.0;
double r32881 = y;
double r32882 = 4.0;
double r32883 = r32877 + r32882;
double r32884 = r32881 / r32883;
double r32885 = r32880 / r32884;
double r32886 = z;
double r32887 = r32881 / r32877;
double r32888 = r32886 / r32887;
double r32889 = r32885 - r32888;
double r32890 = fabs(r32889);
double r32891 = 4.009530153644869e+48;
bool r32892 = r32877 <= r32891;
double r32893 = r32877 * r32886;
double r32894 = r32883 - r32893;
double r32895 = r32894 / r32881;
double r32896 = fabs(r32895);
double r32897 = r32880 / r32881;
double r32898 = r32883 * r32897;
double r32899 = r32877 / r32881;
double r32900 = r32899 * r32886;
double r32901 = r32898 - r32900;
double r32902 = fabs(r32901);
double r32903 = r32892 ? r32896 : r32902;
double r32904 = r32879 ? r32890 : r32903;
return r32904;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -1.1091102582946148e+97Initial program 0.1
rmApplied clear-num0.3
rmApplied pow10.3
Applied pow10.3
Applied pow-prod-down0.3
Simplified0.3
if -1.1091102582946148e+97 < x < 4.009530153644869e+48Initial program 2.0
rmApplied associate-*l/0.5
Applied sub-div0.5
if 4.009530153644869e+48 < x Initial program 0.1
rmApplied div-inv0.3
Final simplification0.4
herbie shell --seed 2019303
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))