\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{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)}double f(double t) {
double r32636 = 1.0;
double r32637 = 2.0;
double r32638 = t;
double r32639 = r32637 / r32638;
double r32640 = r32636 / r32638;
double r32641 = r32636 + r32640;
double r32642 = r32639 / r32641;
double r32643 = r32637 - r32642;
double r32644 = r32643 * r32643;
double r32645 = r32636 + r32644;
double r32646 = r32637 + r32644;
double r32647 = r32645 / r32646;
return r32647;
}
double f(double t) {
double r32648 = 1.0;
double r32649 = 2.0;
double r32650 = t;
double r32651 = r32649 / r32650;
double r32652 = r32648 / r32650;
double r32653 = r32648 + r32652;
double r32654 = r32651 / r32653;
double r32655 = r32649 - r32654;
double r32656 = r32655 * r32655;
double r32657 = r32648 + r32656;
double r32658 = r32649 + r32656;
double r32659 = r32657 / r32658;
return r32659;
}



Bits error versus t
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2019304
(FPCore (t)
:name "Kahan p13 Example 2"
:precision binary64
(/ (+ 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))))))))