Average Error: 0.0 → 0.0
Time: 6.3s
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 r82346 = 1.0;
        double r82347 = 2.0;
        double r82348 = t;
        double r82349 = r82347 / r82348;
        double r82350 = r82346 / r82348;
        double r82351 = r82346 + r82350;
        double r82352 = r82349 / r82351;
        double r82353 = r82347 - r82352;
        double r82354 = r82353 * r82353;
        double r82355 = r82347 + r82354;
        double r82356 = r82346 / r82355;
        double r82357 = r82346 - r82356;
        return r82357;
}

double f(double t) {
        double r82358 = 1.0;
        double r82359 = 2.0;
        double r82360 = t;
        double r82361 = r82359 / r82360;
        double r82362 = r82358 / r82360;
        double r82363 = r82358 + r82362;
        double r82364 = r82361 / r82363;
        double r82365 = r82359 - r82364;
        double r82366 = r82365 * r82365;
        double r82367 = r82359 + r82366;
        double r82368 = r82358 / r82367;
        double r82369 = r82358 - r82368;
        return r82369;
}

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 2020047 +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)))))))))