Average Error: 0.0 → 0.0
Time: 3.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 + \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 r51716 = 1.0;
        double r51717 = 2.0;
        double r51718 = t;
        double r51719 = r51717 / r51718;
        double r51720 = r51716 / r51718;
        double r51721 = r51716 + r51720;
        double r51722 = r51719 / r51721;
        double r51723 = r51717 - r51722;
        double r51724 = r51723 * r51723;
        double r51725 = r51717 + r51724;
        double r51726 = r51716 / r51725;
        double r51727 = r51716 - r51726;
        return r51727;
}

double f(double t) {
        double r51728 = 1.0;
        double r51729 = 2.0;
        double r51730 = t;
        double r51731 = r51729 / r51730;
        double r51732 = r51728 / r51730;
        double r51733 = r51728 + r51732;
        double r51734 = r51731 / r51733;
        double r51735 = r51729 - r51734;
        double r51736 = r51729 * r51729;
        double r51737 = r51734 * r51734;
        double r51738 = r51736 - r51737;
        double r51739 = r51735 * r51738;
        double r51740 = r51729 + r51734;
        double r51741 = r51739 / r51740;
        double r51742 = r51729 + r51741;
        double r51743 = r51728 / r51742;
        double r51744 = r51728 - r51743;
        return r51744;
}

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 2019353 
(FPCore (t)
  :name "Kahan p13 Example 3"
  :precision binary64
  (- 1 (/ 1 (+ 2 (* (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))) (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))))))))