\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 r64672 = 1.0;
double r64673 = 2.0;
double r64674 = r64672 / r64673;
double r64675 = x;
double r64676 = r64672 + r64675;
double r64677 = r64672 - r64675;
double r64678 = r64676 / r64677;
double r64679 = log(r64678);
double r64680 = r64674 * r64679;
return r64680;
}
double f(double x) {
double r64681 = 1.0;
double r64682 = 2.0;
double r64683 = r64681 / r64682;
double r64684 = x;
double r64685 = r64681 * r64681;
double r64686 = r64684 / r64685;
double r64687 = r64684 - r64686;
double r64688 = r64684 * r64687;
double r64689 = r64684 + r64688;
double r64690 = r64682 * r64689;
double r64691 = log(r64681);
double r64692 = r64690 + r64691;
double r64693 = r64683 * r64692;
return r64693;
}



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