\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 r48119 = 1.0;
double r48120 = 2.0;
double r48121 = t;
double r48122 = r48120 / r48121;
double r48123 = r48119 / r48121;
double r48124 = r48119 + r48123;
double r48125 = r48122 / r48124;
double r48126 = r48120 - r48125;
double r48127 = r48126 * r48126;
double r48128 = r48119 + r48127;
double r48129 = r48120 + r48127;
double r48130 = r48128 / r48129;
return r48130;
}
double f(double t) {
double r48131 = 1.0;
double r48132 = 2.0;
double r48133 = t;
double r48134 = r48132 / r48133;
double r48135 = r48131 / r48133;
double r48136 = r48131 + r48135;
double r48137 = r48134 / r48136;
double r48138 = r48132 - r48137;
double r48139 = r48138 * r48138;
double r48140 = r48131 + r48139;
double r48141 = r48132 + r48139;
double r48142 = r48140 / r48141;
return r48142;
}



Bits error versus t
Results
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020083
(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))))))))