\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 r52662 = 1.0;
double r52663 = 2.0;
double r52664 = t;
double r52665 = r52663 / r52664;
double r52666 = r52662 / r52664;
double r52667 = r52662 + r52666;
double r52668 = r52665 / r52667;
double r52669 = r52663 - r52668;
double r52670 = r52669 * r52669;
double r52671 = r52662 + r52670;
double r52672 = r52663 + r52670;
double r52673 = r52671 / r52672;
return r52673;
}
double f(double t) {
double r52674 = 1.0;
double r52675 = 2.0;
double r52676 = t;
double r52677 = r52675 / r52676;
double r52678 = r52674 / r52676;
double r52679 = r52674 + r52678;
double r52680 = r52677 / r52679;
double r52681 = r52675 - r52680;
double r52682 = r52681 * r52681;
double r52683 = r52674 + r52682;
double r52684 = r52675 + r52682;
double r52685 = r52683 / r52684;
return r52685;
}



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