Average Error: 0.0 → 0.0
Time: 3.2s
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 \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}}}}\]
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 \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}}}}
double f(double t) {
        double r54777 = 1.0;
        double r54778 = 2.0;
        double r54779 = t;
        double r54780 = r54778 / r54779;
        double r54781 = r54777 / r54779;
        double r54782 = r54777 + r54781;
        double r54783 = r54780 / r54782;
        double r54784 = r54778 - r54783;
        double r54785 = r54784 * r54784;
        double r54786 = r54778 + r54785;
        double r54787 = r54777 / r54786;
        double r54788 = r54777 - r54787;
        return r54788;
}

double f(double t) {
        double r54789 = 1.0;
        double r54790 = 2.0;
        double r54791 = t;
        double r54792 = r54790 / r54791;
        double r54793 = r54789 / r54791;
        double r54794 = r54789 + r54793;
        double r54795 = r54792 / r54794;
        double r54796 = r54790 - r54795;
        double r54797 = r54790 * r54790;
        double r54798 = r54795 * r54795;
        double r54799 = r54797 - r54798;
        double r54800 = r54790 + r54795;
        double r54801 = r54799 / r54800;
        double r54802 = r54796 * r54801;
        double r54803 = r54790 + r54802;
        double r54804 = r54789 / r54803;
        double r54805 = r54789 - r54804;
        return r54805;
}

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. Final simplification0.0

    \[\leadsto 1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \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}}}}\]

Reproduce

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