Average Error: 29.7 → 14.7
Time: 45.6s
Precision: 64
\[e^{a \cdot x} - 1\]
\[\begin{array}{l} \mathbf{if}\;a \le -256359444096060671088636065161355062149100:\\ \;\;\;\;\frac{e^{3 \cdot \left(x \cdot a\right)} - \left(1 \cdot 1\right) \cdot 1}{e^{x \cdot a} \cdot e^{x \cdot a} + \left(1 \cdot 1 + 1 \cdot \left(\sqrt[3]{e^{x \cdot a}} \cdot \left(\sqrt[3]{e^{x \cdot a}} \cdot \sqrt[3]{e^{x \cdot a}}\right)\right)\right)}\\ \mathbf{elif}\;a \le 4.908437356722725707183693128072816852345 \cdot 10^{208}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot a\right) \cdot \left(x \cdot a\right)\right) \cdot \left(x \cdot a\right)\right) \cdot \frac{1}{6} + \left(x \cdot a\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{2}\right)\right) + x \cdot a\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{e^{3 \cdot \left(x \cdot a\right)} \cdot e^{3 \cdot \left(x \cdot a\right)} - \left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(1 \cdot 1\right) \cdot 1\right)}{e^{3 \cdot \left(x \cdot a\right)} + \left(1 \cdot 1\right) \cdot 1}}{\left(e^{x \cdot a} \cdot 1 + 1 \cdot 1\right) + e^{x \cdot a} \cdot e^{x \cdot a}}\\ \end{array}\]
e^{a \cdot x} - 1
\begin{array}{l}
\mathbf{if}\;a \le -256359444096060671088636065161355062149100:\\
\;\;\;\;\frac{e^{3 \cdot \left(x \cdot a\right)} - \left(1 \cdot 1\right) \cdot 1}{e^{x \cdot a} \cdot e^{x \cdot a} + \left(1 \cdot 1 + 1 \cdot \left(\sqrt[3]{e^{x \cdot a}} \cdot \left(\sqrt[3]{e^{x \cdot a}} \cdot \sqrt[3]{e^{x \cdot a}}\right)\right)\right)}\\

\mathbf{elif}\;a \le 4.908437356722725707183693128072816852345 \cdot 10^{208}:\\
\;\;\;\;\left(\left(\left(\left(x \cdot a\right) \cdot \left(x \cdot a\right)\right) \cdot \left(x \cdot a\right)\right) \cdot \frac{1}{6} + \left(x \cdot a\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{2}\right)\right) + x \cdot a\\

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

\end{array}
double f(double a, double x) {
        double r5040552 = a;
        double r5040553 = x;
        double r5040554 = r5040552 * r5040553;
        double r5040555 = exp(r5040554);
        double r5040556 = 1.0;
        double r5040557 = r5040555 - r5040556;
        return r5040557;
}

double f(double a, double x) {
        double r5040558 = a;
        double r5040559 = -2.5635944409606067e+41;
        bool r5040560 = r5040558 <= r5040559;
        double r5040561 = 3.0;
        double r5040562 = x;
        double r5040563 = r5040562 * r5040558;
        double r5040564 = r5040561 * r5040563;
        double r5040565 = exp(r5040564);
        double r5040566 = 1.0;
        double r5040567 = r5040566 * r5040566;
        double r5040568 = r5040567 * r5040566;
        double r5040569 = r5040565 - r5040568;
        double r5040570 = exp(r5040563);
        double r5040571 = r5040570 * r5040570;
        double r5040572 = cbrt(r5040570);
        double r5040573 = r5040572 * r5040572;
        double r5040574 = r5040572 * r5040573;
        double r5040575 = r5040566 * r5040574;
        double r5040576 = r5040567 + r5040575;
        double r5040577 = r5040571 + r5040576;
        double r5040578 = r5040569 / r5040577;
        double r5040579 = 4.908437356722726e+208;
        bool r5040580 = r5040558 <= r5040579;
        double r5040581 = r5040563 * r5040563;
        double r5040582 = r5040581 * r5040563;
        double r5040583 = 0.16666666666666666;
        double r5040584 = r5040582 * r5040583;
        double r5040585 = 0.5;
        double r5040586 = r5040563 * r5040585;
        double r5040587 = r5040563 * r5040586;
        double r5040588 = r5040584 + r5040587;
        double r5040589 = r5040588 + r5040563;
        double r5040590 = r5040565 * r5040565;
        double r5040591 = r5040568 * r5040568;
        double r5040592 = r5040590 - r5040591;
        double r5040593 = r5040565 + r5040568;
        double r5040594 = r5040592 / r5040593;
        double r5040595 = r5040570 * r5040566;
        double r5040596 = r5040595 + r5040567;
        double r5040597 = r5040596 + r5040571;
        double r5040598 = r5040594 / r5040597;
        double r5040599 = r5040580 ? r5040589 : r5040598;
        double r5040600 = r5040560 ? r5040578 : r5040599;
        return r5040600;
}

Error

Bits error versus a

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original29.7
Target0.2
Herbie14.7
\[\begin{array}{l} \mathbf{if}\;\left|a \cdot x\right| \lt 0.1000000000000000055511151231257827021182:\\ \;\;\;\;\left(a \cdot x\right) \cdot \left(1 + \left(\frac{a \cdot x}{2} + \frac{{\left(a \cdot x\right)}^{2}}{6}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;e^{a \cdot x} - 1\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if a < -2.5635944409606067e+41

    1. Initial program 20.4

      \[e^{a \cdot x} - 1\]
    2. Using strategy rm
    3. Applied flip3--20.4

      \[\leadsto \color{blue}{\frac{{\left(e^{a \cdot x}\right)}^{3} - {1}^{3}}{e^{a \cdot x} \cdot e^{a \cdot x} + \left(1 \cdot 1 + e^{a \cdot x} \cdot 1\right)}}\]
    4. Simplified20.3

      \[\leadsto \frac{\color{blue}{e^{3 \cdot \left(x \cdot a\right)} - \left(1 \cdot 1\right) \cdot 1}}{e^{a \cdot x} \cdot e^{a \cdot x} + \left(1 \cdot 1 + e^{a \cdot x} \cdot 1\right)}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt20.3

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

    if -2.5635944409606067e+41 < a < 4.908437356722726e+208

    1. Initial program 33.5

      \[e^{a \cdot x} - 1\]
    2. Taylor expanded around 0 23.0

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(a \cdot x + \frac{1}{6} \cdot \left({a}^{3} \cdot {x}^{3}\right)\right)}\]
    3. Simplified13.9

      \[\leadsto \color{blue}{x \cdot a + \left(\left(\left(a \cdot x\right) \cdot \left(\left(a \cdot x\right) \cdot \left(a \cdot x\right)\right)\right) \cdot \frac{1}{6} + \left(x \cdot a\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{2}\right)\right)}\]

    if 4.908437356722726e+208 < a

    1. Initial program 7.2

      \[e^{a \cdot x} - 1\]
    2. Using strategy rm
    3. Applied flip3--7.3

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

      \[\leadsto \frac{\color{blue}{e^{3 \cdot \left(x \cdot a\right)} - \left(1 \cdot 1\right) \cdot 1}}{e^{a \cdot x} \cdot e^{a \cdot x} + \left(1 \cdot 1 + e^{a \cdot x} \cdot 1\right)}\]
    5. Using strategy rm
    6. Applied flip--7.2

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -256359444096060671088636065161355062149100:\\ \;\;\;\;\frac{e^{3 \cdot \left(x \cdot a\right)} - \left(1 \cdot 1\right) \cdot 1}{e^{x \cdot a} \cdot e^{x \cdot a} + \left(1 \cdot 1 + 1 \cdot \left(\sqrt[3]{e^{x \cdot a}} \cdot \left(\sqrt[3]{e^{x \cdot a}} \cdot \sqrt[3]{e^{x \cdot a}}\right)\right)\right)}\\ \mathbf{elif}\;a \le 4.908437356722725707183693128072816852345 \cdot 10^{208}:\\ \;\;\;\;\left(\left(\left(\left(x \cdot a\right) \cdot \left(x \cdot a\right)\right) \cdot \left(x \cdot a\right)\right) \cdot \frac{1}{6} + \left(x \cdot a\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{2}\right)\right) + x \cdot a\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{e^{3 \cdot \left(x \cdot a\right)} \cdot e^{3 \cdot \left(x \cdot a\right)} - \left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(1 \cdot 1\right) \cdot 1\right)}{e^{3 \cdot \left(x \cdot a\right)} + \left(1 \cdot 1\right) \cdot 1}}{\left(e^{x \cdot a} \cdot 1 + 1 \cdot 1\right) + e^{x \cdot a} \cdot e^{x \cdot a}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019168 
(FPCore (a x)
  :name "expax (section 3.5)"
  :herbie-expected 14

  :herbie-target
  (if (< (fabs (* a x)) 0.1) (* (* a x) (+ 1.0 (+ (/ (* a x) 2.0) (/ (pow (* a x) 2.0) 6.0)))) (- (exp (* a x)) 1.0))

  (- (exp (* a x)) 1.0))