\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 r48286 = 1.0;
double r48287 = 2.0;
double r48288 = t;
double r48289 = r48287 / r48288;
double r48290 = r48286 / r48288;
double r48291 = r48286 + r48290;
double r48292 = r48289 / r48291;
double r48293 = r48287 - r48292;
double r48294 = r48293 * r48293;
double r48295 = r48286 + r48294;
double r48296 = r48287 + r48294;
double r48297 = r48295 / r48296;
return r48297;
}
double f(double t) {
double r48298 = 1.0;
double r48299 = 2.0;
double r48300 = t;
double r48301 = r48299 / r48300;
double r48302 = r48298 / r48300;
double r48303 = r48298 + r48302;
double r48304 = r48301 / r48303;
double r48305 = r48299 - r48304;
double r48306 = r48305 * r48305;
double r48307 = r48298 + r48306;
double r48308 = r48299 + r48306;
double r48309 = r48307 / r48308;
return r48309;
}



Bits error versus t
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020027 +o rules:numerics
(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))))))))