\frac{e^{x}}{e^{x} - 1}\frac{e^{x}}{x + \left(\frac{1}{2} + \frac{1}{6} \cdot x\right) \cdot \left(x \cdot x\right)}double f(double x) {
double r3148804 = x;
double r3148805 = exp(r3148804);
double r3148806 = 1.0;
double r3148807 = r3148805 - r3148806;
double r3148808 = r3148805 / r3148807;
return r3148808;
}
double f(double x) {
double r3148809 = x;
double r3148810 = exp(r3148809);
double r3148811 = 0.5;
double r3148812 = 0.16666666666666666;
double r3148813 = r3148812 * r3148809;
double r3148814 = r3148811 + r3148813;
double r3148815 = r3148809 * r3148809;
double r3148816 = r3148814 * r3148815;
double r3148817 = r3148809 + r3148816;
double r3148818 = r3148810 / r3148817;
return r3148818;
}




Bits error versus x
Results
| Original | 41.5 |
|---|---|
| Target | 41.2 |
| Herbie | 0.9 |
Initial program 41.5
Taylor expanded around 0 11.4
Simplified0.9
Final simplification0.9
herbie shell --seed 2019171
(FPCore (x)
:name "expq2 (section 3.11)"
:herbie-target
(/ 1.0 (- 1.0 (exp (- x))))
(/ (exp x) (- (exp x) 1.0)))