\log \left(e^{a} + e^{b}\right)\frac{b}{1 + e^{a}} + \left(\left(b \cdot \frac{b}{1 + e^{a}}\right) \cdot \left(0.5 + \frac{-0.5}{1 + e^{a}}\right) + \log \left(1 + e^{a}\right)\right)(FPCore (a b) :precision binary64 (log (+ (exp a) (exp b))))
(FPCore (a b) :precision binary64 (+ (/ b (+ 1.0 (exp a))) (+ (* (* b (/ b (+ 1.0 (exp a)))) (+ 0.5 (/ -0.5 (+ 1.0 (exp a))))) (log (+ 1.0 (exp a))))))
double code(double a, double b) {
return log(exp(a) + exp(b));
}
double code(double a, double b) {
return (b / (1.0 + exp(a))) + (((b * (b / (1.0 + exp(a)))) * (0.5 + (-0.5 / (1.0 + exp(a))))) + log(1.0 + exp(a)));
}



Bits error versus a



Bits error versus b
Results
Initial program 29.6
Taylor expanded around 0 1.2
Simplified1.1
Final simplification1.1
herbie shell --seed 2021025
(FPCore (a b)
:name "symmetry log of sum of exp"
:precision binary64
(log (+ (exp a) (exp b))))