\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 r1975667 = 1.0;
double r1975668 = 2.0;
double r1975669 = t;
double r1975670 = r1975668 / r1975669;
double r1975671 = r1975667 / r1975669;
double r1975672 = r1975667 + r1975671;
double r1975673 = r1975670 / r1975672;
double r1975674 = r1975668 - r1975673;
double r1975675 = r1975674 * r1975674;
double r1975676 = r1975667 + r1975675;
double r1975677 = r1975668 + r1975675;
double r1975678 = r1975676 / r1975677;
return r1975678;
}
double f(double t) {
double r1975679 = 2.0;
double r1975680 = 1.0;
double r1975681 = t;
double r1975682 = fma(r1975680, r1975681, r1975680);
double r1975683 = r1975679 / r1975682;
double r1975684 = r1975679 - r1975683;
double r1975685 = fma(r1975684, r1975684, r1975680);
double r1975686 = fma(r1975684, r1975684, r1975679);
double r1975687 = r1975685 / r1975686;
return r1975687;
}



Bits error versus t
Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019171 +o rules:numerics
(FPCore (t)
:name "Kahan p13 Example 2"
(/ (+ 1.0 (* (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))) (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))))) (+ 2.0 (* (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))) (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t))))))))