Average Error: 0.8 → 0.7
Time: 39.7s
Precision: 64
\[\frac{e^{a}}{e^{a} + e^{b}}\]
\[\begin{array}{l} \mathbf{if}\;b \le 234.44819139131235:\\ \;\;\;\;e^{a - \left(\log \left(e^{a} \cdot \left(e^{a} \cdot e^{a}\right) + e^{b + \left(b + b\right)}\right) - \log \left(\left(e^{b} \cdot e^{b} - e^{a} \cdot e^{b}\right) + e^{a} \cdot e^{a}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;e^{\left(a - b\right) \cdot \frac{1}{2} - \log 2}\\ \end{array}\]
\frac{e^{a}}{e^{a} + e^{b}}
\begin{array}{l}
\mathbf{if}\;b \le 234.44819139131235:\\
\;\;\;\;e^{a - \left(\log \left(e^{a} \cdot \left(e^{a} \cdot e^{a}\right) + e^{b + \left(b + b\right)}\right) - \log \left(\left(e^{b} \cdot e^{b} - e^{a} \cdot e^{b}\right) + e^{a} \cdot e^{a}\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;e^{\left(a - b\right) \cdot \frac{1}{2} - \log 2}\\

\end{array}
double f(double a, double b) {
        double r60797648 = a;
        double r60797649 = exp(r60797648);
        double r60797650 = b;
        double r60797651 = exp(r60797650);
        double r60797652 = r60797649 + r60797651;
        double r60797653 = r60797649 / r60797652;
        return r60797653;
}

double f(double a, double b) {
        double r60797654 = b;
        double r60797655 = 234.44819139131235;
        bool r60797656 = r60797654 <= r60797655;
        double r60797657 = a;
        double r60797658 = exp(r60797657);
        double r60797659 = r60797658 * r60797658;
        double r60797660 = r60797658 * r60797659;
        double r60797661 = r60797654 + r60797654;
        double r60797662 = r60797654 + r60797661;
        double r60797663 = exp(r60797662);
        double r60797664 = r60797660 + r60797663;
        double r60797665 = log(r60797664);
        double r60797666 = exp(r60797654);
        double r60797667 = r60797666 * r60797666;
        double r60797668 = r60797658 * r60797666;
        double r60797669 = r60797667 - r60797668;
        double r60797670 = r60797669 + r60797659;
        double r60797671 = log(r60797670);
        double r60797672 = r60797665 - r60797671;
        double r60797673 = r60797657 - r60797672;
        double r60797674 = exp(r60797673);
        double r60797675 = r60797657 - r60797654;
        double r60797676 = 0.5;
        double r60797677 = r60797675 * r60797676;
        double r60797678 = 2.0;
        double r60797679 = log(r60797678);
        double r60797680 = r60797677 - r60797679;
        double r60797681 = exp(r60797680);
        double r60797682 = r60797656 ? r60797674 : r60797681;
        return r60797682;
}

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.8
Target0.0
Herbie0.7
\[\frac{1}{1 + e^{b - a}}\]

Derivation

  1. Split input into 2 regimes
  2. if b < 234.44819139131235

    1. Initial program 0.8

      \[\frac{e^{a}}{e^{a} + e^{b}}\]
    2. Using strategy rm
    3. Applied add-exp-log0.8

      \[\leadsto \frac{e^{a}}{\color{blue}{e^{\log \left(e^{a} + e^{b}\right)}}}\]
    4. Applied div-exp0.9

      \[\leadsto \color{blue}{e^{a - \log \left(e^{a} + e^{b}\right)}}\]
    5. Using strategy rm
    6. Applied flip3-+0.9

      \[\leadsto e^{a - \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)}}\]
    7. Applied log-div0.9

      \[\leadsto e^{a - \color{blue}{\left(\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)\right)}}\]
    8. Simplified0.9

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

    if 234.44819139131235 < b

    1. Initial program 0.5

      \[\frac{e^{a}}{e^{a} + e^{b}}\]
    2. Using strategy rm
    3. Applied add-exp-log0.5

      \[\leadsto \frac{e^{a}}{\color{blue}{e^{\log \left(e^{a} + e^{b}\right)}}}\]
    4. Applied div-exp0

      \[\leadsto \color{blue}{e^{a - \log \left(e^{a} + e^{b}\right)}}\]
    5. Taylor expanded around 0 0.0

      \[\leadsto e^{\color{blue}{\frac{1}{2} \cdot a - \left(\frac{1}{2} \cdot b + \log 2\right)}}\]
    6. Simplified0.0

      \[\leadsto e^{\color{blue}{\left(a - b\right) \cdot \frac{1}{2} - \log 2}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le 234.44819139131235:\\ \;\;\;\;e^{a - \left(\log \left(e^{a} \cdot \left(e^{a} \cdot e^{a}\right) + e^{b + \left(b + b\right)}\right) - \log \left(\left(e^{b} \cdot e^{b} - e^{a} \cdot e^{b}\right) + e^{a} \cdot e^{a}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;e^{\left(a - b\right) \cdot \frac{1}{2} - \log 2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019120 
(FPCore (a b)
  :name "Quotient of sum of exps"

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

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