Average Error: 29.6 → 18.5
Time: 14.0s
Precision: 64
\[e^{a \cdot x} - 1\]
\[\begin{array}{l} \mathbf{if}\;a \le -1.19588563424716459 \cdot 10^{42}:\\ \;\;\;\;\frac{e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}}{\sqrt{e^{a \cdot x} + 1}} \cdot \frac{\frac{1}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right)}}{\sqrt{e^{a \cdot x} + 1}}\\ \mathbf{elif}\;a \le 6.8038182321282743 \cdot 10^{-263}:\\ \;\;\;\;\mathsf{fma}\left(x, a, {x}^{2} \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot x + \frac{1}{2} \cdot {a}^{2}\right)\right)\\ \mathbf{elif}\;a \le 2.34411061506686651 \cdot 10^{-154}:\\ \;\;\;\;\frac{\frac{\frac{{\left({\left(e^{a \cdot x}\right)}^{8}\right)}^{3} - {\left({1}^{8}\right)}^{3}}{\mathsf{fma}\left({1}^{8}, {\left(e^{a \cdot x}\right)}^{8}, {\left(e^{a \cdot x}\right)}^{16} + {1}^{16}\right)}}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right) \cdot \left(e^{\left(a \cdot x\right) \cdot 4} + {1}^{4}\right)}}{e^{a \cdot x} + 1}\\ \mathbf{elif}\;a \le 5.46227838415382305 \cdot 10^{102}:\\ \;\;\;\;\mathsf{fma}\left(x, a, {x}^{2} \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot x + \frac{1}{2} \cdot {a}^{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{e^{\left(a \cdot x\right) \cdot 6} - {1}^{6}}{\mathsf{fma}\left(1 \cdot 1, \mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right), e^{\left(a \cdot x\right) \cdot 4}\right)}}{e^{a \cdot x} + 1}\\ \end{array}\]
e^{a \cdot x} - 1
\begin{array}{l}
\mathbf{if}\;a \le -1.19588563424716459 \cdot 10^{42}:\\
\;\;\;\;\frac{e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}}{\sqrt{e^{a \cdot x} + 1}} \cdot \frac{\frac{1}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right)}}{\sqrt{e^{a \cdot x} + 1}}\\

\mathbf{elif}\;a \le 6.8038182321282743 \cdot 10^{-263}:\\
\;\;\;\;\mathsf{fma}\left(x, a, {x}^{2} \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot x + \frac{1}{2} \cdot {a}^{2}\right)\right)\\

\mathbf{elif}\;a \le 2.34411061506686651 \cdot 10^{-154}:\\
\;\;\;\;\frac{\frac{\frac{{\left({\left(e^{a \cdot x}\right)}^{8}\right)}^{3} - {\left({1}^{8}\right)}^{3}}{\mathsf{fma}\left({1}^{8}, {\left(e^{a \cdot x}\right)}^{8}, {\left(e^{a \cdot x}\right)}^{16} + {1}^{16}\right)}}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right) \cdot \left(e^{\left(a \cdot x\right) \cdot 4} + {1}^{4}\right)}}{e^{a \cdot x} + 1}\\

\mathbf{elif}\;a \le 5.46227838415382305 \cdot 10^{102}:\\
\;\;\;\;\mathsf{fma}\left(x, a, {x}^{2} \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot x + \frac{1}{2} \cdot {a}^{2}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{e^{\left(a \cdot x\right) \cdot 6} - {1}^{6}}{\mathsf{fma}\left(1 \cdot 1, \mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right), e^{\left(a \cdot x\right) \cdot 4}\right)}}{e^{a \cdot x} + 1}\\

\end{array}
double f(double a, double x) {
        double r111737 = a;
        double r111738 = x;
        double r111739 = r111737 * r111738;
        double r111740 = exp(r111739);
        double r111741 = 1.0;
        double r111742 = r111740 - r111741;
        return r111742;
}

double f(double a, double x) {
        double r111743 = a;
        double r111744 = -1.1958856342471646e+42;
        bool r111745 = r111743 <= r111744;
        double r111746 = x;
        double r111747 = r111743 * r111746;
        double r111748 = 4.0;
        double r111749 = r111747 * r111748;
        double r111750 = exp(r111749);
        double r111751 = 1.0;
        double r111752 = pow(r111751, r111748);
        double r111753 = r111750 - r111752;
        double r111754 = exp(r111747);
        double r111755 = r111754 + r111751;
        double r111756 = sqrt(r111755);
        double r111757 = r111753 / r111756;
        double r111758 = 1.0;
        double r111759 = 2.0;
        double r111760 = r111759 * r111743;
        double r111761 = r111746 * r111760;
        double r111762 = exp(r111761);
        double r111763 = fma(r111751, r111751, r111762);
        double r111764 = r111758 / r111763;
        double r111765 = r111764 / r111756;
        double r111766 = r111757 * r111765;
        double r111767 = 6.803818232128274e-263;
        bool r111768 = r111743 <= r111767;
        double r111769 = pow(r111746, r111759);
        double r111770 = 0.16666666666666666;
        double r111771 = 3.0;
        double r111772 = pow(r111743, r111771);
        double r111773 = r111770 * r111772;
        double r111774 = r111773 * r111746;
        double r111775 = 0.5;
        double r111776 = pow(r111743, r111759);
        double r111777 = r111775 * r111776;
        double r111778 = r111774 + r111777;
        double r111779 = r111769 * r111778;
        double r111780 = fma(r111746, r111743, r111779);
        double r111781 = 2.3441106150668665e-154;
        bool r111782 = r111743 <= r111781;
        double r111783 = 8.0;
        double r111784 = pow(r111754, r111783);
        double r111785 = pow(r111784, r111771);
        double r111786 = pow(r111751, r111783);
        double r111787 = pow(r111786, r111771);
        double r111788 = r111785 - r111787;
        double r111789 = 16.0;
        double r111790 = pow(r111754, r111789);
        double r111791 = pow(r111751, r111789);
        double r111792 = r111790 + r111791;
        double r111793 = fma(r111786, r111784, r111792);
        double r111794 = r111788 / r111793;
        double r111795 = r111750 + r111752;
        double r111796 = r111763 * r111795;
        double r111797 = r111794 / r111796;
        double r111798 = r111797 / r111755;
        double r111799 = 5.462278384153823e+102;
        bool r111800 = r111743 <= r111799;
        double r111801 = 6.0;
        double r111802 = r111747 * r111801;
        double r111803 = exp(r111802);
        double r111804 = pow(r111751, r111801);
        double r111805 = r111803 - r111804;
        double r111806 = r111751 * r111751;
        double r111807 = fma(r111806, r111763, r111750);
        double r111808 = r111805 / r111807;
        double r111809 = r111808 / r111755;
        double r111810 = r111800 ? r111780 : r111809;
        double r111811 = r111782 ? r111798 : r111810;
        double r111812 = r111768 ? r111780 : r111811;
        double r111813 = r111745 ? r111766 : r111812;
        return r111813;
}

Error

Bits error versus a

Bits error versus x

Target

Original29.6
Target0.2
Herbie18.5
\[\begin{array}{l} \mathbf{if}\;\left|a \cdot x\right| \lt 0.10000000000000001:\\ \;\;\;\;\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 4 regimes
  2. if a < -1.1958856342471646e+42

    1. Initial program 19.7

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

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

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

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

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

      \[\leadsto \frac{\frac{e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}}{\color{blue}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right)}}}{e^{a \cdot x} + 1}\]
    9. Using strategy rm
    10. Applied add-sqr-sqrt19.7

      \[\leadsto \frac{\frac{e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right)}}{\color{blue}{\sqrt{e^{a \cdot x} + 1} \cdot \sqrt{e^{a \cdot x} + 1}}}\]
    11. Applied div-inv19.7

      \[\leadsto \frac{\color{blue}{\left(e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}\right) \cdot \frac{1}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right)}}}{\sqrt{e^{a \cdot x} + 1} \cdot \sqrt{e^{a \cdot x} + 1}}\]
    12. Applied times-frac19.7

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

    if -1.1958856342471646e+42 < a < 6.803818232128274e-263 or 2.3441106150668665e-154 < a < 5.462278384153823e+102

    1. Initial program 35.5

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

      \[\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)}\]
    3. Simplified16.4

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

    if 6.803818232128274e-263 < a < 2.3441106150668665e-154

    1. Initial program 32.3

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

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

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

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

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

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

      \[\leadsto \frac{\frac{\color{blue}{\frac{e^{\left(a \cdot x\right) \cdot 4} \cdot e^{\left(a \cdot x\right) \cdot 4} - {1}^{4} \cdot {1}^{4}}{e^{\left(a \cdot x\right) \cdot 4} + {1}^{4}}}}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right)}}{e^{a \cdot x} + 1}\]
    11. Applied associate-/l/32.2

      \[\leadsto \frac{\color{blue}{\frac{e^{\left(a \cdot x\right) \cdot 4} \cdot e^{\left(a \cdot x\right) \cdot 4} - {1}^{4} \cdot {1}^{4}}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right) \cdot \left(e^{\left(a \cdot x\right) \cdot 4} + {1}^{4}\right)}}}{e^{a \cdot x} + 1}\]
    12. Using strategy rm
    13. Applied flip3--32.3

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

      \[\leadsto \frac{\frac{\frac{\color{blue}{{\left({\left(e^{a \cdot x}\right)}^{8}\right)}^{3} - {\left({1}^{8}\right)}^{3}}}{\left(e^{\left(a \cdot x\right) \cdot 4} \cdot e^{\left(a \cdot x\right) \cdot 4}\right) \cdot \left(e^{\left(a \cdot x\right) \cdot 4} \cdot e^{\left(a \cdot x\right) \cdot 4}\right) + \left(\left({1}^{4} \cdot {1}^{4}\right) \cdot \left({1}^{4} \cdot {1}^{4}\right) + \left(e^{\left(a \cdot x\right) \cdot 4} \cdot e^{\left(a \cdot x\right) \cdot 4}\right) \cdot \left({1}^{4} \cdot {1}^{4}\right)\right)}}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right) \cdot \left(e^{\left(a \cdot x\right) \cdot 4} + {1}^{4}\right)}}{e^{a \cdot x} + 1}\]
    15. Simplified32.4

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

    if 5.462278384153823e+102 < a

    1. Initial program 15.0

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

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

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

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

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

      \[\leadsto \frac{\frac{e^{\left(a \cdot x\right) \cdot 6} - {1}^{6}}{\color{blue}{\mathsf{fma}\left(1 \cdot 1, \mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right), e^{\left(a \cdot x\right) \cdot 4}\right)}}}{e^{a \cdot x} + 1}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification18.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -1.19588563424716459 \cdot 10^{42}:\\ \;\;\;\;\frac{e^{\left(a \cdot x\right) \cdot 4} - {1}^{4}}{\sqrt{e^{a \cdot x} + 1}} \cdot \frac{\frac{1}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right)}}{\sqrt{e^{a \cdot x} + 1}}\\ \mathbf{elif}\;a \le 6.8038182321282743 \cdot 10^{-263}:\\ \;\;\;\;\mathsf{fma}\left(x, a, {x}^{2} \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot x + \frac{1}{2} \cdot {a}^{2}\right)\right)\\ \mathbf{elif}\;a \le 2.34411061506686651 \cdot 10^{-154}:\\ \;\;\;\;\frac{\frac{\frac{{\left({\left(e^{a \cdot x}\right)}^{8}\right)}^{3} - {\left({1}^{8}\right)}^{3}}{\mathsf{fma}\left({1}^{8}, {\left(e^{a \cdot x}\right)}^{8}, {\left(e^{a \cdot x}\right)}^{16} + {1}^{16}\right)}}{\mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right) \cdot \left(e^{\left(a \cdot x\right) \cdot 4} + {1}^{4}\right)}}{e^{a \cdot x} + 1}\\ \mathbf{elif}\;a \le 5.46227838415382305 \cdot 10^{102}:\\ \;\;\;\;\mathsf{fma}\left(x, a, {x}^{2} \cdot \left(\left(\frac{1}{6} \cdot {a}^{3}\right) \cdot x + \frac{1}{2} \cdot {a}^{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{e^{\left(a \cdot x\right) \cdot 6} - {1}^{6}}{\mathsf{fma}\left(1 \cdot 1, \mathsf{fma}\left(1, 1, e^{x \cdot \left(2 \cdot a\right)}\right), e^{\left(a \cdot x\right) \cdot 4}\right)}}{e^{a \cdot x} + 1}\\ \end{array}\]

Reproduce

herbie shell --seed 2020043 +o rules:numerics
(FPCore (a x)
  :name "expax (section 3.5)"
  :precision binary64
  :herbie-expected 14

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

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