Average Error: 0.5 → 0.6
Time: 19.1s
Precision: 64
\[\frac{e^{a}}{e^{a} + e^{b}}\]
\[\log \left(e^{\frac{e^{a}}{e^{a} + e^{b}}}\right)\]
\frac{e^{a}}{e^{a} + e^{b}}
\log \left(e^{\frac{e^{a}}{e^{a} + e^{b}}}\right)
double f(double a, double b) {
        double r3477062 = a;
        double r3477063 = exp(r3477062);
        double r3477064 = b;
        double r3477065 = exp(r3477064);
        double r3477066 = r3477063 + r3477065;
        double r3477067 = r3477063 / r3477066;
        return r3477067;
}

double f(double a, double b) {
        double r3477068 = a;
        double r3477069 = exp(r3477068);
        double r3477070 = b;
        double r3477071 = exp(r3477070);
        double r3477072 = r3477069 + r3477071;
        double r3477073 = r3477069 / r3477072;
        double r3477074 = exp(r3477073);
        double r3477075 = log(r3477074);
        return r3477075;
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.5
Target0.0
Herbie0.6
\[\frac{1}{1 + e^{b - a}}\]

Derivation

  1. Initial program 0.5

    \[\frac{e^{a}}{e^{a} + e^{b}}\]
  2. Using strategy rm
  3. Applied add-log-exp0.6

    \[\leadsto \color{blue}{\log \left(e^{\frac{e^{a}}{e^{a} + e^{b}}}\right)}\]
  4. Final simplification0.6

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

Reproduce

herbie shell --seed 2019119 +o rules:numerics
(FPCore (a b)
  :name "Quotient of sum of exps"

  :herbie-target
  (/ 1 (+ 1 (exp (- b a))))

  (/ (exp a) (+ (exp a) (exp b))))