\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \mathsf{fma}\left(\mathsf{fma}\left(x, x, x\right), 2, \log 1 - 2 \cdot \frac{{x}^{2}}{{1}^{2}}\right)double f(double x) {
double r93857 = 1.0;
double r93858 = 2.0;
double r93859 = r93857 / r93858;
double r93860 = x;
double r93861 = r93857 + r93860;
double r93862 = r93857 - r93860;
double r93863 = r93861 / r93862;
double r93864 = log(r93863);
double r93865 = r93859 * r93864;
return r93865;
}
double f(double x) {
double r93866 = 1.0;
double r93867 = 2.0;
double r93868 = r93866 / r93867;
double r93869 = x;
double r93870 = fma(r93869, r93869, r93869);
double r93871 = log(r93866);
double r93872 = 2.0;
double r93873 = pow(r93869, r93872);
double r93874 = pow(r93866, r93872);
double r93875 = r93873 / r93874;
double r93876 = r93867 * r93875;
double r93877 = r93871 - r93876;
double r93878 = fma(r93870, r93867, r93877);
double r93879 = r93868 * r93878;
return r93879;
}



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