\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 r57631 = 1.0;
double r57632 = 2.0;
double r57633 = t;
double r57634 = r57632 / r57633;
double r57635 = r57631 / r57633;
double r57636 = r57631 + r57635;
double r57637 = r57634 / r57636;
double r57638 = r57632 - r57637;
double r57639 = r57638 * r57638;
double r57640 = r57631 + r57639;
double r57641 = r57632 + r57639;
double r57642 = r57640 / r57641;
return r57642;
}
double f(double t) {
double r57643 = 1.0;
double r57644 = 2.0;
double r57645 = t;
double r57646 = r57644 / r57645;
double r57647 = r57643 / r57645;
double r57648 = r57643 + r57647;
double r57649 = r57646 / r57648;
double r57650 = r57644 - r57649;
double r57651 = r57650 * r57650;
double r57652 = r57643 + r57651;
double r57653 = r57644 + r57651;
double r57654 = r57652 / r57653;
return r57654;
}



Bits error versus t
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020081
(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))))))))