\frac{e^{x}}{e^{x} - 1}\frac{1}{\frac{\mathsf{expm1}\left(x\right)}{e^{x}}}double f(double x) {
double r7509260 = x;
double r7509261 = exp(r7509260);
double r7509262 = 1.0;
double r7509263 = r7509261 - r7509262;
double r7509264 = r7509261 / r7509263;
return r7509264;
}
double f(double x) {
double r7509265 = 1.0;
double r7509266 = x;
double r7509267 = expm1(r7509266);
double r7509268 = exp(r7509266);
double r7509269 = r7509267 / r7509268;
double r7509270 = r7509265 / r7509269;
return r7509270;
}




Bits error versus x
Results
| Original | 40.3 |
|---|---|
| Target | 39.9 |
| Herbie | 0.4 |
Initial program 40.3
rmApplied expm1-def0.4
rmApplied *-un-lft-identity0.4
Applied associate-/l*0.4
Final simplification0.4
herbie shell --seed 2019128 +o rules:numerics
(FPCore (x)
:name "expq2 (section 3.11)"
:herbie-target
(/ 1 (- 1 (exp (- x))))
(/ (exp x) (- (exp x) 1)))