\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)}\frac{1}{x + 1} + \left(\frac{1}{x - 1} - \frac{2}{x}\right)double f(double x) {
double r2332925 = 1.0;
double r2332926 = /* ERROR: no posit support in C */;
double r2332927 = x;
double r2332928 = r2332927 + r2332926;
double r2332929 = r2332926 / r2332928;
double r2332930 = 2.0;
double r2332931 = /* ERROR: no posit support in C */;
double r2332932 = r2332931 / r2332927;
double r2332933 = r2332929 - r2332932;
double r2332934 = r2332927 - r2332926;
double r2332935 = r2332926 / r2332934;
double r2332936 = r2332933 + r2332935;
return r2332936;
}
double f(double x) {
double r2332937 = 1.0;
double r2332938 = x;
double r2332939 = r2332938 + r2332937;
double r2332940 = r2332937 / r2332939;
double r2332941 = r2332938 - r2332937;
double r2332942 = r2332937 / r2332941;
double r2332943 = 2.0;
double r2332944 = r2332943 / r2332938;
double r2332945 = r2332942 - r2332944;
double r2332946 = r2332940 + r2332945;
return r2332946;
}



Bits error versus x
Initial program 1.0
rmApplied +p16-rgt-identity-expand1.0
Applied associate--l+1.0
Applied associate-+l+1.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2019153
(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)))))