double f(double x) {
double r5850578 = x;
double r5850579 = exp(r5850578);
double r5850580 = 2.0;
double r5850581 = r5850579 - r5850580;
double r5850582 = -r5850578;
double r5850583 = exp(r5850582);
double r5850584 = r5850581 + r5850583;
return r5850584;
}
double f(double x) {
double r5850585 = x;
double r5850586 = r5850585 * r5850585;
double r5850587 = 0.08333333333333333;
double r5850588 = r5850586 * r5850586;
double r5850589 = r5850587 * r5850588;
double r5850590 = r5850586 + r5850589;
double r5850591 = 0.002777777777777778;
double r5850592 = r5850588 * r5850586;
double r5850593 = r5850591 * r5850592;
double r5850594 = r5850590 + r5850593;
return r5850594;
}
\left(e^{x} - 2\right) + e^{-x}\left(x \cdot x + \frac{1}{12} \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) + \frac{1}{360} \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)



Bits error versus x
| Original | 29.6 |
|---|---|
| Target | 0.0 |
| Herbie | 0.6 |
Initial program 29.6
Simplified29.6
Taylor expanded around 0 0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019102
(FPCore (x)
:name "exp2 (problem 3.3.7)"
:herbie-target
(* 4 (pow (sinh (/ x 2)) 2))
(+ (- (exp x) 2) (exp (- x))))