\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -7.651634445924373 \cdot 10^{+46}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\mathbf{elif}\;x \le 2.3380013171410126 \cdot 10^{+66}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{z \cdot x}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r1082244 = x;
double r1082245 = 4.0;
double r1082246 = r1082244 + r1082245;
double r1082247 = y;
double r1082248 = r1082246 / r1082247;
double r1082249 = r1082244 / r1082247;
double r1082250 = z;
double r1082251 = r1082249 * r1082250;
double r1082252 = r1082248 - r1082251;
double r1082253 = fabs(r1082252);
return r1082253;
}
double f(double x, double y, double z) {
double r1082254 = x;
double r1082255 = -7.651634445924373e+46;
bool r1082256 = r1082254 <= r1082255;
double r1082257 = 4.0;
double r1082258 = r1082257 + r1082254;
double r1082259 = y;
double r1082260 = r1082258 / r1082259;
double r1082261 = z;
double r1082262 = r1082261 / r1082259;
double r1082263 = r1082254 * r1082262;
double r1082264 = r1082260 - r1082263;
double r1082265 = fabs(r1082264);
double r1082266 = 2.3380013171410126e+66;
bool r1082267 = r1082254 <= r1082266;
double r1082268 = r1082261 * r1082254;
double r1082269 = r1082268 / r1082259;
double r1082270 = r1082260 - r1082269;
double r1082271 = fabs(r1082270);
double r1082272 = r1082267 ? r1082271 : r1082265;
double r1082273 = r1082256 ? r1082265 : r1082272;
return r1082273;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -7.651634445924373e+46 or 2.3380013171410126e+66 < x Initial program 0.1
rmApplied div-inv0.2
Applied associate-*l*0.1
Simplified0.1
if -7.651634445924373e+46 < x < 2.3380013171410126e+66Initial program 2.4
rmApplied associate-*l/0.3
Final simplification0.3
herbie shell --seed 2019146 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))