\frac{x + 1.0}{1.0 - x}\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1.0 + x}{1.0 - x}\right)\right)double f(double x) {
double r612526 = x;
double r612527 = 1.0;
double r612528 = r612526 + r612527;
double r612529 = r612527 - r612526;
double r612530 = r612528 / r612529;
return r612530;
}
double f(double x) {
double r612531 = 1.0;
double r612532 = x;
double r612533 = r612531 + r612532;
double r612534 = r612531 - r612532;
double r612535 = r612533 / r612534;
double r612536 = log1p(r612535);
double r612537 = expm1(r612536);
return r612537;
}



Bits error versus x
Results
Initial program 0.0
rmApplied expm1-log1p-u0.9
Final simplification0.9
herbie shell --seed 2019156 +o rules:numerics
(FPCore (x)
:name "Prelude:atanh from fay-base-0.20.0.1"
(/ (+ x 1.0) (- 1.0 x)))