x + \left(y - x\right) \cdot \frac{z}{t}\left(\frac{\sqrt[3]{y - x}}{\sqrt[3]{t}} \cdot \frac{z}{\sqrt[3]{t}}\right) \cdot \frac{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}}{\sqrt[3]{t}} + xdouble f(double x, double y, double z, double t) {
double r11441089 = x;
double r11441090 = y;
double r11441091 = r11441090 - r11441089;
double r11441092 = z;
double r11441093 = t;
double r11441094 = r11441092 / r11441093;
double r11441095 = r11441091 * r11441094;
double r11441096 = r11441089 + r11441095;
return r11441096;
}
double f(double x, double y, double z, double t) {
double r11441097 = y;
double r11441098 = x;
double r11441099 = r11441097 - r11441098;
double r11441100 = cbrt(r11441099);
double r11441101 = t;
double r11441102 = cbrt(r11441101);
double r11441103 = r11441100 / r11441102;
double r11441104 = z;
double r11441105 = r11441104 / r11441102;
double r11441106 = r11441103 * r11441105;
double r11441107 = r11441100 * r11441100;
double r11441108 = r11441107 / r11441102;
double r11441109 = r11441106 * r11441108;
double r11441110 = r11441109 + r11441098;
return r11441110;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.1 |
| Herbie | 1.1 |
Initial program 2.0
rmApplied add-cube-cbrt2.5
Applied *-un-lft-identity2.5
Applied times-frac2.5
Applied associate-*r*4.5
Simplified4.5
rmApplied add-cube-cbrt4.6
Applied times-frac4.6
Applied associate-*l*1.1
Final simplification1.1
herbie shell --seed 2019156
(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))))