\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 r44851 = 1.0;
double r44852 = 2.0;
double r44853 = t;
double r44854 = r44852 / r44853;
double r44855 = r44851 / r44853;
double r44856 = r44851 + r44855;
double r44857 = r44854 / r44856;
double r44858 = r44852 - r44857;
double r44859 = r44858 * r44858;
double r44860 = r44851 + r44859;
double r44861 = r44852 + r44859;
double r44862 = r44860 / r44861;
return r44862;
}
double f(double t) {
double r44863 = 1.0;
double r44864 = 2.0;
double r44865 = t;
double r44866 = r44864 / r44865;
double r44867 = r44863 / r44865;
double r44868 = r44863 + r44867;
double r44869 = r44866 / r44868;
double r44870 = r44864 - r44869;
double r44871 = r44870 * r44870;
double r44872 = r44863 + r44871;
double r44873 = r44864 + r44871;
double r44874 = r44872 / r44873;
return r44874;
}



Bits error versus t
Results
Initial program 0.1
Final simplification0.1
herbie shell --seed 2019323 +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))))))))