\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 r60879 = 1.0;
double r60880 = 2.0;
double r60881 = t;
double r60882 = r60880 / r60881;
double r60883 = r60879 / r60881;
double r60884 = r60879 + r60883;
double r60885 = r60882 / r60884;
double r60886 = r60880 - r60885;
double r60887 = r60886 * r60886;
double r60888 = r60879 + r60887;
double r60889 = r60880 + r60887;
double r60890 = r60888 / r60889;
return r60890;
}
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;
}



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))))))))