double f(double t) {
double r4214746 = 1.0;
double r4214747 = 2.0;
double r4214748 = t;
double r4214749 = r4214747 * r4214748;
double r4214750 = r4214746 + r4214748;
double r4214751 = r4214749 / r4214750;
double r4214752 = r4214751 * r4214751;
double r4214753 = r4214746 + r4214752;
double r4214754 = r4214747 + r4214752;
double r4214755 = r4214753 / r4214754;
return r4214755;
}
double f(double t) {
double r4214756 = t;
double r4214757 = 2.0;
double r4214758 = r4214756 * r4214757;
double r4214759 = 1.0;
double r4214760 = r4214759 + r4214756;
double r4214761 = r4214758 / r4214760;
double r4214762 = fma(r4214761, r4214761, r4214759);
double r4214763 = fma(r4214761, r4214761, r4214757);
double r4214764 = r4214762 / r4214763;
return r4214764;
}
\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{(\left(\frac{t \cdot 2}{1 + t}\right) \cdot \left(\frac{t \cdot 2}{1 + t}\right) + 1)_*}{(\left(\frac{t \cdot 2}{1 + t}\right) \cdot \left(\frac{t \cdot 2}{1 + t}\right) + 2)_*}


Bits error versus t
Initial program 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019101 +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))))))