\frac{1}{2} \cdot \log \left(\frac{1 + x}{1 - x}\right)\frac{1}{2} \cdot \mathsf{fma}\left(\mathsf{fma}\left(x, x, x\right), 2, \log 1 - 2 \cdot \frac{{x}^{2}}{{1}^{2}}\right)double f(double x) {
double r80195 = 1.0;
double r80196 = 2.0;
double r80197 = r80195 / r80196;
double r80198 = x;
double r80199 = r80195 + r80198;
double r80200 = r80195 - r80198;
double r80201 = r80199 / r80200;
double r80202 = log(r80201);
double r80203 = r80197 * r80202;
return r80203;
}
double f(double x) {
double r80204 = 1.0;
double r80205 = 2.0;
double r80206 = r80204 / r80205;
double r80207 = x;
double r80208 = fma(r80207, r80207, r80207);
double r80209 = log(r80204);
double r80210 = 2.0;
double r80211 = pow(r80207, r80210);
double r80212 = pow(r80204, r80210);
double r80213 = r80211 / r80212;
double r80214 = r80205 * r80213;
double r80215 = r80209 - r80214;
double r80216 = fma(r80208, r80205, r80215);
double r80217 = r80206 * r80216;
return r80217;
}



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