x + \frac{\left(y - x\right) \cdot z}{t}x + \frac{\frac{y - x}{\frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}}{\frac{\sqrt[3]{t}}{\sqrt[3]{z}}}double f(double x, double y, double z, double t) {
double r332684 = x;
double r332685 = y;
double r332686 = r332685 - r332684;
double r332687 = z;
double r332688 = r332686 * r332687;
double r332689 = t;
double r332690 = r332688 / r332689;
double r332691 = r332684 + r332690;
return r332691;
}
double f(double x, double y, double z, double t) {
double r332692 = x;
double r332693 = y;
double r332694 = r332693 - r332692;
double r332695 = t;
double r332696 = cbrt(r332695);
double r332697 = r332696 * r332696;
double r332698 = z;
double r332699 = cbrt(r332698);
double r332700 = r332699 * r332699;
double r332701 = r332697 / r332700;
double r332702 = r332694 / r332701;
double r332703 = r332696 / r332699;
double r332704 = r332702 / r332703;
double r332705 = r332692 + r332704;
return r332705;
}




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*1.8
rmApplied add-cube-cbrt2.3
Applied add-cube-cbrt2.5
Applied times-frac2.5
Applied associate-/r*0.9
Final simplification0.9
herbie shell --seed 2019198 +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)))