\frac{e^{a}}{e^{a} + e^{b}}\log \left(e^{e^{a - \log \left(e^{a} + e^{b}\right)}}\right)double f(double a, double b) {
double r119863 = a;
double r119864 = exp(r119863);
double r119865 = b;
double r119866 = exp(r119865);
double r119867 = r119864 + r119866;
double r119868 = r119864 / r119867;
return r119868;
}
double f(double a, double b) {
double r119869 = a;
double r119870 = exp(r119869);
double r119871 = b;
double r119872 = exp(r119871);
double r119873 = r119870 + r119872;
double r119874 = log(r119873);
double r119875 = r119869 - r119874;
double r119876 = exp(r119875);
double r119877 = exp(r119876);
double r119878 = log(r119877);
return r119878;
}




Bits error versus a




Bits error versus b
Results
| Original | 0.6 |
|---|---|
| Target | 0.0 |
| Herbie | 0.6 |
Initial program 0.6
rmApplied add-exp-log0.6
Applied div-exp0.5
rmApplied add-log-exp0.6
Final simplification0.6
herbie shell --seed 2020089 +o rules:numerics
(FPCore (a b)
:name "Quotient of sum of exps"
:precision binary64
:herbie-target
(/ 1 (+ 1 (exp (- b a))))
(/ (exp a) (+ (exp a) (exp b))))