\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \left(\left(1.6666666666666665 \cdot {x}^{3} + \left(2 \cdot \log 1 + 2 \cdot x\right)\right) - 1 \cdot \frac{{x}^{3}}{{1}^{2}}\right)double f(double x) {
double r50380 = 1.0;
double r50381 = 2.0;
double r50382 = r50380 / r50381;
double r50383 = x;
double r50384 = r50380 + r50383;
double r50385 = r50380 - r50383;
double r50386 = r50384 / r50385;
double r50387 = log(r50386);
double r50388 = r50382 * r50387;
return r50388;
}
double f(double x) {
double r50389 = 1.0;
double r50390 = 2.0;
double r50391 = r50389 / r50390;
double r50392 = 1.6666666666666665;
double r50393 = x;
double r50394 = 3.0;
double r50395 = pow(r50393, r50394);
double r50396 = r50392 * r50395;
double r50397 = 2.0;
double r50398 = log(r50389);
double r50399 = r50397 * r50398;
double r50400 = r50390 * r50393;
double r50401 = r50399 + r50400;
double r50402 = r50396 + r50401;
double r50403 = pow(r50389, r50397);
double r50404 = r50395 / r50403;
double r50405 = r50389 * r50404;
double r50406 = r50402 - r50405;
double r50407 = r50391 * r50406;
return r50407;
}



Bits error versus x
Results
Initial program 58.7
rmApplied add-cbrt-cube58.7
Applied add-cbrt-cube58.7
Applied cbrt-undiv58.7
Simplified58.7
rmApplied flip3--58.7
Applied associate-/r/58.7
Applied unpow-prod-down58.7
Applied cbrt-prod58.8
Applied log-prod58.8
Simplified58.7
Simplified58.7
Taylor expanded around 0 0.3
Final simplification0.3
herbie shell --seed 2020043
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
:precision binary64
(* (/ 1 2) (log (/ (+ 1 x) (- 1 x)))))