\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \mathsf{fma}\left(\frac{{x}^{2}}{{1}^{2}}, -2, \mathsf{fma}\left(2, \mathsf{fma}\left(x, x, x\right), \log 1\right)\right)double f(double x) {
double r81374 = 1.0;
double r81375 = 2.0;
double r81376 = r81374 / r81375;
double r81377 = x;
double r81378 = r81374 + r81377;
double r81379 = r81374 - r81377;
double r81380 = r81378 / r81379;
double r81381 = log(r81380);
double r81382 = r81376 * r81381;
return r81382;
}
double f(double x) {
double r81383 = 1.0;
double r81384 = 2.0;
double r81385 = r81383 / r81384;
double r81386 = x;
double r81387 = 2.0;
double r81388 = pow(r81386, r81387);
double r81389 = pow(r81383, r81387);
double r81390 = r81388 / r81389;
double r81391 = -r81384;
double r81392 = fma(r81386, r81386, r81386);
double r81393 = log(r81383);
double r81394 = fma(r81384, r81392, r81393);
double r81395 = fma(r81390, r81391, r81394);
double r81396 = r81385 * r81395;
return r81396;
}



Bits error versus x
Initial program 58.6
Taylor expanded around 0 0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019212 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
:precision binary64
(* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))