\frac{1 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\frac{1 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}double f(double t) {
double r47891 = 1.0;
double r47892 = 2.0;
double r47893 = t;
double r47894 = r47892 / r47893;
double r47895 = r47891 / r47893;
double r47896 = r47891 + r47895;
double r47897 = r47894 / r47896;
double r47898 = r47892 - r47897;
double r47899 = r47898 * r47898;
double r47900 = r47891 + r47899;
double r47901 = r47892 + r47899;
double r47902 = r47900 / r47901;
return r47902;
}
double f(double t) {
double r47903 = 1.0;
double r47904 = 2.0;
double r47905 = t;
double r47906 = r47904 / r47905;
double r47907 = r47903 / r47905;
double r47908 = r47903 + r47907;
double r47909 = r47906 / r47908;
double r47910 = r47904 - r47909;
double r47911 = r47910 * r47910;
double r47912 = r47903 + r47911;
double r47913 = r47904 + r47911;
double r47914 = r47912 / r47913;
return r47914;
}



Bits error versus t
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2019353
(FPCore (t)
:name "Kahan p13 Example 2"
:precision binary64
(/ (+ 1 (* (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))) (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))))) (+ 2 (* (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))) (- 2 (/ (/ 2 t) (+ 1 (/ 1 t))))))))