double f(double x) {
double r3032882 = 1.0;
double r3032883 = x;
double r3032884 = r3032883 + r3032882;
double r3032885 = r3032882 / r3032884;
double r3032886 = 2.0;
double r3032887 = r3032886 / r3032883;
double r3032888 = r3032885 - r3032887;
double r3032889 = r3032883 - r3032882;
double r3032890 = r3032882 / r3032889;
double r3032891 = r3032888 + r3032890;
return r3032891;
}
double f(double x) {
double r3032892 = 1.0;
double r3032893 = x;
double r3032894 = r3032893 + r3032892;
double r3032895 = r3032892 / r3032894;
double r3032896 = 2.0;
double r3032897 = r3032896 / r3032893;
double r3032898 = -r3032897;
double r3032899 = r3032893 - r3032892;
double r3032900 = r3032892 / r3032899;
double r3032901 = r3032898 + r3032900;
double r3032902 = r3032895 + r3032901;
return r3032902;
}
\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}\frac{1}{x + 1} + \left(\left(-\frac{2}{x}\right) + \frac{1}{x - 1}\right)


Bits error versus x
Initial program 1.0
rmApplied sub-neg1.0
Applied associate-+l+1.0
Final simplification1.0
herbie shell --seed 2019102
(FPCore (x)
:name "3frac (problem 3.3.3)"
(+.p16 (-.p16 (/.p16 (real->posit16 1) (+.p16 x (real->posit16 1))) (/.p16 (real->posit16 2) x)) (/.p16 (real->posit16 1) (-.p16 x (real->posit16 1)))))