\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 r29640 = 1.0;
double r29641 = 2.0;
double r29642 = t;
double r29643 = r29641 / r29642;
double r29644 = r29640 / r29642;
double r29645 = r29640 + r29644;
double r29646 = r29643 / r29645;
double r29647 = r29641 - r29646;
double r29648 = r29647 * r29647;
double r29649 = r29640 + r29648;
double r29650 = r29641 + r29648;
double r29651 = r29649 / r29650;
return r29651;
}
double f(double t) {
double r29652 = 1.0;
double r29653 = 2.0;
double r29654 = t;
double r29655 = r29653 / r29654;
double r29656 = r29652 / r29654;
double r29657 = r29652 + r29656;
double r29658 = r29655 / r29657;
double r29659 = r29653 - r29658;
double r29660 = r29659 * r29659;
double r29661 = r29652 + r29660;
double r29662 = r29653 + r29660;
double r29663 = r29661 / r29662;
return r29663;
}



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