\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \mathsf{fma}\left(\frac{2}{3}, {\left(\frac{x}{1}\right)}^{3}, \mathsf{fma}\left(2, x, \frac{2}{5} \cdot \frac{{x}^{5}}{{1}^{5}}\right)\right)double f(double x) {
double r48105 = 1.0;
double r48106 = 2.0;
double r48107 = r48105 / r48106;
double r48108 = x;
double r48109 = r48105 + r48108;
double r48110 = r48105 - r48108;
double r48111 = r48109 / r48110;
double r48112 = log(r48111);
double r48113 = r48107 * r48112;
return r48113;
}
double f(double x) {
double r48114 = 1.0;
double r48115 = 2.0;
double r48116 = r48114 / r48115;
double r48117 = 0.6666666666666666;
double r48118 = x;
double r48119 = r48118 / r48114;
double r48120 = 3.0;
double r48121 = pow(r48119, r48120);
double r48122 = 0.4;
double r48123 = 5.0;
double r48124 = pow(r48118, r48123);
double r48125 = pow(r48114, r48123);
double r48126 = r48124 / r48125;
double r48127 = r48122 * r48126;
double r48128 = fma(r48115, r48118, r48127);
double r48129 = fma(r48117, r48121, r48128);
double r48130 = r48116 * r48129;
return r48130;
}



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