\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 r57000 = 1.0;
double r57001 = 2.0;
double r57002 = t;
double r57003 = r57001 / r57002;
double r57004 = r57000 / r57002;
double r57005 = r57000 + r57004;
double r57006 = r57003 / r57005;
double r57007 = r57001 - r57006;
double r57008 = r57007 * r57007;
double r57009 = r57000 + r57008;
double r57010 = r57001 + r57008;
double r57011 = r57009 / r57010;
return r57011;
}
double f(double t) {
double r57012 = 1.0;
double r57013 = 2.0;
double r57014 = t;
double r57015 = r57013 / r57014;
double r57016 = r57012 / r57014;
double r57017 = r57012 + r57016;
double r57018 = r57015 / r57017;
double r57019 = r57013 - r57018;
double r57020 = r57019 * r57019;
double r57021 = r57012 + r57020;
double r57022 = r57013 + r57020;
double r57023 = r57021 / r57022;
return r57023;
}



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