\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -1.188228550013960803117402109663203191303 \cdot 10^{-4}:\\
\;\;\;\;\frac{\frac{e^{x \cdot 6} - {1}^{6}}{\left(e^{x} + 1\right) \cdot \left(e^{x \cdot 4} + \left(1 \cdot 1\right) \cdot \left(e^{x + x} + 1 \cdot 1\right)\right)}}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{{x}^{2} \cdot \left(\frac{1}{6} \cdot x + \frac{1}{2}\right) + x}{x}\\
\end{array}double f(double x) {
double r83144 = x;
double r83145 = exp(r83144);
double r83146 = 1.0;
double r83147 = r83145 - r83146;
double r83148 = r83147 / r83144;
return r83148;
}
double f(double x) {
double r83149 = x;
double r83150 = -0.00011882285500139608;
bool r83151 = r83149 <= r83150;
double r83152 = 6.0;
double r83153 = r83149 * r83152;
double r83154 = exp(r83153);
double r83155 = 1.0;
double r83156 = pow(r83155, r83152);
double r83157 = r83154 - r83156;
double r83158 = exp(r83149);
double r83159 = r83158 + r83155;
double r83160 = 4.0;
double r83161 = r83149 * r83160;
double r83162 = exp(r83161);
double r83163 = r83155 * r83155;
double r83164 = r83149 + r83149;
double r83165 = exp(r83164);
double r83166 = r83165 + r83163;
double r83167 = r83163 * r83166;
double r83168 = r83162 + r83167;
double r83169 = r83159 * r83168;
double r83170 = r83157 / r83169;
double r83171 = r83170 / r83149;
double r83172 = 2.0;
double r83173 = pow(r83149, r83172);
double r83174 = 0.16666666666666666;
double r83175 = r83174 * r83149;
double r83176 = 0.5;
double r83177 = r83175 + r83176;
double r83178 = r83173 * r83177;
double r83179 = r83178 + r83149;
double r83180 = r83179 / r83149;
double r83181 = r83151 ? r83171 : r83180;
return r83181;
}




Bits error versus x
Results
| Original | 39.7 |
|---|---|
| Target | 40.1 |
| Herbie | 0.3 |
if x < -0.00011882285500139608Initial program 0.0
rmApplied flip--0.1
Simplified0.0
rmApplied div-inv0.0
rmApplied flip3--0.0
Applied frac-times0.0
Simplified0.0
Simplified0.0
if -0.00011882285500139608 < x Initial program 60.1
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2019322
(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))