\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \mathsf{fma}\left(2, -\frac{{x}^{2}}{{1}^{2}}, \mathsf{fma}\left(2, \mathsf{fma}\left(x, x, x\right), \log 1\right)\right)double f(double x) {
double r80129 = 1.0;
double r80130 = 2.0;
double r80131 = r80129 / r80130;
double r80132 = x;
double r80133 = r80129 + r80132;
double r80134 = r80129 - r80132;
double r80135 = r80133 / r80134;
double r80136 = log(r80135);
double r80137 = r80131 * r80136;
return r80137;
}
double f(double x) {
double r80138 = 1.0;
double r80139 = 2.0;
double r80140 = r80138 / r80139;
double r80141 = x;
double r80142 = 2.0;
double r80143 = pow(r80141, r80142);
double r80144 = pow(r80138, r80142);
double r80145 = r80143 / r80144;
double r80146 = -r80145;
double r80147 = fma(r80141, r80141, r80141);
double r80148 = log(r80138);
double r80149 = fma(r80139, r80147, r80148);
double r80150 = fma(r80139, r80146, r80149);
double r80151 = r80140 * r80150;
return r80151;
}



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