Average Error: 0.0 → 0.0
Time: 2.7s
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 r50441 = 1.0;
        double r50442 = 2.0;
        double r50443 = t;
        double r50444 = r50442 / r50443;
        double r50445 = r50441 / r50443;
        double r50446 = r50441 + r50445;
        double r50447 = r50444 / r50446;
        double r50448 = r50442 - r50447;
        double r50449 = r50448 * r50448;
        double r50450 = r50442 + r50449;
        double r50451 = r50441 / r50450;
        double r50452 = r50441 - r50451;
        return r50452;
}

double f(double t) {
        double r50453 = 1.0;
        double r50454 = 2.0;
        double r50455 = t;
        double r50456 = r50454 / r50455;
        double r50457 = r50453 / r50455;
        double r50458 = r50453 + r50457;
        double r50459 = r50456 / r50458;
        double r50460 = r50454 - r50459;
        double r50461 = r50460 * r50460;
        double r50462 = r50454 + r50461;
        double r50463 = r50453 / r50462;
        double r50464 = r50453 - r50463;
        return r50464;
}

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