\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{\mathsf{fma}\left(2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, 2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, 1\right)}{\mathsf{fma}\left(2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, 2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, 2\right)}double f(double t) {
double r31598 = 1.0;
double r31599 = 2.0;
double r31600 = t;
double r31601 = r31599 / r31600;
double r31602 = r31598 / r31600;
double r31603 = r31598 + r31602;
double r31604 = r31601 / r31603;
double r31605 = r31599 - r31604;
double r31606 = r31605 * r31605;
double r31607 = r31598 + r31606;
double r31608 = r31599 + r31606;
double r31609 = r31607 / r31608;
return r31609;
}
double f(double t) {
double r31610 = 2.0;
double r31611 = 1.0;
double r31612 = t;
double r31613 = fma(r31611, r31612, r31611);
double r31614 = r31610 / r31613;
double r31615 = r31610 - r31614;
double r31616 = fma(r31615, r31615, r31611);
double r31617 = fma(r31615, r31615, r31610);
double r31618 = r31616 / r31617;
return r31618;
}



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