\frac{x}{x + 1} - \frac{x + 1}{x - 1}-1 \cdot \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\mathsf{fma}\left(3, x, 1\right)}{x + 1}\right)\right)}{x - 1}double f(double x) {
double r100420 = x;
double r100421 = 1.0;
double r100422 = r100420 + r100421;
double r100423 = r100420 / r100422;
double r100424 = r100420 - r100421;
double r100425 = r100422 / r100424;
double r100426 = r100423 - r100425;
return r100426;
}
double f(double x) {
double r100427 = -1.0;
double r100428 = 3.0;
double r100429 = x;
double r100430 = 1.0;
double r100431 = fma(r100428, r100429, r100430);
double r100432 = r100429 + r100430;
double r100433 = r100431 / r100432;
double r100434 = log1p(r100433);
double r100435 = expm1(r100434);
double r100436 = r100429 - r100430;
double r100437 = r100435 / r100436;
double r100438 = r100427 * r100437;
return r100438;
}



Bits error versus x
Initial program 29.9
rmApplied frac-sub31.0
Simplified31.0
Taylor expanded around 0 15.1
rmApplied *-un-lft-identity15.1
Applied neg-mul-115.1
Applied times-frac15.1
Simplified15.1
Simplified0.2
rmApplied expm1-log1p-u0.2
Final simplification0.2
herbie shell --seed 2020060 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
:precision binary64
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))