\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \mathsf{fma}\left(x, 2, \mathsf{fma}\left({\left(\frac{x}{1}\right)}^{3}, \frac{2}{3}, \frac{2}{5} \cdot \frac{{x}^{5}}{{1}^{5}}\right)\right)double f(double x) {
double r64726 = 1.0;
double r64727 = 2.0;
double r64728 = r64726 / r64727;
double r64729 = x;
double r64730 = r64726 + r64729;
double r64731 = r64726 - r64729;
double r64732 = r64730 / r64731;
double r64733 = log(r64732);
double r64734 = r64728 * r64733;
return r64734;
}
double f(double x) {
double r64735 = 1.0;
double r64736 = 2.0;
double r64737 = r64735 / r64736;
double r64738 = x;
double r64739 = r64738 / r64735;
double r64740 = 3.0;
double r64741 = pow(r64739, r64740);
double r64742 = 0.6666666666666666;
double r64743 = 0.4;
double r64744 = 5.0;
double r64745 = pow(r64738, r64744);
double r64746 = pow(r64735, r64744);
double r64747 = r64745 / r64746;
double r64748 = r64743 * r64747;
double r64749 = fma(r64741, r64742, r64748);
double r64750 = fma(r64738, r64736, r64749);
double r64751 = r64737 * r64750;
return r64751;
}



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