Average Error: 0.0 → 0.0
Time: 2.5s
Precision: 64
\[1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\]
\[1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\]
1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}
1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}
double f(double t) {
        double r61454 = 1.0;
        double r61455 = 2.0;
        double r61456 = t;
        double r61457 = r61455 / r61456;
        double r61458 = r61454 / r61456;
        double r61459 = r61454 + r61458;
        double r61460 = r61457 / r61459;
        double r61461 = r61455 - r61460;
        double r61462 = r61461 * r61461;
        double r61463 = r61455 + r61462;
        double r61464 = r61454 / r61463;
        double r61465 = r61454 - r61464;
        return r61465;
}

double f(double t) {
        double r61466 = 1.0;
        double r61467 = 2.0;
        double r61468 = t;
        double r61469 = r61467 / r61468;
        double r61470 = r61466 / r61468;
        double r61471 = r61466 + r61470;
        double r61472 = r61469 / r61471;
        double r61473 = r61467 - r61472;
        double r61474 = r61473 * r61473;
        double r61475 = r61467 + r61474;
        double r61476 = r61466 / r61475;
        double r61477 = r61466 - r61476;
        return r61477;
}

Error

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[1 - \frac{1}{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. Final simplification0.0

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

Reproduce

herbie shell --seed 2020033 +o rules:numerics
(FPCore (t)
  :name "Kahan p13 Example 3"
  :precision binary64
  (- 1 (/ 1 (+ 2 (* (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))) (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))))))))