\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{4}{y} + \frac{x}{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{4}{y} + \frac{x}{y}\right) - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r26750 = x;
double r26751 = 4.0;
double r26752 = r26750 + r26751;
double r26753 = y;
double r26754 = r26752 / r26753;
double r26755 = r26750 / r26753;
double r26756 = z;
double r26757 = r26755 * r26756;
double r26758 = r26754 - r26757;
double r26759 = fabs(r26758);
return r26759;
}
double f(double x, double y, double z) {
double r26760 = x;
double r26761 = -4.0025647343369246e+88;
bool r26762 = r26760 <= r26761;
double r26763 = 4.0;
double r26764 = y;
double r26765 = r26763 / r26764;
double r26766 = r26760 / r26764;
double r26767 = r26765 + r26766;
double r26768 = z;
double r26769 = r26766 * r26768;
double r26770 = r26767 - r26769;
double r26771 = fabs(r26770);
double r26772 = 2.3836214952764914e+44;
bool r26773 = r26760 <= r26772;
double r26774 = r26760 + r26763;
double r26775 = r26760 * r26768;
double r26776 = r26774 - r26775;
double r26777 = r26776 / r26764;
double r26778 = fabs(r26777);
double r26779 = r26768 / r26764;
double r26780 = r26760 * r26779;
double r26781 = r26767 - r26780;
double r26782 = fabs(r26781);
double r26783 = r26773 ? r26778 : r26782;
double r26784 = r26762 ? r26771 : r26783;
return r26784;
}



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
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))