\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 r62338 = 1.0;
double r62339 = 2.0;
double r62340 = t;
double r62341 = r62339 / r62340;
double r62342 = r62338 / r62340;
double r62343 = r62338 + r62342;
double r62344 = r62341 / r62343;
double r62345 = r62339 - r62344;
double r62346 = r62345 * r62345;
double r62347 = r62338 + r62346;
double r62348 = r62339 + r62346;
double r62349 = r62347 / r62348;
return r62349;
}
double f(double t) {
double r62350 = 1.0;
double r62351 = 2.0;
double r62352 = t;
double r62353 = r62351 / r62352;
double r62354 = r62350 / r62352;
double r62355 = r62350 + r62354;
double r62356 = r62353 / r62355;
double r62357 = r62351 - r62356;
double r62358 = r62357 * r62357;
double r62359 = r62350 + r62358;
double r62360 = r62351 + r62358;
double r62361 = r62359 / r62360;
return r62361;
}



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