Average Error: 39.8 → 0.4
Time: 13.2s
Precision: 64
\[\frac{e^{x} - 1}{x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -1.670496352740291341569534022681864371407 \cdot 10^{-4}:\\ \;\;\;\;\left(1 \cdot 1 - \left(e^{x} + 1\right) \cdot e^{x}\right) \cdot \frac{{\left({\left(e^{x}\right)}^{3}\right)}^{3} - {\left({1}^{3}\right)}^{3}}{\left(x \cdot \left({\left(e^{x}\right)}^{6} + \left({1}^{6} + {1}^{3} \cdot {\left(e^{x}\right)}^{3}\right)\right)\right) \cdot \left({1}^{4} - {\left(e^{x}\right)}^{2} \cdot {\left(e^{x} + 1\right)}^{2}\right)}\\ \mathbf{else}:\\ \;\;\;\;1 + \left(x \cdot \frac{1}{6} + \frac{1}{2}\right) \cdot x\\ \end{array}\]
\frac{e^{x} - 1}{x}
\begin{array}{l}
\mathbf{if}\;x \le -1.670496352740291341569534022681864371407 \cdot 10^{-4}:\\
\;\;\;\;\left(1 \cdot 1 - \left(e^{x} + 1\right) \cdot e^{x}\right) \cdot \frac{{\left({\left(e^{x}\right)}^{3}\right)}^{3} - {\left({1}^{3}\right)}^{3}}{\left(x \cdot \left({\left(e^{x}\right)}^{6} + \left({1}^{6} + {1}^{3} \cdot {\left(e^{x}\right)}^{3}\right)\right)\right) \cdot \left({1}^{4} - {\left(e^{x}\right)}^{2} \cdot {\left(e^{x} + 1\right)}^{2}\right)}\\

\mathbf{else}:\\
\;\;\;\;1 + \left(x \cdot \frac{1}{6} + \frac{1}{2}\right) \cdot x\\

\end{array}
double f(double x) {
        double r71113 = x;
        double r71114 = exp(r71113);
        double r71115 = 1.0;
        double r71116 = r71114 - r71115;
        double r71117 = r71116 / r71113;
        return r71117;
}

double f(double x) {
        double r71118 = x;
        double r71119 = -0.00016704963527402913;
        bool r71120 = r71118 <= r71119;
        double r71121 = 1.0;
        double r71122 = r71121 * r71121;
        double r71123 = exp(r71118);
        double r71124 = r71123 + r71121;
        double r71125 = r71124 * r71123;
        double r71126 = r71122 - r71125;
        double r71127 = 3.0;
        double r71128 = pow(r71123, r71127);
        double r71129 = pow(r71128, r71127);
        double r71130 = pow(r71121, r71127);
        double r71131 = pow(r71130, r71127);
        double r71132 = r71129 - r71131;
        double r71133 = 6.0;
        double r71134 = pow(r71123, r71133);
        double r71135 = pow(r71121, r71133);
        double r71136 = r71130 * r71128;
        double r71137 = r71135 + r71136;
        double r71138 = r71134 + r71137;
        double r71139 = r71118 * r71138;
        double r71140 = 4.0;
        double r71141 = pow(r71121, r71140);
        double r71142 = 2.0;
        double r71143 = pow(r71123, r71142);
        double r71144 = pow(r71124, r71142);
        double r71145 = r71143 * r71144;
        double r71146 = r71141 - r71145;
        double r71147 = r71139 * r71146;
        double r71148 = r71132 / r71147;
        double r71149 = r71126 * r71148;
        double r71150 = 1.0;
        double r71151 = 0.16666666666666666;
        double r71152 = r71118 * r71151;
        double r71153 = 0.5;
        double r71154 = r71152 + r71153;
        double r71155 = r71154 * r71118;
        double r71156 = r71150 + r71155;
        double r71157 = r71120 ? r71149 : r71156;
        return r71157;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original39.8
Target40.2
Herbie0.4
\[\begin{array}{l} \mathbf{if}\;x \lt 1 \land x \gt -1:\\ \;\;\;\;\frac{e^{x} - 1}{\log \left(e^{x}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{x} - 1}{x}\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if x < -0.00016704963527402913

    1. Initial program 0.1

      \[\frac{e^{x} - 1}{x}\]
    2. Using strategy rm
    3. Applied flip3--0.1

      \[\leadsto \frac{\color{blue}{\frac{{\left(e^{x}\right)}^{3} - {1}^{3}}{e^{x} \cdot e^{x} + \left(1 \cdot 1 + e^{x} \cdot 1\right)}}}{x}\]
    4. Applied associate-/l/0.1

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

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

      \[\leadsto \frac{{\left(e^{x}\right)}^{3} - {1}^{3}}{x \cdot \color{blue}{\frac{\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(e^{x} \cdot \left(1 + e^{x}\right)\right) \cdot \left(e^{x} \cdot \left(1 + e^{x}\right)\right)}{1 \cdot 1 - e^{x} \cdot \left(1 + e^{x}\right)}}}\]
    8. Applied associate-*r/0.1

      \[\leadsto \frac{{\left(e^{x}\right)}^{3} - {1}^{3}}{\color{blue}{\frac{x \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right) - \left(e^{x} \cdot \left(1 + e^{x}\right)\right) \cdot \left(e^{x} \cdot \left(1 + e^{x}\right)\right)\right)}{1 \cdot 1 - e^{x} \cdot \left(1 + e^{x}\right)}}}\]
    9. Applied associate-/r/0.1

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

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

      \[\leadsto \frac{\color{blue}{\frac{{\left({\left(e^{x}\right)}^{3}\right)}^{3} - {\left({1}^{3}\right)}^{3}}{{\left(e^{x}\right)}^{3} \cdot {\left(e^{x}\right)}^{3} + \left({1}^{3} \cdot {1}^{3} + {\left(e^{x}\right)}^{3} \cdot {1}^{3}\right)}}}{\left({1}^{4} - \left(\left(1 + e^{x}\right) \cdot \left(1 + e^{x}\right)\right) \cdot e^{x + x}\right) \cdot x} \cdot \left(1 \cdot 1 - e^{x} \cdot \left(1 + e^{x}\right)\right)\]
    13. Applied associate-/l/0.1

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

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

    if -0.00016704963527402913 < x

    1. Initial program 60.0

      \[\frac{e^{x} - 1}{x}\]
    2. Taylor expanded around 0 0.5

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

      \[\leadsto \color{blue}{x \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot x\right) + 1}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.4

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

Reproduce

herbie shell --seed 2019195 
(FPCore (x)
  :name "Kahan's exp quotient"

  :herbie-target
  (if (and (< x 1.0) (> x -1.0)) (/ (- (exp x) 1.0) (log (exp x))) (/ (- (exp x) 1.0) x))

  (/ (- (exp x) 1.0) x))