Average Error: 0.0 → 0.0
Time: 11.6s
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 r35664 = 1.0;
        double r35665 = 2.0;
        double r35666 = t;
        double r35667 = r35665 / r35666;
        double r35668 = r35664 / r35666;
        double r35669 = r35664 + r35668;
        double r35670 = r35667 / r35669;
        double r35671 = r35665 - r35670;
        double r35672 = r35671 * r35671;
        double r35673 = r35665 + r35672;
        double r35674 = r35664 / r35673;
        double r35675 = r35664 - r35674;
        return r35675;
}

double f(double t) {
        double r35676 = 1.0;
        double r35677 = 2.0;
        double r35678 = t;
        double r35679 = r35677 / r35678;
        double r35680 = r35676 / r35678;
        double r35681 = r35676 + r35680;
        double r35682 = r35679 / r35681;
        double r35683 = r35677 - r35682;
        double r35684 = r35683 * r35683;
        double r35685 = r35677 + r35684;
        double r35686 = r35676 / r35685;
        double r35687 = r35676 - r35686;
        return r35687;
}

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