\left(e^{x} - 2\right) + e^{-x}(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \frac{1}{360}\right) \cdot \left(x \cdot x\right) + \left((\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \frac{1}{12} + \left(x \cdot x\right))_*\right))_*double f(double x) {
double r9670695 = x;
double r9670696 = exp(r9670695);
double r9670697 = 2.0;
double r9670698 = r9670696 - r9670697;
double r9670699 = -r9670695;
double r9670700 = exp(r9670699);
double r9670701 = r9670698 + r9670700;
return r9670701;
}
double f(double x) {
double r9670702 = x;
double r9670703 = r9670702 * r9670702;
double r9670704 = r9670703 * r9670703;
double r9670705 = 0.002777777777777778;
double r9670706 = r9670704 * r9670705;
double r9670707 = 0.08333333333333333;
double r9670708 = fma(r9670704, r9670707, r9670703);
double r9670709 = fma(r9670706, r9670703, r9670708);
return r9670709;
}




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