Average Error: 0.0 → 0.0
Time: 5.5s
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 r41707 = 1.0;
        double r41708 = 2.0;
        double r41709 = t;
        double r41710 = r41708 / r41709;
        double r41711 = r41707 / r41709;
        double r41712 = r41707 + r41711;
        double r41713 = r41710 / r41712;
        double r41714 = r41708 - r41713;
        double r41715 = r41714 * r41714;
        double r41716 = r41708 + r41715;
        double r41717 = r41707 / r41716;
        double r41718 = r41707 - r41717;
        return r41718;
}

double f(double t) {
        double r41719 = 1.0;
        double r41720 = 2.0;
        double r41721 = t;
        double r41722 = r41720 / r41721;
        double r41723 = r41719 / r41721;
        double r41724 = r41719 + r41723;
        double r41725 = r41722 / r41724;
        double r41726 = r41720 - r41725;
        double r41727 = r41720 * r41720;
        double r41728 = r41725 * r41725;
        double r41729 = r41727 - r41728;
        double r41730 = r41726 * r41729;
        double r41731 = r41720 + r41725;
        double r41732 = r41730 / r41731;
        double r41733 = r41720 + r41732;
        double r41734 = r41719 / r41733;
        double r41735 = r41719 - r41734;
        return r41735;
}

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