Average Error: 0.0 → 0.0
Time: 6.8s
Precision: 64
\[\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{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 1\right)}{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 2\right)}\]
\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{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 1\right)}{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 2\right)}
double f(double t) {
        double r577310 = 1.0;
        double r577311 = 2.0;
        double r577312 = t;
        double r577313 = r577311 / r577312;
        double r577314 = r577310 / r577312;
        double r577315 = r577310 + r577314;
        double r577316 = r577313 / r577315;
        double r577317 = r577311 - r577316;
        double r577318 = r577317 * r577317;
        double r577319 = r577310 + r577318;
        double r577320 = r577311 + r577318;
        double r577321 = r577319 / r577320;
        return r577321;
}

double f(double t) {
        double r577322 = 2.0;
        double r577323 = t;
        double r577324 = 1.0;
        double r577325 = r577323 + r577324;
        double r577326 = r577322 / r577325;
        double r577327 = r577322 - r577326;
        double r577328 = fma(r577327, r577327, r577324);
        double r577329 = fma(r577327, r577327, r577322);
        double r577330 = r577328 / r577329;
        return r577330;
}

Error

Bits error versus t

Derivation

  1. Initial program 0.0

    \[\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)}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 1\right)}{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 2\right)}}\]
  3. Final simplification0.0

    \[\leadsto \frac{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 1\right)}{\mathsf{fma}\left(2 - \frac{2}{t + 1}, 2 - \frac{2}{t + 1}, 2\right)}\]

Reproduce

herbie shell --seed 2019155 +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))))))))