x + \frac{\left(y - x\right) \cdot z}{t}\frac{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}}{\frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{\sqrt[3]{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}}} \cdot \frac{\frac{\sqrt[3]{t}}{z}}{\sqrt[3]{\sqrt[3]{y - x}}}} + xdouble f(double x, double y, double z, double t) {
double r25352279 = x;
double r25352280 = y;
double r25352281 = r25352280 - r25352279;
double r25352282 = z;
double r25352283 = r25352281 * r25352282;
double r25352284 = t;
double r25352285 = r25352283 / r25352284;
double r25352286 = r25352279 + r25352285;
return r25352286;
}
double f(double x, double y, double z, double t) {
double r25352287 = y;
double r25352288 = x;
double r25352289 = r25352287 - r25352288;
double r25352290 = cbrt(r25352289);
double r25352291 = r25352290 * r25352290;
double r25352292 = t;
double r25352293 = cbrt(r25352292);
double r25352294 = r25352293 * r25352293;
double r25352295 = cbrt(r25352291);
double r25352296 = r25352294 / r25352295;
double r25352297 = z;
double r25352298 = r25352293 / r25352297;
double r25352299 = cbrt(r25352290);
double r25352300 = r25352298 / r25352299;
double r25352301 = r25352296 * r25352300;
double r25352302 = r25352291 / r25352301;
double r25352303 = r25352302 + r25352288;
return r25352303;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.1 |
|---|---|
| Target | 1.9 |
| Herbie | 1.6 |
Initial program 6.1
rmApplied associate-/l*1.8
rmApplied add-cube-cbrt2.3
Applied associate-/l*2.3
rmApplied add-cube-cbrt2.3
Applied cbrt-prod2.4
Applied *-un-lft-identity2.4
Applied add-cube-cbrt2.5
Applied times-frac2.5
Applied times-frac1.6
Simplified1.6
Final simplification1.6
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x y z t)
:name "Numeric.Histogram:binBounds from Chart-1.5.3"
:herbie-target
(if (< x -9.025511195533005e-135) (- x (* (/ z t) (- x y))) (if (< x 4.275032163700715e-250) (+ x (* (/ (- y x) t) z)) (+ x (/ (- y x) (/ t z)))))
(+ x (/ (* (- y x) z) t)))