\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -1.5424594366857613 \cdot 10^{29}:\\
\;\;\;\;\left|\left(\left(4 \cdot \left(\sqrt[3]{\frac{1}{y}} \cdot \sqrt[3]{\frac{1}{y}}\right)\right) \cdot \sqrt[3]{\frac{1}{y}} + \frac{x}{y}\right) - \frac{x}{y} \cdot z\right|\\
\mathbf{elif}\;x \le 2.1896364681112564 \cdot 10^{-12}:\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{x \cdot z}{y}\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 r29357 = x;
double r29358 = 4.0;
double r29359 = r29357 + r29358;
double r29360 = y;
double r29361 = r29359 / r29360;
double r29362 = r29357 / r29360;
double r29363 = z;
double r29364 = r29362 * r29363;
double r29365 = r29361 - r29364;
double r29366 = fabs(r29365);
return r29366;
}
double f(double x, double y, double z) {
double r29367 = x;
double r29368 = -1.5424594366857613e+29;
bool r29369 = r29367 <= r29368;
double r29370 = 4.0;
double r29371 = 1.0;
double r29372 = y;
double r29373 = r29371 / r29372;
double r29374 = cbrt(r29373);
double r29375 = r29374 * r29374;
double r29376 = r29370 * r29375;
double r29377 = r29376 * r29374;
double r29378 = r29367 / r29372;
double r29379 = r29377 + r29378;
double r29380 = z;
double r29381 = r29378 * r29380;
double r29382 = r29379 - r29381;
double r29383 = fabs(r29382);
double r29384 = 2.1896364681112564e-12;
bool r29385 = r29367 <= r29384;
double r29386 = r29367 + r29370;
double r29387 = r29386 / r29372;
double r29388 = r29367 * r29380;
double r29389 = r29388 / r29372;
double r29390 = r29387 - r29389;
double r29391 = fabs(r29390);
double r29392 = r29380 / r29372;
double r29393 = r29367 * r29392;
double r29394 = r29387 - r29393;
double r29395 = fabs(r29394);
double r29396 = r29385 ? r29391 : r29395;
double r29397 = r29369 ? r29383 : r29396;
return r29397;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -1.5424594366857613e+29Initial program 0.1
Taylor expanded around 0 0.1
rmApplied add-cube-cbrt0.1
Applied associate-*r*0.1
if -1.5424594366857613e+29 < x < 2.1896364681112564e-12Initial program 2.5
rmApplied div-inv2.5
Applied associate-*l*5.8
Simplified5.7
rmApplied associate-*r/0.1
if 2.1896364681112564e-12 < x Initial program 0.2
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.1
herbie shell --seed 2020057
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))