x + \frac{y \cdot \left(z - x\right)}{t}x + \frac{y}{t} \cdot \left(z - x\right)double f(double x, double y, double z, double t) {
double r360426 = x;
double r360427 = y;
double r360428 = z;
double r360429 = r360428 - r360426;
double r360430 = r360427 * r360429;
double r360431 = t;
double r360432 = r360430 / r360431;
double r360433 = r360426 + r360432;
return r360433;
}
double f(double x, double y, double z, double t) {
double r360434 = x;
double r360435 = y;
double r360436 = t;
double r360437 = r360435 / r360436;
double r360438 = z;
double r360439 = r360438 - r360434;
double r360440 = r360437 * r360439;
double r360441 = r360434 + r360440;
return r360441;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.9 |
|---|---|
| Target | 2.1 |
| Herbie | 2.1 |
Initial program 6.9
rmApplied associate-/l*6.1
rmApplied associate-/r/2.1
Final simplification2.1
herbie shell --seed 2020083
(FPCore (x y z t)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, D"
:precision binary64
:herbie-target
(- x (+ (* x (/ y t)) (* (- z) (/ y t))))
(+ x (/ (* y (- z x)) t)))