\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 r50683 = 1.0;
double r50684 = 2.0;
double r50685 = t;
double r50686 = r50684 / r50685;
double r50687 = r50683 / r50685;
double r50688 = r50683 + r50687;
double r50689 = r50686 / r50688;
double r50690 = r50684 - r50689;
double r50691 = r50690 * r50690;
double r50692 = r50683 + r50691;
double r50693 = r50684 + r50691;
double r50694 = r50692 / r50693;
return r50694;
}
double f(double t) {
double r50695 = 1.0;
double r50696 = 2.0;
double r50697 = t;
double r50698 = r50696 / r50697;
double r50699 = r50695 / r50697;
double r50700 = r50695 + r50699;
double r50701 = r50698 / r50700;
double r50702 = r50696 - r50701;
double r50703 = r50702 * r50702;
double r50704 = r50695 + r50703;
double r50705 = r50696 + r50703;
double r50706 = r50704 / r50705;
return r50706;
}



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