\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -1.45555334023096547 \cdot 10^{-4}:\\
\;\;\;\;\frac{1}{\frac{x}{e^{x} - 1}}\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt[3]{\frac{1}{6} \cdot {x}^{2} + \left(\frac{1}{2} \cdot x + 1\right)} \cdot \left(x \cdot \left(\frac{1}{6} + x \cdot \frac{1}{36}\right) + 1\right)\right) \cdot \left(1 + x \cdot \left(\frac{1}{6} + x \cdot \frac{1}{36}\right)\right)\\
\end{array}double code(double x) {
return ((exp(x) - 1.0) / x);
}
double code(double x) {
double temp;
if ((x <= -0.00014555533402309655)) {
temp = (1.0 / (x / (exp(x) - 1.0)));
} else {
temp = ((cbrt(((0.16666666666666666 * pow(x, 2.0)) + ((0.5 * x) + 1.0))) * ((x * (0.16666666666666666 + (x * 0.027777777777777776))) + 1.0)) * (1.0 + (x * (0.16666666666666666 + (x * 0.027777777777777776)))));
}
return temp;
}




Bits error versus x
Results
| Original | 39.2 |
|---|---|
| Target | 39.6 |
| Herbie | 0.3 |
if x < -0.00014555533402309655Initial program 0.0
rmApplied clear-num0.0
if -0.00014555533402309655 < x Initial program 59.8
Taylor expanded around 0 0.5
rmApplied add-cube-cbrt0.5
Taylor expanded around 0 0.5
Simplified0.5
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2020049
(FPCore (x)
:name "Kahan's exp quotient"
:precision binary64
:herbie-target
(if (and (< x 1) (> x -1)) (/ (- (exp x) 1) (log (exp x))) (/ (- (exp x) 1) x))
(/ (- (exp x) 1) x))