\frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}\frac{\mathsf{expm1}\left(x + x\right)}{e^{2 \cdot x} + 1}double f(double x) {
double r36714 = x;
double r36715 = exp(r36714);
double r36716 = -r36714;
double r36717 = exp(r36716);
double r36718 = r36715 - r36717;
double r36719 = r36715 + r36717;
double r36720 = r36718 / r36719;
return r36720;
}
double f(double x) {
double r36721 = x;
double r36722 = r36721 + r36721;
double r36723 = expm1(r36722);
double r36724 = 2.0;
double r36725 = r36724 * r36721;
double r36726 = exp(r36725);
double r36727 = 1.0;
double r36728 = r36726 + r36727;
double r36729 = r36723 / r36728;
return r36729;
}



Bits error versus x
Results
Initial program 57.9
Simplified0.8
Taylor expanded around inf 0.8
Final simplification0.8
herbie shell --seed 2020027 +o rules:numerics
(FPCore (x)
:name "Hyperbolic tangent"
:precision binary64
(/ (- (exp x) (exp (- x))) (+ (exp x) (exp (- x)))))