x + \frac{y \cdot \left(z - x\right)}{t}\frac{z - x}{\frac{t}{y}} + xdouble f(double x, double y, double z, double t) {
double r327609 = x;
double r327610 = y;
double r327611 = z;
double r327612 = r327611 - r327609;
double r327613 = r327610 * r327612;
double r327614 = t;
double r327615 = r327613 / r327614;
double r327616 = r327609 + r327615;
return r327616;
}
double f(double x, double y, double z, double t) {
double r327617 = z;
double r327618 = x;
double r327619 = r327617 - r327618;
double r327620 = t;
double r327621 = y;
double r327622 = r327620 / r327621;
double r327623 = r327619 / r327622;
double r327624 = r327623 + r327618;
return r327624;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.8 |
|---|---|
| Target | 1.9 |
| Herbie | 1.8 |
Initial program 6.8
rmApplied *-un-lft-identity6.8
Applied *-un-lft-identity6.8
Applied distribute-lft-out6.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019174
(FPCore (x y z t)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, D"
:herbie-target
(- x (+ (* x (/ y t)) (* (- z) (/ y t))))
(+ x (/ (* y (- z x)) t)))