\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -4.795736430740204 \cdot 10^{-53}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{z}{\frac{y}{x}}\right|\\
\mathbf{elif}\;x \le 1.7425061446232146 \cdot 10^{-95}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \left(z \cdot x\right) \cdot \frac{1}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{z}{y} \cdot x\right|\\
\end{array}double f(double x, double y, double z) {
double r17789942 = x;
double r17789943 = 4.0;
double r17789944 = r17789942 + r17789943;
double r17789945 = y;
double r17789946 = r17789944 / r17789945;
double r17789947 = r17789942 / r17789945;
double r17789948 = z;
double r17789949 = r17789947 * r17789948;
double r17789950 = r17789946 - r17789949;
double r17789951 = fabs(r17789950);
return r17789951;
}
double f(double x, double y, double z) {
double r17789952 = x;
double r17789953 = -4.795736430740204e-53;
bool r17789954 = r17789952 <= r17789953;
double r17789955 = 4.0;
double r17789956 = r17789955 + r17789952;
double r17789957 = y;
double r17789958 = r17789956 / r17789957;
double r17789959 = z;
double r17789960 = r17789957 / r17789952;
double r17789961 = r17789959 / r17789960;
double r17789962 = r17789958 - r17789961;
double r17789963 = fabs(r17789962);
double r17789964 = 1.7425061446232146e-95;
bool r17789965 = r17789952 <= r17789964;
double r17789966 = r17789959 * r17789952;
double r17789967 = 1.0;
double r17789968 = r17789967 / r17789957;
double r17789969 = r17789966 * r17789968;
double r17789970 = r17789958 - r17789969;
double r17789971 = fabs(r17789970);
double r17789972 = r17789959 / r17789957;
double r17789973 = r17789972 * r17789952;
double r17789974 = r17789958 - r17789973;
double r17789975 = fabs(r17789974);
double r17789976 = r17789965 ? r17789971 : r17789975;
double r17789977 = r17789954 ? r17789963 : r17789976;
return r17789977;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -4.795736430740204e-53Initial program 0.3
rmApplied *-un-lft-identity0.3
Applied add-cube-cbrt1.0
Applied times-frac1.0
Applied prod-diff1.0
Simplified0.3
Simplified0.3
if -4.795736430740204e-53 < x < 1.7425061446232146e-95Initial program 2.6
rmApplied *-un-lft-identity2.6
Applied add-cube-cbrt3.6
Applied times-frac3.7
Applied prod-diff3.7
Simplified2.8
Simplified2.8
rmApplied div-inv2.8
Applied *-un-lft-identity2.8
Applied times-frac0.1
Simplified0.1
if 1.7425061446232146e-95 < x Initial program 0.6
rmApplied *-un-lft-identity0.6
Applied add-cube-cbrt1.4
Applied times-frac1.4
Applied prod-diff1.4
Simplified0.7
Simplified0.7
rmApplied associate-/r/0.8
Final simplification0.3
herbie shell --seed 2019119 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))