\left(e^{x} - 2\right) + e^{-x}\mathsf{fma}\left(x, x, \mathsf{fma}\left(\frac{1}{360}, {x}^{6}, \frac{1}{12} \cdot {x}^{4}\right)\right)double f(double x) {
double r109768 = x;
double r109769 = exp(r109768);
double r109770 = 2.0;
double r109771 = r109769 - r109770;
double r109772 = -r109768;
double r109773 = exp(r109772);
double r109774 = r109771 + r109773;
return r109774;
}
double f(double x) {
double r109775 = x;
double r109776 = 0.002777777777777778;
double r109777 = 6.0;
double r109778 = pow(r109775, r109777);
double r109779 = 0.08333333333333333;
double r109780 = 4.0;
double r109781 = pow(r109775, r109780);
double r109782 = r109779 * r109781;
double r109783 = fma(r109776, r109778, r109782);
double r109784 = fma(r109775, r109775, r109783);
return r109784;
}




Bits error versus x
| Original | 29.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.7 |
Initial program 29.5
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x)
:name "exp2 (problem 3.3.7)"
:precision binary64
:herbie-target
(* 4 (pow (sinh (/ x 2)) 2))
(+ (- (exp x) 2) (exp (- x))))