x + \frac{y \cdot \left(z - t\right)}{a}x + \frac{y}{a} \cdot \left(z - t\right)double f(double x, double y, double z, double t, double a) {
double r257678 = x;
double r257679 = y;
double r257680 = z;
double r257681 = t;
double r257682 = r257680 - r257681;
double r257683 = r257679 * r257682;
double r257684 = a;
double r257685 = r257683 / r257684;
double r257686 = r257678 + r257685;
return r257686;
}
double f(double x, double y, double z, double t, double a) {
double r257687 = x;
double r257688 = y;
double r257689 = a;
double r257690 = r257688 / r257689;
double r257691 = z;
double r257692 = t;
double r257693 = r257691 - r257692;
double r257694 = r257690 * r257693;
double r257695 = r257687 + r257694;
return r257695;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.4 |
|---|---|
| Target | 0.7 |
| Herbie | 2.7 |
if a < -255.05455303688356Initial program 10.1
rmApplied associate-/l*0.6
if -255.05455303688356 < a < 1.5612962250566523e-121Initial program 0.8
rmApplied clear-num0.9
rmApplied associate-/r*4.2
rmApplied *-un-lft-identity4.2
Applied div-inv4.2
Applied times-frac1.0
Simplified1.0
if 1.5612962250566523e-121 < a Initial program 7.5
rmApplied clear-num7.5
rmApplied associate-/r*2.3
rmApplied div-inv2.3
Applied *-un-lft-identity2.3
Applied times-frac2.4
Simplified2.1
Simplified2.1
Final simplification2.7
herbie shell --seed 2019308
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, E"
: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)))