\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -5.761115116279560819897916091491976758654 \cdot 10^{-47}:\\
\;\;\;\;\left|\frac{x + 4}{y} - x \cdot \frac{z}{y}\right|\\
\mathbf{elif}\;x \le 2.987849844254570348767285954039240447636 \cdot 10^{-47}:\\
\;\;\;\;\left|\frac{x + 4}{y} - \left(x \cdot z\right) \cdot \frac{1}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x}{y} \cdot \left(1 - z\right) + 4 \cdot \frac{1}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r27435 = x;
double r27436 = 4.0;
double r27437 = r27435 + r27436;
double r27438 = y;
double r27439 = r27437 / r27438;
double r27440 = r27435 / r27438;
double r27441 = z;
double r27442 = r27440 * r27441;
double r27443 = r27439 - r27442;
double r27444 = fabs(r27443);
return r27444;
}
double f(double x, double y, double z) {
double r27445 = x;
double r27446 = -5.761115116279561e-47;
bool r27447 = r27445 <= r27446;
double r27448 = 4.0;
double r27449 = r27445 + r27448;
double r27450 = y;
double r27451 = r27449 / r27450;
double r27452 = z;
double r27453 = r27452 / r27450;
double r27454 = r27445 * r27453;
double r27455 = r27451 - r27454;
double r27456 = fabs(r27455);
double r27457 = 2.9878498442545703e-47;
bool r27458 = r27445 <= r27457;
double r27459 = r27445 * r27452;
double r27460 = 1.0;
double r27461 = r27460 / r27450;
double r27462 = r27459 * r27461;
double r27463 = r27451 - r27462;
double r27464 = fabs(r27463);
double r27465 = r27445 / r27450;
double r27466 = r27460 - r27452;
double r27467 = r27465 * r27466;
double r27468 = r27448 * r27461;
double r27469 = r27467 + r27468;
double r27470 = fabs(r27469);
double r27471 = r27458 ? r27464 : r27470;
double r27472 = r27447 ? r27456 : r27471;
return r27472;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -5.761115116279561e-47Initial program 0.4
rmApplied div-inv0.4
Applied associate-*l*0.3
Simplified0.3
if -5.761115116279561e-47 < x < 2.9878498442545703e-47Initial program 3.2
rmApplied div-inv3.2
Applied associate-*l*6.6
Simplified6.6
rmApplied div-inv6.6
Applied associate-*r*0.1
if 2.9878498442545703e-47 < x Initial program 0.3
Taylor expanded around 0 7.2
Simplified0.3
Final simplification0.2
herbie shell --seed 2020002
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))