\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \mathsf{fma}\left(2, x, \mathsf{fma}\left(0.66666666666666663, {x}^{3}, 0.40000000000000002 \cdot {x}^{5}\right)\right)double f(double x) {
double r60970 = 1.0;
double r60971 = 2.0;
double r60972 = r60970 / r60971;
double r60973 = x;
double r60974 = r60970 + r60973;
double r60975 = r60970 - r60973;
double r60976 = r60974 / r60975;
double r60977 = log(r60976);
double r60978 = r60972 * r60977;
return r60978;
}
double f(double x) {
double r60979 = 1.0;
double r60980 = 2.0;
double r60981 = r60979 / r60980;
double r60982 = x;
double r60983 = 0.6666666666666666;
double r60984 = 3.0;
double r60985 = pow(r60982, r60984);
double r60986 = 0.4;
double r60987 = 5.0;
double r60988 = pow(r60982, r60987);
double r60989 = r60986 * r60988;
double r60990 = fma(r60983, r60985, r60989);
double r60991 = fma(r60980, r60982, r60990);
double r60992 = r60981 * r60991;
return r60992;
}



Bits error versus x
Initial program 58.5
rmApplied div-inv58.5
Applied log-prod58.5
Simplified58.5
Taylor expanded around 0 0.2
Simplified0.2
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020046 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
:precision binary64
(* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))