\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\left(\mathsf{log1p}\left(x\right) - \mathsf{log1p}\left(-x\right)\right) \cdot \frac{1}{2}double f(double x) {
double r2812561 = 1.0;
double r2812562 = 2.0;
double r2812563 = r2812561 / r2812562;
double r2812564 = x;
double r2812565 = r2812561 + r2812564;
double r2812566 = r2812561 - r2812564;
double r2812567 = r2812565 / r2812566;
double r2812568 = log(r2812567);
double r2812569 = r2812563 * r2812568;
return r2812569;
}
double f(double x) {
double r2812570 = x;
double r2812571 = log1p(r2812570);
double r2812572 = -r2812570;
double r2812573 = log1p(r2812572);
double r2812574 = r2812571 - r2812573;
double r2812575 = 0.5;
double r2812576 = r2812574 * r2812575;
return r2812576;
}



Bits error versus x
Results
Initial program 58.5
Simplified58.5
rmApplied log-div58.5
Simplified50.5
rmApplied log1p-expm1-u50.5
Simplified0.0
Final simplification0.0
herbie shell --seed 2019138 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
(* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))