\left(e^{x} - 2\right) + e^{-x}\mathsf{fma}\left(\left(\left(x \cdot x\right) \cdot x\right) \cdot \frac{1}{360}, \left(x \cdot x\right) \cdot x, \mathsf{fma}\left(\log \left(e^{\left(x \cdot x\right) \cdot \frac{1}{12}}\right), x \cdot x, x \cdot x\right)\right)double f(double x) {
double r4731444 = x;
double r4731445 = exp(r4731444);
double r4731446 = 2.0;
double r4731447 = r4731445 - r4731446;
double r4731448 = -r4731444;
double r4731449 = exp(r4731448);
double r4731450 = r4731447 + r4731449;
return r4731450;
}
double f(double x) {
double r4731451 = x;
double r4731452 = r4731451 * r4731451;
double r4731453 = r4731452 * r4731451;
double r4731454 = 0.002777777777777778;
double r4731455 = r4731453 * r4731454;
double r4731456 = 0.08333333333333333;
double r4731457 = r4731452 * r4731456;
double r4731458 = exp(r4731457);
double r4731459 = log(r4731458);
double r4731460 = fma(r4731459, r4731452, r4731452);
double r4731461 = fma(r4731455, r4731453, r4731460);
return r4731461;
}




Bits error versus x
| Original | 29.4 |
|---|---|
| Target | 0.0 |
| Herbie | 0.6 |
Initial program 29.4
Simplified29.4
Taylor expanded around 0 0.5
Simplified0.5
rmApplied add-log-exp0.6
Final simplification0.6
herbie shell --seed 2019171 +o rules:numerics
(FPCore (x)
:name "exp2 (problem 3.3.7)"
:herbie-target
(* 4.0 (pow (sinh (/ x 2.0)) 2.0))
(+ (- (exp x) 2.0) (exp (- x))))