x - \frac{y \cdot \left(z - t\right)}{a}x - \frac{y}{\frac{a}{z - t}}double f(double x, double y, double z, double t, double a) {
double r211766 = x;
double r211767 = y;
double r211768 = z;
double r211769 = t;
double r211770 = r211768 - r211769;
double r211771 = r211767 * r211770;
double r211772 = a;
double r211773 = r211771 / r211772;
double r211774 = r211766 - r211773;
return r211774;
}
double f(double x, double y, double z, double t, double a) {
double r211775 = x;
double r211776 = y;
double r211777 = a;
double r211778 = z;
double r211779 = t;
double r211780 = r211778 - r211779;
double r211781 = r211777 / r211780;
double r211782 = r211776 / r211781;
double r211783 = r211775 - r211782;
return r211783;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.1 |
|---|---|
| Target | 0.7 |
| Herbie | 5.9 |
if a < -193800797444951.66Initial program 9.6
rmApplied associate-/l*0.6
rmApplied clear-num0.6
if -193800797444951.66 < a < 8.525965780747699e-40Initial program 0.8
if 8.525965780747699e-40 < a Initial program 8.7
rmApplied associate-/l*0.7
Final simplification5.9
herbie shell --seed 2019298
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, F"
:precision binary64
:herbie-target
(if (< y -1.07612662163899753e-10) (- x (/ 1 (/ (/ a (- z t)) y))) (if (< y 2.8944268627920891e-49) (- x (/ (* y (- z t)) a)) (- x (/ y (/ a (- z t))))))
(- x (/ (* y (- z t)) a)))