\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\left(\log 1 + \left(\left(x + x \cdot x\right) - \frac{x \cdot x}{1 \cdot 1}\right) \cdot 2\right) \cdot \frac{1}{2}double f(double x) {
double r1816411 = 1.0;
double r1816412 = 2.0;
double r1816413 = r1816411 / r1816412;
double r1816414 = x;
double r1816415 = r1816411 + r1816414;
double r1816416 = r1816411 - r1816414;
double r1816417 = r1816415 / r1816416;
double r1816418 = log(r1816417);
double r1816419 = r1816413 * r1816418;
return r1816419;
}
double f(double x) {
double r1816420 = 1.0;
double r1816421 = log(r1816420);
double r1816422 = x;
double r1816423 = r1816422 * r1816422;
double r1816424 = r1816422 + r1816423;
double r1816425 = r1816420 * r1816420;
double r1816426 = r1816423 / r1816425;
double r1816427 = r1816424 - r1816426;
double r1816428 = 2.0;
double r1816429 = r1816427 * r1816428;
double r1816430 = r1816421 + r1816429;
double r1816431 = r1816420 / r1816428;
double r1816432 = r1816430 * r1816431;
return r1816432;
}



Bits error versus x
Results
Initial program 58.7
Taylor expanded around 0 0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019171
(FPCore (x)
:name "Hyperbolic arc-(co)tangent"
(* (/ 1.0 2.0) (log (/ (+ 1.0 x) (- 1.0 x)))))