\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -1.668911236678853246811343735700461365923 \cdot 10^{-4}:\\
\;\;\;\;\frac{e^{x} - 1}{x}\\
\mathbf{else}:\\
\;\;\;\;1 + x \cdot \left(\frac{1}{6} \cdot x + \frac{1}{2}\right)\\
\end{array}double f(double x) {
double r3911279 = x;
double r3911280 = exp(r3911279);
double r3911281 = 1.0;
double r3911282 = r3911280 - r3911281;
double r3911283 = r3911282 / r3911279;
return r3911283;
}
double f(double x) {
double r3911284 = x;
double r3911285 = -0.00016689112366788532;
bool r3911286 = r3911284 <= r3911285;
double r3911287 = exp(r3911284);
double r3911288 = 1.0;
double r3911289 = r3911287 - r3911288;
double r3911290 = r3911289 / r3911284;
double r3911291 = 1.0;
double r3911292 = 0.16666666666666666;
double r3911293 = r3911292 * r3911284;
double r3911294 = 0.5;
double r3911295 = r3911293 + r3911294;
double r3911296 = r3911284 * r3911295;
double r3911297 = r3911291 + r3911296;
double r3911298 = r3911286 ? r3911290 : r3911297;
return r3911298;
}




Bits error versus x
Results
| Original | 40.1 |
|---|---|
| Target | 40.5 |
| Herbie | 0.3 |
if x < -0.00016689112366788532Initial program 0.0
if -0.00016689112366788532 < x Initial program 60.1
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2019172
(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))