\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 r43916 = 1.0;
double r43917 = 2.0;
double r43918 = t;
double r43919 = r43917 / r43918;
double r43920 = r43916 / r43918;
double r43921 = r43916 + r43920;
double r43922 = r43919 / r43921;
double r43923 = r43917 - r43922;
double r43924 = r43923 * r43923;
double r43925 = r43916 + r43924;
double r43926 = r43917 + r43924;
double r43927 = r43925 / r43926;
return r43927;
}
double f(double t) {
double r43928 = 1.0;
double r43929 = 2.0;
double r43930 = t;
double r43931 = r43929 / r43930;
double r43932 = r43928 / r43930;
double r43933 = r43928 + r43932;
double r43934 = r43931 / r43933;
double r43935 = r43929 - r43934;
double r43936 = r43935 * r43935;
double r43937 = r43928 + r43936;
double r43938 = r43929 + r43936;
double r43939 = r43937 / r43938;
return r43939;
}



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