Average Error: 29.5 → 29.6
Time: 5.6s
Precision: binary64
\[\log \left(e^{a} + e^{b}\right)\]
\[\log \left({\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}\right) - \left(\log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right) + \log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right)\right)\]
\log \left(e^{a} + e^{b}\right)
\log \left({\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}\right) - \left(\log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right) + \log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right)\right)
(FPCore (a b) :precision binary64 (log (+ (exp a) (exp b))))
(FPCore (a b)
 :precision binary64
 (-
  (log (+ (pow (exp a) 3.0) (pow (exp b) 3.0)))
  (+
   (log (sqrt (+ (pow (exp a) 2.0) (* (exp b) (- (exp b) (exp a))))))
   (log (sqrt (+ (pow (exp a) 2.0) (* (exp b) (- (exp b) (exp a)))))))))
double code(double a, double b) {
	return log(exp(a) + exp(b));
}
double code(double a, double b) {
	return log(pow(exp(a), 3.0) + pow(exp(b), 3.0)) - (log(sqrt(pow(exp(a), 2.0) + (exp(b) * (exp(b) - exp(a))))) + log(sqrt(pow(exp(a), 2.0) + (exp(b) * (exp(b) - exp(a))))));
}

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 29.5

    \[\log \left(e^{a} + e^{b}\right)\]
  2. Using strategy rm
  3. Applied flip3-+_binary6429.6

    \[\leadsto \log \color{blue}{\left(\frac{{\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}}{e^{a} \cdot e^{a} + \left(e^{b} \cdot e^{b} - e^{a} \cdot e^{b}\right)}\right)}\]
  4. Applied log-div_binary6429.6

    \[\leadsto \color{blue}{\log \left({\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}\right) - \log \left(e^{a} \cdot e^{a} + \left(e^{b} \cdot e^{b} - e^{a} \cdot e^{b}\right)\right)}\]
  5. Simplified29.6

    \[\leadsto \log \left({\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}\right) - \color{blue}{\log \left({\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)\right)}\]
  6. Using strategy rm
  7. Applied add-sqr-sqrt_binary6429.6

    \[\leadsto \log \left({\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}\right) - \log \color{blue}{\left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)} \cdot \sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right)}\]
  8. Applied log-prod_binary6429.6

    \[\leadsto \log \left({\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}\right) - \color{blue}{\left(\log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right) + \log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right)\right)}\]
  9. Final simplification29.6

    \[\leadsto \log \left({\left(e^{a}\right)}^{3} + {\left(e^{b}\right)}^{3}\right) - \left(\log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right) + \log \left(\sqrt{{\left(e^{a}\right)}^{2} + e^{b} \cdot \left(e^{b} - e^{a}\right)}\right)\right)\]

Reproduce

herbie shell --seed 2020356 
(FPCore (a b)
  :name "symmetry log of sum of exp"
  :precision binary64
  (log (+ (exp a) (exp b))))