\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 r1622839 = x;
double r1622840 = exp(r1622839);
double r1622841 = 1.0;
double r1622842 = r1622840 - r1622841;
double r1622843 = r1622842 / r1622839;
return r1622843;
}
double f(double x) {
double r1622844 = x;
double r1622845 = -0.00010173923815578526;
bool r1622846 = r1622844 <= r1622845;
double r1622847 = -1.0;
double r1622848 = r1622844 + r1622844;
double r1622849 = exp(r1622848);
double r1622850 = r1622847 + r1622849;
double r1622851 = exp(r1622844);
double r1622852 = r1622849 * r1622851;
double r1622853 = r1622844 * r1622852;
double r1622854 = r1622844 + r1622853;
double r1622855 = r1622850 / r1622854;
double r1622856 = 1.0;
double r1622857 = r1622856 - r1622851;
double r1622858 = cbrt(r1622851);
double r1622859 = r1622858 * r1622858;
double r1622860 = r1622851 * r1622859;
double r1622861 = r1622858 * r1622860;
double r1622862 = r1622857 + r1622861;
double r1622863 = r1622855 * r1622862;
double r1622864 = 0.5;
double r1622865 = 0.16666666666666666;
double r1622866 = r1622844 * r1622865;
double r1622867 = r1622864 + r1622866;
double r1622868 = r1622844 * r1622867;
double r1622869 = r1622868 + r1622856;
double r1622870 = r1622846 ? r1622863 : r1622869;
return r1622870;
}




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))