x + \left(y - x\right) \cdot \frac{z}{t}x + \left(\left(y - x\right) \cdot \frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{t} \cdot \sqrt[3]{t}}\right) \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}double f(double x, double y, double z, double t) {
double r457090 = x;
double r457091 = y;
double r457092 = r457091 - r457090;
double r457093 = z;
double r457094 = t;
double r457095 = r457093 / r457094;
double r457096 = r457092 * r457095;
double r457097 = r457090 + r457096;
return r457097;
}
double f(double x, double y, double z, double t) {
double r457098 = x;
double r457099 = y;
double r457100 = r457099 - r457098;
double r457101 = z;
double r457102 = cbrt(r457101);
double r457103 = r457102 * r457102;
double r457104 = t;
double r457105 = cbrt(r457104);
double r457106 = r457105 * r457105;
double r457107 = r457103 / r457106;
double r457108 = r457100 * r457107;
double r457109 = r457102 / r457105;
double r457110 = r457108 * r457109;
double r457111 = r457098 + r457110;
return r457111;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.9 |
|---|---|
| Target | 1.9 |
| Herbie | 0.9 |
Initial program 1.9
rmApplied add-cube-cbrt2.4
Applied add-cube-cbrt2.6
Applied times-frac2.6
Applied associate-*r*0.9
Final simplification0.9
herbie shell --seed 2020046
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:precision binary64
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.887) (+ 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))))