\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 code(double t) {
return ((double) (((double) (1.0 + ((double) (((double) (((double) (2.0 * t)) / ((double) (1.0 + t)))) * ((double) (((double) (2.0 * t)) / ((double) (1.0 + t)))))))) / ((double) (2.0 + ((double) (((double) (((double) (2.0 * t)) / ((double) (1.0 + t)))) * ((double) (((double) (2.0 * t)) / ((double) (1.0 + t))))))))));
}
double code(double t) {
return ((double) (((double) (1.0 + ((double) (((double) (((double) (2.0 * t)) / ((double) (1.0 + t)))) * ((double) (((double) (2.0 * t)) / ((double) (1.0 + t)))))))) / ((double) (2.0 + ((double) (((double) (((double) (2.0 * t)) / ((double) (1.0 + t)))) * ((double) (((double) (2.0 * t)) / ((double) (1.0 + t))))))))));
}



Bits error versus t
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020150
(FPCore (t)
:name "Kahan p13 Example 1"
:precision binary64
(/ (+ 1.0 (* (/ (* 2.0 t) (+ 1.0 t)) (/ (* 2.0 t) (+ 1.0 t)))) (+ 2.0 (* (/ (* 2.0 t) (+ 1.0 t)) (/ (* 2.0 t) (+ 1.0 t))))))