\left(e^{x} - 2\right) + e^{-x}\mathsf{fma}\left(x \cdot \left(x \cdot x\right), \left(x \cdot \left(x \cdot x\right)\right) \cdot \frac{1}{360}, \mathsf{fma}\left(\log \left(e^{\frac{1}{12} \cdot \left(x \cdot x\right)}\right), x \cdot x, x \cdot x\right)\right)double f(double x) {
double r4650268 = x;
double r4650269 = exp(r4650268);
double r4650270 = 2.0;
double r4650271 = r4650269 - r4650270;
double r4650272 = -r4650268;
double r4650273 = exp(r4650272);
double r4650274 = r4650271 + r4650273;
return r4650274;
}
double f(double x) {
double r4650275 = x;
double r4650276 = r4650275 * r4650275;
double r4650277 = r4650275 * r4650276;
double r4650278 = 0.002777777777777778;
double r4650279 = r4650277 * r4650278;
double r4650280 = 0.08333333333333333;
double r4650281 = r4650280 * r4650276;
double r4650282 = exp(r4650281);
double r4650283 = log(r4650282);
double r4650284 = fma(r4650283, r4650276, r4650276);
double r4650285 = fma(r4650277, r4650279, r4650284);
return r4650285;
}




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