\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(\frac{\left(\left(-1 + t\right) + \left(1 - t\right)\right) \cdot 2}{1 - t \cdot t} + \mathsf{fma}\left(\frac{-2}{1 - t \cdot t}, 1 - t, 2\right), 2 - \frac{2}{1 + t}, 1\right)}{\mathsf{fma}\left(2 - \frac{2}{1 + t}, 2 - \frac{2}{1 + t}, 2\right)}double f(double t) {
double r943984 = 1.0;
double r943985 = 2.0;
double r943986 = t;
double r943987 = r943985 / r943986;
double r943988 = r943984 / r943986;
double r943989 = r943984 + r943988;
double r943990 = r943987 / r943989;
double r943991 = r943985 - r943990;
double r943992 = r943991 * r943991;
double r943993 = r943984 + r943992;
double r943994 = r943985 + r943992;
double r943995 = r943993 / r943994;
return r943995;
}
double f(double t) {
double r943996 = -1.0;
double r943997 = t;
double r943998 = r943996 + r943997;
double r943999 = 1.0;
double r944000 = r943999 - r943997;
double r944001 = r943998 + r944000;
double r944002 = 2.0;
double r944003 = r944001 * r944002;
double r944004 = r943997 * r943997;
double r944005 = r943999 - r944004;
double r944006 = r944003 / r944005;
double r944007 = -2.0;
double r944008 = r944007 / r944005;
double r944009 = fma(r944008, r944000, r944002);
double r944010 = r944006 + r944009;
double r944011 = r943999 + r943997;
double r944012 = r944002 / r944011;
double r944013 = r944002 - r944012;
double r944014 = fma(r944010, r944013, r943999);
double r944015 = fma(r944013, r944013, r944002);
double r944016 = r944014 / r944015;
return r944016;
}



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 2019144 +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))))))))