\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{1}{x - 1}\right) - \frac{2}{x}double f(double x) {
double r7666944 = 1.0;
double r7666945 = /* ERROR: no posit support in C */;
double r7666946 = x;
double r7666947 = r7666946 + r7666945;
double r7666948 = r7666945 / r7666947;
double r7666949 = 2.0;
double r7666950 = /* ERROR: no posit support in C */;
double r7666951 = r7666950 / r7666946;
double r7666952 = r7666948 - r7666951;
double r7666953 = r7666946 - r7666945;
double r7666954 = r7666945 / r7666953;
double r7666955 = r7666952 + r7666954;
return r7666955;
}
double f(double x) {
double r7666956 = 1.0;
double r7666957 = x;
double r7666958 = r7666957 + r7666956;
double r7666959 = r7666956 / r7666958;
double r7666960 = r7666957 - r7666956;
double r7666961 = r7666956 / r7666960;
double r7666962 = r7666959 + r7666961;
double r7666963 = 2.0;
double r7666964 = r7666963 / r7666957;
double r7666965 = r7666962 - r7666964;
return r7666965;
}



Bits error versus x
Initial program 1.0
rmApplied sub-neg1.0
Applied associate-+l+1.0
Simplified1.0
rmApplied associate-+r-1.1
Final simplification1.1
herbie shell --seed 2019132 +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)))))