x + \left(y - x\right) \cdot \frac{z}{t}x + \left(\frac{\sqrt[3]{z}}{\sqrt[3]{t}} \cdot \left(\frac{\sqrt[3]{z}}{\sqrt[3]{t}} \cdot \left(y - x\right)\right)\right) \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}double f(double x, double y, double z, double t) {
double r504092 = x;
double r504093 = y;
double r504094 = r504093 - r504092;
double r504095 = z;
double r504096 = t;
double r504097 = r504095 / r504096;
double r504098 = r504094 * r504097;
double r504099 = r504092 + r504098;
return r504099;
}
double f(double x, double y, double z, double t) {
double r504100 = x;
double r504101 = z;
double r504102 = cbrt(r504101);
double r504103 = t;
double r504104 = cbrt(r504103);
double r504105 = r504102 / r504104;
double r504106 = y;
double r504107 = r504106 - r504100;
double r504108 = r504105 * r504107;
double r504109 = r504105 * r504108;
double r504110 = r504109 * r504105;
double r504111 = r504100 + r504110;
return r504111;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.2 |
| Herbie | 0.8 |
Initial program 2.0
rmApplied add-cube-cbrt2.5
Applied add-cube-cbrt2.6
Applied times-frac2.7
Applied associate-*r*0.9
Simplified0.8
Final simplification0.8
herbie shell --seed 2019179 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.8867) (+ x (/ (- y x) (/ t z))) (if (< (* (- y x) (/ z t)) -0.0) (+ x (/ (* (- y x) z) t)) (+ x (/ (- y x) (/ t z)))))
(+ x (* (- y x) (/ z t))))