\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \left(2 \cdot \left(x + x \cdot \left(x - \frac{x}{1 \cdot 1}\right)\right) + \log 1\right)double f(double x) {
double r57697 = 1.0;
double r57698 = 2.0;
double r57699 = r57697 / r57698;
double r57700 = x;
double r57701 = r57697 + r57700;
double r57702 = r57697 - r57700;
double r57703 = r57701 / r57702;
double r57704 = log(r57703);
double r57705 = r57699 * r57704;
return r57705;
}
double f(double x) {
double r57706 = 1.0;
double r57707 = 2.0;
double r57708 = r57706 / r57707;
double r57709 = x;
double r57710 = r57706 * r57706;
double r57711 = r57709 / r57710;
double r57712 = r57709 - r57711;
double r57713 = r57709 * r57712;
double r57714 = r57709 + r57713;
double r57715 = r57707 * r57714;
double r57716 = log(r57706);
double r57717 = r57715 + r57716;
double r57718 = r57708 * r57717;
return r57718;
}



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