Average Error: 0.0 → 0.0
Time: 5.9s
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 r41519 = 1.0;
        double r41520 = 2.0;
        double r41521 = t;
        double r41522 = r41520 / r41521;
        double r41523 = r41519 / r41521;
        double r41524 = r41519 + r41523;
        double r41525 = r41522 / r41524;
        double r41526 = r41520 - r41525;
        double r41527 = r41526 * r41526;
        double r41528 = r41520 + r41527;
        double r41529 = r41519 / r41528;
        double r41530 = r41519 - r41529;
        return r41530;
}

double f(double t) {
        double r41531 = 1.0;
        double r41532 = 2.0;
        double r41533 = t;
        double r41534 = r41532 / r41533;
        double r41535 = r41531 / r41533;
        double r41536 = r41531 + r41535;
        double r41537 = r41534 / r41536;
        double r41538 = r41532 - r41537;
        double r41539 = r41538 * r41538;
        double r41540 = r41532 + r41539;
        double r41541 = r41531 / r41540;
        double r41542 = r41531 - r41541;
        return r41542;
}

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