\frac{e^{a}}{e^{a} + e^{b}}\log \left(e^{\frac{e^{a}}{e^{a} + e^{b}}}\right)double f(double a, double b) {
double r4687812 = a;
double r4687813 = exp(r4687812);
double r4687814 = b;
double r4687815 = exp(r4687814);
double r4687816 = r4687813 + r4687815;
double r4687817 = r4687813 / r4687816;
return r4687817;
}
double f(double a, double b) {
double r4687818 = a;
double r4687819 = exp(r4687818);
double r4687820 = b;
double r4687821 = exp(r4687820);
double r4687822 = r4687819 + r4687821;
double r4687823 = r4687819 / r4687822;
double r4687824 = exp(r4687823);
double r4687825 = log(r4687824);
return r4687825;
}




Bits error versus a




Bits error versus b
Results
| Original | 0.7 |
|---|---|
| Target | 0.0 |
| Herbie | 0.8 |
Initial program 0.7
rmApplied add-log-exp0.8
Final simplification0.8
herbie shell --seed 2019162 +o rules:numerics
(FPCore (a b)
:name "Quotient of sum of exps"
:herbie-target
(/ 1 (+ 1 (exp (- b a))))
(/ (exp a) (+ (exp a) (exp b))))