\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 r1942723 = 1.0;
double r1942724 = /* ERROR: no posit support in C */;
double r1942725 = x;
double r1942726 = r1942725 + r1942724;
double r1942727 = r1942724 / r1942726;
double r1942728 = 2.0;
double r1942729 = /* ERROR: no posit support in C */;
double r1942730 = r1942729 / r1942725;
double r1942731 = r1942727 - r1942730;
double r1942732 = r1942725 - r1942724;
double r1942733 = r1942724 / r1942732;
double r1942734 = r1942731 + r1942733;
return r1942734;
}
double f(double x) {
double r1942735 = 1.0;
double r1942736 = x;
double r1942737 = r1942736 + r1942735;
double r1942738 = r1942735 / r1942737;
double r1942739 = 2.0;
double r1942740 = r1942739 / r1942736;
double r1942741 = r1942738 - r1942740;
double r1942742 = r1942736 - r1942735;
double r1942743 = r1942735 / r1942742;
double r1942744 = r1942741 + r1942743;
return r1942744;
}



Bits error versus x
Initial program 1.0
Final simplification1.0
herbie shell --seed 2019156 +o rules:numerics
(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)))))