\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -1.636611049659256037804022643200596576207 \cdot 10^{-4}:\\
\;\;\;\;\frac{\sqrt{{\left(e^{x}\right)}^{3}} + \sqrt{{1}^{3}}}{\frac{\left(1 \cdot \left(1 + e^{x}\right) + e^{x + x}\right) \cdot x}{\sqrt{{\left(e^{x}\right)}^{3}} - \sqrt{{1}^{3}}}}\\
\mathbf{else}:\\
\;\;\;\;\log \left(e^{\frac{1}{6} \cdot {x}^{2}}\right) + \left(\frac{1}{2} \cdot x + 1\right)\\
\end{array}double f(double x) {
double r105029 = x;
double r105030 = exp(r105029);
double r105031 = 1.0;
double r105032 = r105030 - r105031;
double r105033 = r105032 / r105029;
return r105033;
}
double f(double x) {
double r105034 = x;
double r105035 = -0.0001636611049659256;
bool r105036 = r105034 <= r105035;
double r105037 = exp(r105034);
double r105038 = 3.0;
double r105039 = pow(r105037, r105038);
double r105040 = sqrt(r105039);
double r105041 = 1.0;
double r105042 = pow(r105041, r105038);
double r105043 = sqrt(r105042);
double r105044 = r105040 + r105043;
double r105045 = r105041 + r105037;
double r105046 = r105041 * r105045;
double r105047 = r105034 + r105034;
double r105048 = exp(r105047);
double r105049 = r105046 + r105048;
double r105050 = r105049 * r105034;
double r105051 = r105040 - r105043;
double r105052 = r105050 / r105051;
double r105053 = r105044 / r105052;
double r105054 = 0.16666666666666666;
double r105055 = 2.0;
double r105056 = pow(r105034, r105055);
double r105057 = r105054 * r105056;
double r105058 = exp(r105057);
double r105059 = log(r105058);
double r105060 = 0.5;
double r105061 = r105060 * r105034;
double r105062 = 1.0;
double r105063 = r105061 + r105062;
double r105064 = r105059 + r105063;
double r105065 = r105036 ? r105053 : r105064;
return r105065;
}




Bits error versus x
Results
| Original | 39.9 |
|---|---|
| Target | 40.4 |
| Herbie | 0.4 |
if x < -0.0001636611049659256Initial program 0.0
rmApplied flip3--0.0
Applied associate-/l/0.0
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied add-sqr-sqrt0.0
Applied difference-of-squares0.0
Applied associate-/l*0.0
if -0.0001636611049659256 < x Initial program 60.2
Taylor expanded around 0 0.5
rmApplied add-log-exp0.5
Final simplification0.4
herbie shell --seed 2020001
(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))