\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 r35083 = 1.0;
double r35084 = 2.0;
double r35085 = t;
double r35086 = r35084 / r35085;
double r35087 = r35083 / r35085;
double r35088 = r35083 + r35087;
double r35089 = r35086 / r35088;
double r35090 = r35084 - r35089;
double r35091 = r35090 * r35090;
double r35092 = r35083 + r35091;
double r35093 = r35084 + r35091;
double r35094 = r35092 / r35093;
return r35094;
}
double f(double t) {
double r35095 = 1.0;
double r35096 = 2.0;
double r35097 = t;
double r35098 = r35096 / r35097;
double r35099 = r35095 / r35097;
double r35100 = r35095 + r35099;
double r35101 = r35098 / r35100;
double r35102 = r35096 - r35101;
double r35103 = r35102 * r35102;
double r35104 = r35095 + r35103;
double r35105 = r35096 + r35103;
double r35106 = r35104 / r35105;
return r35106;
}



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