double f(double x) {
double r6257911 = x;
double r6257912 = exp(r6257911);
double r6257913 = 1.0;
double r6257914 = r6257912 - r6257913;
double r6257915 = r6257912 / r6257914;
return r6257915;
}
double f(double x) {
double r6257916 = x;
double r6257917 = exp(r6257916);
double r6257918 = expm1(r6257916);
double r6257919 = r6257917 / r6257918;
return r6257919;
}
\frac{e^{x}}{e^{x} - 1}\frac{e^{x}}{(e^{x} - 1)^*}



Bits error versus x
| Original | 40.3 |
|---|---|
| Target | 40.0 |
| Herbie | 0.3 |
Initial program 40.3
rmApplied expm1-def0.3
Final simplification0.3
herbie shell --seed 2019101 +o rules:numerics
(FPCore (x)
:name "expq2 (section 3.11)"
:herbie-target
(/ 1 (- 1 (exp (- x))))
(/ (exp x) (- (exp x) 1)))