Average Error: 60.4 → 52.7
Time: 14.9s
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 -2.3194785649155656 \cdot 10^{26}:\\ \;\;\;\;\frac{\varepsilon \cdot \sqrt[3]{{\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}^{3}}}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left(\left(\left({\varepsilon}^{3} \cdot b\right) \cdot b\right) \cdot b\right)\right)}\\ \mathbf{elif}\;a \le 6.5664357011814966 \cdot 10^{46}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(a \cdot \varepsilon + {\varepsilon}^{2} \cdot \left(\frac{1}{2} \cdot {a}^{2} + \left(\frac{1}{6} \cdot {a}^{3}\right) \cdot \varepsilon\right)\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left(\left(\left({\varepsilon}^{3} \cdot b\right) \cdot b\right) \cdot b\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 -2.3194785649155656 \cdot 10^{26}:\\
\;\;\;\;\frac{\varepsilon \cdot \sqrt[3]{{\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}^{3}}}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left(\left(\left({\varepsilon}^{3} \cdot b\right) \cdot b\right) \cdot b\right)\right)}\\

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

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

\end{array}
double f(double a, double b, double eps) {
        double r99004 = eps;
        double r99005 = a;
        double r99006 = b;
        double r99007 = r99005 + r99006;
        double r99008 = r99007 * r99004;
        double r99009 = exp(r99008);
        double r99010 = 1.0;
        double r99011 = r99009 - r99010;
        double r99012 = r99004 * r99011;
        double r99013 = r99005 * r99004;
        double r99014 = exp(r99013);
        double r99015 = r99014 - r99010;
        double r99016 = r99006 * r99004;
        double r99017 = exp(r99016);
        double r99018 = r99017 - r99010;
        double r99019 = r99015 * r99018;
        double r99020 = r99012 / r99019;
        return r99020;
}

double f(double a, double b, double eps) {
        double r99021 = a;
        double r99022 = -2.3194785649155656e+26;
        bool r99023 = r99021 <= r99022;
        double r99024 = eps;
        double r99025 = b;
        double r99026 = r99021 + r99025;
        double r99027 = r99026 * r99024;
        double r99028 = exp(r99027);
        double r99029 = 1.0;
        double r99030 = r99028 - r99029;
        double r99031 = 3.0;
        double r99032 = pow(r99030, r99031);
        double r99033 = cbrt(r99032);
        double r99034 = r99024 * r99033;
        double r99035 = r99021 * r99024;
        double r99036 = exp(r99035);
        double r99037 = r99036 - r99029;
        double r99038 = 0.5;
        double r99039 = 2.0;
        double r99040 = pow(r99024, r99039);
        double r99041 = r99038 * r99040;
        double r99042 = r99041 * r99025;
        double r99043 = r99042 + r99024;
        double r99044 = r99025 * r99043;
        double r99045 = 0.16666666666666666;
        double r99046 = pow(r99024, r99031);
        double r99047 = r99046 * r99025;
        double r99048 = r99047 * r99025;
        double r99049 = r99048 * r99025;
        double r99050 = r99045 * r99049;
        double r99051 = r99044 + r99050;
        double r99052 = r99037 * r99051;
        double r99053 = r99034 / r99052;
        double r99054 = 6.566435701181497e+46;
        bool r99055 = r99021 <= r99054;
        double r99056 = r99024 * r99030;
        double r99057 = pow(r99021, r99039);
        double r99058 = r99038 * r99057;
        double r99059 = pow(r99021, r99031);
        double r99060 = r99045 * r99059;
        double r99061 = r99060 * r99024;
        double r99062 = r99058 + r99061;
        double r99063 = r99040 * r99062;
        double r99064 = r99035 + r99063;
        double r99065 = r99025 * r99024;
        double r99066 = exp(r99065);
        double r99067 = r99066 - r99029;
        double r99068 = r99064 * r99067;
        double r99069 = r99056 / r99068;
        double r99070 = r99056 / r99052;
        double r99071 = r99055 ? r99069 : r99070;
        double r99072 = r99023 ? r99053 : r99071;
        return r99072;
}

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

Original60.4
Target15.1
Herbie52.7
\[\frac{a + b}{a \cdot b}\]

Derivation

  1. Split input into 3 regimes
  2. if a < -2.3194785649155656e+26

    1. Initial program 54.8

      \[\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 49.0

      \[\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(\frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right) + \left(\frac{1}{2} \cdot \left({\varepsilon}^{2} \cdot {b}^{2}\right) + \varepsilon \cdot b\right)\right)}}\]
    3. Simplified48.6

      \[\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(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right)\right)}}\]
    4. Using strategy rm
    5. Applied unpow348.6

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot \color{blue}{\left(\left(b \cdot b\right) \cdot b\right)}\right)\right)}\]
    6. Applied associate-*r*47.8

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

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

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

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

    if -2.3194785649155656e+26 < a < 6.566435701181497e+46

    1. Initial program 63.8

      \[\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 56.5

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

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

    if 6.566435701181497e+46 < a

    1. Initial program 54.6

      \[\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 49.2

      \[\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(\frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right) + \left(\frac{1}{2} \cdot \left({\varepsilon}^{2} \cdot {b}^{2}\right) + \varepsilon \cdot b\right)\right)}}\]
    3. Simplified49.0

      \[\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(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot {b}^{3}\right)\right)}}\]
    4. Using strategy rm
    5. Applied unpow349.0

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left({\varepsilon}^{3} \cdot \color{blue}{\left(\left(b \cdot b\right) \cdot b\right)}\right)\right)}\]
    6. Applied associate-*r*48.1

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -2.3194785649155656 \cdot 10^{26}:\\ \;\;\;\;\frac{\varepsilon \cdot \sqrt[3]{{\left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}^{3}}}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left(\left(\left({\varepsilon}^{3} \cdot b\right) \cdot b\right) \cdot b\right)\right)}\\ \mathbf{elif}\;a \le 6.5664357011814966 \cdot 10^{46}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(a \cdot \varepsilon + {\varepsilon}^{2} \cdot \left(\frac{1}{2} \cdot {a}^{2} + \left(\frac{1}{6} \cdot {a}^{3}\right) \cdot \varepsilon\right)\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(b \cdot \left(\left(\frac{1}{2} \cdot {\varepsilon}^{2}\right) \cdot b + \varepsilon\right) + \frac{1}{6} \cdot \left(\left(\left({\varepsilon}^{3} \cdot b\right) \cdot b\right) \cdot b\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 
(FPCore (a b eps)
  :name "expq3 (problem 3.4.2)"
  :precision binary64
  :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))))