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 r468508 = x;
double r468509 = y;
double r468510 = r468509 - r468508;
double r468511 = z;
double r468512 = t;
double r468513 = r468511 / r468512;
double r468514 = r468510 * r468513;
double r468515 = r468508 + r468514;
return r468515;
}
double f(double x, double y, double z, double t) {
double r468516 = x;
double r468517 = y;
double r468518 = r468517 - r468516;
double r468519 = z;
double r468520 = cbrt(r468519);
double r468521 = r468520 * r468520;
double r468522 = t;
double r468523 = cbrt(r468522);
double r468524 = r468523 * r468523;
double r468525 = r468521 / r468524;
double r468526 = r468518 * r468525;
double r468527 = r468520 / r468523;
double r468528 = r468526 * r468527;
double r468529 = r468516 + r468528;
return r468529;
}




Bits error versus x




Bits error versus y




Bits error versus z




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