\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 r60891 = 1.0;
double r60892 = 2.0;
double r60893 = t;
double r60894 = r60892 / r60893;
double r60895 = r60891 / r60893;
double r60896 = r60891 + r60895;
double r60897 = r60894 / r60896;
double r60898 = r60892 - r60897;
double r60899 = r60898 * r60898;
double r60900 = r60891 + r60899;
double r60901 = r60892 + r60899;
double r60902 = r60900 / r60901;
return r60902;
}
double f(double t) {
double r60903 = 1.0;
double r60904 = 2.0;
double r60905 = t;
double r60906 = r60904 / r60905;
double r60907 = r60903 / r60905;
double r60908 = r60903 + r60907;
double r60909 = r60906 / r60908;
double r60910 = r60904 - r60909;
double r60911 = r60910 * r60910;
double r60912 = r60903 + r60911;
double r60913 = r60904 + r60911;
double r60914 = r60912 / r60913;
return r60914;
}



Bits error versus t
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020060 +o rules:numerics
(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))))))))