\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -4.433505417011087 \cdot 10^{-11}:\\
\;\;\;\;\left|\left(\frac{4}{y} + \frac{x}{y}\right) - \frac{x}{y} \cdot z\right|\\
\mathbf{elif}\;x \le 8.367091182980687 \cdot 10^{-37}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{x \cdot z}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{z}{\frac{y}{x}}\right|\\
\end{array}double f(double x, double y, double z) {
double r17568981 = x;
double r17568982 = 4.0;
double r17568983 = r17568981 + r17568982;
double r17568984 = y;
double r17568985 = r17568983 / r17568984;
double r17568986 = r17568981 / r17568984;
double r17568987 = z;
double r17568988 = r17568986 * r17568987;
double r17568989 = r17568985 - r17568988;
double r17568990 = fabs(r17568989);
return r17568990;
}
double f(double x, double y, double z) {
double r17568991 = x;
double r17568992 = -4.433505417011087e-11;
bool r17568993 = r17568991 <= r17568992;
double r17568994 = 4.0;
double r17568995 = y;
double r17568996 = r17568994 / r17568995;
double r17568997 = r17568991 / r17568995;
double r17568998 = r17568996 + r17568997;
double r17568999 = z;
double r17569000 = r17568997 * r17568999;
double r17569001 = r17568998 - r17569000;
double r17569002 = fabs(r17569001);
double r17569003 = 8.367091182980687e-37;
bool r17569004 = r17568991 <= r17569003;
double r17569005 = r17568994 + r17568991;
double r17569006 = r17569005 / r17568995;
double r17569007 = r17568991 * r17568999;
double r17569008 = r17569007 / r17568995;
double r17569009 = r17569006 - r17569008;
double r17569010 = fabs(r17569009);
double r17569011 = r17568995 / r17568991;
double r17569012 = r17568999 / r17569011;
double r17569013 = r17569006 - r17569012;
double r17569014 = fabs(r17569013);
double r17569015 = r17569004 ? r17569010 : r17569014;
double r17569016 = r17568993 ? r17569002 : r17569015;
return r17569016;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -4.433505417011087e-11Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied add-cube-cbrt0.9
Applied times-frac0.9
Applied prod-diff0.9
Simplified0.1
Simplified0.1
Taylor expanded around -inf 8.5
Simplified0.1
if -4.433505417011087e-11 < x < 8.367091182980687e-37Initial program 2.6
Taylor expanded around 0 0.1
if 8.367091182980687e-37 < x Initial program 0.4
rmApplied *-un-lft-identity0.4
Applied add-cube-cbrt1.1
Applied times-frac1.1
Applied prod-diff1.1
Simplified0.5
Simplified0.5
Final simplification0.2
herbie shell --seed 2019121 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))