\frac{1.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}{2.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}\frac{\mathsf{fma}\left(2.0 - \frac{2.0}{\mathsf{fma}\left(1.0, t, 1.0\right)}, 2.0 - \frac{2.0}{\mathsf{fma}\left(1.0, t, 1.0\right)}, 1.0\right)}{\mathsf{fma}\left(2.0 - \frac{2.0}{\mathsf{fma}\left(1.0, t, 1.0\right)}, 2.0 - \frac{2.0}{\mathsf{fma}\left(1.0, t, 1.0\right)}, 2.0\right)}double f(double t) {
double r1551956 = 1.0;
double r1551957 = 2.0;
double r1551958 = t;
double r1551959 = r1551957 / r1551958;
double r1551960 = r1551956 / r1551958;
double r1551961 = r1551956 + r1551960;
double r1551962 = r1551959 / r1551961;
double r1551963 = r1551957 - r1551962;
double r1551964 = r1551963 * r1551963;
double r1551965 = r1551956 + r1551964;
double r1551966 = r1551957 + r1551964;
double r1551967 = r1551965 / r1551966;
return r1551967;
}
double f(double t) {
double r1551968 = 2.0;
double r1551969 = 1.0;
double r1551970 = t;
double r1551971 = fma(r1551969, r1551970, r1551969);
double r1551972 = r1551968 / r1551971;
double r1551973 = r1551968 - r1551972;
double r1551974 = fma(r1551973, r1551973, r1551969);
double r1551975 = fma(r1551973, r1551973, r1551968);
double r1551976 = r1551974 / r1551975;
return r1551976;
}



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