\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \left(\frac{2}{3} \cdot \frac{{x}^{3}}{{1}^{3}} + \left(2 \cdot x + \frac{2}{5} \cdot \frac{{x}^{5}}{{1}^{5}}\right)\right)double f(double x) {
double r80701 = 1.0;
double r80702 = 2.0;
double r80703 = r80701 / r80702;
double r80704 = x;
double r80705 = r80701 + r80704;
double r80706 = r80701 - r80704;
double r80707 = r80705 / r80706;
double r80708 = log(r80707);
double r80709 = r80703 * r80708;
return r80709;
}
double f(double x) {
double r80710 = 1.0;
double r80711 = 2.0;
double r80712 = r80710 / r80711;
double r80713 = 0.6666666666666666;
double r80714 = x;
double r80715 = 3.0;
double r80716 = pow(r80714, r80715);
double r80717 = pow(r80710, r80715);
double r80718 = r80716 / r80717;
double r80719 = r80713 * r80718;
double r80720 = r80711 * r80714;
double r80721 = 0.4;
double r80722 = 5.0;
double r80723 = pow(r80714, r80722);
double r80724 = pow(r80710, r80722);
double r80725 = r80723 / r80724;
double r80726 = r80721 * r80725;
double r80727 = r80720 + r80726;
double r80728 = r80719 + r80727;
double r80729 = r80712 * r80728;
return r80729;
}



Bits error versus x
Results
Initial program 58.6
rmApplied log-div58.6
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2019356
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
:precision binary64
(* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))