\frac{\left(\left(\frac{\left(1\right)}{\left(\frac{x}{\left(1\right)}\right)}\right) - \left(\frac{\left(2\right)}{x}\right)\right)}{\left(\frac{\left(1\right)}{\left(x - \left(1\right)\right)}\right)}\left(\frac{1}{x + 1} - \frac{2}{x}\right) + \frac{1}{x - 1}double f(double x) {
double r4285822 = 1.0;
double r4285823 = /* ERROR: no posit support in C */;
double r4285824 = x;
double r4285825 = r4285824 + r4285823;
double r4285826 = r4285823 / r4285825;
double r4285827 = 2.0;
double r4285828 = /* ERROR: no posit support in C */;
double r4285829 = r4285828 / r4285824;
double r4285830 = r4285826 - r4285829;
double r4285831 = r4285824 - r4285823;
double r4285832 = r4285823 / r4285831;
double r4285833 = r4285830 + r4285832;
return r4285833;
}
double f(double x) {
double r4285834 = 1.0;
double r4285835 = x;
double r4285836 = r4285835 + r4285834;
double r4285837 = r4285834 / r4285836;
double r4285838 = 2.0;
double r4285839 = r4285838 / r4285835;
double r4285840 = r4285837 - r4285839;
double r4285841 = r4285835 - r4285834;
double r4285842 = r4285834 / r4285841;
double r4285843 = r4285840 + r4285842;
return r4285843;
}



Bits error versus x
Initial program 1.0
Final simplification1.0
herbie shell --seed 2019128
(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)))))