\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\left(\mathsf{log1p}\left(x\right) - \mathsf{log1p}\left(\left(-x\right)\right)\right) \cdot \frac{1}{2}double f(double x) {
double r12955024 = 1.0;
double r12955025 = 2.0;
double r12955026 = r12955024 / r12955025;
double r12955027 = x;
double r12955028 = r12955024 + r12955027;
double r12955029 = r12955024 - r12955027;
double r12955030 = r12955028 / r12955029;
double r12955031 = log(r12955030);
double r12955032 = r12955026 * r12955031;
return r12955032;
}
double f(double x) {
double r12955033 = x;
double r12955034 = log1p(r12955033);
double r12955035 = -r12955033;
double r12955036 = log1p(r12955035);
double r12955037 = r12955034 - r12955036;
double r12955038 = 0.5;
double r12955039 = r12955037 * r12955038;
return r12955039;
}



Bits error versus x
Results
Initial program 58.6
Simplified58.6
rmApplied log-div58.6
Simplified50.5
rmApplied sub-neg50.5
Applied log1p-def0.0
Final simplification0.0
herbie shell --seed 2019124 +o rules:numerics
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
(* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))