Average Error: 60.5 → 52.3
Time: 31.2s
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.3529465240552971988881604336729755856 \cdot 10^{80} \lor \neg \left(a \le 8.49205507659549180334390020270641032806 \cdot 10^{150}\right):\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(b \cdot \left(b \cdot \left(\left(\frac{1}{6} \cdot {\varepsilon}^{3}\right) \cdot b + \frac{1}{2} \cdot \left(\varepsilon \cdot \varepsilon\right)\right) + \varepsilon\right)\right) \cdot \left(e^{a \cdot \varepsilon} - 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(a \cdot \varepsilon + \sqrt[3]{{\left(\varepsilon \cdot \left(\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot \varepsilon + \frac{1}{2} \cdot \left(a \cdot a\right)\right)\right)\right)}^{3}}\right) \cdot \left(e^{b \cdot \varepsilon} - 1\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.3529465240552971988881604336729755856 \cdot 10^{80} \lor \neg \left(a \le 8.49205507659549180334390020270641032806 \cdot 10^{150}\right):\\
\;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(b \cdot \left(b \cdot \left(\left(\frac{1}{6} \cdot {\varepsilon}^{3}\right) \cdot b + \frac{1}{2} \cdot \left(\varepsilon \cdot \varepsilon\right)\right) + \varepsilon\right)\right) \cdot \left(e^{a \cdot \varepsilon} - 1\right)}\\

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

\end{array}
double f(double a, double b, double eps) {
        double r71141 = eps;
        double r71142 = a;
        double r71143 = b;
        double r71144 = r71142 + r71143;
        double r71145 = r71144 * r71141;
        double r71146 = exp(r71145);
        double r71147 = 1.0;
        double r71148 = r71146 - r71147;
        double r71149 = r71141 * r71148;
        double r71150 = r71142 * r71141;
        double r71151 = exp(r71150);
        double r71152 = r71151 - r71147;
        double r71153 = r71143 * r71141;
        double r71154 = exp(r71153);
        double r71155 = r71154 - r71147;
        double r71156 = r71152 * r71155;
        double r71157 = r71149 / r71156;
        return r71157;
}

double f(double a, double b, double eps) {
        double r71158 = a;
        double r71159 = -2.3529465240552972e+80;
        bool r71160 = r71158 <= r71159;
        double r71161 = 8.492055076595492e+150;
        bool r71162 = r71158 <= r71161;
        double r71163 = !r71162;
        bool r71164 = r71160 || r71163;
        double r71165 = eps;
        double r71166 = b;
        double r71167 = r71158 + r71166;
        double r71168 = r71167 * r71165;
        double r71169 = exp(r71168);
        double r71170 = 1.0;
        double r71171 = r71169 - r71170;
        double r71172 = r71165 * r71171;
        double r71173 = 0.16666666666666666;
        double r71174 = 3.0;
        double r71175 = pow(r71165, r71174);
        double r71176 = r71173 * r71175;
        double r71177 = r71176 * r71166;
        double r71178 = 0.5;
        double r71179 = r71165 * r71165;
        double r71180 = r71178 * r71179;
        double r71181 = r71177 + r71180;
        double r71182 = r71166 * r71181;
        double r71183 = r71182 + r71165;
        double r71184 = r71166 * r71183;
        double r71185 = r71158 * r71165;
        double r71186 = exp(r71185);
        double r71187 = r71186 - r71170;
        double r71188 = r71184 * r71187;
        double r71189 = r71172 / r71188;
        double r71190 = pow(r71158, r71174);
        double r71191 = r71173 * r71190;
        double r71192 = r71191 * r71165;
        double r71193 = r71158 * r71158;
        double r71194 = r71178 * r71193;
        double r71195 = r71192 + r71194;
        double r71196 = r71165 * r71195;
        double r71197 = r71165 * r71196;
        double r71198 = pow(r71197, r71174);
        double r71199 = cbrt(r71198);
        double r71200 = r71185 + r71199;
        double r71201 = r71166 * r71165;
        double r71202 = exp(r71201);
        double r71203 = r71202 - r71170;
        double r71204 = r71200 * r71203;
        double r71205 = r71172 / r71204;
        double r71206 = r71164 ? r71189 : r71205;
        return r71206;
}

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.5
Target14.7
Herbie52.3
\[\frac{a + b}{a \cdot b}\]

Derivation

  1. Split input into 2 regimes
  2. if a < -2.3529465240552972e+80 or 8.492055076595492e+150 < a

    1. Initial program 53.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 45.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(\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. Simplified42.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(\left(b \cdot b\right) \cdot \left(\left(\frac{1}{6} \cdot {\varepsilon}^{3}\right) \cdot b + \frac{1}{2} \cdot \left(\varepsilon \cdot \varepsilon\right)\right) + \varepsilon \cdot b\right)}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity42.2

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

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

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

    if -2.3529465240552972e+80 < a < 8.492055076595492e+150

    1. Initial program 62.9

      \[\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.3

      \[\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.3

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

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

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(a \cdot \varepsilon + \left(\varepsilon \cdot \color{blue}{\sqrt[3]{\left(\varepsilon \cdot \varepsilon\right) \cdot \varepsilon}}\right) \cdot \sqrt[3]{\left(\left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot \varepsilon + \frac{1}{2} \cdot \left(a \cdot a\right)\right) \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot \varepsilon + \frac{1}{2} \cdot \left(a \cdot a\right)\right)\right) \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot \varepsilon + \frac{1}{2} \cdot \left(a \cdot a\right)\right)}\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\]
    7. Applied add-cbrt-cube56.9

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -2.3529465240552971988881604336729755856 \cdot 10^{80} \lor \neg \left(a \le 8.49205507659549180334390020270641032806 \cdot 10^{150}\right):\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(b \cdot \left(b \cdot \left(\left(\frac{1}{6} \cdot {\varepsilon}^{3}\right) \cdot b + \frac{1}{2} \cdot \left(\varepsilon \cdot \varepsilon\right)\right) + \varepsilon\right)\right) \cdot \left(e^{a \cdot \varepsilon} - 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\left(a \cdot \varepsilon + \sqrt[3]{{\left(\varepsilon \cdot \left(\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot \varepsilon + \frac{1}{2} \cdot \left(a \cdot a\right)\right)\right)\right)}^{3}}\right) \cdot \left(e^{b \cdot \varepsilon} - 1\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019326 
(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))))