\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 r48862 = 1.0;
double r48863 = 2.0;
double r48864 = t;
double r48865 = r48863 / r48864;
double r48866 = r48862 / r48864;
double r48867 = r48862 + r48866;
double r48868 = r48865 / r48867;
double r48869 = r48863 - r48868;
double r48870 = r48869 * r48869;
double r48871 = r48862 + r48870;
double r48872 = r48863 + r48870;
double r48873 = r48871 / r48872;
return r48873;
}
double f(double t) {
double r48874 = 1.0;
double r48875 = 2.0;
double r48876 = t;
double r48877 = r48875 / r48876;
double r48878 = r48874 / r48876;
double r48879 = r48874 + r48878;
double r48880 = r48877 / r48879;
double r48881 = r48875 - r48880;
double r48882 = r48881 * r48881;
double r48883 = r48874 + r48882;
double r48884 = r48875 + r48882;
double r48885 = r48883 / r48884;
return r48885;
}



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