x + \frac{\left(y - x\right) \cdot z}{t}\frac{\sqrt[3]{y - x}}{\frac{t}{\sqrt[3]{z}}} \cdot \left(\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \left(\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}\right)\right) + xdouble f(double x, double y, double z, double t) {
double r23139587 = x;
double r23139588 = y;
double r23139589 = r23139588 - r23139587;
double r23139590 = z;
double r23139591 = r23139589 * r23139590;
double r23139592 = t;
double r23139593 = r23139591 / r23139592;
double r23139594 = r23139587 + r23139593;
return r23139594;
}
double f(double x, double y, double z, double t) {
double r23139595 = y;
double r23139596 = x;
double r23139597 = r23139595 - r23139596;
double r23139598 = cbrt(r23139597);
double r23139599 = t;
double r23139600 = z;
double r23139601 = cbrt(r23139600);
double r23139602 = r23139599 / r23139601;
double r23139603 = r23139598 / r23139602;
double r23139604 = r23139601 * r23139601;
double r23139605 = r23139598 * r23139598;
double r23139606 = r23139604 * r23139605;
double r23139607 = r23139603 * r23139606;
double r23139608 = r23139607 + r23139596;
return r23139608;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.4 |
|---|---|
| Target | 1.8 |
| Herbie | 1.8 |
Initial program 6.4
rmApplied associate-/l*1.8
rmApplied add-cube-cbrt2.4
Applied *-un-lft-identity2.4
Applied times-frac2.4
Applied add-cube-cbrt2.5
Applied times-frac1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019162
(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)))