\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 r80541 = 1.0;
double r80542 = 2.0;
double r80543 = t;
double r80544 = r80542 / r80543;
double r80545 = r80541 / r80543;
double r80546 = r80541 + r80545;
double r80547 = r80544 / r80546;
double r80548 = r80542 - r80547;
double r80549 = r80548 * r80548;
double r80550 = r80541 + r80549;
double r80551 = r80542 + r80549;
double r80552 = r80550 / r80551;
return r80552;
}
double f(double t) {
double r80553 = 1.0;
double r80554 = 2.0;
double r80555 = t;
double r80556 = r80554 / r80555;
double r80557 = r80553 / r80555;
double r80558 = r80553 + r80557;
double r80559 = r80556 / r80558;
double r80560 = r80554 - r80559;
double r80561 = r80560 * r80560;
double r80562 = r80553 + r80561;
double r80563 = r80554 + r80561;
double r80564 = r80562 / r80563;
return r80564;
}



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