Average Error: 0.8 → 0.8
Time: 2.3s
Precision: binary64
\[\log \left(e^{a} + 1\right) + \log \left(e^{b} + 1\right)\]
\[\log \left(e^{a} + 1\right) + \log \left(e^{b} + 1\right)\]
\log \left(e^{a} + 1\right) + \log \left(e^{b} + 1\right)
\log \left(e^{a} + 1\right) + \log \left(e^{b} + 1\right)
double code(double a, double b) {
	return ((double) (((double) log(((double) (((double) exp(a)) + 1.0)))) + ((double) log(((double) (((double) exp(b)) + 1.0))))));
}
double code(double a, double b) {
	return ((double) (((double) log(((double) (((double) exp(a)) + 1.0)))) + ((double) log(((double) (((double) exp(b)) + 1.0))))));
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.8

    \[\log \left(e^{a} + 1\right) + \log \left(e^{b} + 1\right)\]
  2. Final simplification0.8

    \[\leadsto \log \left(e^{a} + 1\right) + \log \left(e^{b} + 1\right)\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a b)
  :name "(+ (log (+ (exp a) 1)) (log (+ (exp b) 1)))"
  :precision binary64
  (+ (log (+ (exp a) 1.0)) (log (+ (exp b) 1.0))))