\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 r50791 = 1.0;
double r50792 = 2.0;
double r50793 = t;
double r50794 = r50792 / r50793;
double r50795 = r50791 / r50793;
double r50796 = r50791 + r50795;
double r50797 = r50794 / r50796;
double r50798 = r50792 - r50797;
double r50799 = r50798 * r50798;
double r50800 = r50791 + r50799;
double r50801 = r50792 + r50799;
double r50802 = r50800 / r50801;
return r50802;
}
double f(double t) {
double r50803 = 1.0;
double r50804 = 2.0;
double r50805 = t;
double r50806 = r50804 / r50805;
double r50807 = r50803 / r50805;
double r50808 = r50803 + r50807;
double r50809 = r50806 / r50808;
double r50810 = r50804 - r50809;
double r50811 = r50810 * r50810;
double r50812 = r50803 + r50811;
double r50813 = r50804 + r50811;
double r50814 = r50812 / r50813;
return r50814;
}



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