\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\left(\frac{4}{y} - \frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot \left(z \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)\right)\right) + \frac{x}{y}\right|double f(double x, double y, double z) {
double r1368306 = x;
double r1368307 = 4.0;
double r1368308 = r1368306 + r1368307;
double r1368309 = y;
double r1368310 = r1368308 / r1368309;
double r1368311 = r1368306 / r1368309;
double r1368312 = z;
double r1368313 = r1368311 * r1368312;
double r1368314 = r1368310 - r1368313;
double r1368315 = fabs(r1368314);
return r1368315;
}
double f(double x, double y, double z) {
double r1368316 = 4.0;
double r1368317 = y;
double r1368318 = r1368316 / r1368317;
double r1368319 = x;
double r1368320 = cbrt(r1368319);
double r1368321 = cbrt(r1368317);
double r1368322 = r1368320 / r1368321;
double r1368323 = z;
double r1368324 = r1368322 * r1368322;
double r1368325 = r1368323 * r1368324;
double r1368326 = r1368322 * r1368325;
double r1368327 = r1368318 - r1368326;
double r1368328 = r1368319 / r1368317;
double r1368329 = r1368327 + r1368328;
double r1368330 = fabs(r1368329);
return r1368330;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 1.5
Taylor expanded around 0 3.6
Simplified1.5
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt1.9
Applied times-frac1.9
Applied associate-*r*0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019171 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4.0) y) (* (/ x y) z))))