double f(double t) {
double r5679601 = 1.0;
double r5679602 = 2.0;
double r5679603 = t;
double r5679604 = r5679602 / r5679603;
double r5679605 = r5679601 / r5679603;
double r5679606 = r5679601 + r5679605;
double r5679607 = r5679604 / r5679606;
double r5679608 = r5679602 - r5679607;
double r5679609 = r5679608 * r5679608;
double r5679610 = r5679601 + r5679609;
double r5679611 = r5679602 + r5679609;
double r5679612 = r5679610 / r5679611;
return r5679612;
}
double f(double t) {
double r5679613 = 2.0;
double r5679614 = 1.0;
double r5679615 = t;
double r5679616 = r5679614 + r5679615;
double r5679617 = r5679613 / r5679616;
double r5679618 = r5679613 - r5679617;
double r5679619 = fma(r5679618, r5679618, r5679614);
double r5679620 = fma(r5679618, r5679618, r5679613);
double r5679621 = r5679619 / r5679620;
return r5679621;
}
\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{(\left(2 - \frac{2}{1 + t}\right) \cdot \left(2 - \frac{2}{1 + t}\right) + 1)_*}{(\left(2 - \frac{2}{1 + t}\right) \cdot \left(2 - \frac{2}{1 + t}\right) + 2)_*}


Bits error versus t
Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019101 +o rules:numerics
(FPCore (t)
:name "Kahan p13 Example 2"
(/ (+ 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))))))))