Average Error: 28.8 → 9.2
Time: 6.1s
Precision: 64
\[e^{a \cdot x} - 1\]
\[\begin{array}{l} \mathbf{if}\;a \cdot x \le -1.329808343447672717064931896446979645784 \cdot 10^{-41}:\\ \;\;\;\;\frac{{\left(e^{a \cdot x}\right)}^{3} - {1}^{3}}{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}\\ \mathbf{elif}\;a \cdot x \le 1.844725457757833201712047371261704618537 \cdot 10^{-15}:\\ \;\;\;\;x \cdot \left(a + \left(\frac{1}{2} \cdot {a}^{2}\right) \cdot x\right) + \frac{1}{6} \cdot \left({a}^{3} \cdot {x}^{3}\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\sqrt{e^{a \cdot x}}\right)}^{\frac{5}{3}} \cdot \sqrt[3]{\sqrt{e^{a \cdot x}}} - 1\\ \end{array}\]
e^{a \cdot x} - 1
\begin{array}{l}
\mathbf{if}\;a \cdot x \le -1.329808343447672717064931896446979645784 \cdot 10^{-41}:\\
\;\;\;\;\frac{{\left(e^{a \cdot x}\right)}^{3} - {1}^{3}}{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}\\

\mathbf{elif}\;a \cdot x \le 1.844725457757833201712047371261704618537 \cdot 10^{-15}:\\
\;\;\;\;x \cdot \left(a + \left(\frac{1}{2} \cdot {a}^{2}\right) \cdot x\right) + \frac{1}{6} \cdot \left({a}^{3} \cdot {x}^{3}\right)\\

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

\end{array}
double f(double a, double x) {
        double r96756 = a;
        double r96757 = x;
        double r96758 = r96756 * r96757;
        double r96759 = exp(r96758);
        double r96760 = 1.0;
        double r96761 = r96759 - r96760;
        return r96761;
}

double f(double a, double x) {
        double r96762 = a;
        double r96763 = x;
        double r96764 = r96762 * r96763;
        double r96765 = -1.3298083434476727e-41;
        bool r96766 = r96764 <= r96765;
        double r96767 = exp(r96764);
        double r96768 = 3.0;
        double r96769 = pow(r96767, r96768);
        double r96770 = 1.0;
        double r96771 = pow(r96770, r96768);
        double r96772 = r96769 - r96771;
        double r96773 = r96767 + r96770;
        double r96774 = r96767 * r96773;
        double r96775 = r96770 * r96770;
        double r96776 = r96774 + r96775;
        double r96777 = r96772 / r96776;
        double r96778 = 1.8447254577578332e-15;
        bool r96779 = r96764 <= r96778;
        double r96780 = 0.5;
        double r96781 = 2.0;
        double r96782 = pow(r96762, r96781);
        double r96783 = r96780 * r96782;
        double r96784 = r96783 * r96763;
        double r96785 = r96762 + r96784;
        double r96786 = r96763 * r96785;
        double r96787 = 0.16666666666666666;
        double r96788 = pow(r96762, r96768);
        double r96789 = pow(r96763, r96768);
        double r96790 = r96788 * r96789;
        double r96791 = r96787 * r96790;
        double r96792 = r96786 + r96791;
        double r96793 = sqrt(r96767);
        double r96794 = 1.6666666666666667;
        double r96795 = pow(r96793, r96794);
        double r96796 = cbrt(r96793);
        double r96797 = r96795 * r96796;
        double r96798 = r96797 - r96770;
        double r96799 = r96779 ? r96792 : r96798;
        double r96800 = r96766 ? r96777 : r96799;
        return r96800;
}

Error

Bits error versus a

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original28.8
Target0.2
Herbie9.2
\[\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) < -1.3298083434476727e-41

    1. Initial program 5.0

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

      \[\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. Simplified5.0

      \[\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}}\]

    if -1.3298083434476727e-41 < (* a x) < 1.8447254577578332e-15

    1. Initial program 44.6

      \[e^{a \cdot x} - 1\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt44.6

      \[\leadsto \color{blue}{\sqrt{e^{a \cdot x}} \cdot \sqrt{e^{a \cdot x}}} - 1\]
    4. Using strategy rm
    5. Applied add-cube-cbrt44.6

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

      \[\leadsto \sqrt{e^{a \cdot x}} \cdot \sqrt{\color{blue}{{\left(\sqrt{\sqrt[3]{e^{a \cdot x}}}\right)}^{4}} \cdot \sqrt[3]{e^{a \cdot x}}} - 1\]
    7. Taylor expanded around 0 11.6

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

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

    if 1.8447254577578332e-15 < (* a x)

    1. Initial program 19.5

      \[e^{a \cdot x} - 1\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt20.4

      \[\leadsto \color{blue}{\sqrt{e^{a \cdot x}} \cdot \sqrt{e^{a \cdot x}}} - 1\]
    4. Using strategy rm
    5. Applied add-cube-cbrt21.5

      \[\leadsto \sqrt{e^{a \cdot x}} \cdot \color{blue}{\left(\left(\sqrt[3]{\sqrt{e^{a \cdot x}}} \cdot \sqrt[3]{\sqrt{e^{a \cdot x}}}\right) \cdot \sqrt[3]{\sqrt{e^{a \cdot x}}}\right)} - 1\]
    6. Applied associate-*r*21.5

      \[\leadsto \color{blue}{\left(\sqrt{e^{a \cdot x}} \cdot \left(\sqrt[3]{\sqrt{e^{a \cdot x}}} \cdot \sqrt[3]{\sqrt{e^{a \cdot x}}}\right)\right) \cdot \sqrt[3]{\sqrt{e^{a \cdot x}}}} - 1\]
    7. Simplified22.2

      \[\leadsto \color{blue}{{\left(\sqrt[3]{\sqrt{e^{a \cdot x}}}\right)}^{5}} \cdot \sqrt[3]{\sqrt{e^{a \cdot x}}} - 1\]
    8. Using strategy rm
    9. Applied pow1/321.5

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

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

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

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

Reproduce

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