Average Error: 0.0 → 0.0
Time: 21.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 + \frac{\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left({2}^{3} - {\left(\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}^{3}\right)}{2 \cdot 2 + \left(\frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}} + 2 \cdot \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 + \frac{\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left({2}^{3} - {\left(\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}^{3}\right)}{2 \cdot 2 + \left(\frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}} + 2 \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}}
double f(double t) {
        double r47933 = 1.0;
        double r47934 = 2.0;
        double r47935 = t;
        double r47936 = r47934 / r47935;
        double r47937 = r47933 / r47935;
        double r47938 = r47933 + r47937;
        double r47939 = r47936 / r47938;
        double r47940 = r47934 - r47939;
        double r47941 = r47940 * r47940;
        double r47942 = r47934 + r47941;
        double r47943 = r47933 / r47942;
        double r47944 = r47933 - r47943;
        return r47944;
}

double f(double t) {
        double r47945 = 1.0;
        double r47946 = 2.0;
        double r47947 = t;
        double r47948 = r47946 / r47947;
        double r47949 = r47945 / r47947;
        double r47950 = r47945 + r47949;
        double r47951 = r47948 / r47950;
        double r47952 = r47946 - r47951;
        double r47953 = 3.0;
        double r47954 = pow(r47946, r47953);
        double r47955 = pow(r47951, r47953);
        double r47956 = r47954 - r47955;
        double r47957 = r47952 * r47956;
        double r47958 = r47946 * r47946;
        double r47959 = r47951 * r47951;
        double r47960 = r47946 * r47951;
        double r47961 = r47959 + r47960;
        double r47962 = r47958 + r47961;
        double r47963 = r47957 / r47962;
        double r47964 = r47946 + r47963;
        double r47965 = r47945 / r47964;
        double r47966 = r47945 - r47965;
        return r47966;
}

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 flip3--0.0

    \[\leadsto 1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \color{blue}{\frac{{2}^{3} - {\left(\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}^{3}}{2 \cdot 2 + \left(\frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}} + 2 \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}}}\]
  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}^{3} - {\left(\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}^{3}\right)}{2 \cdot 2 + \left(\frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}} + 2 \cdot \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}}}\]
  5. Final simplification0.0

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

Reproduce

herbie shell --seed 2019347 +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)))))))))