\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;\frac{x + 4}{y} - \frac{x}{y} \cdot z \le -5.608942803594382 \cdot 10^{23} \lor \neg \left(\frac{x + 4}{y} - \frac{x}{y} \cdot z \le 3.5059797311862954 \cdot 10^{-146}\right):\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x + 4}{y} - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r27320 = x;
double r27321 = 4.0;
double r27322 = r27320 + r27321;
double r27323 = y;
double r27324 = r27322 / r27323;
double r27325 = r27320 / r27323;
double r27326 = z;
double r27327 = r27325 * r27326;
double r27328 = r27324 - r27327;
double r27329 = fabs(r27328);
return r27329;
}
double f(double x, double y, double z) {
double r27330 = x;
double r27331 = 4.0;
double r27332 = r27330 + r27331;
double r27333 = y;
double r27334 = r27332 / r27333;
double r27335 = r27330 / r27333;
double r27336 = z;
double r27337 = r27335 * r27336;
double r27338 = r27334 - r27337;
double r27339 = -5.608942803594382e+23;
bool r27340 = r27338 <= r27339;
double r27341 = 3.5059797311862954e-146;
bool r27342 = r27338 <= r27341;
double r27343 = !r27342;
bool r27344 = r27340 || r27343;
double r27345 = fabs(r27338);
double r27346 = r27336 / r27333;
double r27347 = r27330 * r27346;
double r27348 = r27334 - r27347;
double r27349 = fabs(r27348);
double r27350 = r27344 ? r27345 : r27349;
return r27350;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if (- (/ (+ x 4.0) y) (* (/ x y) z)) < -5.608942803594382e+23 or 3.5059797311862954e-146 < (- (/ (+ x 4.0) y) (* (/ x y) z)) Initial program 0.4
rmApplied associate-*l/5.2
rmApplied associate-/l*4.4
rmApplied associate-/r/0.4
if -5.608942803594382e+23 < (- (/ (+ x 4.0) y) (* (/ x y) z)) < 3.5059797311862954e-146Initial program 4.6
rmApplied div-inv4.6
Applied associate-*l*0.1
Simplified0.1
Final simplification0.3
herbie shell --seed 2020064
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))