\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;y \le -1.214782750567965144698113996402707065017 \cdot 10^{-69}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{z}{y} \cdot x\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\left(\sqrt[3]{\frac{4 + x}{y}} \cdot \sqrt[3]{\frac{4 + x}{y}}\right) \cdot \sqrt[3]{\frac{4 + x}{y}} - z \cdot \frac{x}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r2186289 = x;
double r2186290 = 4.0;
double r2186291 = r2186289 + r2186290;
double r2186292 = y;
double r2186293 = r2186291 / r2186292;
double r2186294 = r2186289 / r2186292;
double r2186295 = z;
double r2186296 = r2186294 * r2186295;
double r2186297 = r2186293 - r2186296;
double r2186298 = fabs(r2186297);
return r2186298;
}
double f(double x, double y, double z) {
double r2186299 = y;
double r2186300 = -1.2147827505679651e-69;
bool r2186301 = r2186299 <= r2186300;
double r2186302 = 4.0;
double r2186303 = x;
double r2186304 = r2186302 + r2186303;
double r2186305 = r2186304 / r2186299;
double r2186306 = z;
double r2186307 = r2186306 / r2186299;
double r2186308 = r2186307 * r2186303;
double r2186309 = r2186305 - r2186308;
double r2186310 = fabs(r2186309);
double r2186311 = cbrt(r2186305);
double r2186312 = r2186311 * r2186311;
double r2186313 = r2186312 * r2186311;
double r2186314 = r2186303 / r2186299;
double r2186315 = r2186306 * r2186314;
double r2186316 = r2186313 - r2186315;
double r2186317 = fabs(r2186316);
double r2186318 = r2186301 ? r2186310 : r2186317;
return r2186318;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if y < -1.2147827505679651e-69Initial program 2.2
rmApplied div-inv2.3
Applied associate-*l*0.5
Simplified0.4
if -1.2147827505679651e-69 < y Initial program 1.1
rmApplied add-cube-cbrt2.1
Final simplification1.5
herbie shell --seed 2019200
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4.0) y) (* (/ x y) z))))