Average Error: 0.0 → 0.0
Time: 6.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 r57745 = 1.0;
        double r57746 = 2.0;
        double r57747 = t;
        double r57748 = r57746 / r57747;
        double r57749 = r57745 / r57747;
        double r57750 = r57745 + r57749;
        double r57751 = r57748 / r57750;
        double r57752 = r57746 - r57751;
        double r57753 = r57752 * r57752;
        double r57754 = r57746 + r57753;
        double r57755 = r57745 / r57754;
        double r57756 = r57745 - r57755;
        return r57756;
}

double f(double t) {
        double r57757 = 1.0;
        double r57758 = 2.0;
        double r57759 = t;
        double r57760 = r57758 / r57759;
        double r57761 = r57757 / r57759;
        double r57762 = r57757 + r57761;
        double r57763 = r57760 / r57762;
        double r57764 = r57758 - r57763;
        double r57765 = r57764 * r57764;
        double r57766 = r57758 + r57765;
        double r57767 = r57757 / r57766;
        double r57768 = r57757 - r57767;
        return r57768;
}

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