Average Error: 0.0 → 0.0
Time: 14.1s
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 r36662 = 1.0;
        double r36663 = 2.0;
        double r36664 = t;
        double r36665 = r36663 / r36664;
        double r36666 = r36662 / r36664;
        double r36667 = r36662 + r36666;
        double r36668 = r36665 / r36667;
        double r36669 = r36663 - r36668;
        double r36670 = r36669 * r36669;
        double r36671 = r36663 + r36670;
        double r36672 = r36662 / r36671;
        double r36673 = r36662 - r36672;
        return r36673;
}

double f(double t) {
        double r36674 = 1.0;
        double r36675 = 2.0;
        double r36676 = t;
        double r36677 = r36675 / r36676;
        double r36678 = r36674 / r36676;
        double r36679 = r36674 + r36678;
        double r36680 = r36677 / r36679;
        double r36681 = r36675 - r36680;
        double r36682 = r36681 * r36681;
        double r36683 = r36675 + r36682;
        double r36684 = r36674 / r36683;
        double r36685 = r36674 - r36684;
        return r36685;
}

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