\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\frac{4 + x}{y} - \left(\sqrt[3]{z} \cdot \left(\frac{\sqrt[3]{z}}{y} \cdot x\right)\right) \cdot \left(\sqrt[3]{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \sqrt[3]{\sqrt[3]{z}}\right)\right|double f(double x, double y, double z) {
double r1724548 = x;
double r1724549 = 4.0;
double r1724550 = r1724548 + r1724549;
double r1724551 = y;
double r1724552 = r1724550 / r1724551;
double r1724553 = r1724548 / r1724551;
double r1724554 = z;
double r1724555 = r1724553 * r1724554;
double r1724556 = r1724552 - r1724555;
double r1724557 = fabs(r1724556);
return r1724557;
}
double f(double x, double y, double z) {
double r1724558 = 4.0;
double r1724559 = x;
double r1724560 = r1724558 + r1724559;
double r1724561 = y;
double r1724562 = r1724560 / r1724561;
double r1724563 = z;
double r1724564 = cbrt(r1724563);
double r1724565 = r1724564 / r1724561;
double r1724566 = r1724565 * r1724559;
double r1724567 = r1724564 * r1724566;
double r1724568 = r1724564 * r1724564;
double r1724569 = cbrt(r1724568);
double r1724570 = cbrt(r1724564);
double r1724571 = r1724569 * r1724570;
double r1724572 = r1724567 * r1724571;
double r1724573 = r1724562 - r1724572;
double r1724574 = fabs(r1724573);
return r1724574;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 1.6
rmApplied add-cube-cbrt1.9
Applied associate-*r*1.9
rmApplied add-cube-cbrt1.9
Applied cbrt-prod1.9
rmApplied associate-*r*1.9
rmApplied div-inv1.9
Applied associate-*l*1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019141 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))