\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -2.140739844429669319451903231055212017964 \cdot 10^{-4}:\\
\;\;\;\;\left(\sqrt{e^{x}} + \sqrt{1}\right) \cdot \frac{\frac{{\left(\sqrt{e^{x}}\right)}^{3} - {\left(\sqrt{1}\right)}^{3}}{e^{x} + \left(1 + \sqrt{e^{x}} \cdot \sqrt{1}\right)}}{x}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot x\right) + 1\\
\end{array}double f(double x) {
double r69330 = x;
double r69331 = exp(r69330);
double r69332 = 1.0;
double r69333 = r69331 - r69332;
double r69334 = r69333 / r69330;
return r69334;
}
double f(double x) {
double r69335 = x;
double r69336 = -0.00021407398444296693;
bool r69337 = r69335 <= r69336;
double r69338 = exp(r69335);
double r69339 = sqrt(r69338);
double r69340 = 1.0;
double r69341 = sqrt(r69340);
double r69342 = r69339 + r69341;
double r69343 = 3.0;
double r69344 = pow(r69339, r69343);
double r69345 = pow(r69341, r69343);
double r69346 = r69344 - r69345;
double r69347 = r69339 * r69341;
double r69348 = r69340 + r69347;
double r69349 = r69338 + r69348;
double r69350 = r69346 / r69349;
double r69351 = r69350 / r69335;
double r69352 = r69342 * r69351;
double r69353 = 0.5;
double r69354 = 0.16666666666666666;
double r69355 = r69354 * r69335;
double r69356 = r69353 + r69355;
double r69357 = r69335 * r69356;
double r69358 = 1.0;
double r69359 = r69357 + r69358;
double r69360 = r69337 ? r69352 : r69359;
return r69360;
}




Bits error versus x
Results
| Original | 40.1 |
|---|---|
| Target | 40.4 |
| Herbie | 0.3 |
if x < -0.00021407398444296693Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied add-sqr-sqrt0.1
Applied add-sqr-sqrt0.1
Applied difference-of-squares0.1
Applied times-frac0.1
Simplified0.1
rmApplied flip3--0.1
Simplified0.1
if -0.00021407398444296693 < x Initial program 60.2
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2019208
(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))