Average Error: 0.0 → 0.0
Time: 3.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 r57397 = 1.0;
        double r57398 = 2.0;
        double r57399 = t;
        double r57400 = r57398 / r57399;
        double r57401 = r57397 / r57399;
        double r57402 = r57397 + r57401;
        double r57403 = r57400 / r57402;
        double r57404 = r57398 - r57403;
        double r57405 = r57404 * r57404;
        double r57406 = r57398 + r57405;
        double r57407 = r57397 / r57406;
        double r57408 = r57397 - r57407;
        return r57408;
}

double f(double t) {
        double r57409 = 1.0;
        double r57410 = 2.0;
        double r57411 = t;
        double r57412 = r57410 / r57411;
        double r57413 = r57409 / r57411;
        double r57414 = r57409 + r57413;
        double r57415 = r57412 / r57414;
        double r57416 = r57410 - r57415;
        double r57417 = r57416 * r57416;
        double r57418 = r57410 + r57417;
        double r57419 = r57409 / r57418;
        double r57420 = r57409 - r57419;
        return r57420;
}

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