\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)0.5 \cdot \left(\sqrt[3]{\log \left(1 + x\right)} \cdot \left(\sqrt[3]{\log \left(1 + x\right)} \cdot \sqrt[3]{\log \left(1 + x\right)}\right) - \log \left(1 - x\right)\right)(FPCore (x) :precision binary64 (* (/ 1.0 2.0) (log (/ (+ 1.0 x) (- 1.0 x)))))
(FPCore (x) :precision binary64 (* 0.5 (- (* (cbrt (log (+ 1.0 x))) (* (cbrt (log (+ 1.0 x))) (cbrt (log (+ 1.0 x))))) (log (- 1.0 x)))))
double code(double x) {
return (1.0 / 2.0) * log((1.0 + x) / (1.0 - x));
}
double code(double x) {
return 0.5 * ((cbrt(log(1.0 + x)) * (cbrt(log(1.0 + x)) * cbrt(log(1.0 + x)))) - log(1.0 - x));
}



Bits error versus x
Results
Initial program 58.3
Simplified58.3
rmApplied add-exp-log_binary6458.3
Applied add-exp-log_binary6458.3
Applied div-exp_binary6458.3
Applied rem-log-exp_binary6458.3
rmApplied add-cube-cbrt_binary6458.3
Final simplification58.3
herbie shell --seed 2020288
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
:precision binary64
(* (/ 1.0 2.0) (log (/ (+ 1.0 x) (- 1.0 x)))))