Average Error: 58.7 → 51.0
Time: 42.5s
Precision: 64
\[-1 \lt \varepsilon \land \varepsilon \lt 1\]
\[\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
\[\begin{array}{l} \mathbf{if}\;a \le -1.2717341568466444 \cdot 10^{+67}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\varepsilon \cdot \left(a + b\right)} - 1\right)}{\left(e^{\varepsilon \cdot a} - 1\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \frac{1}{2}\right) + \left(\varepsilon \cdot b + \left(\left(\left(\varepsilon \cdot b\right) \cdot \left(\varepsilon \cdot b\right)\right) \cdot \varepsilon\right) \cdot \left(b \cdot \frac{1}{6}\right)\right)\right)}\\ \mathbf{elif}\;a \le 2.481491912265091 \cdot 10^{+151}:\\ \;\;\;\;\frac{\varepsilon \cdot \frac{e^{\varepsilon \cdot \left(a + b\right) + \left(\varepsilon \cdot \left(a + b\right) + \varepsilon \cdot \left(a + b\right)\right)} - 1}{\left(e^{\varepsilon \cdot \left(a + b\right)} \cdot e^{\varepsilon \cdot \left(a + b\right)} + 1\right) + e^{\varepsilon \cdot \left(a + b\right)}}}{\left(\left(\left(\left(a \cdot \left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right)\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\varepsilon \cdot a\right) \cdot \left(\left(\varepsilon \cdot a\right) \cdot \frac{1}{2}\right)\right) + \varepsilon \cdot a\right) \cdot \frac{e^{b \cdot \left(\varepsilon + \left(\varepsilon + \varepsilon\right)\right)} + -1}{\left(e^{\varepsilon \cdot b} + e^{\left(\varepsilon + \varepsilon\right) \cdot b}\right) + 1}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\varepsilon \cdot \left(a + b\right)} - 1\right)}{\left(e^{\varepsilon \cdot a} - 1\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \frac{1}{2}\right) + \left(\varepsilon \cdot b + \left(\left(\left(\varepsilon \cdot b\right) \cdot \left(\varepsilon \cdot b\right)\right) \cdot \varepsilon\right) \cdot \left(b \cdot \frac{1}{6}\right)\right)\right)}\\ \end{array}\]
\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}
\begin{array}{l}
\mathbf{if}\;a \le -1.2717341568466444 \cdot 10^{+67}:\\
\;\;\;\;\frac{\varepsilon \cdot \left(e^{\varepsilon \cdot \left(a + b\right)} - 1\right)}{\left(e^{\varepsilon \cdot a} - 1\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \frac{1}{2}\right) + \left(\varepsilon \cdot b + \left(\left(\left(\varepsilon \cdot b\right) \cdot \left(\varepsilon \cdot b\right)\right) \cdot \varepsilon\right) \cdot \left(b \cdot \frac{1}{6}\right)\right)\right)}\\

\mathbf{elif}\;a \le 2.481491912265091 \cdot 10^{+151}:\\
\;\;\;\;\frac{\varepsilon \cdot \frac{e^{\varepsilon \cdot \left(a + b\right) + \left(\varepsilon \cdot \left(a + b\right) + \varepsilon \cdot \left(a + b\right)\right)} - 1}{\left(e^{\varepsilon \cdot \left(a + b\right)} \cdot e^{\varepsilon \cdot \left(a + b\right)} + 1\right) + e^{\varepsilon \cdot \left(a + b\right)}}}{\left(\left(\left(\left(a \cdot \left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right)\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\varepsilon \cdot a\right) \cdot \left(\left(\varepsilon \cdot a\right) \cdot \frac{1}{2}\right)\right) + \varepsilon \cdot a\right) \cdot \frac{e^{b \cdot \left(\varepsilon + \left(\varepsilon + \varepsilon\right)\right)} + -1}{\left(e^{\varepsilon \cdot b} + e^{\left(\varepsilon + \varepsilon\right) \cdot b}\right) + 1}}\\

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

\end{array}
double f(double a, double b, double eps) {
        double r2990645 = eps;
        double r2990646 = a;
        double r2990647 = b;
        double r2990648 = r2990646 + r2990647;
        double r2990649 = r2990648 * r2990645;
        double r2990650 = exp(r2990649);
        double r2990651 = 1.0;
        double r2990652 = r2990650 - r2990651;
        double r2990653 = r2990645 * r2990652;
        double r2990654 = r2990646 * r2990645;
        double r2990655 = exp(r2990654);
        double r2990656 = r2990655 - r2990651;
        double r2990657 = r2990647 * r2990645;
        double r2990658 = exp(r2990657);
        double r2990659 = r2990658 - r2990651;
        double r2990660 = r2990656 * r2990659;
        double r2990661 = r2990653 / r2990660;
        return r2990661;
}

double f(double a, double b, double eps) {
        double r2990662 = a;
        double r2990663 = -1.2717341568466444e+67;
        bool r2990664 = r2990662 <= r2990663;
        double r2990665 = eps;
        double r2990666 = b;
        double r2990667 = r2990662 + r2990666;
        double r2990668 = r2990665 * r2990667;
        double r2990669 = exp(r2990668);
        double r2990670 = 1.0;
        double r2990671 = r2990669 - r2990670;
        double r2990672 = r2990665 * r2990671;
        double r2990673 = r2990665 * r2990662;
        double r2990674 = exp(r2990673);
        double r2990675 = r2990674 - r2990670;
        double r2990676 = r2990665 * r2990666;
        double r2990677 = 0.5;
        double r2990678 = r2990676 * r2990677;
        double r2990679 = r2990676 * r2990678;
        double r2990680 = r2990676 * r2990676;
        double r2990681 = r2990680 * r2990665;
        double r2990682 = 0.16666666666666666;
        double r2990683 = r2990666 * r2990682;
        double r2990684 = r2990681 * r2990683;
        double r2990685 = r2990676 + r2990684;
        double r2990686 = r2990679 + r2990685;
        double r2990687 = r2990675 * r2990686;
        double r2990688 = r2990672 / r2990687;
        double r2990689 = 2.481491912265091e+151;
        bool r2990690 = r2990662 <= r2990689;
        double r2990691 = r2990668 + r2990668;
        double r2990692 = r2990668 + r2990691;
        double r2990693 = exp(r2990692);
        double r2990694 = r2990693 - r2990670;
        double r2990695 = r2990669 * r2990669;
        double r2990696 = r2990695 + r2990670;
        double r2990697 = r2990696 + r2990669;
        double r2990698 = r2990694 / r2990697;
        double r2990699 = r2990665 * r2990698;
        double r2990700 = r2990673 * r2990673;
        double r2990701 = r2990662 * r2990700;
        double r2990702 = r2990701 * r2990665;
        double r2990703 = r2990702 * r2990682;
        double r2990704 = r2990673 * r2990677;
        double r2990705 = r2990673 * r2990704;
        double r2990706 = r2990703 + r2990705;
        double r2990707 = r2990706 + r2990673;
        double r2990708 = r2990665 + r2990665;
        double r2990709 = r2990665 + r2990708;
        double r2990710 = r2990666 * r2990709;
        double r2990711 = exp(r2990710);
        double r2990712 = -1.0;
        double r2990713 = r2990711 + r2990712;
        double r2990714 = exp(r2990676);
        double r2990715 = r2990708 * r2990666;
        double r2990716 = exp(r2990715);
        double r2990717 = r2990714 + r2990716;
        double r2990718 = r2990717 + r2990670;
        double r2990719 = r2990713 / r2990718;
        double r2990720 = r2990707 * r2990719;
        double r2990721 = r2990699 / r2990720;
        double r2990722 = r2990690 ? r2990721 : r2990688;
        double r2990723 = r2990664 ? r2990688 : r2990722;
        return r2990723;
}

Error

Bits error versus a

Bits error versus b

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original58.7
Target13.8
Herbie51.0
\[\frac{a + b}{a \cdot b}\]

Derivation

  1. Split input into 2 regimes
  2. if a < -1.2717341568466444e+67 or 2.481491912265091e+151 < a

    1. Initial program 52.3

      \[\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    2. Taylor expanded around 0 44.9

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \color{blue}{\left(\varepsilon \cdot b + \left(\frac{1}{2} \cdot \left({\varepsilon}^{2} \cdot {b}^{2}\right) + \frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right)\right)\right)}}\]
    3. Simplified41.4

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

    if -1.2717341568466444e+67 < a < 2.481491912265091e+151

    1. Initial program 61.0

      \[\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    2. Taylor expanded around 0 54.6

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\color{blue}{\left(\frac{1}{2} \cdot \left({a}^{2} \cdot {\varepsilon}^{2}\right) + \left(\frac{1}{6} \cdot \left({a}^{3} \cdot {\varepsilon}^{3}\right) + a \cdot \varepsilon\right)\right)} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    3. Simplified54.4

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\color{blue}{\left(\left(\left(\left(\left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right) \cdot a\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\frac{1}{2} \cdot \left(\varepsilon \cdot a\right)\right) \cdot \left(\varepsilon \cdot a\right)\right) + \varepsilon \cdot a\right)} \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    4. Using strategy rm
    5. Applied flip3--54.7

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(\left(\left(\left(\left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right) \cdot a\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\frac{1}{2} \cdot \left(\varepsilon \cdot a\right)\right) \cdot \left(\varepsilon \cdot a\right)\right) + \varepsilon \cdot a\right) \cdot \color{blue}{\frac{{\left(e^{b \cdot \varepsilon}\right)}^{3} - {1}^{3}}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 1\right)}}}\]
    6. Simplified54.8

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(\left(\left(\left(\left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right) \cdot a\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\frac{1}{2} \cdot \left(\varepsilon \cdot a\right)\right) \cdot \left(\varepsilon \cdot a\right)\right) + \varepsilon \cdot a\right) \cdot \frac{\color{blue}{-1 + e^{b \cdot \left(\left(\varepsilon + \varepsilon\right) + \varepsilon\right)}}}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 1\right)}}\]
    7. Simplified54.8

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(\left(\left(\left(\left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right) \cdot a\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\frac{1}{2} \cdot \left(\varepsilon \cdot a\right)\right) \cdot \left(\varepsilon \cdot a\right)\right) + \varepsilon \cdot a\right) \cdot \frac{-1 + e^{b \cdot \left(\left(\varepsilon + \varepsilon\right) + \varepsilon\right)}}{\color{blue}{\left(e^{b \cdot \left(\varepsilon + \varepsilon\right)} + e^{\varepsilon \cdot b}\right) + 1}}}\]
    8. Using strategy rm
    9. Applied flip3--54.8

      \[\leadsto \frac{\varepsilon \cdot \color{blue}{\frac{{\left(e^{\left(a + b\right) \cdot \varepsilon}\right)}^{3} - {1}^{3}}{e^{\left(a + b\right) \cdot \varepsilon} \cdot e^{\left(a + b\right) \cdot \varepsilon} + \left(1 \cdot 1 + e^{\left(a + b\right) \cdot \varepsilon} \cdot 1\right)}}}{\left(\left(\left(\left(\left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right) \cdot a\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\frac{1}{2} \cdot \left(\varepsilon \cdot a\right)\right) \cdot \left(\varepsilon \cdot a\right)\right) + \varepsilon \cdot a\right) \cdot \frac{-1 + e^{b \cdot \left(\left(\varepsilon + \varepsilon\right) + \varepsilon\right)}}{\left(e^{b \cdot \left(\varepsilon + \varepsilon\right)} + e^{\varepsilon \cdot b}\right) + 1}}\]
    10. Simplified54.5

      \[\leadsto \frac{\varepsilon \cdot \frac{\color{blue}{e^{\left(b + a\right) \cdot \varepsilon + \left(\left(b + a\right) \cdot \varepsilon + \left(b + a\right) \cdot \varepsilon\right)} - 1}}{e^{\left(a + b\right) \cdot \varepsilon} \cdot e^{\left(a + b\right) \cdot \varepsilon} + \left(1 \cdot 1 + e^{\left(a + b\right) \cdot \varepsilon} \cdot 1\right)}}{\left(\left(\left(\left(\left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right) \cdot a\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\frac{1}{2} \cdot \left(\varepsilon \cdot a\right)\right) \cdot \left(\varepsilon \cdot a\right)\right) + \varepsilon \cdot a\right) \cdot \frac{-1 + e^{b \cdot \left(\left(\varepsilon + \varepsilon\right) + \varepsilon\right)}}{\left(e^{b \cdot \left(\varepsilon + \varepsilon\right)} + e^{\varepsilon \cdot b}\right) + 1}}\]
    11. Simplified54.5

      \[\leadsto \frac{\varepsilon \cdot \frac{e^{\left(b + a\right) \cdot \varepsilon + \left(\left(b + a\right) \cdot \varepsilon + \left(b + a\right) \cdot \varepsilon\right)} - 1}{\color{blue}{e^{\left(b + a\right) \cdot \varepsilon} + \left(e^{\left(b + a\right) \cdot \varepsilon} \cdot e^{\left(b + a\right) \cdot \varepsilon} + 1\right)}}}{\left(\left(\left(\left(\left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right) \cdot a\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\frac{1}{2} \cdot \left(\varepsilon \cdot a\right)\right) \cdot \left(\varepsilon \cdot a\right)\right) + \varepsilon \cdot a\right) \cdot \frac{-1 + e^{b \cdot \left(\left(\varepsilon + \varepsilon\right) + \varepsilon\right)}}{\left(e^{b \cdot \left(\varepsilon + \varepsilon\right)} + e^{\varepsilon \cdot b}\right) + 1}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification51.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -1.2717341568466444 \cdot 10^{+67}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\varepsilon \cdot \left(a + b\right)} - 1\right)}{\left(e^{\varepsilon \cdot a} - 1\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \frac{1}{2}\right) + \left(\varepsilon \cdot b + \left(\left(\left(\varepsilon \cdot b\right) \cdot \left(\varepsilon \cdot b\right)\right) \cdot \varepsilon\right) \cdot \left(b \cdot \frac{1}{6}\right)\right)\right)}\\ \mathbf{elif}\;a \le 2.481491912265091 \cdot 10^{+151}:\\ \;\;\;\;\frac{\varepsilon \cdot \frac{e^{\varepsilon \cdot \left(a + b\right) + \left(\varepsilon \cdot \left(a + b\right) + \varepsilon \cdot \left(a + b\right)\right)} - 1}{\left(e^{\varepsilon \cdot \left(a + b\right)} \cdot e^{\varepsilon \cdot \left(a + b\right)} + 1\right) + e^{\varepsilon \cdot \left(a + b\right)}}}{\left(\left(\left(\left(a \cdot \left(\left(\varepsilon \cdot a\right) \cdot \left(\varepsilon \cdot a\right)\right)\right) \cdot \varepsilon\right) \cdot \frac{1}{6} + \left(\varepsilon \cdot a\right) \cdot \left(\left(\varepsilon \cdot a\right) \cdot \frac{1}{2}\right)\right) + \varepsilon \cdot a\right) \cdot \frac{e^{b \cdot \left(\varepsilon + \left(\varepsilon + \varepsilon\right)\right)} + -1}{\left(e^{\varepsilon \cdot b} + e^{\left(\varepsilon + \varepsilon\right) \cdot b}\right) + 1}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\varepsilon \cdot \left(a + b\right)} - 1\right)}{\left(e^{\varepsilon \cdot a} - 1\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \left(\left(\varepsilon \cdot b\right) \cdot \frac{1}{2}\right) + \left(\varepsilon \cdot b + \left(\left(\left(\varepsilon \cdot b\right) \cdot \left(\varepsilon \cdot b\right)\right) \cdot \varepsilon\right) \cdot \left(b \cdot \frac{1}{6}\right)\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019129 
(FPCore (a b eps)
  :name "expq3 (problem 3.4.2)"
  :pre (and (< -1 eps) (< eps 1))

  :herbie-target
  (/ (+ a b) (* a b))

  (/ (* eps (- (exp (* (+ a b) eps)) 1)) (* (- (exp (* a eps)) 1) (- (exp (* b eps)) 1))))