x + \frac{\left(y - x\right) \cdot z}{t}x + \left(\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \left(y - x\right)\right) \cdot \frac{1}{\frac{\sqrt[3]{t}}{\sqrt[3]{z}}}double f(double x, double y, double z, double t) {
double r353111 = x;
double r353112 = y;
double r353113 = r353112 - r353111;
double r353114 = z;
double r353115 = r353113 * r353114;
double r353116 = t;
double r353117 = r353115 / r353116;
double r353118 = r353111 + r353117;
return r353118;
}
double f(double x, double y, double z, double t) {
double r353119 = x;
double r353120 = z;
double r353121 = cbrt(r353120);
double r353122 = r353121 * r353121;
double r353123 = t;
double r353124 = cbrt(r353123);
double r353125 = r353124 * r353124;
double r353126 = r353122 / r353125;
double r353127 = y;
double r353128 = r353127 - r353119;
double r353129 = r353126 * r353128;
double r353130 = 1.0;
double r353131 = r353124 / r353121;
double r353132 = r353130 / r353131;
double r353133 = r353129 * r353132;
double r353134 = r353119 + r353133;
return r353134;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.5 |
|---|---|
| Target | 2.0 |
| Herbie | 0.9 |
Initial program 6.5
rmApplied associate-/l*2.0
rmApplied add-cube-cbrt2.5
Applied add-cube-cbrt2.7
Applied times-frac2.7
Applied *-un-lft-identity2.7
Applied times-frac1.0
Simplified0.9
rmApplied div-inv0.9
Applied associate-*r*0.9
Final simplification0.9
herbie shell --seed 2019235
(FPCore (x y z t)
:name "Numeric.Histogram:binBounds from Chart-1.5.3"
:precision binary64
:herbie-target
(if (< x -9.0255111955330046e-135) (- x (* (/ z t) (- x y))) (if (< x 4.2750321637007147e-250) (+ x (* (/ (- y x) t) z)) (+ x (/ (- y x) (/ t z)))))
(+ x (/ (* (- y x) z) t)))