\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 r45454 = 1.0;
double r45455 = 2.0;
double r45456 = t;
double r45457 = r45455 / r45456;
double r45458 = r45454 / r45456;
double r45459 = r45454 + r45458;
double r45460 = r45457 / r45459;
double r45461 = r45455 - r45460;
double r45462 = r45461 * r45461;
double r45463 = r45454 + r45462;
double r45464 = r45455 + r45462;
double r45465 = r45463 / r45464;
return r45465;
}
double f(double t) {
double r45466 = 1.0;
double r45467 = 2.0;
double r45468 = t;
double r45469 = r45467 / r45468;
double r45470 = r45466 / r45468;
double r45471 = r45466 + r45470;
double r45472 = r45469 / r45471;
double r45473 = r45467 - r45472;
double r45474 = r45473 * r45473;
double r45475 = r45466 + r45474;
double r45476 = r45467 + r45474;
double r45477 = r45475 / r45476;
return r45477;
}



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