\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 r118007 = 1.0;
double r118008 = 2.0;
double r118009 = t;
double r118010 = r118008 / r118009;
double r118011 = r118007 / r118009;
double r118012 = r118007 + r118011;
double r118013 = r118010 / r118012;
double r118014 = r118008 - r118013;
double r118015 = r118014 * r118014;
double r118016 = r118007 + r118015;
double r118017 = r118008 + r118015;
double r118018 = r118016 / r118017;
return r118018;
}
double f(double t) {
double r118019 = 1.0;
double r118020 = 2.0;
double r118021 = t;
double r118022 = r118020 / r118021;
double r118023 = r118019 / r118021;
double r118024 = r118019 + r118023;
double r118025 = r118022 / r118024;
double r118026 = r118020 - r118025;
double r118027 = r118026 * r118026;
double r118028 = r118019 + r118027;
double r118029 = r118020 + r118027;
double r118030 = r118028 / r118029;
return r118030;
}



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