\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 r68507 = x;
double r68508 = exp(r68507);
double r68509 = 2.0;
double r68510 = r68508 - r68509;
double r68511 = -r68507;
double r68512 = exp(r68511);
double r68513 = r68510 + r68512;
return r68513;
}
double f(double x) {
double r68514 = x;
double r68515 = 0.002777777777777778;
double r68516 = 6.0;
double r68517 = pow(r68514, r68516);
double r68518 = 0.08333333333333333;
double r68519 = 4.0;
double r68520 = pow(r68514, r68519);
double r68521 = r68518 * r68520;
double r68522 = fma(r68515, r68517, r68521);
double r68523 = fma(r68514, r68514, r68522);
return r68523;
}




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