Average Error: 0.0 → 0.0
Time: 29.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}{\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 r42936 = 1.0;
        double r42937 = 2.0;
        double r42938 = t;
        double r42939 = r42937 / r42938;
        double r42940 = r42936 / r42938;
        double r42941 = r42936 + r42940;
        double r42942 = r42939 / r42941;
        double r42943 = r42937 - r42942;
        double r42944 = r42943 * r42943;
        double r42945 = r42937 + r42944;
        double r42946 = r42936 / r42945;
        double r42947 = r42936 - r42946;
        return r42947;
}

double f(double t) {
        double r42948 = 1.0;
        double r42949 = 2.0;
        double r42950 = t;
        double r42951 = fma(r42948, r42950, r42948);
        double r42952 = r42949 / r42951;
        double r42953 = r42949 - r42952;
        double r42954 = 3.0;
        double r42955 = pow(r42949, r42954);
        double r42956 = pow(r42952, r42954);
        double r42957 = r42955 - r42956;
        double r42958 = r42949 + r42952;
        double r42959 = r42952 * r42958;
        double r42960 = fma(r42949, r42949, r42959);
        double r42961 = r42957 / r42960;
        double r42962 = fma(r42953, r42961, r42949);
        double r42963 = r42948 / r42962;
        double r42964 = r42948 - r42963;
        return r42964;
}

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