\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 r59902 = 1.0;
double r59903 = 2.0;
double r59904 = t;
double r59905 = r59903 / r59904;
double r59906 = r59902 / r59904;
double r59907 = r59902 + r59906;
double r59908 = r59905 / r59907;
double r59909 = r59903 - r59908;
double r59910 = r59909 * r59909;
double r59911 = r59902 + r59910;
double r59912 = r59903 + r59910;
double r59913 = r59911 / r59912;
return r59913;
}
double f(double t) {
double r59914 = 1.0;
double r59915 = 2.0;
double r59916 = t;
double r59917 = r59915 / r59916;
double r59918 = r59914 / r59916;
double r59919 = r59914 + r59918;
double r59920 = r59917 / r59919;
double r59921 = r59915 - r59920;
double r59922 = r59921 * r59921;
double r59923 = r59914 + r59922;
double r59924 = r59915 + r59922;
double r59925 = r59923 / r59924;
return r59925;
}



Bits error versus t
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020035 +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))))))))