\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(\left(\left(-\left(t - 1\right)\right) + \left(t - 1\right)\right) \cdot \frac{2}{\mathsf{fma}\left(t, t, -1\right)} + \mathsf{fma}\left(\frac{-2}{\mathsf{fma}\left(t, t, -1\right)}, t - 1, 2\right), 2 - \frac{2}{t + 1}, 1\right)}{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 2\right)}double f(double t) {
double r654939 = 1.0;
double r654940 = 2.0;
double r654941 = t;
double r654942 = r654940 / r654941;
double r654943 = r654939 / r654941;
double r654944 = r654939 + r654943;
double r654945 = r654942 / r654944;
double r654946 = r654940 - r654945;
double r654947 = r654946 * r654946;
double r654948 = r654939 + r654947;
double r654949 = r654940 + r654947;
double r654950 = r654948 / r654949;
return r654950;
}
double f(double t) {
double r654951 = t;
double r654952 = 1.0;
double r654953 = r654951 - r654952;
double r654954 = -r654953;
double r654955 = r654954 + r654953;
double r654956 = 2.0;
double r654957 = -1.0;
double r654958 = fma(r654951, r654951, r654957);
double r654959 = r654956 / r654958;
double r654960 = r654955 * r654959;
double r654961 = -2.0;
double r654962 = r654961 / r654958;
double r654963 = fma(r654962, r654953, r654956);
double r654964 = r654960 + r654963;
double r654965 = r654951 + r654952;
double r654966 = r654956 / r654965;
double r654967 = r654956 - r654966;
double r654968 = fma(r654964, r654967, r654952);
double r654969 = fma(r654967, r654967, r654956);
double r654970 = r654968 / r654969;
return r654970;
}



Bits error versus t
Initial program 0.0
Simplified0.0
rmApplied flip-+0.0
Applied associate-/r/0.0
Applied add-cube-cbrt0.8
Applied prod-diff0.8
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019153 +o rules:numerics
(FPCore (t)
:name "Kahan p13 Example 2"
(/ (+ 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))))))))