\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\mathsf{fma}\left(4, \frac{1}{y}, \frac{x}{y}\right) - \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|double f(double x, double y, double z) {
double r29096 = x;
double r29097 = 4.0;
double r29098 = r29096 + r29097;
double r29099 = y;
double r29100 = r29098 / r29099;
double r29101 = r29096 / r29099;
double r29102 = z;
double r29103 = r29101 * r29102;
double r29104 = r29100 - r29103;
double r29105 = fabs(r29104);
return r29105;
}
double f(double x, double y, double z) {
double r29106 = 4.0;
double r29107 = 1.0;
double r29108 = y;
double r29109 = r29107 / r29108;
double r29110 = x;
double r29111 = r29110 / r29108;
double r29112 = fma(r29106, r29109, r29111);
double r29113 = cbrt(r29110);
double r29114 = r29113 * r29113;
double r29115 = cbrt(r29108);
double r29116 = r29115 * r29115;
double r29117 = r29114 / r29116;
double r29118 = r29113 / r29115;
double r29119 = z;
double r29120 = r29118 * r29119;
double r29121 = r29117 * r29120;
double r29122 = r29112 - r29121;
double r29123 = fabs(r29122);
return r29123;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 1.5
Taylor expanded around 0 1.5
Simplified1.5
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt1.9
Applied times-frac1.9
Applied associate-*l*0.7
Final simplification0.7
herbie shell --seed 2019353 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))