double f(double x) {
double r23082834 = x;
double r23082835 = exp(r23082834);
double r23082836 = 1.0;
double r23082837 = r23082835 - r23082836;
double r23082838 = r23082835 / r23082837;
return r23082838;
}
double f(double x) {
double r23082839 = x;
double r23082840 = -0.002055367404917252;
bool r23082841 = r23082839 <= r23082840;
double r23082842 = 1.0;
double r23082843 = exp(r23082839);
double r23082844 = r23082843 * r23082843;
double r23082845 = r23082842 + r23082844;
double r23082846 = r23082845 + r23082843;
double r23082847 = r23082843 - r23082842;
double r23082848 = r23082843 * r23082847;
double r23082849 = r23082848 - r23082842;
double r23082850 = r23082849 / r23082843;
double r23082851 = r23082844 / r23082850;
double r23082852 = r23082842 / r23082849;
double r23082853 = r23082851 - r23082852;
double r23082854 = r23082846 / r23082853;
double r23082855 = r23082842 / r23082843;
double r23082856 = r23082855 + r23082842;
double r23082857 = r23082843 - r23082856;
double r23082858 = r23082842 / r23082857;
double r23082859 = r23082854 * r23082858;
double r23082860 = 0.5;
double r23082861 = r23082842 / r23082839;
double r23082862 = r23082860 + r23082861;
double r23082863 = 0.08333333333333333;
double r23082864 = r23082863 * r23082839;
double r23082865 = r23082862 + r23082864;
double r23082866 = r23082841 ? r23082859 : r23082865;
return r23082866;
}
\frac{e^{x}}{e^{x} - 1}\begin{array}{l}
\mathbf{if}\;x \le -0.002055367404917252:\\
\;\;\;\;\frac{\left(1 + e^{x} \cdot e^{x}\right) + e^{x}}{\frac{e^{x} \cdot e^{x}}{\frac{e^{x} \cdot \left(e^{x} - 1\right) - 1}{e^{x}}} - \frac{1}{e^{x} \cdot \left(e^{x} - 1\right) - 1}} \cdot \frac{1}{e^{x} - \left(\frac{1}{e^{x}} + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{2} + \frac{1}{x}\right) + \frac{1}{12} \cdot x\\
\end{array}



Bits error versus x
| Original | 40.3 |
|---|---|
| Target | 40.0 |
| Herbie | 0.5 |
if x < -0.002055367404917252Initial program 0.0
rmApplied flip3--0.0
rmApplied flip-+0.0
Applied associate-/r/0.0
Applied *-un-lft-identity0.0
Applied times-frac0.0
Simplified0.0
Simplified0.0
if -0.002055367404917252 < x Initial program 60.1
Taylor expanded around 0 0.8
Final simplification0.5
herbie shell --seed 2019101
(FPCore (x)
:name "expq2 (section 3.11)"
:herbie-target
(/ 1 (- 1 (exp (- x))))
(/ (exp x) (- (exp x) 1)))