\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -1.685625371565923148712864066413058588036 \cdot 10^{53}:\\
\;\;\;\;\left|\left(\frac{4}{y} + \frac{x}{y}\right) - x \cdot \frac{z}{y}\right|\\
\mathbf{elif}\;x \le 9.897501881007222830200809530769256909371 \cdot 10^{-104}:\\
\;\;\;\;\left|\left(\frac{4}{y} + \frac{x}{y}\right) - \frac{x \cdot z}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{x}{\frac{y}{z}}\right|\\
\end{array}double f(double x, double y, double z) {
double r39311 = x;
double r39312 = 4.0;
double r39313 = r39311 + r39312;
double r39314 = y;
double r39315 = r39313 / r39314;
double r39316 = r39311 / r39314;
double r39317 = z;
double r39318 = r39316 * r39317;
double r39319 = r39315 - r39318;
double r39320 = fabs(r39319);
return r39320;
}
double f(double x, double y, double z) {
double r39321 = x;
double r39322 = -1.6856253715659231e+53;
bool r39323 = r39321 <= r39322;
double r39324 = 4.0;
double r39325 = y;
double r39326 = r39324 / r39325;
double r39327 = r39321 / r39325;
double r39328 = r39326 + r39327;
double r39329 = z;
double r39330 = r39329 / r39325;
double r39331 = r39321 * r39330;
double r39332 = r39328 - r39331;
double r39333 = fabs(r39332);
double r39334 = 9.897501881007223e-104;
bool r39335 = r39321 <= r39334;
double r39336 = r39321 * r39329;
double r39337 = r39336 / r39325;
double r39338 = r39328 - r39337;
double r39339 = fabs(r39338);
double r39340 = r39321 + r39324;
double r39341 = r39340 / r39325;
double r39342 = r39325 / r39329;
double r39343 = r39321 / r39342;
double r39344 = r39341 - r39343;
double r39345 = fabs(r39344);
double r39346 = r39335 ? r39339 : r39345;
double r39347 = r39323 ? r39333 : r39346;
return r39347;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -1.6856253715659231e+53Initial program 0.1
Taylor expanded around 0 0.1
Simplified0.1
rmApplied div-inv0.1
Applied associate-*l*0.1
Simplified0.1
if -1.6856253715659231e+53 < x < 9.897501881007223e-104Initial program 2.6
Taylor expanded around 0 2.6
Simplified2.6
rmApplied associate-*l/0.3
if 9.897501881007223e-104 < x Initial program 0.5
rmApplied pow10.5
Applied pow10.5
Applied pow-prod-down0.5
Simplified0.9
Final simplification0.4
herbie shell --seed 2019305
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))