x + \left(y - x\right) \cdot \frac{z}{t}x + \left(\left(\frac{\sqrt[3]{z}}{\sqrt[3]{t}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}\right) \cdot \left(y - x\right)\right) \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}double f(double x, double y, double z, double t) {
double r31006783 = x;
double r31006784 = y;
double r31006785 = r31006784 - r31006783;
double r31006786 = z;
double r31006787 = t;
double r31006788 = r31006786 / r31006787;
double r31006789 = r31006785 * r31006788;
double r31006790 = r31006783 + r31006789;
return r31006790;
}
double f(double x, double y, double z, double t) {
double r31006791 = x;
double r31006792 = z;
double r31006793 = cbrt(r31006792);
double r31006794 = t;
double r31006795 = cbrt(r31006794);
double r31006796 = r31006793 / r31006795;
double r31006797 = r31006796 * r31006796;
double r31006798 = y;
double r31006799 = r31006798 - r31006791;
double r31006800 = r31006797 * r31006799;
double r31006801 = r31006800 * r31006796;
double r31006802 = r31006791 + r31006801;
return r31006802;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.1 |
| Herbie | 0.9 |
Initial program 2.0
rmApplied add-cube-cbrt2.6
Applied add-cube-cbrt2.7
Applied times-frac2.7
Applied associate-*r*0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019165
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.8867) (+ 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))))