\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}double f(double t) {
double r66897 = 1.0;
double r66898 = 2.0;
double r66899 = t;
double r66900 = r66898 * r66899;
double r66901 = r66897 + r66899;
double r66902 = r66900 / r66901;
double r66903 = r66902 * r66902;
double r66904 = r66897 + r66903;
double r66905 = r66898 + r66903;
double r66906 = r66904 / r66905;
return r66906;
}
double f(double t) {
double r66907 = 1.0;
double r66908 = 2.0;
double r66909 = t;
double r66910 = r66908 * r66909;
double r66911 = r66907 + r66909;
double r66912 = r66910 / r66911;
double r66913 = r66912 * r66912;
double r66914 = r66907 + r66913;
double r66915 = r66908 + r66913;
double r66916 = r66914 / r66915;
return r66916;
}



Bits error versus t
Results
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020081 +o rules:numerics
(FPCore (t)
:name "Kahan p13 Example 1"
:precision binary64
(/ (+ 1 (* (/ (* 2 t) (+ 1 t)) (/ (* 2 t) (+ 1 t)))) (+ 2 (* (/ (* 2 t) (+ 1 t)) (/ (* 2 t) (+ 1 t))))))