\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -1575874805387.5212:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x - z \cdot x}{y} + \frac{4}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r1198725 = x;
double r1198726 = 4.0;
double r1198727 = r1198725 + r1198726;
double r1198728 = y;
double r1198729 = r1198727 / r1198728;
double r1198730 = r1198725 / r1198728;
double r1198731 = z;
double r1198732 = r1198730 * r1198731;
double r1198733 = r1198729 - r1198732;
double r1198734 = fabs(r1198733);
return r1198734;
}
double f(double x, double y, double z) {
double r1198735 = x;
double r1198736 = -1575874805387.5212;
bool r1198737 = r1198735 <= r1198736;
double r1198738 = 4.0;
double r1198739 = r1198738 + r1198735;
double r1198740 = y;
double r1198741 = r1198739 / r1198740;
double r1198742 = z;
double r1198743 = r1198742 / r1198740;
double r1198744 = r1198735 * r1198743;
double r1198745 = r1198741 - r1198744;
double r1198746 = fabs(r1198745);
double r1198747 = r1198742 * r1198735;
double r1198748 = r1198735 - r1198747;
double r1198749 = r1198748 / r1198740;
double r1198750 = r1198738 / r1198740;
double r1198751 = r1198749 + r1198750;
double r1198752 = fabs(r1198751);
double r1198753 = r1198737 ? r1198746 : r1198752;
return r1198753;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -1575874805387.5212Initial program 0.1
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.1
if -1575874805387.5212 < x Initial program 1.9
Taylor expanded around 0 2.0
Simplified1.9
rmApplied associate-*r/2.0
Applied sub-div2.0
Final simplification1.7
herbie shell --seed 2019134 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))