\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{2}{1 + t \cdot 1}\right) \cdot \left(2 - \frac{2}{1 + t \cdot 1}\right)}{2 + \left(2 - \frac{2}{1 + t \cdot 1}\right) \cdot \left(2 - \frac{2}{1 + t \cdot 1}\right)}double f(double t) {
double r43793 = 1.0;
double r43794 = 2.0;
double r43795 = t;
double r43796 = r43794 / r43795;
double r43797 = r43793 / r43795;
double r43798 = r43793 + r43797;
double r43799 = r43796 / r43798;
double r43800 = r43794 - r43799;
double r43801 = r43800 * r43800;
double r43802 = r43793 + r43801;
double r43803 = r43794 + r43801;
double r43804 = r43802 / r43803;
return r43804;
}
double f(double t) {
double r43805 = 1.0;
double r43806 = 2.0;
double r43807 = t;
double r43808 = r43807 * r43805;
double r43809 = r43805 + r43808;
double r43810 = r43806 / r43809;
double r43811 = r43806 - r43810;
double r43812 = r43811 * r43811;
double r43813 = r43805 + r43812;
double r43814 = r43806 + r43812;
double r43815 = r43813 / r43814;
return r43815;
}



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