\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right| \le 988.771363812410641:\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{x \cdot \frac{z}{y}}{1}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\\
\end{array}double f(double x, double y, double z) {
double r36582 = x;
double r36583 = 4.0;
double r36584 = r36582 + r36583;
double r36585 = y;
double r36586 = r36584 / r36585;
double r36587 = r36582 / r36585;
double r36588 = z;
double r36589 = r36587 * r36588;
double r36590 = r36586 - r36589;
double r36591 = fabs(r36590);
return r36591;
}
double f(double x, double y, double z) {
double r36592 = x;
double r36593 = 4.0;
double r36594 = r36592 + r36593;
double r36595 = y;
double r36596 = r36594 / r36595;
double r36597 = r36592 / r36595;
double r36598 = z;
double r36599 = r36597 * r36598;
double r36600 = r36596 - r36599;
double r36601 = fabs(r36600);
double r36602 = 988.7713638124106;
bool r36603 = r36601 <= r36602;
double r36604 = r36598 / r36595;
double r36605 = r36592 * r36604;
double r36606 = 1.0;
double r36607 = r36605 / r36606;
double r36608 = r36596 - r36607;
double r36609 = fabs(r36608);
double r36610 = r36603 ? r36609 : r36601;
return r36610;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if (fabs (- (/ (+ x 4.0) y) (* (/ x y) z))) < 988.7713638124106Initial program 3.8
rmApplied *-un-lft-identity3.8
Applied add-cube-cbrt4.0
Applied times-frac4.0
Applied associate-*l*1.2
rmApplied associate-*l/1.2
Simplified0.1
if 988.7713638124106 < (fabs (- (/ (+ x 4.0) y) (* (/ x y) z))) Initial program 0.1
Final simplification0.1
herbie shell --seed 2020018 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))