Average Error: 0.0 → 0.0
Time: 16.1s
Precision: 64
\[\frac{1.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}{2.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}\]
\[\frac{1.0 + \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right)}{\left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) + 2.0}\]
\frac{1.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}{2.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}
\frac{1.0 + \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right)}{\left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) + 2.0}
double f(double t) {
        double r1824564 = 1.0;
        double r1824565 = 2.0;
        double r1824566 = t;
        double r1824567 = r1824565 / r1824566;
        double r1824568 = r1824564 / r1824566;
        double r1824569 = r1824564 + r1824568;
        double r1824570 = r1824567 / r1824569;
        double r1824571 = r1824565 - r1824570;
        double r1824572 = r1824571 * r1824571;
        double r1824573 = r1824564 + r1824572;
        double r1824574 = r1824565 + r1824572;
        double r1824575 = r1824573 / r1824574;
        return r1824575;
}

double f(double t) {
        double r1824576 = 1.0;
        double r1824577 = 2.0;
        double r1824578 = t;
        double r1824579 = r1824576 * r1824578;
        double r1824580 = r1824579 + r1824576;
        double r1824581 = r1824577 / r1824580;
        double r1824582 = r1824577 - r1824581;
        double r1824583 = r1824582 * r1824582;
        double r1824584 = r1824576 + r1824583;
        double r1824585 = r1824583 + r1824577;
        double r1824586 = r1824584 / r1824585;
        return r1824586;
}

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

    \[\frac{1.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}{2.0 + \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right) \cdot \left(2.0 - \frac{\frac{2.0}{t}}{1.0 + \frac{1.0}{t}}\right)}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{1.0 + \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right)}{2.0 + \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right)}}\]
  3. Final simplification0.0

    \[\leadsto \frac{1.0 + \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right)}{\left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) \cdot \left(2.0 - \frac{2.0}{1.0 \cdot t + 1.0}\right) + 2.0}\]

Reproduce

herbie shell --seed 2019165 
(FPCore (t)
  :name "Kahan p13 Example 2"
  (/ (+ 1.0 (* (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))) (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))))) (+ 2.0 (* (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))) (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t))))))))