Average Error: 29.6 → 9.3
Time: 20.4s
Precision: 64
\[e^{a \cdot x} - 1\]
\[\begin{array}{l} \mathbf{if}\;a \cdot x \le -2.536076851648752571026748931861465062852 \cdot 10^{-20}:\\ \;\;\;\;\frac{\frac{\left(\sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}} \cdot \sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}\right) \cdot \sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}}{1 \cdot 1 + {\left(e^{2}\right)}^{\left(a \cdot x\right)}}}{e^{a \cdot x} + 1}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(0.1666666666666665186369300499791279435158 \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)\\ \end{array}\]
e^{a \cdot x} - 1
\begin{array}{l}
\mathbf{if}\;a \cdot x \le -2.536076851648752571026748931861465062852 \cdot 10^{-20}:\\
\;\;\;\;\frac{\frac{\left(\sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}} \cdot \sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}\right) \cdot \sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}}{1 \cdot 1 + {\left(e^{2}\right)}^{\left(a \cdot x\right)}}}{e^{a \cdot x} + 1}\\

\mathbf{else}:\\
\;\;\;\;0.5 \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(0.1666666666666665186369300499791279435158 \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)\\

\end{array}
double f(double a, double x) {
        double r98532 = a;
        double r98533 = x;
        double r98534 = r98532 * r98533;
        double r98535 = exp(r98534);
        double r98536 = 1.0;
        double r98537 = r98535 - r98536;
        return r98537;
}

double f(double a, double x) {
        double r98538 = a;
        double r98539 = x;
        double r98540 = r98538 * r98539;
        double r98541 = -2.5360768516487526e-20;
        bool r98542 = r98540 <= r98541;
        double r98543 = 12.0;
        double r98544 = r98540 * r98543;
        double r98545 = exp(r98544);
        double r98546 = 1.0;
        double r98547 = 4.0;
        double r98548 = pow(r98546, r98547);
        double r98549 = 3.0;
        double r98550 = pow(r98548, r98549);
        double r98551 = r98545 - r98550;
        double r98552 = 8.0;
        double r98553 = pow(r98546, r98552);
        double r98554 = exp(r98540);
        double r98555 = pow(r98554, r98552);
        double r98556 = r98553 + r98555;
        double r98557 = r98540 * r98547;
        double r98558 = exp(r98557);
        double r98559 = r98558 * r98548;
        double r98560 = r98556 + r98559;
        double r98561 = r98551 / r98560;
        double r98562 = cbrt(r98561);
        double r98563 = r98562 * r98562;
        double r98564 = r98563 * r98562;
        double r98565 = r98546 * r98546;
        double r98566 = 2.0;
        double r98567 = exp(r98566);
        double r98568 = pow(r98567, r98540);
        double r98569 = r98565 + r98568;
        double r98570 = r98564 / r98569;
        double r98571 = r98554 + r98546;
        double r98572 = r98570 / r98571;
        double r98573 = 0.5;
        double r98574 = pow(r98538, r98566);
        double r98575 = pow(r98539, r98566);
        double r98576 = r98574 * r98575;
        double r98577 = r98573 * r98576;
        double r98578 = 0.16666666666666652;
        double r98579 = pow(r98538, r98549);
        double r98580 = pow(r98539, r98549);
        double r98581 = r98579 * r98580;
        double r98582 = r98578 * r98581;
        double r98583 = r98546 * r98540;
        double r98584 = r98582 + r98583;
        double r98585 = r98577 + r98584;
        double r98586 = r98542 ? r98572 : r98585;
        return r98586;
}

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.6
Target0.2
Herbie9.3
\[\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 2 regimes
  2. if (* a x) < -2.5360768516487526e-20

    1. Initial program 1.9

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

      \[\leadsto \color{blue}{\frac{e^{a \cdot x} \cdot e^{a \cdot x} - 1 \cdot 1}{e^{a \cdot x} + 1}}\]
    4. Simplified1.8

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

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

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

      \[\leadsto \frac{\frac{e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}}{\color{blue}{1 \cdot 1 + {\left(e^{2}\right)}^{\left(a \cdot x\right)}}}}{e^{a \cdot x} + 1}\]
    9. Using strategy rm
    10. Applied flip3--1.8

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

      \[\leadsto \frac{\frac{\frac{{\left(e^{\left(a \cdot x\right) \cdot 4}\right)}^{3} - {\left({1}^{4}\right)}^{3}}{\color{blue}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}}{1 \cdot 1 + {\left(e^{2}\right)}^{\left(a \cdot x\right)}}}{e^{a \cdot x} + 1}\]
    12. Using strategy rm
    13. Applied add-cube-cbrt1.8

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

      \[\leadsto \frac{\frac{\color{blue}{\left(\sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}} \cdot \sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}\right)} \cdot \sqrt[3]{\frac{{\left(e^{\left(a \cdot x\right) \cdot 4}\right)}^{3} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}}{1 \cdot 1 + {\left(e^{2}\right)}^{\left(a \cdot x\right)}}}{e^{a \cdot x} + 1}\]
    15. Simplified1.7

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

    if -2.5360768516487526e-20 < (* a x)

    1. Initial program 45.0

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

      \[\leadsto \color{blue}{\frac{e^{a \cdot x} \cdot e^{a \cdot x} - 1 \cdot 1}{e^{a \cdot x} + 1}}\]
    4. Simplified45.0

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

      \[\leadsto \frac{\color{blue}{\frac{e^{2 \cdot \left(a \cdot x\right)} \cdot e^{2 \cdot \left(a \cdot x\right)} - \left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)}{e^{2 \cdot \left(a \cdot x\right)} + 1 \cdot 1}}}{e^{a \cdot x} + 1}\]
    7. Simplified45.0

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

      \[\leadsto \frac{\frac{e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}}{\color{blue}{1 \cdot 1 + {\left(e^{2}\right)}^{\left(a \cdot x\right)}}}}{e^{a \cdot x} + 1}\]
    9. Taylor expanded around 0 13.6

      \[\leadsto \color{blue}{0.5 \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(0.1666666666666665186369300499791279435158 \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification9.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot x \le -2.536076851648752571026748931861465062852 \cdot 10^{-20}:\\ \;\;\;\;\frac{\frac{\left(\sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}} \cdot \sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}\right) \cdot \sqrt[3]{\frac{e^{\left(a \cdot x\right) \cdot 12} - {\left({1}^{4}\right)}^{3}}{\left({1}^{8} + {\left(e^{a \cdot x}\right)}^{8}\right) + e^{\left(a \cdot x\right) \cdot 4} \cdot {1}^{4}}}}{1 \cdot 1 + {\left(e^{2}\right)}^{\left(a \cdot x\right)}}}{e^{a \cdot x} + 1}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(0.1666666666666665186369300499791279435158 \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)\\ \end{array}\]

Reproduce

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

  :herbie-target
  (if (< (fabs (* a x)) 0.10000000000000001) (* (* a x) (+ 1 (+ (/ (* a x) 2) (/ (pow (* a x) 2) 6)))) (- (exp (* a x)) 1))

  (- (exp (* a x)) 1))