\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 r48591 = 1.0;
double r48592 = 2.0;
double r48593 = t;
double r48594 = r48592 / r48593;
double r48595 = r48591 / r48593;
double r48596 = r48591 + r48595;
double r48597 = r48594 / r48596;
double r48598 = r48592 - r48597;
double r48599 = r48598 * r48598;
double r48600 = r48591 + r48599;
double r48601 = r48592 + r48599;
double r48602 = r48600 / r48601;
return r48602;
}
double f(double t) {
double r48603 = 1.0;
double r48604 = 2.0;
double r48605 = t;
double r48606 = r48604 / r48605;
double r48607 = r48603 / r48605;
double r48608 = r48603 + r48607;
double r48609 = r48606 / r48608;
double r48610 = r48604 - r48609;
double r48611 = r48610 * r48610;
double r48612 = r48603 + r48611;
double r48613 = r48604 + r48611;
double r48614 = r48612 / r48613;
return r48614;
}



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