Average Error: 0.0 → 0.0
Time: 15.2s
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}{\mathsf{fma}\left(2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, \frac{2 \cdot 2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)} \cdot \frac{2}{\mathsf{fma}\left(1, t, 1\right)}}{2 + \frac{2}{\mathsf{fma}\left(1, t, 1\right)}}, 2\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}{\mathsf{fma}\left(2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, \frac{2 \cdot 2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)} \cdot \frac{2}{\mathsf{fma}\left(1, t, 1\right)}}{2 + \frac{2}{\mathsf{fma}\left(1, t, 1\right)}}, 2\right)}
double f(double t) {
        double r1666515 = 1.0;
        double r1666516 = 2.0;
        double r1666517 = t;
        double r1666518 = r1666516 / r1666517;
        double r1666519 = r1666515 / r1666517;
        double r1666520 = r1666515 + r1666519;
        double r1666521 = r1666518 / r1666520;
        double r1666522 = r1666516 - r1666521;
        double r1666523 = r1666522 * r1666522;
        double r1666524 = r1666516 + r1666523;
        double r1666525 = r1666515 / r1666524;
        double r1666526 = r1666515 - r1666525;
        return r1666526;
}

double f(double t) {
        double r1666527 = 1.0;
        double r1666528 = 2.0;
        double r1666529 = t;
        double r1666530 = fma(r1666527, r1666529, r1666527);
        double r1666531 = r1666528 / r1666530;
        double r1666532 = r1666528 - r1666531;
        double r1666533 = r1666528 * r1666528;
        double r1666534 = r1666531 * r1666531;
        double r1666535 = r1666533 - r1666534;
        double r1666536 = r1666528 + r1666531;
        double r1666537 = r1666535 / r1666536;
        double r1666538 = fma(r1666532, r1666537, r1666528);
        double r1666539 = r1666527 / r1666538;
        double r1666540 = r1666527 - r1666539;
        return r1666540;
}

Error

Bits error versus t

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. Simplified0.0

    \[\leadsto \color{blue}{1 - \frac{1}{\mathsf{fma}\left(2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, 2 - \frac{2}{\mathsf{fma}\left(1, t, 1\right)}, 2\right)}}\]
  3. Using strategy rm
  4. Applied flip--0.0

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

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

Reproduce

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