\left(e^{x} - 2\right) + e^{-x}\mathsf{fma}\left(\frac{1}{12}, \left(x \cdot x\right) \cdot \left(x \cdot x\right), \mathsf{fma}\left(\frac{1}{360}, \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right), x \cdot x\right)\right)double f(double x) {
double r4549260 = x;
double r4549261 = exp(r4549260);
double r4549262 = 2.0;
double r4549263 = r4549261 - r4549262;
double r4549264 = -r4549260;
double r4549265 = exp(r4549264);
double r4549266 = r4549263 + r4549265;
return r4549266;
}
double f(double x) {
double r4549267 = 0.08333333333333333;
double r4549268 = x;
double r4549269 = r4549268 * r4549268;
double r4549270 = r4549269 * r4549269;
double r4549271 = 0.002777777777777778;
double r4549272 = r4549269 * r4549270;
double r4549273 = fma(r4549271, r4549272, r4549269);
double r4549274 = fma(r4549267, r4549270, r4549273);
return r4549274;
}




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