double f(double a, double b) {
double r35164603 = a;
double r35164604 = exp(r35164603);
double r35164605 = b;
double r35164606 = exp(r35164605);
double r35164607 = r35164604 + r35164606;
double r35164608 = r35164604 / r35164607;
return r35164608;
}
double f(double a, double b) {
double r35164609 = a;
double r35164610 = exp(r35164609);
double r35164611 = b;
double r35164612 = exp(r35164611);
double r35164613 = r35164610 + r35164612;
double r35164614 = r35164610 / r35164613;
return r35164614;
}
\frac{e^{a}}{e^{a} + e^{b}}\frac{e^{a}}{e^{a} + e^{b}}



Bits error versus a




Bits error versus b
| Original | 0.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.5 |
Initial program 0.5
Final simplification0.5
herbie shell --seed 2019102
(FPCore (a b)
:name "Quotient of sum of exps"
:herbie-target
(/ 1 (+ 1 (exp (- b a))))
(/ (exp a) (+ (exp a) (exp b))))