x + \left(y - x\right) \cdot \frac{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 r668762 = x;
double r668763 = y;
double r668764 = r668763 - r668762;
double r668765 = z;
double r668766 = t;
double r668767 = r668765 / r668766;
double r668768 = r668764 * r668767;
double r668769 = r668762 + r668768;
return r668769;
}
double f(double x, double y, double z, double t) {
double r668770 = x;
double r668771 = y;
double r668772 = r668771 - r668770;
double r668773 = z;
double r668774 = cbrt(r668773);
double r668775 = r668774 * r668774;
double r668776 = t;
double r668777 = cbrt(r668776);
double r668778 = r668777 * r668777;
double r668779 = r668775 / r668778;
double r668780 = r668772 * r668779;
double r668781 = r668774 / r668777;
double r668782 = r668780 * r668781;
double r668783 = r668770 + r668782;
return r668783;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.6 |
|---|---|
| Target | 1.7 |
| Herbie | 1.0 |
Initial program 1.6
rmApplied add-cube-cbrt2.1
Applied add-cube-cbrt2.3
Applied times-frac2.3
Applied associate-*r*1.0
Final simplification1.0
herbie shell --seed 2020100
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:precision binary64
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.887) (+ 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))))