Average Error: 0.0 → 0.0
Time: 3.4s
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 + \frac{\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 \cdot 2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}{2 + \frac{\frac{2}{t}}{1 + \frac{1}{t}}}}\]
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 + \frac{\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 \cdot 2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}{2 + \frac{\frac{2}{t}}{1 + \frac{1}{t}}}}
double f(double t) {
        double r56021 = 1.0;
        double r56022 = 2.0;
        double r56023 = t;
        double r56024 = r56022 / r56023;
        double r56025 = r56021 / r56023;
        double r56026 = r56021 + r56025;
        double r56027 = r56024 / r56026;
        double r56028 = r56022 - r56027;
        double r56029 = r56028 * r56028;
        double r56030 = r56022 + r56029;
        double r56031 = r56021 / r56030;
        double r56032 = r56021 - r56031;
        return r56032;
}

double f(double t) {
        double r56033 = 1.0;
        double r56034 = 2.0;
        double r56035 = t;
        double r56036 = r56034 / r56035;
        double r56037 = r56033 / r56035;
        double r56038 = r56033 + r56037;
        double r56039 = r56036 / r56038;
        double r56040 = r56034 - r56039;
        double r56041 = r56034 * r56034;
        double r56042 = r56039 * r56039;
        double r56043 = r56041 - r56042;
        double r56044 = r56040 * r56043;
        double r56045 = r56034 + r56039;
        double r56046 = r56044 / r56045;
        double r56047 = r56034 + r56046;
        double r56048 = r56033 / r56047;
        double r56049 = r56033 - r56048;
        return r56049;
}

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. Using strategy rm
  3. Applied flip--0.0

    \[\leadsto 1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \color{blue}{\frac{2 \cdot 2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}}{2 + \frac{\frac{2}{t}}{1 + \frac{1}{t}}}}}\]
  4. Applied associate-*r/0.0

    \[\leadsto 1 - \frac{1}{2 + \color{blue}{\frac{\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 \cdot 2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}{2 + \frac{\frac{2}{t}}{1 + \frac{1}{t}}}}}\]
  5. Final simplification0.0

    \[\leadsto 1 - \frac{1}{2 + \frac{\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 \cdot 2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}{2 + \frac{\frac{2}{t}}{1 + \frac{1}{t}}}}\]

Reproduce

herbie shell --seed 2020003 
(FPCore (t)
  :name "Kahan p13 Example 3"
  :precision binary64
  (- 1 (/ 1 (+ 2 (* (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))) (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))))))))