\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 r34066 = 1.0;
double r34067 = 2.0;
double r34068 = t;
double r34069 = r34067 / r34068;
double r34070 = r34066 / r34068;
double r34071 = r34066 + r34070;
double r34072 = r34069 / r34071;
double r34073 = r34067 - r34072;
double r34074 = r34073 * r34073;
double r34075 = r34066 + r34074;
double r34076 = r34067 + r34074;
double r34077 = r34075 / r34076;
return r34077;
}
double f(double t) {
double r34078 = 1.0;
double r34079 = 2.0;
double r34080 = t;
double r34081 = r34079 / r34080;
double r34082 = r34078 / r34080;
double r34083 = r34078 + r34082;
double r34084 = r34081 / r34083;
double r34085 = r34079 - r34084;
double r34086 = r34085 * r34085;
double r34087 = r34078 + r34086;
double r34088 = r34079 + r34086;
double r34089 = r34087 / r34088;
return r34089;
}



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