\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 r52590 = 1.0;
double r52591 = 2.0;
double r52592 = t;
double r52593 = r52591 / r52592;
double r52594 = r52590 / r52592;
double r52595 = r52590 + r52594;
double r52596 = r52593 / r52595;
double r52597 = r52591 - r52596;
double r52598 = r52597 * r52597;
double r52599 = r52590 + r52598;
double r52600 = r52591 + r52598;
double r52601 = r52599 / r52600;
return r52601;
}
double f(double t) {
double r52602 = 1.0;
double r52603 = 2.0;
double r52604 = t;
double r52605 = r52603 / r52604;
double r52606 = r52602 / r52604;
double r52607 = r52602 + r52606;
double r52608 = r52605 / r52607;
double r52609 = r52603 - r52608;
double r52610 = r52609 * r52609;
double r52611 = r52602 + r52610;
double r52612 = r52603 + r52610;
double r52613 = r52611 / r52612;
return r52613;
}



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