\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 r119676 = x;
double r119677 = exp(r119676);
double r119678 = 2.0;
double r119679 = r119677 - r119678;
double r119680 = -r119676;
double r119681 = exp(r119680);
double r119682 = r119679 + r119681;
return r119682;
}
double f(double x) {
double r119683 = x;
double r119684 = 0.002777777777777778;
double r119685 = 6.0;
double r119686 = pow(r119683, r119685);
double r119687 = 0.08333333333333333;
double r119688 = 4.0;
double r119689 = pow(r119683, r119688);
double r119690 = r119687 * r119689;
double r119691 = fma(r119684, r119686, r119690);
double r119692 = fma(r119683, r119683, r119691);
return r119692;
}




Bits error versus x
| Original | 29.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.6 |
Initial program 29.2
Taylor expanded around 0 0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2020039 +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))))