\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\left|\left(\frac{4}{y} + \frac{x}{y}\right) - \left(\left(\frac{\sqrt[3]{z}}{\sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}\right) \cdot x\right) \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}\right|double f(double x, double y, double z) {
double r1684150 = x;
double r1684151 = 4.0;
double r1684152 = r1684150 + r1684151;
double r1684153 = y;
double r1684154 = r1684152 / r1684153;
double r1684155 = r1684150 / r1684153;
double r1684156 = z;
double r1684157 = r1684155 * r1684156;
double r1684158 = r1684154 - r1684157;
double r1684159 = fabs(r1684158);
return r1684159;
}
double f(double x, double y, double z) {
double r1684160 = 4.0;
double r1684161 = y;
double r1684162 = r1684160 / r1684161;
double r1684163 = x;
double r1684164 = r1684163 / r1684161;
double r1684165 = r1684162 + r1684164;
double r1684166 = z;
double r1684167 = cbrt(r1684166);
double r1684168 = cbrt(r1684161);
double r1684169 = r1684167 / r1684168;
double r1684170 = r1684169 * r1684169;
double r1684171 = r1684170 * r1684163;
double r1684172 = r1684171 * r1684169;
double r1684173 = r1684165 - r1684172;
double r1684174 = fabs(r1684173);
return r1684174;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 1.6
Taylor expanded around -inf 1.6
Simplified1.6
rmApplied div-inv1.6
Applied associate-*l*3.2
Simplified3.2
rmApplied add-cube-cbrt3.5
Applied add-cube-cbrt3.5
Applied times-frac3.5
Applied associate-*r*0.8
Simplified0.8
Final simplification0.8
herbie shell --seed 2019135 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))