\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 r687643 = 1.0;
double r687644 = 2.0;
double r687645 = t;
double r687646 = r687644 / r687645;
double r687647 = r687643 / r687645;
double r687648 = r687643 + r687647;
double r687649 = r687646 / r687648;
double r687650 = r687644 - r687649;
double r687651 = r687650 * r687650;
double r687652 = r687643 + r687651;
double r687653 = r687644 + r687651;
double r687654 = r687652 / r687653;
return r687654;
}
double f(double t) {
double r687655 = t;
double r687656 = 1.0;
double r687657 = r687655 - r687656;
double r687658 = -r687657;
double r687659 = r687658 + r687657;
double r687660 = 2.0;
double r687661 = -1.0;
double r687662 = fma(r687655, r687655, r687661);
double r687663 = r687660 / r687662;
double r687664 = r687659 * r687663;
double r687665 = -2.0;
double r687666 = r687665 / r687662;
double r687667 = fma(r687666, r687657, r687660);
double r687668 = r687664 + r687667;
double r687669 = r687655 + r687656;
double r687670 = r687660 / r687669;
double r687671 = r687660 - r687670;
double r687672 = fma(r687668, r687671, r687656);
double r687673 = fma(r687671, r687671, r687660);
double r687674 = r687672 / r687673;
return r687674;
}



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