\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -4.0025647343369246 \cdot 10^{88}:\\
\;\;\;\;\left|\left(\frac{x}{y} + \frac{4}{y}\right) - \frac{x}{y} \cdot z\right|\\
\mathbf{elif}\;x \le 2.38362149527649136 \cdot 10^{44}:\\
\;\;\;\;\left|\frac{\left(x + 4\right) - x \cdot z}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\left(\frac{x}{y} + \frac{4}{y}\right) - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r26816 = x;
double r26817 = 4.0;
double r26818 = r26816 + r26817;
double r26819 = y;
double r26820 = r26818 / r26819;
double r26821 = r26816 / r26819;
double r26822 = z;
double r26823 = r26821 * r26822;
double r26824 = r26820 - r26823;
double r26825 = fabs(r26824);
return r26825;
}
double f(double x, double y, double z) {
double r26826 = x;
double r26827 = -4.0025647343369246e+88;
bool r26828 = r26826 <= r26827;
double r26829 = y;
double r26830 = r26826 / r26829;
double r26831 = 4.0;
double r26832 = r26831 / r26829;
double r26833 = r26830 + r26832;
double r26834 = z;
double r26835 = r26830 * r26834;
double r26836 = r26833 - r26835;
double r26837 = fabs(r26836);
double r26838 = 2.3836214952764914e+44;
bool r26839 = r26826 <= r26838;
double r26840 = r26826 + r26831;
double r26841 = r26826 * r26834;
double r26842 = r26840 - r26841;
double r26843 = r26842 / r26829;
double r26844 = fabs(r26843);
double r26845 = r26834 / r26829;
double r26846 = r26826 * r26845;
double r26847 = r26833 - r26846;
double r26848 = fabs(r26847);
double r26849 = r26839 ? r26844 : r26848;
double r26850 = r26828 ? r26837 : r26849;
return r26850;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -4.0025647343369246e+88Initial program 0.1
Taylor expanded around 0 0.1
Simplified0.1
if -4.0025647343369246e+88 < x < 2.3836214952764914e+44Initial program 2.0
rmApplied associate-*l/0.3
Applied sub-div0.3
if 2.3836214952764914e+44 < x Initial program 0.1
Taylor expanded around 0 0.1
Simplified0.1
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.1
Final simplification0.3
herbie shell --seed 2020042 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))