Average Error: 0.0 → 0.0
Time: 8.3s
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 \frac{{2}^{3} - {\left(\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}^{3}}{\mathsf{fma}\left(2, 2, \frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \left(\frac{\frac{2}{t}}{1 + \frac{1}{t}} + 2\right)\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 \frac{{2}^{3} - {\left(\frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}^{3}}{\mathsf{fma}\left(2, 2, \frac{\frac{2}{t}}{1 + \frac{1}{t}} \cdot \left(\frac{\frac{2}{t}}{1 + \frac{1}{t}} + 2\right)\right)}}
double f(double t) {
        double r67946 = 1.0;
        double r67947 = 2.0;
        double r67948 = t;
        double r67949 = r67947 / r67948;
        double r67950 = r67946 / r67948;
        double r67951 = r67946 + r67950;
        double r67952 = r67949 / r67951;
        double r67953 = r67947 - r67952;
        double r67954 = r67953 * r67953;
        double r67955 = r67947 + r67954;
        double r67956 = r67946 / r67955;
        double r67957 = r67946 - r67956;
        return r67957;
}

double f(double t) {
        double r67958 = 1.0;
        double r67959 = 2.0;
        double r67960 = t;
        double r67961 = r67959 / r67960;
        double r67962 = r67958 / r67960;
        double r67963 = r67958 + r67962;
        double r67964 = r67961 / r67963;
        double r67965 = r67959 - r67964;
        double r67966 = 3.0;
        double r67967 = pow(r67959, r67966);
        double r67968 = pow(r67964, r67966);
        double r67969 = r67967 - r67968;
        double r67970 = r67964 + r67959;
        double r67971 = r67964 * r67970;
        double r67972 = fma(r67959, r67959, r67971);
        double r67973 = r67969 / r67972;
        double r67974 = r67965 * r67973;
        double r67975 = r67959 + r67974;
        double r67976 = r67958 / r67975;
        double r67977 = r67958 - r67976;
        return r67977;
}

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. Using strategy rm
  3. Applied flip3--0.0

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

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

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

Reproduce

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