\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -0.00010173923815578526:\\
\;\;\;\;\frac{-1 + e^{x + x}}{x + x \cdot \left(e^{x + x} \cdot e^{x}\right)} \cdot \left(\left(1 - e^{x}\right) + \sqrt[3]{e^{x}} \cdot \left(e^{x} \cdot \left(\sqrt[3]{e^{x}} \cdot \sqrt[3]{e^{x}}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(\frac{1}{2} + x \cdot \frac{1}{6}\right) + 1\\
\end{array}double f(double x) {
double r1749407 = x;
double r1749408 = exp(r1749407);
double r1749409 = 1.0;
double r1749410 = r1749408 - r1749409;
double r1749411 = r1749410 / r1749407;
return r1749411;
}
double f(double x) {
double r1749412 = x;
double r1749413 = -0.00010173923815578526;
bool r1749414 = r1749412 <= r1749413;
double r1749415 = -1.0;
double r1749416 = r1749412 + r1749412;
double r1749417 = exp(r1749416);
double r1749418 = r1749415 + r1749417;
double r1749419 = exp(r1749412);
double r1749420 = r1749417 * r1749419;
double r1749421 = r1749412 * r1749420;
double r1749422 = r1749412 + r1749421;
double r1749423 = r1749418 / r1749422;
double r1749424 = 1.0;
double r1749425 = r1749424 - r1749419;
double r1749426 = cbrt(r1749419);
double r1749427 = r1749426 * r1749426;
double r1749428 = r1749419 * r1749427;
double r1749429 = r1749426 * r1749428;
double r1749430 = r1749425 + r1749429;
double r1749431 = r1749423 * r1749430;
double r1749432 = 0.5;
double r1749433 = 0.16666666666666666;
double r1749434 = r1749412 * r1749433;
double r1749435 = r1749432 + r1749434;
double r1749436 = r1749412 * r1749435;
double r1749437 = r1749436 + r1749424;
double r1749438 = r1749414 ? r1749431 : r1749437;
return r1749438;
}




Bits error versus x
Results
| Original | 39.4 |
|---|---|
| Target | 38.6 |
| Herbie | 0.3 |
if x < -0.00010173923815578526Initial program 0.1
rmApplied flip--0.1
Applied associate-/l/0.1
rmApplied flip3-+0.1
Applied associate-*r/0.1
Applied associate-/r/0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied associate-*r*0.1
if -0.00010173923815578526 < x Initial program 60.3
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2019153
(FPCore (x)
:name "Kahan's exp quotient"
:herbie-target
(if (and (< x 1) (> x -1)) (/ (- (exp x) 1) (log (exp x))) (/ (- (exp x) 1) x))
(/ (- (exp x) 1) x))