\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(\left(\left(x \cdot x\right) \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot x\right), \frac{1}{360}, x \cdot x\right)\right)double f(double x) {
double r830356 = x;
double r830357 = exp(r830356);
double r830358 = 2.0;
double r830359 = r830357 - r830358;
double r830360 = -r830356;
double r830361 = exp(r830360);
double r830362 = r830359 + r830361;
return r830362;
}
double f(double x) {
double r830363 = 0.08333333333333333;
double r830364 = x;
double r830365 = r830364 * r830364;
double r830366 = r830365 * r830365;
double r830367 = r830365 * r830364;
double r830368 = r830367 * r830367;
double r830369 = 0.002777777777777778;
double r830370 = fma(r830368, r830369, r830365);
double r830371 = fma(r830363, r830366, r830370);
return r830371;
}




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