\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 r44056 = 1.0;
double r44057 = 2.0;
double r44058 = t;
double r44059 = r44057 / r44058;
double r44060 = r44056 / r44058;
double r44061 = r44056 + r44060;
double r44062 = r44059 / r44061;
double r44063 = r44057 - r44062;
double r44064 = r44063 * r44063;
double r44065 = r44056 + r44064;
double r44066 = r44057 + r44064;
double r44067 = r44065 / r44066;
return r44067;
}
double f(double t) {
double r44068 = 1.0;
double r44069 = 2.0;
double r44070 = t;
double r44071 = r44069 / r44070;
double r44072 = r44068 / r44070;
double r44073 = r44068 + r44072;
double r44074 = r44071 / r44073;
double r44075 = r44069 - r44074;
double r44076 = r44075 * r44075;
double r44077 = r44068 + r44076;
double r44078 = r44069 + r44076;
double r44079 = r44077 / r44078;
return r44079;
}



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