\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{\mathsf{fma}\left(\frac{t \cdot 2}{1 + t}, \frac{t \cdot 2}{1 + t}, 1\right)}{\mathsf{fma}\left(\frac{t \cdot 2}{1 + t}, \frac{t \cdot 2}{1 + t}, 2\right)}double f(double t) {
double r898945 = 1.0;
double r898946 = 2.0;
double r898947 = t;
double r898948 = r898946 * r898947;
double r898949 = r898945 + r898947;
double r898950 = r898948 / r898949;
double r898951 = r898950 * r898950;
double r898952 = r898945 + r898951;
double r898953 = r898946 + r898951;
double r898954 = r898952 / r898953;
return r898954;
}
double f(double t) {
double r898955 = t;
double r898956 = 2.0;
double r898957 = r898955 * r898956;
double r898958 = 1.0;
double r898959 = r898958 + r898955;
double r898960 = r898957 / r898959;
double r898961 = fma(r898960, r898960, r898958);
double r898962 = fma(r898960, r898960, r898956);
double r898963 = r898961 / r898962;
return r898963;
}



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