Average Error: 0.0 → 0.0
Time: 19.1s
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 \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 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}
double f(double t) {
        double r50478 = 1.0;
        double r50479 = 2.0;
        double r50480 = t;
        double r50481 = r50479 / r50480;
        double r50482 = r50478 / r50480;
        double r50483 = r50478 + r50482;
        double r50484 = r50481 / r50483;
        double r50485 = r50479 - r50484;
        double r50486 = r50485 * r50485;
        double r50487 = r50479 + r50486;
        double r50488 = r50478 / r50487;
        double r50489 = r50478 - r50488;
        return r50489;
}

double f(double t) {
        double r50490 = 1.0;
        double r50491 = 2.0;
        double r50492 = t;
        double r50493 = r50491 / r50492;
        double r50494 = r50490 / r50492;
        double r50495 = r50490 + r50494;
        double r50496 = r50493 / r50495;
        double r50497 = r50491 - r50496;
        double r50498 = r50497 * r50497;
        double r50499 = r50491 + r50498;
        double r50500 = r50490 / r50499;
        double r50501 = r50490 - r50500;
        return r50501;
}

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

    \[\leadsto 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)}\]

Reproduce

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