\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -0.0001908225032694281:\\
\;\;\;\;\frac{e^{x}}{x} - \frac{1}{x}\\
\mathbf{else}:\\
\;\;\;\;1 + \left(\frac{1}{2} + x \cdot \frac{1}{6}\right) \cdot x\\
\end{array}double f(double x) {
double r6223795 = x;
double r6223796 = exp(r6223795);
double r6223797 = 1.0;
double r6223798 = r6223796 - r6223797;
double r6223799 = r6223798 / r6223795;
return r6223799;
}
double f(double x) {
double r6223800 = x;
double r6223801 = -0.0001908225032694281;
bool r6223802 = r6223800 <= r6223801;
double r6223803 = exp(r6223800);
double r6223804 = r6223803 / r6223800;
double r6223805 = 1.0;
double r6223806 = r6223805 / r6223800;
double r6223807 = r6223804 - r6223806;
double r6223808 = 0.5;
double r6223809 = 0.16666666666666666;
double r6223810 = r6223800 * r6223809;
double r6223811 = r6223808 + r6223810;
double r6223812 = r6223811 * r6223800;
double r6223813 = r6223805 + r6223812;
double r6223814 = r6223802 ? r6223807 : r6223813;
return r6223814;
}




Bits error versus x
Results
| Original | 39.9 |
|---|---|
| Target | 39.0 |
| Herbie | 0.3 |
if x < -0.0001908225032694281Initial program 0.0
rmApplied div-sub0.1
if -0.0001908225032694281 < x Initial program 60.0
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2019104
(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))