Average Error: 59.5 → 59.5
Time: 11.0s
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}\;b \le -1.8883079266888689 \cdot 10^{67} \lor \neg \left(b \le 1.92355889687172386 \cdot 10^{85}\right):\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left({\left(e^{b \cdot \varepsilon}\right)}^{3} - {1}^{3}\right)}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 1\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(3 \cdot \left(\varepsilon \cdot b\right) + \frac{9}{2} \cdot \left({\varepsilon}^{3} \cdot {b}^{3} + {\varepsilon}^{2} \cdot {b}^{2}\right)\right)}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 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}\;b \le -1.8883079266888689 \cdot 10^{67} \lor \neg \left(b \le 1.92355889687172386 \cdot 10^{85}\right):\\
\;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left({\left(e^{b \cdot \varepsilon}\right)}^{3} - {1}^{3}\right)}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 1\right)}}\\

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

\end{array}
double f(double a, double b, double eps) {
        double r86241 = eps;
        double r86242 = a;
        double r86243 = b;
        double r86244 = r86242 + r86243;
        double r86245 = r86244 * r86241;
        double r86246 = exp(r86245);
        double r86247 = 1.0;
        double r86248 = r86246 - r86247;
        double r86249 = r86241 * r86248;
        double r86250 = r86242 * r86241;
        double r86251 = exp(r86250);
        double r86252 = r86251 - r86247;
        double r86253 = r86243 * r86241;
        double r86254 = exp(r86253);
        double r86255 = r86254 - r86247;
        double r86256 = r86252 * r86255;
        double r86257 = r86249 / r86256;
        return r86257;
}

double f(double a, double b, double eps) {
        double r86258 = b;
        double r86259 = -1.888307926688869e+67;
        bool r86260 = r86258 <= r86259;
        double r86261 = 1.923558896871724e+85;
        bool r86262 = r86258 <= r86261;
        double r86263 = !r86262;
        bool r86264 = r86260 || r86263;
        double r86265 = eps;
        double r86266 = a;
        double r86267 = r86266 + r86258;
        double r86268 = r86267 * r86265;
        double r86269 = exp(r86268);
        double r86270 = 1.0;
        double r86271 = r86269 - r86270;
        double r86272 = r86265 * r86271;
        double r86273 = r86266 * r86265;
        double r86274 = exp(r86273);
        double r86275 = r86274 - r86270;
        double r86276 = r86258 * r86265;
        double r86277 = exp(r86276);
        double r86278 = 3.0;
        double r86279 = pow(r86277, r86278);
        double r86280 = pow(r86270, r86278);
        double r86281 = r86279 - r86280;
        double r86282 = r86275 * r86281;
        double r86283 = r86277 * r86277;
        double r86284 = r86270 * r86270;
        double r86285 = r86277 * r86270;
        double r86286 = r86284 + r86285;
        double r86287 = r86283 + r86286;
        double r86288 = r86282 / r86287;
        double r86289 = r86272 / r86288;
        double r86290 = r86265 * r86258;
        double r86291 = r86278 * r86290;
        double r86292 = 4.5;
        double r86293 = pow(r86265, r86278);
        double r86294 = pow(r86258, r86278);
        double r86295 = r86293 * r86294;
        double r86296 = 2.0;
        double r86297 = pow(r86265, r86296);
        double r86298 = pow(r86258, r86296);
        double r86299 = r86297 * r86298;
        double r86300 = r86295 + r86299;
        double r86301 = r86292 * r86300;
        double r86302 = r86291 + r86301;
        double r86303 = r86275 * r86302;
        double r86304 = r86303 / r86287;
        double r86305 = r86272 / r86304;
        double r86306 = r86264 ? r86289 : r86305;
        return r86306;
}

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

Original59.5
Target16.7
Herbie59.5
\[\frac{a + b}{a \cdot b}\]

Derivation

  1. Split input into 2 regimes
  2. if b < -1.888307926688869e+67 or 1.923558896871724e+85 < b

    1. Initial program 49.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. Using strategy rm
    3. Applied flip3--52.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}{\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)}}}\]
    4. Applied associate-*r/52.4

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

    if -1.888307926688869e+67 < b < 1.923558896871724e+85

    1. Initial program 63.5

      \[\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. Using strategy rm
    3. Applied flip3--63.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}{\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)}}}\]
    4. Applied associate-*r/63.6

      \[\leadsto \frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\color{blue}{\frac{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left({\left(e^{b \cdot \varepsilon}\right)}^{3} - {1}^{3}\right)}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 1\right)}}}\]
    5. Taylor expanded around 0 62.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.8883079266888689 \cdot 10^{67} \lor \neg \left(b \le 1.92355889687172386 \cdot 10^{85}\right):\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left({\left(e^{b \cdot \varepsilon}\right)}^{3} - {1}^{3}\right)}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 1\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\varepsilon \cdot \left(e^{\left(a + b\right) \cdot \varepsilon} - 1\right)}{\frac{\left(e^{a \cdot \varepsilon} - 1\right) \cdot \left(3 \cdot \left(\varepsilon \cdot b\right) + \frac{9}{2} \cdot \left({\varepsilon}^{3} \cdot {b}^{3} + {\varepsilon}^{2} \cdot {b}^{2}\right)\right)}{e^{b \cdot \varepsilon} \cdot e^{b \cdot \varepsilon} + \left(1 \cdot 1 + e^{b \cdot \varepsilon} \cdot 1\right)}}\\ \end{array}\]

Reproduce

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