x + \left(y - x\right) \cdot \frac{z}{t}x + \frac{y - x}{\frac{\sqrt[3]{t}}{\sqrt[3]{z}} \cdot \frac{\sqrt[3]{t}}{\sqrt[3]{z}}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}double f(double x, double y, double z, double t) {
double r27764223 = x;
double r27764224 = y;
double r27764225 = r27764224 - r27764223;
double r27764226 = z;
double r27764227 = t;
double r27764228 = r27764226 / r27764227;
double r27764229 = r27764225 * r27764228;
double r27764230 = r27764223 + r27764229;
return r27764230;
}
double f(double x, double y, double z, double t) {
double r27764231 = x;
double r27764232 = y;
double r27764233 = r27764232 - r27764231;
double r27764234 = t;
double r27764235 = cbrt(r27764234);
double r27764236 = z;
double r27764237 = cbrt(r27764236);
double r27764238 = r27764235 / r27764237;
double r27764239 = r27764238 * r27764238;
double r27764240 = r27764233 / r27764239;
double r27764241 = r27764237 / r27764235;
double r27764242 = r27764240 * r27764241;
double r27764243 = r27764231 + r27764242;
return r27764243;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.8 |
|---|---|
| Target | 2.1 |
| Herbie | 0.9 |
Initial program 1.8
rmApplied add-cube-cbrt2.3
Applied add-cube-cbrt2.5
Applied times-frac2.5
Applied associate-*r*0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019162
(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))))