\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 r48449 = 1.0;
double r48450 = 2.0;
double r48451 = t;
double r48452 = r48450 / r48451;
double r48453 = r48449 / r48451;
double r48454 = r48449 + r48453;
double r48455 = r48452 / r48454;
double r48456 = r48450 - r48455;
double r48457 = r48456 * r48456;
double r48458 = r48449 + r48457;
double r48459 = r48450 + r48457;
double r48460 = r48458 / r48459;
return r48460;
}
double f(double t) {
double r48461 = 1.0;
double r48462 = 2.0;
double r48463 = t;
double r48464 = r48462 / r48463;
double r48465 = r48461 / r48463;
double r48466 = r48461 + r48465;
double r48467 = r48464 / r48466;
double r48468 = r48462 - r48467;
double r48469 = r48468 * r48468;
double r48470 = r48461 + r48469;
double r48471 = r48462 + r48469;
double r48472 = r48470 / r48471;
return r48472;
}



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