\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\left(\log 1 + \left(\left(x + x \cdot x\right) - \frac{x \cdot x}{1 \cdot 1}\right) \cdot 2\right) \cdot \frac{1}{2}double f(double x) {
double r1629545 = 1.0;
double r1629546 = 2.0;
double r1629547 = r1629545 / r1629546;
double r1629548 = x;
double r1629549 = r1629545 + r1629548;
double r1629550 = r1629545 - r1629548;
double r1629551 = r1629549 / r1629550;
double r1629552 = log(r1629551);
double r1629553 = r1629547 * r1629552;
return r1629553;
}
double f(double x) {
double r1629554 = 1.0;
double r1629555 = log(r1629554);
double r1629556 = x;
double r1629557 = r1629556 * r1629556;
double r1629558 = r1629556 + r1629557;
double r1629559 = r1629554 * r1629554;
double r1629560 = r1629557 / r1629559;
double r1629561 = r1629558 - r1629560;
double r1629562 = 2.0;
double r1629563 = r1629561 * r1629562;
double r1629564 = r1629555 + r1629563;
double r1629565 = r1629554 / r1629562;
double r1629566 = r1629564 * r1629565;
return r1629566;
}



Bits error versus x
Results
Initial program 58.4
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019174
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
(* (/ 1.0 2.0) (log (/ (+ 1.0 x) (- 1.0 x)))))