\frac{e^{x}}{e^{x} - 1}\begin{array}{l}
\mathbf{if}\;\frac{e^{x}}{e^{x} - 1} \le 9.438996161322502:\\
\;\;\;\;\frac{e^{x}}{e^{x} - 1}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{2} + \frac{1}{x}\right) + \left(x \cdot \sqrt{\frac{1}{12}}\right) \cdot \sqrt{\frac{1}{12}}\\
\end{array}double f(double x) {
double r1404349 = x;
double r1404350 = exp(r1404349);
double r1404351 = 1.0;
double r1404352 = r1404350 - r1404351;
double r1404353 = r1404350 / r1404352;
return r1404353;
}
double f(double x) {
double r1404354 = x;
double r1404355 = exp(r1404354);
double r1404356 = 1.0;
double r1404357 = r1404355 - r1404356;
double r1404358 = r1404355 / r1404357;
double r1404359 = 9.438996161322502;
bool r1404360 = r1404358 <= r1404359;
double r1404361 = 0.5;
double r1404362 = r1404356 / r1404354;
double r1404363 = r1404361 + r1404362;
double r1404364 = 0.08333333333333333;
double r1404365 = sqrt(r1404364);
double r1404366 = r1404354 * r1404365;
double r1404367 = r1404366 * r1404365;
double r1404368 = r1404363 + r1404367;
double r1404369 = r1404360 ? r1404358 : r1404368;
return r1404369;
}




Bits error versus x
Results
| Original | 40.3 |
|---|---|
| Target | 39.9 |
| Herbie | 0.7 |
if (/ (exp x) (- (exp x) 1)) < 9.438996161322502Initial program 1.0
Taylor expanded around inf 1.0
if 9.438996161322502 < (/ (exp x) (- (exp x) 1)) Initial program 61.2
Taylor expanded around 0 0.6
rmApplied add-sqr-sqrt0.6
Applied associate-*l*0.6
Final simplification0.7
herbie shell --seed 2019128
(FPCore (x)
:name "expq2 (section 3.11)"
:herbie-target
(/ 1 (- 1 (exp (- x))))
(/ (exp x) (- (exp x) 1)))