\frac{2}{e^{x} + e^{-x}}\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{2}{e^{x} + e^{-x}}\right)\right)double f(double x) {
double r66772 = 2.0;
double r66773 = x;
double r66774 = exp(r66773);
double r66775 = -r66773;
double r66776 = exp(r66775);
double r66777 = r66774 + r66776;
double r66778 = r66772 / r66777;
return r66778;
}
double f(double x) {
double r66779 = 2.0;
double r66780 = x;
double r66781 = exp(r66780);
double r66782 = -r66780;
double r66783 = exp(r66782);
double r66784 = r66781 + r66783;
double r66785 = r66779 / r66784;
double r66786 = expm1(r66785);
double r66787 = log1p(r66786);
return r66787;
}



Bits error versus x
Results
Initial program 0.0
rmApplied log1p-expm1-u0.0
Final simplification0.0
herbie shell --seed 2019354 +o rules:numerics
(FPCore (x)
:name "Hyperbolic secant"
:precision binary64
(/ 2 (+ (exp x) (exp (- x)))))