Average Error: 0.0 → 0.0
Time: 5.4s
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(\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot 2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(-\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)\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(\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot 2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(-\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)\right)}
double f(double t) {
        double r38527 = 1.0;
        double r38528 = 2.0;
        double r38529 = t;
        double r38530 = r38528 / r38529;
        double r38531 = r38527 / r38529;
        double r38532 = r38527 + r38531;
        double r38533 = r38530 / r38532;
        double r38534 = r38528 - r38533;
        double r38535 = r38534 * r38534;
        double r38536 = r38528 + r38535;
        double r38537 = r38527 / r38536;
        double r38538 = r38527 - r38537;
        return r38538;
}

double f(double t) {
        double r38539 = 1.0;
        double r38540 = 2.0;
        double r38541 = t;
        double r38542 = r38540 / r38541;
        double r38543 = r38539 / r38541;
        double r38544 = r38539 + r38543;
        double r38545 = r38542 / r38544;
        double r38546 = r38540 - r38545;
        double r38547 = r38546 * r38540;
        double r38548 = -r38545;
        double r38549 = r38546 * r38548;
        double r38550 = r38547 + r38549;
        double r38551 = r38540 + r38550;
        double r38552 = r38539 / r38551;
        double r38553 = r38539 - r38552;
        return r38553;
}

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 sub-neg0.0

    \[\leadsto 1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \color{blue}{\left(2 + \left(-\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)\right)}}\]
  4. Applied distribute-lft-in0.0

    \[\leadsto 1 - \frac{1}{2 + \color{blue}{\left(\left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot 2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(-\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)\right)}}\]
  5. Final simplification0.0

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

Reproduce

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