\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 r66495 = 1.0;
double r66496 = 2.0;
double r66497 = t;
double r66498 = r66496 / r66497;
double r66499 = r66495 / r66497;
double r66500 = r66495 + r66499;
double r66501 = r66498 / r66500;
double r66502 = r66496 - r66501;
double r66503 = r66502 * r66502;
double r66504 = r66495 + r66503;
double r66505 = r66496 + r66503;
double r66506 = r66504 / r66505;
return r66506;
}
double f(double t) {
double r66507 = 1.0;
double r66508 = 2.0;
double r66509 = t;
double r66510 = r66508 / r66509;
double r66511 = r66507 / r66509;
double r66512 = r66507 + r66511;
double r66513 = r66510 / r66512;
double r66514 = r66508 - r66513;
double r66515 = r66514 * r66514;
double r66516 = r66507 + r66515;
double r66517 = r66508 + r66515;
double r66518 = r66516 / r66517;
return r66518;
}



Bits error versus t
Results
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020083 +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))))))))