\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;y \le -1329896688031834:\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{z}{y} \cdot x\right|\\
\mathbf{elif}\;y \le 4.832848088860469210716999004498436556972 \cdot 10^{-23}:\\
\;\;\;\;\left|\frac{\left(x + 4\right) - x \cdot z}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{z}{y} \cdot x\right|\\
\end{array}double f(double x, double y, double z) {
double r1292384 = x;
double r1292385 = 4.0;
double r1292386 = r1292384 + r1292385;
double r1292387 = y;
double r1292388 = r1292386 / r1292387;
double r1292389 = r1292384 / r1292387;
double r1292390 = z;
double r1292391 = r1292389 * r1292390;
double r1292392 = r1292388 - r1292391;
double r1292393 = fabs(r1292392);
return r1292393;
}
double f(double x, double y, double z) {
double r1292394 = y;
double r1292395 = -1329896688031834.0;
bool r1292396 = r1292394 <= r1292395;
double r1292397 = x;
double r1292398 = 4.0;
double r1292399 = r1292397 + r1292398;
double r1292400 = r1292399 / r1292394;
double r1292401 = z;
double r1292402 = r1292401 / r1292394;
double r1292403 = r1292402 * r1292397;
double r1292404 = r1292400 - r1292403;
double r1292405 = fabs(r1292404);
double r1292406 = 4.832848088860469e-23;
bool r1292407 = r1292394 <= r1292406;
double r1292408 = r1292397 * r1292401;
double r1292409 = r1292399 - r1292408;
double r1292410 = r1292409 / r1292394;
double r1292411 = fabs(r1292410);
double r1292412 = r1292407 ? r1292411 : r1292405;
double r1292413 = r1292396 ? r1292405 : r1292412;
return r1292413;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if y < -1329896688031834.0 or 4.832848088860469e-23 < y Initial program 2.5
rmApplied div-inv2.5
Applied associate-*l*0.1
Simplified0.1
if -1329896688031834.0 < y < 4.832848088860469e-23Initial program 0.1
rmApplied associate-*l/0.1
Applied sub-div0.1
Final simplification0.1
herbie shell --seed 2019171
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4.0) y) (* (/ x y) z))))