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

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

\end{array}
double f(double x) {
        double r74527 = x;
        double r74528 = exp(r74527);
        double r74529 = 1.0;
        double r74530 = r74528 - r74529;
        double r74531 = r74530 / r74527;
        return r74531;
}

double f(double x) {
        double r74532 = x;
        double r74533 = -0.00014256029521601964;
        bool r74534 = r74532 <= r74533;
        double r74535 = 4.0;
        double r74536 = r74532 * r74535;
        double r74537 = exp(r74536);
        double r74538 = r74532 + r74532;
        double r74539 = exp(r74538);
        double r74540 = 1.0;
        double r74541 = r74540 * r74540;
        double r74542 = r74539 + r74541;
        double r74543 = r74537 / r74542;
        double r74544 = exp(r74532);
        double r74545 = r74544 + r74540;
        double r74546 = r74543 / r74545;
        double r74547 = pow(r74540, r74535);
        double r74548 = r74547 / r74542;
        double r74549 = r74548 / r74545;
        double r74550 = r74546 - r74549;
        double r74551 = r74550 / r74532;
        double r74552 = 0.5;
        double r74553 = 0.16666666666666666;
        double r74554 = r74553 * r74532;
        double r74555 = r74552 + r74554;
        double r74556 = r74532 * r74555;
        double r74557 = 1.0;
        double r74558 = r74556 + r74557;
        double r74559 = r74534 ? r74551 : r74558;
        return r74559;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original40.0
Target40.5
Herbie0.3
\[\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.00014256029521601964

    1. Initial program 0.1

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

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

      \[\leadsto \frac{\frac{\color{blue}{e^{x + x} - 1 \cdot 1}}{e^{x} + 1}}{x}\]
    5. Using strategy rm
    6. Applied flip--0.1

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

      \[\leadsto \frac{\frac{\frac{\color{blue}{e^{x \cdot 4} - {1}^{4}}}{e^{x + x} + 1 \cdot 1}}{e^{x} + 1}}{x}\]
    8. Using strategy rm
    9. Applied div-sub0.1

      \[\leadsto \frac{\frac{\color{blue}{\frac{e^{x \cdot 4}}{e^{x + x} + 1 \cdot 1} - \frac{{1}^{4}}{e^{x + x} + 1 \cdot 1}}}{e^{x} + 1}}{x}\]
    10. Applied div-sub0.1

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

    if -0.00014256029521601964 < x

    1. Initial program 60.3

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

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

      \[\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.3

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

Reproduce

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