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{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)}\]
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{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)}
double f(double t) {
        double r50382 = 1.0;
        double r50383 = 2.0;
        double r50384 = t;
        double r50385 = r50383 / r50384;
        double r50386 = r50382 / r50384;
        double r50387 = r50382 + r50386;
        double r50388 = r50385 / r50387;
        double r50389 = r50383 - r50388;
        double r50390 = r50389 * r50389;
        double r50391 = r50383 + r50390;
        double r50392 = r50382 / r50391;
        double r50393 = r50382 - r50392;
        return r50393;
}

double f(double t) {
        double r50394 = 1.0;
        double r50395 = 2.0;
        double r50396 = r50395 * r50395;
        double r50397 = t;
        double r50398 = r50395 / r50397;
        double r50399 = r50394 / r50397;
        double r50400 = r50394 + r50399;
        double r50401 = r50398 / r50400;
        double r50402 = r50401 * r50401;
        double r50403 = r50396 - r50402;
        double r50404 = r50395 + r50401;
        double r50405 = r50403 / r50404;
        double r50406 = r50395 - r50401;
        double r50407 = r50405 * r50406;
        double r50408 = r50395 + r50407;
        double r50409 = r50394 / r50408;
        double r50410 = r50394 - r50409;
        return r50410;
}

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

    \[\leadsto 1 - \frac{1}{2 + \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)}\]

Reproduce

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