x + \frac{\left(y - x\right) \cdot 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 r339550 = x;
double r339551 = y;
double r339552 = r339551 - r339550;
double r339553 = z;
double r339554 = r339552 * r339553;
double r339555 = t;
double r339556 = r339554 / r339555;
double r339557 = r339550 + r339556;
return r339557;
}
double f(double x, double y, double z, double t) {
double r339558 = x;
double r339559 = y;
double r339560 = r339559 - r339558;
double r339561 = z;
double r339562 = cbrt(r339561);
double r339563 = r339562 * r339562;
double r339564 = t;
double r339565 = cbrt(r339564);
double r339566 = r339565 * r339565;
double r339567 = r339563 / r339566;
double r339568 = r339560 * r339567;
double r339569 = r339562 / r339565;
double r339570 = r339568 * r339569;
double r339571 = r339558 + r339570;
return r339571;
}




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 *-un-lft-identity6.5
Applied times-frac2.1
Simplified2.1
rmApplied add-cube-cbrt2.6
Applied add-cube-cbrt2.7
Applied times-frac2.7
Applied associate-*r*0.9
Final simplification0.9
herbie shell --seed 2019326
(FPCore (x y z t)
:name "Numeric.Histogram:binBounds from Chart-1.5.3"
:precision binary64
: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)))