x + \frac{\left(y - x\right) \cdot 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 r628101 = x;
double r628102 = y;
double r628103 = r628102 - r628101;
double r628104 = z;
double r628105 = r628103 * r628104;
double r628106 = t;
double r628107 = r628105 / r628106;
double r628108 = r628101 + r628107;
return r628108;
}
double f(double x, double y, double z, double t) {
double r628109 = x;
double r628110 = y;
double r628111 = r628110 - r628109;
double r628112 = z;
double r628113 = cbrt(r628112);
double r628114 = r628113 * r628113;
double r628115 = t;
double r628116 = cbrt(r628115);
double r628117 = r628116 * r628116;
double r628118 = r628114 / r628117;
double r628119 = r628111 * r628118;
double r628120 = r628113 / r628116;
double r628121 = r628119 * r628120;
double r628122 = r628109 + r628121;
return r628122;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.2 |
|---|---|
| Target | 2.0 |
| Herbie | 0.9 |
Initial program 6.2
rmApplied *-un-lft-identity6.2
Applied times-frac1.9
Simplified1.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 "Numeric.Histogram:binBounds from Chart-1.5.3"
:precision binary64
: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)))