\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -6.359236426285955 \cdot 10^{-86}:\\
\;\;\;\;\left|\left(\frac{4}{y} + \frac{x}{y}\right) - \frac{x}{y} \cdot z\right|\\
\mathbf{elif}\;x \le 2.6596617673403336 \cdot 10^{-59}:\\
\;\;\;\;\left|\frac{\left(4 + x\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 r1022762 = x;
double r1022763 = 4.0;
double r1022764 = r1022762 + r1022763;
double r1022765 = y;
double r1022766 = r1022764 / r1022765;
double r1022767 = r1022762 / r1022765;
double r1022768 = z;
double r1022769 = r1022767 * r1022768;
double r1022770 = r1022766 - r1022769;
double r1022771 = fabs(r1022770);
return r1022771;
}
double f(double x, double y, double z) {
double r1022772 = x;
double r1022773 = -6.359236426285955e-86;
bool r1022774 = r1022772 <= r1022773;
double r1022775 = 4.0;
double r1022776 = y;
double r1022777 = r1022775 / r1022776;
double r1022778 = r1022772 / r1022776;
double r1022779 = r1022777 + r1022778;
double r1022780 = z;
double r1022781 = r1022778 * r1022780;
double r1022782 = r1022779 - r1022781;
double r1022783 = fabs(r1022782);
double r1022784 = 2.6596617673403336e-59;
bool r1022785 = r1022772 <= r1022784;
double r1022786 = r1022775 + r1022772;
double r1022787 = r1022772 * r1022780;
double r1022788 = r1022786 - r1022787;
double r1022789 = r1022788 / r1022776;
double r1022790 = fabs(r1022789);
double r1022791 = r1022780 / r1022776;
double r1022792 = r1022772 * r1022791;
double r1022793 = r1022779 - r1022792;
double r1022794 = fabs(r1022793);
double r1022795 = r1022785 ? r1022790 : r1022794;
double r1022796 = r1022774 ? r1022783 : r1022795;
return r1022796;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -6.359236426285955e-86Initial program 0.7
Taylor expanded around -inf 0.7
Simplified0.7
if -6.359236426285955e-86 < x < 2.6596617673403336e-59Initial program 3.0
rmApplied associate-*l/0.1
Applied sub-div0.1
if 2.6596617673403336e-59 < x Initial program 0.3
Taylor expanded around -inf 0.3
Simplified0.3
rmApplied div-inv0.3
Applied associate-*l*0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2019130 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))