\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\mathsf{fma}\left(x + 4, \frac{1}{y}, -\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot z\right)\right)\right|double f(double x, double y, double z) {
double r30258 = x;
double r30259 = 4.0;
double r30260 = r30258 + r30259;
double r30261 = y;
double r30262 = r30260 / r30261;
double r30263 = r30258 / r30261;
double r30264 = z;
double r30265 = r30263 * r30264;
double r30266 = r30262 - r30265;
double r30267 = fabs(r30266);
return r30267;
}
double f(double x, double y, double z) {
double r30268 = x;
double r30269 = 4.0;
double r30270 = r30268 + r30269;
double r30271 = 1.0;
double r30272 = y;
double r30273 = r30271 / r30272;
double r30274 = cbrt(r30268);
double r30275 = r30274 * r30274;
double r30276 = cbrt(r30272);
double r30277 = r30276 * r30276;
double r30278 = r30275 / r30277;
double r30279 = r30274 / r30276;
double r30280 = z;
double r30281 = r30279 * r30280;
double r30282 = r30278 * r30281;
double r30283 = -r30282;
double r30284 = fma(r30270, r30273, r30283);
double r30285 = fabs(r30284);
return r30285;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 1.4
rmApplied div-inv1.5
Applied fma-neg1.5
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt1.8
Applied times-frac1.8
Applied associate-*l*0.7
Final simplification0.7
herbie shell --seed 2020062 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))