\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \left(2 \cdot \left(x + x \cdot \left(x - \frac{x}{1 \cdot 1}\right)\right) + \log 1\right)double f(double x) {
double r69305 = 1.0;
double r69306 = 2.0;
double r69307 = r69305 / r69306;
double r69308 = x;
double r69309 = r69305 + r69308;
double r69310 = r69305 - r69308;
double r69311 = r69309 / r69310;
double r69312 = log(r69311);
double r69313 = r69307 * r69312;
return r69313;
}
double f(double x) {
double r69314 = 1.0;
double r69315 = 2.0;
double r69316 = r69314 / r69315;
double r69317 = x;
double r69318 = r69314 * r69314;
double r69319 = r69317 / r69318;
double r69320 = r69317 - r69319;
double r69321 = r69317 * r69320;
double r69322 = r69317 + r69321;
double r69323 = r69315 * r69322;
double r69324 = log(r69314);
double r69325 = r69323 + r69324;
double r69326 = r69316 * r69325;
return r69326;
}



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