\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \left(2 \cdot \left({x}^{2} + x\right) + \left(\log 1 - 2 \cdot \frac{{x}^{2}}{{1}^{2}}\right)\right)double f(double x) {
double r79448 = 1.0;
double r79449 = 2.0;
double r79450 = r79448 / r79449;
double r79451 = x;
double r79452 = r79448 + r79451;
double r79453 = r79448 - r79451;
double r79454 = r79452 / r79453;
double r79455 = log(r79454);
double r79456 = r79450 * r79455;
return r79456;
}
double f(double x) {
double r79457 = 1.0;
double r79458 = 2.0;
double r79459 = r79457 / r79458;
double r79460 = x;
double r79461 = 2.0;
double r79462 = pow(r79460, r79461);
double r79463 = r79462 + r79460;
double r79464 = r79458 * r79463;
double r79465 = log(r79457);
double r79466 = pow(r79457, r79461);
double r79467 = r79462 / r79466;
double r79468 = r79458 * r79467;
double r79469 = r79465 - r79468;
double r79470 = r79464 + r79469;
double r79471 = r79459 * r79470;
return r79471;
}



Bits error versus x
Results
Initial program 58.4
Taylor expanded around 0 0.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2020100
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
:precision binary64
(* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))