Average Error: 0.0 → 0.0
Time: 30.0s
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}^{3} - {\left(\frac{2}{\mathsf{fma}\left(1, t, 1\right)}\right)}^{3}}{\mathsf{fma}\left(2, 2, \frac{2}{\mathsf{fma}\left(1, t, 1\right)} \cdot \left(2 + \frac{2}{\mathsf{fma}\left(1, t, 1\right)}\right)\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}^{3} - {\left(\frac{2}{\mathsf{fma}\left(1, t, 1\right)}\right)}^{3}}{\mathsf{fma}\left(2, 2, \frac{2}{\mathsf{fma}\left(1, t, 1\right)} \cdot \left(2 + \frac{2}{\mathsf{fma}\left(1, t, 1\right)}\right)\right)}, 2\right)}
double f(double t) {
        double r37450 = 1.0;
        double r37451 = 2.0;
        double r37452 = t;
        double r37453 = r37451 / r37452;
        double r37454 = r37450 / r37452;
        double r37455 = r37450 + r37454;
        double r37456 = r37453 / r37455;
        double r37457 = r37451 - r37456;
        double r37458 = r37457 * r37457;
        double r37459 = r37451 + r37458;
        double r37460 = r37450 / r37459;
        double r37461 = r37450 - r37460;
        return r37461;
}

double f(double t) {
        double r37462 = 1.0;
        double r37463 = 2.0;
        double r37464 = t;
        double r37465 = fma(r37462, r37464, r37462);
        double r37466 = r37463 / r37465;
        double r37467 = r37463 - r37466;
        double r37468 = 3.0;
        double r37469 = pow(r37463, r37468);
        double r37470 = pow(r37466, r37468);
        double r37471 = r37469 - r37470;
        double r37472 = r37463 + r37466;
        double r37473 = r37466 * r37472;
        double r37474 = fma(r37463, r37463, r37473);
        double r37475 = r37471 / r37474;
        double r37476 = fma(r37467, r37475, r37463);
        double r37477 = r37462 / r37476;
        double r37478 = r37462 - r37477;
        return r37478;
}

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 flip3--0.0

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

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

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

Reproduce

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