Average Error: 0.0 → 0.0
Time: 23.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}{\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}}} \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) + 2}\]
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}{\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}}} \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) + 2}
double f(double t) {
        double r1931192 = 1.0;
        double r1931193 = 2.0;
        double r1931194 = t;
        double r1931195 = r1931193 / r1931194;
        double r1931196 = r1931192 / r1931194;
        double r1931197 = r1931192 + r1931196;
        double r1931198 = r1931195 / r1931197;
        double r1931199 = r1931193 - r1931198;
        double r1931200 = r1931199 * r1931199;
        double r1931201 = r1931193 + r1931200;
        double r1931202 = r1931192 / r1931201;
        double r1931203 = r1931192 - r1931202;
        return r1931203;
}

double f(double t) {
        double r1931204 = 1.0;
        double r1931205 = 2.0;
        double r1931206 = r1931205 * r1931205;
        double r1931207 = t;
        double r1931208 = r1931205 / r1931207;
        double r1931209 = r1931204 / r1931207;
        double r1931210 = r1931204 + r1931209;
        double r1931211 = r1931208 / r1931210;
        double r1931212 = r1931211 * r1931211;
        double r1931213 = r1931206 - r1931212;
        double r1931214 = r1931205 + r1931211;
        double r1931215 = r1931213 / r1931214;
        double r1931216 = r1931205 - r1931211;
        double r1931217 = r1931215 * r1931216;
        double r1931218 = r1931217 + r1931205;
        double r1931219 = r1931204 / r1931218;
        double r1931220 = r1931204 - r1931219;
        return r1931220;
}

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

Reproduce

herbie shell --seed 2019179 +o rules:numerics
(FPCore (t)
  :name "Kahan p13 Example 3"
  (- 1.0 (/ 1.0 (+ 2.0 (* (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))) (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))))))))