Average Error: 29.2 → 8.8
Time: 8.1s
Precision: 64
\[e^{a \cdot x} - 1\]
\[\begin{array}{l} \mathbf{if}\;a \cdot x \le \frac{-5354695247752331}{154742504910672534362390528}:\\ \;\;\;\;\frac{\sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}} \cdot \sqrt[3]{\frac{\left(-{1}^{6}\right) + {\left(e^{a \cdot x}\right)}^{6}}{e^{\left(a \cdot x\right) \cdot 3} + {1}^{3}}}}{\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1} \cdot \sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}} \cdot \frac{\sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}}}{\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}}\\ \mathbf{elif}\;a \cdot x \le \frac{7011307703079651}{4835703278458516698824704}:\\ \;\;\;\;\frac{1}{2} \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(\frac{375299968947541}{2251799813685248} \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{{\left(e^{a \cdot x}\right)}^{3} - {1}^{3}}{e^{a \cdot x} \cdot \left(\left(\sqrt[3]{e^{a \cdot x} + 1} \cdot \sqrt[3]{e^{a \cdot x} + 1}\right) \cdot \sqrt[3]{e^{a \cdot x} + 1}\right) + 1 \cdot 1}\\ \end{array}\]
e^{a \cdot x} - 1
\begin{array}{l}
\mathbf{if}\;a \cdot x \le \frac{-5354695247752331}{154742504910672534362390528}:\\
\;\;\;\;\frac{\sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}} \cdot \sqrt[3]{\frac{\left(-{1}^{6}\right) + {\left(e^{a \cdot x}\right)}^{6}}{e^{\left(a \cdot x\right) \cdot 3} + {1}^{3}}}}{\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1} \cdot \sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}} \cdot \frac{\sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}}}{\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}}\\

\mathbf{elif}\;a \cdot x \le \frac{7011307703079651}{4835703278458516698824704}:\\
\;\;\;\;\frac{1}{2} \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(\frac{375299968947541}{2251799813685248} \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)\\

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

\end{array}
double f(double a, double x) {
        double r399279 = a;
        double r399280 = x;
        double r399281 = r399279 * r399280;
        double r399282 = exp(r399281);
        double r399283 = 1.0;
        double r399284 = r399282 - r399283;
        return r399284;
}

double f(double a, double x) {
        double r399285 = a;
        double r399286 = x;
        double r399287 = r399285 * r399286;
        double r399288 = -5354695247752331.0;
        double r399289 = 1.5474250491067253e+26;
        double r399290 = r399288 / r399289;
        bool r399291 = r399287 <= r399290;
        double r399292 = 3.0;
        double r399293 = r399287 * r399292;
        double r399294 = exp(r399293);
        double r399295 = 1.0;
        double r399296 = pow(r399295, r399292);
        double r399297 = r399294 - r399296;
        double r399298 = cbrt(r399297);
        double r399299 = 6.0;
        double r399300 = pow(r399295, r399299);
        double r399301 = -r399300;
        double r399302 = exp(r399287);
        double r399303 = pow(r399302, r399299);
        double r399304 = r399301 + r399303;
        double r399305 = r399294 + r399296;
        double r399306 = r399304 / r399305;
        double r399307 = cbrt(r399306);
        double r399308 = r399298 * r399307;
        double r399309 = r399302 + r399295;
        double r399310 = r399302 * r399309;
        double r399311 = r399295 * r399295;
        double r399312 = r399310 + r399311;
        double r399313 = cbrt(r399312);
        double r399314 = r399313 * r399313;
        double r399315 = r399308 / r399314;
        double r399316 = r399298 / r399313;
        double r399317 = r399315 * r399316;
        double r399318 = 7011307703079651.0;
        double r399319 = 4.835703278458517e+24;
        double r399320 = r399318 / r399319;
        bool r399321 = r399287 <= r399320;
        double r399322 = 2.0;
        double r399323 = r399295 / r399322;
        double r399324 = 2.0;
        double r399325 = pow(r399285, r399324);
        double r399326 = pow(r399286, r399324);
        double r399327 = r399325 * r399326;
        double r399328 = r399323 * r399327;
        double r399329 = 375299968947541.0;
        double r399330 = 2251799813685248.0;
        double r399331 = r399329 / r399330;
        double r399332 = pow(r399285, r399292);
        double r399333 = pow(r399286, r399292);
        double r399334 = r399332 * r399333;
        double r399335 = r399331 * r399334;
        double r399336 = r399295 * r399287;
        double r399337 = r399335 + r399336;
        double r399338 = r399328 + r399337;
        double r399339 = pow(r399302, r399292);
        double r399340 = r399339 - r399296;
        double r399341 = cbrt(r399309);
        double r399342 = r399341 * r399341;
        double r399343 = r399342 * r399341;
        double r399344 = r399302 * r399343;
        double r399345 = r399344 + r399311;
        double r399346 = r399340 / r399345;
        double r399347 = r399321 ? r399338 : r399346;
        double r399348 = r399291 ? r399317 : r399347;
        return r399348;
}

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.2
Target0.2
Herbie8.8
\[\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 x) < -3.4603906992738746e-11

    1. Initial program 0.5

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

      \[\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. Simplified0.5

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

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

      \[\leadsto \frac{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}}{\color{blue}{\left(\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1} \cdot \sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}\right) \cdot \sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}}}\]
    9. Applied add-cube-cbrt0.5

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}} \cdot \sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}}\right) \cdot \sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}}}}{\left(\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1} \cdot \sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}\right) \cdot \sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}}\]
    10. Applied times-frac0.5

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

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

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

    if -3.4603906992738746e-11 < (* a x) < 1.4499044501577968e-09

    1. Initial program 45.2

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

      \[\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. Simplified45.2

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

      \[\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)}\]
    6. Simplified13.3

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(\frac{375299968947541}{2251799813685248} \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)}\]

    if 1.4499044501577968e-09 < (* a x)

    1. Initial program 10.5

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

      \[\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. Simplified10.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \cdot x \le \frac{-5354695247752331}{154742504910672534362390528}:\\ \;\;\;\;\frac{\sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}} \cdot \sqrt[3]{\frac{\left(-{1}^{6}\right) + {\left(e^{a \cdot x}\right)}^{6}}{e^{\left(a \cdot x\right) \cdot 3} + {1}^{3}}}}{\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1} \cdot \sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}} \cdot \frac{\sqrt[3]{e^{\left(a \cdot x\right) \cdot 3} - {1}^{3}}}{\sqrt[3]{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}}\\ \mathbf{elif}\;a \cdot x \le \frac{7011307703079651}{4835703278458516698824704}:\\ \;\;\;\;\frac{1}{2} \cdot \left({a}^{2} \cdot {x}^{2}\right) + \left(\frac{375299968947541}{2251799813685248} \cdot \left({a}^{3} \cdot {x}^{3}\right) + 1 \cdot \left(a \cdot x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{{\left(e^{a \cdot x}\right)}^{3} - {1}^{3}}{e^{a \cdot x} \cdot \left(\left(\sqrt[3]{e^{a \cdot x} + 1} \cdot \sqrt[3]{e^{a \cdot x} + 1}\right) \cdot \sqrt[3]{e^{a \cdot x} + 1}\right) + 1 \cdot 1}\\ \end{array}\]

Reproduce

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