\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -1.125225089524106296704972218769569280994 \cdot 10^{-4}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(e^{x} - 1\right)}^{3}}}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{{x}^{2} \cdot \left(x \cdot \frac{1}{6} + \frac{1}{2}\right) + x}{x}\\
\end{array}double f(double x) {
double r89369 = x;
double r89370 = exp(r89369);
double r89371 = 1.0;
double r89372 = r89370 - r89371;
double r89373 = r89372 / r89369;
return r89373;
}
double f(double x) {
double r89374 = x;
double r89375 = -0.00011252250895241063;
bool r89376 = r89374 <= r89375;
double r89377 = exp(r89374);
double r89378 = 1.0;
double r89379 = r89377 - r89378;
double r89380 = 3.0;
double r89381 = pow(r89379, r89380);
double r89382 = cbrt(r89381);
double r89383 = r89382 / r89374;
double r89384 = 2.0;
double r89385 = pow(r89374, r89384);
double r89386 = 0.16666666666666666;
double r89387 = r89374 * r89386;
double r89388 = 0.5;
double r89389 = r89387 + r89388;
double r89390 = r89385 * r89389;
double r89391 = r89390 + r89374;
double r89392 = r89391 / r89374;
double r89393 = r89376 ? r89383 : r89392;
return r89393;
}




Bits error versus x
Results
| Original | 39.7 |
|---|---|
| Target | 40.1 |
| Herbie | 0.3 |
if x < -0.00011252250895241063Initial program 0.1
rmApplied add-cbrt-cube0.1
Simplified0.1
if -0.00011252250895241063 < x Initial program 60.1
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2019322
(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))