Average Error: 50.2 → 50.2
Time: 13.3s
Precision: binary64
\[\log \left(e^{a} \cdot an + e^{c} \cdot cn\right) - \log \left(an + cn\right)\]
\[\log \left(e^{a} \cdot an + e^{c} \cdot cn\right) - \log \left(an + cn\right)\]
\log \left(e^{a} \cdot an + e^{c} \cdot cn\right) - \log \left(an + cn\right)
\log \left(e^{a} \cdot an + e^{c} \cdot cn\right) - \log \left(an + cn\right)
double code(double a, double an, double c, double cn) {
	return ((double) (((double) log(((double) (((double) (((double) exp(a)) * an)) + ((double) (((double) exp(c)) * cn)))))) - ((double) log(((double) (an + cn))))));
}
double code(double a, double an, double c, double cn) {
	return ((double) (((double) log(((double) (((double) (((double) exp(a)) * an)) + ((double) (((double) exp(c)) * cn)))))) - ((double) log(((double) (an + cn))))));
}

Error

Bits error versus a

Bits error versus an

Bits error versus c

Bits error versus cn

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 50.2

    \[\log \left(e^{a} \cdot an + e^{c} \cdot cn\right) - \log \left(an + cn\right)\]
  2. Final simplification50.2

    \[\leadsto \log \left(e^{a} \cdot an + e^{c} \cdot cn\right) - \log \left(an + cn\right)\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a an c cn)
  :name "(- (log (+ (* (exp a) an) (* (exp c) cn))) (log (+ an cn)))"
  :precision binary64
  (- (log (+ (* (exp a) an) (* (exp c) cn))) (log (+ an cn))))